This is the source code for my personal webpage.
The webpage falls under regular copyright laws and its code is available here only as a reference. This means you should NOT use it as a template for another website. Check Hakyll's website for better examples.
Here's the list of key things to me that I haven't found in Hakyll and managed to get working only after a few days of research and hard work (I know it might not seem so).
- Automatic PDF generation for tex files using Pandoc API itself (no ugly wrappers),
- reserves
$pdf$
field for the link-to-file if the pdf file exists,
- reserves
- working bibtex citations (you need to set
$bibliography$
in post metadata to point to the bib file) with clickable links and a 'References' section title before the rendered bibliography, - nice math rendering with MathJax (you need to set
$mathjax$
to true in post metadata to make it load), - code snippets with syntax highlighting and linkable line numbering,
- you need to set
.numberLines
class in the snippet attribute section (```{.numberLines})
- you need to set
- post categories based on
posts
dir structure (thanks to Hakyll tags),$categories$
renders links to all the existing categories,$category$
is capitalized,
- no
posts/
URL prefix for post entries, removeHTMLExtensions
filter can be used to remove '.html' extension from relative links,- use if you want nice URLs without messing with the routes (e.g. you have set up mod_redirect in
.htaccess
),
- use if you want nice URLs without messing with the routes (e.g. you have set up mod_redirect in
numbersections: true
in the YAML block enables section numbering from LaTeX sources (unlike unmodified Hakyll),- for internal links in LaTeX sources use the standard
\label{id}
with\protect\hyperlink{id}{link name}
(\ref
does not work), teaser: "string"
in the YAML block setsstring
as the introduction for the post in the post list (it is INCLUDED in the post itself),- teaser also determines, if the post will be shown in the recent posts,
excludeteaser: true
in the YAML block excludes the teaser from the post.
pages
folder for static pages generation (accessible from root)- outputs to
docs
to work with GitHub Pages