2007-07-16 18:30:04 +02:00
|
|
|
% Installing pandoc
|
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
These instructions explain how to install pandoc from source.
|
|
|
|
Binary packages or ports of pandoc are available for freebsd
|
|
|
|
and several linux distributions, so check your package manager.
|
2013-08-16 05:06:26 +02:00
|
|
|
There are also binary installers for Windows and Mac OS X.
|
|
|
|
|
|
|
|
If you are installing the development version from github, see also:
|
|
|
|
https://github.com/jgm/pandoc/wiki/Installing-the-development-version-of-pandoc
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
Quick install
|
|
|
|
-------------
|
2008-08-08 02:11:58 +02:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
1. Install the [Haskell platform]. This will give you [GHC] and
|
2014-06-18 20:33:09 +02:00
|
|
|
the [cabal-install] build tool.
|
2013-08-08 23:05:46 +02:00
|
|
|
|
|
|
|
2. Update your package database:
|
|
|
|
|
|
|
|
cabal update
|
|
|
|
|
|
|
|
3. Use `cabal` to install pandoc and its dependencies:
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
cabal install pandoc
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-04 03:57:43 +01:00
|
|
|
This procedure will install the released version of pandoc,
|
|
|
|
which will be downloaded automatically from HackageDB.
|
2015-04-03 05:47:41 +02:00
|
|
|
|
|
|
|
If this step fails, and you are using an older version
|
2015-04-02 20:14:55 +02:00
|
|
|
of the Haskell Platform, e.g. on Debian stable, you may need to
|
2015-04-03 05:47:41 +02:00
|
|
|
upgrade your version of cabal:
|
|
|
|
|
|
|
|
cabal install cabal-install
|
|
|
|
~/.cabal/bin/cabal update
|
|
|
|
~/.cabal/bin/cabal install pandoc
|
2015-04-02 20:14:55 +02:00
|
|
|
|
2010-02-04 03:57:43 +01:00
|
|
|
If you want to install a modified or development version
|
|
|
|
of pandoc instead, switch to the source directory and do
|
|
|
|
as above, but without the 'pandoc':
|
|
|
|
|
|
|
|
cabal install
|
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
Note: If you obtained the source from the git repository (rather
|
|
|
|
than a release tarball), you'll need to do
|
|
|
|
|
|
|
|
git submodule update --init
|
|
|
|
|
|
|
|
to fetch the contents of `data/templates` before `cabal install`.
|
|
|
|
|
|
|
|
4. Make sure the `$CABALDIR/bin` directory is in your path. You should
|
|
|
|
now be able to run `pandoc`:
|
2006-11-19 22:24:33 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
pandoc --help
|
2008-09-06 20:33:39 +02:00
|
|
|
|
2013-07-20 20:06:58 +02:00
|
|
|
[Not sure where `$CABALDIR` is?](http://www.haskell.org/haskellwiki/Cabal-Install#The_cabal-install_configuration_file)
|
|
|
|
|
2014-12-07 18:42:25 +01:00
|
|
|
5. If you want to process citations with pandoc, you will also need to
|
2013-08-31 18:41:48 +02:00
|
|
|
install a separate package, `pandoc-citeproc`. This can be installed
|
|
|
|
using cabal:
|
|
|
|
|
|
|
|
cabal install pandoc-citeproc
|
|
|
|
|
2013-09-20 06:11:05 +02:00
|
|
|
By default `pandoc-citeproc` uses the "i;unicode-casemap" method
|
|
|
|
to sort bibliography entries (RFC 5051). If you would like to
|
|
|
|
use the locale-sensitive unicode collation algorithm instead,
|
|
|
|
specify the `unicode_collation` flag:
|
|
|
|
|
|
|
|
cabal install pandoc-citeproc -funicode_collation
|
|
|
|
|
|
|
|
Note that this requires the `text-icu` library, which in turn
|
|
|
|
depends on the C library `icu4c`. Installation directions
|
|
|
|
vary by platform. Here is how it might work on OSX with homebrew:
|
|
|
|
|
|
|
|
brew install icu4c
|
|
|
|
cabal install --extra-lib-dirs=/usr/local/Cellar/icu4c/51.1/lib \
|
|
|
|
--extra-include-dirs=/usr/local/Cellar/icu4c/51.1/include \
|
|
|
|
-funicode_collation text-icu pandoc-citeproc
|
|
|
|
|
2015-07-03 07:09:04 +02:00
|
|
|
The `pandoc.1` man page will be installed automatically. cabal shows
|
|
|
|
you where it is installed: you may need to set your `MANPATH`
|
|
|
|
accordingly. If `README` has been modified, the man page can be
|
|
|
|
rebuilt: `make man/pandoc.1`.
|
2015-06-28 23:39:17 +02:00
|
|
|
|
2015-07-03 07:09:04 +02:00
|
|
|
The `pandoc-citeproc.1` man page will also be installed automatically.
|
2014-12-07 18:42:25 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
[GHC]: http://www.haskell.org/ghc/
|
|
|
|
[Haskell platform]: http://hackage.haskell.org/platform/
|
|
|
|
[cabal-install]: http://hackage.haskell.org/trac/hackage/wiki/CabalInstall
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
Custom install
|
|
|
|
--------------
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
This is a step-by-step procedure that offers maximal control
|
|
|
|
over the build and installation. Most users should use the
|
|
|
|
quick install, but this information may be of use to packagers.
|
2013-08-08 23:05:46 +02:00
|
|
|
For more details, see the [Cabal User's Guide]. These instructions
|
|
|
|
assume that the pandoc source directory is your working directory.
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
1. Install dependencies: in addition to the [Haskell platform],
|
2013-08-08 23:05:46 +02:00
|
|
|
you will need a number of additional libraries. You can install
|
|
|
|
them all with
|
|
|
|
|
|
|
|
cabal update
|
|
|
|
cabal install --only-dependencies
|
2007-01-04 02:23:07 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
2. Configure:
|
2007-01-04 02:23:07 +01:00
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
cabal configure --prefix=DIR --bindir=DIR --libdir=DIR \
|
2010-02-03 09:27:31 +01:00
|
|
|
--datadir=DIR --libsubdir=DIR --datasubdir=DIR --docdir=DIR \
|
|
|
|
--htmldir=DIR --program-prefix=PREFIX --program-suffix=SUFFIX \
|
|
|
|
--mandir=DIR --flags=FLAGSPEC
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
All of the options have sensible defaults that can be overridden
|
|
|
|
as needed.
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
`FLAGSPEC` is a list of Cabal configuration flags, optionally
|
|
|
|
preceded by a `-` (to force the flag to `false`), and separated
|
|
|
|
by spaces. Pandoc's flags include:
|
2006-10-29 20:58:20 +01:00
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
- `embed_data_files`: embed all data files into the binary (default no).
|
|
|
|
This is helpful if you want to create a relocatable binary.
|
|
|
|
Note: if this option is selected, you need to install the
|
2015-05-29 05:36:04 +02:00
|
|
|
`hsb2hs` preprocessor: `cabal install hsb2hs` (version 0.3 or
|
|
|
|
higher is required).
|
2013-08-08 23:05:46 +02:00
|
|
|
|
2014-05-19 07:04:39 +02:00
|
|
|
- `https`: enable support for downloading resources over https
|
|
|
|
(using the `http-client` and `http-client-tls` libraries).
|
2008-08-08 02:11:58 +02:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
3. Build:
|
2008-08-08 02:11:58 +02:00
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
cabal build
|
2008-08-08 02:11:58 +02:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
4. Build API documentation:
|
2007-07-16 18:30:04 +02:00
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
cabal haddock --html-location=URL --hyperlink-source
|
2008-02-09 04:21:44 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
5. Copy the files:
|
2008-02-09 04:21:44 +01:00
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
cabal copy --destdir=PATH
|
2008-02-09 04:21:44 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
The default destdir is `/`.
|
2008-02-09 04:21:44 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
6. Register pandoc as a GHC package:
|
2008-08-01 01:16:12 +02:00
|
|
|
|
2013-08-08 23:05:46 +02:00
|
|
|
cabal register
|
2008-08-01 01:16:12 +02:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
Package managers may want to use the `--gen-script` option to
|
|
|
|
generate a script that can be run to register the package at
|
|
|
|
install time.
|
2008-02-09 04:21:44 +01:00
|
|
|
|
2012-12-30 04:27:48 +01:00
|
|
|
Creating a relocatable binary
|
|
|
|
-----------------------------
|
2012-02-10 22:19:46 +01:00
|
|
|
|
2012-12-30 04:27:48 +01:00
|
|
|
It is possible to compile pandoc such that the data files
|
|
|
|
pandoc uses are embedded in the binary. The resulting binary
|
|
|
|
can be run from any directory and is completely self-contained.
|
2012-02-10 22:19:46 +01:00
|
|
|
|
2013-01-23 17:33:45 +01:00
|
|
|
cabal install hsb2hs # a required build tool
|
2012-02-10 22:19:46 +01:00
|
|
|
cabal install --flags="embed_data_files" citeproc-hs
|
2012-12-30 04:27:48 +01:00
|
|
|
cabal configure --flags="embed_data_files"
|
|
|
|
cabal build
|
|
|
|
|
|
|
|
You can find the pandoc executable in `dist/build/pandoc`. Copy this wherever
|
|
|
|
you please.
|
2012-02-10 22:19:46 +01:00
|
|
|
|
2010-02-03 09:27:31 +01:00
|
|
|
[zip-archive]: http://hackage.haskell.org/package/zip-archive
|
|
|
|
[highlighting-kate]: http://hackage.haskell.org/package/highlighting-kate
|
2011-12-22 22:21:44 +01:00
|
|
|
[blaze-html]: http://hackage.haskell.org/package/blaze-html
|
2008-08-08 02:11:58 +02:00
|
|
|
[Cabal User's Guide]: http://www.haskell.org/cabal/release/latest/doc/users-guide/builders.html#setup-configure-paths
|
2008-02-09 04:21:44 +01:00
|
|
|
|
2012-04-17 13:14:05 +02:00
|
|
|
Running tests
|
|
|
|
-------------
|
|
|
|
|
2012-04-28 00:09:18 +02:00
|
|
|
Pandoc comes with an automated test suite integrated to cabal.
|
2012-07-26 19:01:23 +02:00
|
|
|
To build the tests:
|
2012-04-17 13:14:05 +02:00
|
|
|
|
2012-07-26 19:01:23 +02:00
|
|
|
cabal configure --enable-tests && cabal build
|
2012-04-28 00:09:18 +02:00
|
|
|
|
|
|
|
To run the tests:
|
2012-04-17 13:14:05 +02:00
|
|
|
|
2012-04-28 00:09:18 +02:00
|
|
|
cabal test
|
2012-04-17 13:14:05 +02:00
|
|
|
|
2012-07-26 19:01:23 +02:00
|
|
|
To run particular tests (pattern-matching on their names), use
|
|
|
|
the `-t` option:
|
|
|
|
|
|
|
|
cabal test --test-options='-t markdown'
|
|
|
|
|
2012-04-28 00:09:18 +02:00
|
|
|
If you add a new feature to pandoc, please add tests as well, following
|
|
|
|
the pattern of the existing tests. The test suite code is in
|
2012-07-26 19:01:23 +02:00
|
|
|
`tests/test-pandoc.hs`. If you are adding a new reader or writer, it is
|
2012-04-28 00:09:18 +02:00
|
|
|
probably easiest to add some data files to the `tests` directory, and
|
2012-07-26 19:01:23 +02:00
|
|
|
modify `tests/Tests/Old.hs`. Otherwise, it is better to modify the module
|
|
|
|
under the `tests/Tests` hierarchy corresponding to the pandoc module you
|
2012-04-28 00:09:18 +02:00
|
|
|
are changing.
|
2012-04-17 13:14:05 +02:00
|
|
|
|
2012-07-26 19:01:23 +02:00
|
|
|
Running benchmarks
|
|
|
|
------------------
|
|
|
|
|
|
|
|
To build the benchmarks:
|
|
|
|
|
|
|
|
cabal configure --enable-benchmarks && cabal build
|
|
|
|
|
|
|
|
To run the benchmarks:
|
|
|
|
|
|
|
|
cabal bench
|
|
|
|
|
|
|
|
To use a smaller sample size so the benchmarks run faster:
|
|
|
|
|
|
|
|
cabal bench --benchmark-options='-s 20'
|
|
|
|
|
|
|
|
To run just the markdown benchmarks:
|
|
|
|
|
|
|
|
cabal bench --benchmark-options='markdown'
|