I had to prepend some Rules to global Rules set. This might be possible
to replaced by a correct Store.set call.
I also had to prepend some Compile rules.
Pandoc 1.12 decouples citeproc-hs from itself, so there is no longer a
Text.Pandoc.Biblio module in Pandoc. Further, citeproc-hs depends on
pandoc-types 1.10 but Pandoc 1.12 depends on pandoc-types 1.12. To
alleviate these issues, pandoc-citeproc was created which includes a
copy of the citeproc-hs source made to be compatible, since the
developer of citeproc-hs is apparently MIA.
pandoc-citeproc is a separate module that handles the mixture of
citeproc-hs and Pandoc. It includes `processCites` in Text.CSL.Pandoc,
which is the new name of what used to be `processBiblio` from
Text.Pandoc.Biblio
Most of these changes are seamless, consisting of simple name changes in
both functions and modules. However, a more direct change in the
Hakyll API itself is that `readPandocBiblio`'s second parameter, the
CSL, is now mandatory, i.e. not of type Maybe. This is to reflect the
same change in the underlying processing function from Text.CSL.Pandoc,
`processCites`, where the Style argument is now mandatory, and the style
is derived from the CSL.
See the old function:
processBiblio :: Maybe Style -> [Reference] -> Pandoc -> Pandoc
Compared to the new one:
processCites :: Style -> [Reference] -> Pandoc -> Pandoc
Sources:
* http://hackage.haskell.org/packages/archive/pandoc/1.11.1/doc/html/Text-Pandoc-Biblio.html
* http://hackage.haskell.org/packages/archive/pandoc-citeproc/0.1/doc/html/Text-CSL-Pandoc.html
Similarly, there is no longer a `readerReferences` field in the reader
options structure.
toSiteRoot uses splitPath, joinPath, and takeDirectory from the
System.FilePath module. On Windows systems, the implementation of
joinPath will build up a path using the Windows path separator "\\".
We don't want this behavior since the paths we are working with
are always URLs, so we force POSIX behavior for System.FilePath.
Make it possible to specify the default port to listen on when the
preview server is run. This is useful if another service on the system
already runs on port 8000 (the default), since it's a hassle to keep
providing the port overriding option. For example: ./site preview vs.
./site preview -p 4000
Otherwise laziness allows for the handle to be closed withouth receiving the
input. This caused that no error messages were printed when `unixFilter`s
failed.
Expose function tagsFieldWith and renderTagCloudWith to provide more
flexible tag rendering APIs; add tagCloudField and tagCloudFieldWith
to provide context-based facility for tag cloud rendering.
Network.HTTP can only check if http:// and https:// links resolve,
however there is much more scheme names than just `mail:`, `http://` and
`https://`.
They would be handed off to internal URI checker and would fail.
This patch includes several smaller changes, namely:
1. We don't use result of `update` function and likely never will, so
don't bother generating it.
2. Rename watch function to better reflect what it does.
3. Never exit preview server in case of failed update.
By overriding `deploySite` with a `Configuration -> IO ()` code,
the user can execute Haskell code to deploy the site rather than
shell code.
The default behaviour honors the `deployCommand` configuration
field and is backward compatible.
When parsing a metadata field that spans several lines skip over the
initial whitespace on each line. This allows alignment of metadata
fields:
---
description: A long description that would look better if it
spanned multiple lines and was indented
---