Use slugger 0.1.0.1 for post titles
parent
b96baa843e
commit
a816227da7
12
flake.lock
12
flake.lock
|
@ -2,11 +2,11 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623660459,
|
"lastModified": 1623875721,
|
||||||
"narHash": "sha256-OTmOsh43po7r5F9s9H6lVCBQ2b0FikWbmiwLbMAGRdw=",
|
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "98c8d36b1828009b20f12544214683c7489935a1",
|
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -17,11 +17,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623576761,
|
"lastModified": 1627528535,
|
||||||
"narHash": "sha256-krXZQ0lObduC95f40K3JwIT//VIBpXBwVNclqh5njtE=",
|
"narHash": "sha256-+E0LxCLav1GmbQbqwCKP39DRMn6NeEq00drC8udnYIY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1f91fd1040667e9265a760b0347f8bc416249da7",
|
"rev": "2262d7863a6af007274a698367484bf4903a3299",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -18,6 +18,11 @@ final: prev:
|
||||||
let
|
let
|
||||||
hakyll-src = hpPrev.callHackage "hakyll" "4.14.0.0" {};
|
hakyll-src = hpPrev.callHackage "hakyll" "4.14.0.0" {};
|
||||||
pandoc-src = hpPrev.callHackage "pandoc" "2.11.4" {}; # version specified by hayll 4.14.0.0
|
pandoc-src = hpPrev.callHackage "pandoc" "2.11.4" {}; # version specified by hayll 4.14.0.0
|
||||||
|
slugger-src = hpPrev.callHackageDirect {
|
||||||
|
pkg = "slugger";
|
||||||
|
ver = "0.1.0.1";
|
||||||
|
sha256 = "sha256-ggeo5TcbI4UlK/CtG4878USX9Cm7Faz16phdjlDOGaI=";
|
||||||
|
} {}; # not available yet because it's so new
|
||||||
in rec {
|
in rec {
|
||||||
hakyll = pipe hakyll-src [
|
hakyll = pipe hakyll-src [
|
||||||
doJailbreak
|
doJailbreak
|
||||||
|
@ -31,6 +36,8 @@ final: prev:
|
||||||
dontCheck
|
dontCheck
|
||||||
];
|
];
|
||||||
|
|
||||||
|
slugger = slugger-src;
|
||||||
|
|
||||||
ssg = hpPrev.callCabal2nix "ssg" ./ssg {};
|
ssg = hpPrev.callCabal2nix "ssg" ./ssg {};
|
||||||
|
|
||||||
website = prev.stdenv.mkDerivation {
|
website = prev.stdenv.mkDerivation {
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
import Control.Monad (forM_)
|
import Control.Monad (forM_)
|
||||||
import Data.Maybe (fromMaybe)
|
import Data.Maybe (fromMaybe)
|
||||||
import qualified Data.Text as T
|
|
||||||
import Hakyll
|
import Hakyll
|
||||||
import Slug (toSlug)
|
import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Slugger as Slugger
|
||||||
import Text.Pandoc
|
import Text.Pandoc
|
||||||
( Extension (Ext_fenced_code_attributes, Ext_footnotes, Ext_gfm_auto_identifiers, Ext_implicit_header_references, Ext_smart),
|
( Extension (Ext_fenced_code_attributes, Ext_footnotes, Ext_gfm_auto_identifiers, Ext_implicit_header_references, Ext_smart),
|
||||||
Extensions,
|
Extensions,
|
||||||
|
@ -229,7 +229,7 @@ getTitleFromMeta =
|
||||||
|
|
||||||
fileNameFromTitle :: Metadata -> FilePath
|
fileNameFromTitle :: Metadata -> FilePath
|
||||||
fileNameFromTitle =
|
fileNameFromTitle =
|
||||||
T.unpack . (`T.append` ".html") . toSlug . T.pack . getTitleFromMeta
|
T.unpack . (`T.append` ".html") . Slugger.toSlug . T.pack . getTitleFromMeta
|
||||||
|
|
||||||
titleRoute :: Metadata -> Routes
|
titleRoute :: Metadata -> Routes
|
||||||
titleRoute =
|
titleRoute =
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
|
||||||
|
|
||||||
module Slug
|
|
||||||
( toSlug,
|
|
||||||
)
|
|
||||||
where
|
|
||||||
|
|
||||||
import Data.Char (isAlphaNum)
|
|
||||||
import qualified Data.Text as T
|
|
||||||
|
|
||||||
keepAlphaNum :: Char -> Char
|
|
||||||
keepAlphaNum x
|
|
||||||
| isAlphaNum x = x
|
|
||||||
| otherwise = ' '
|
|
||||||
|
|
||||||
clean :: T.Text -> T.Text
|
|
||||||
clean =
|
|
||||||
T.map keepAlphaNum . T.replace "'" "" . T.replace "&" "and"
|
|
||||||
|
|
||||||
toSlug :: T.Text -> T.Text
|
|
||||||
toSlug =
|
|
||||||
T.intercalate (T.singleton '-') . T.words . T.toLower . clean
|
|
|
@ -9,11 +9,10 @@ license-file: LICENSE
|
||||||
executable hakyll-site
|
executable hakyll-site
|
||||||
main-is: Main.hs
|
main-is: Main.hs
|
||||||
hs-source-dirs: src
|
hs-source-dirs: src
|
||||||
build-depends: base == 4.*
|
build-depends: base >= 4.8
|
||||||
, hakyll ^>= 4.14
|
, hakyll >= 4.14
|
||||||
, pandoc
|
, pandoc == 2.11.*
|
||||||
, text
|
, slugger >= 0.1.0.1
|
||||||
, time
|
, text >= 1.2
|
||||||
other-modules: Slug
|
|
||||||
ghc-options: -Wall -threaded
|
ghc-options: -Wall -threaded
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
|
|
Loading…
Reference in New Issue