diff options
-rw-r--r-- | ChangeLog.md | 3 | ||||
-rw-r--r-- | README.md | 49 | ||||
-rw-r--r-- | app/Main.hs | 11 | ||||
-rw-r--r-- | ikiwiki-fast-pandoc.cabal (renamed from fast-pandoc.cabal) | 6 | ||||
-rw-r--r-- | package.yaml | 4 |
5 files changed, 62 insertions, 11 deletions
diff --git a/ChangeLog.md b/ChangeLog.md deleted file mode 100644 index 69ab8a3..0000000 --- a/ChangeLog.md +++ /dev/null @@ -1,3 +0,0 @@ -# Changelog for fast-pandoc - -## Unreleased changes @@ -1 +1,48 @@ -# fast-pandoc +# ikiwiki-fast-pandoc + +An "external" (XML-RPC) [IkiWiki][] plugin for rendering Markdown +fragments with [Pandoc][], replacing the default [mdwn][] plugin. + +[ikiwiki-pandoc][] has the same purpose as this plugin, and is easier +to install, more mature, and more featureful. However, fast-pandoc +can be significantly faster, especially if you use directives like +`\[[!table]]` and `\[[!report]]` that generate many Markdown fragments +that IkiWiki will htmlize individually. Whereas [ikiwiki-pandoc][] +will fork+exec the pandoc binary for every fragment, fast-pandoc +embeds pandoc in a co-process that runs alongside IkiWiki. At +[SFLC][], switching to fast-pandoc sped up rebuilds of an internal +wiki by 25-30%. + +[IkiWiki]: https://ikiwiki.info/ +[Pandoc]: https://pandoc.org/ +[mdwn]: https://ikiwiki.info/plugins/mdwn/ +[ikiwiki-pandoc]: https://github.com/sciunto-org/ikiwiki-pandoc +[SFLC]: https://softwarefreedom.org + +## Build and install + +Install git and [Haskell Stack](http://haskellstack.org/), then do: + +``` +git clone git://code.softwarefreedom.org/git/fast-pandoc +cd fast-pandoc +stack build +``` + +To make fast-pandoc available to your wiki, locate its "extra library +and plugin directory" (the `libdir` option in the *.setup file), +create a `plugins` subdirectory (if it doesn't already exist), and +install the `fast-pandoc` binary into it. (See also +<https://ikiwiki.info/plugins/install/>.) Many wikis put their libdir +at `~/.ikiwiki`. + +``` +mkdir -p ~/.ikiwiki/plugins/ +stack install --local-bin-path ~/.ikiwiki/plugins +``` + +Finally, add `fast-pandoc` to the `add_plugins` list: + +``` +ikiwiki --changesetup ~/wiki.setup --plugin fast-pandoc +``` diff --git a/app/Main.hs b/app/Main.hs index c1ebbbd..299032d 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -6,8 +6,15 @@ -- -- Copyright (C) 2021 Software Freedom Law Center -- --- Licensed under the terms of the GNU General Public Licence (GPL) version 3 --- or (at your option) any later version. +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. module Main (main) where diff --git a/fast-pandoc.cabal b/ikiwiki-fast-pandoc.cabal index a0fb105..8df9b83 100644 --- a/fast-pandoc.cabal +++ b/ikiwiki-fast-pandoc.cabal @@ -4,7 +4,7 @@ cabal-version: 1.12 -- -- see: https://github.com/sol/hpack -name: fast-pandoc +name: ikiwiki-fast-pandoc version: 0.1.0.0 description: Faster pandoc plugin for IkiWiki author: Daniel Gnoutcheff @@ -14,13 +14,13 @@ license: GPL3 build-type: Simple extra-source-files: README.md - ChangeLog.md + COPYING executable fast-pandoc main-is: Main.hs other-modules: XMLParse - Paths_fast_pandoc + Paths_ikiwiki_fast_pandoc hs-source-dirs: app ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall diff --git a/package.yaml b/package.yaml index 9c94637..a9b9e08 100644 --- a/package.yaml +++ b/package.yaml @@ -1,4 +1,4 @@ -name: fast-pandoc +name: ikiwiki-fast-pandoc version: 0.1.0.0 license: GPL3 author: "Daniel Gnoutcheff" @@ -7,7 +7,7 @@ copyright: "2021 Software Freedom Law Center" extra-source-files: - README.md -- ChangeLog.md +- COPYING # Metadata used when publishing your package # synopsis: Short description of your package |