Skip to content

Commit e7d49da

Browse files
committed
Switch on language for highlighting. Ignore non-Haskell for now
1 parent 3eab4ff commit e7d49da

File tree

2 files changed

+41
-6
lines changed

2 files changed

+41
-6
lines changed

message-index/site.hs

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import System.FilePath
2525
import qualified Text.Pandoc as Pandoc
2626
import qualified Text.Pandoc.Definition as Pandoc
2727

28+
import Debug.Trace
29+
2830
main :: IO ()
2931
main = hakyll $ do
3032
-- Necessary to have GitHub Pages point at the right domain
@@ -68,19 +70,48 @@ main = hakyll $ do
6870
<&> \ident ->
6971
fromFilePath $ takeDirectory (takeDirectory (toFilePath ident)) </> "index.md"
7072
bread <- breadcrumbField ["index.html", thisMessage]
73+
7174
pandocCompiler
7275
>>= loadAndApplyTemplate
7376
"templates/example.html"
7477
( mconcat
7578
[ listField
7679
"files"
7780
( mconcat
78-
[ indexlessUrlField "url",
79-
field "name" (pure . view _1 . itemBody),
80-
-- TODO: pick the right language
81-
field "beforeHighlighted" (maybe (pure "<not present>") (fmap (T.unpack . highlight "haskell" . T.pack) . fmap itemBody . load . itemIdentifier) . view _2 . itemBody),
82-
field "afterHighlighted" (maybe (pure "<not present>") (fmap (T.unpack . highlight "haskell" . T.pack) . fmap itemBody . load . itemIdentifier) . view _3 . itemBody)
83-
]
81+
(
82+
let getName = view _1 . itemBody
83+
nameField = field "name" (pure . getName)
84+
beforeField =
85+
field "beforeHighlighted" $ \item -> do
86+
let name = getName item
87+
case view _2 $ itemBody item of
88+
Nothing -> pure "<not present>"
89+
Just beforeItem -> do
90+
beforeText <- fmap itemBody $ load $ itemIdentifier beforeItem
91+
let language =
92+
case takeExtension name of
93+
".hs" -> "haskell"
94+
_ -> ""
95+
pure $ T.unpack $ highlight language $ T.pack $ beforeText
96+
afterField =
97+
field "afterHighlighted" $ \item -> do
98+
let name = getName item
99+
case view _2 $ itemBody item of
100+
Nothing -> pure "<not present>"
101+
Just afterItem -> do
102+
afterText <- fmap itemBody $ load $ itemIdentifier afterItem
103+
let language =
104+
case takeExtension name of
105+
".hs" -> "haskell"
106+
_ -> ""
107+
pure $ T.unpack $ highlight language $ T.pack $ afterText
108+
in
109+
110+
[ indexlessUrlField "url",
111+
nameField,
112+
beforeField,
113+
afterField
114+
])
84115
)
85116
(return files),
86117
defaultContext

message-index/templates/example.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,9 @@
1414
$afterHighlighted$
1515
</div>
1616
</div>
17+
//<script>
18+
// console.log("$name$");
19+
//</script>
1720
</div>
1821
$endfor$
22+

0 commit comments

Comments
 (0)