aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--INSTALL263
-rw-r--r--INSTALL.md341
-rw-r--r--pandoc.cabal2
4 files changed, 342 insertions, 265 deletions
diff --git a/.gitignore b/.gitignore
index 0e2686c83..26be741eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
dist/*
MANUAL.*
!MANUAL.txt
-INSTALL.*
.configure-stamp
.cabal-sandbox
cabal.sandbox.config
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index 9a582784d..000000000
--- a/INSTALL
+++ /dev/null
@@ -1,263 +0,0 @@
-% Installing pandoc
-
-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.
-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
-
-Please note that pandoc only supports [GHC] versions 7.8 and
-above. The easiest way to get GHC is by installing the [Haskell platform]
-
-How to get the source
----------------------
-
-Source tarballs can be found at
-<https://hackage.haskell.org/package/pandoc>. The tarball
-for a particular version `VERSION` can be found at
-
- https://hackage.haskell.org/package/pandoc-VERSION/pandoc-VERSION.tar.gz
-
-**Do not use the automatically generated tarball that can be
-downloaded from pandoc's GitHub releases page.** It does not
-include some essential template files, which come from a GitHub
-submodule.
-
-If you want the latest development code, you can fetch it
-by cloning the repository:
-
- git clone https://github.com/jgm/pandoc
- cd pandoc
- git submodule update --init # to fetch the templates
-
-Note: there may be times when the development code is broken
-or depends on other libraries which must be installed
-separately. Unless you really know what you're doing, install
-the last released version.
-
-Quick install with stack
-------------------------
-
-1. Install [stack](http://docs.haskellstack.org/en/stable/install_and_upgrade.html).
-
-2. If you used git to get the pandoc source (as opposed to unpacking
- a release tarball), do
-
- git submodule update --init
-
-3. In the pandoc source directory,
-
- stack install
-
- You may be prompted to run `stack setup`, which will automatically
- download the ghc compiler if needed.
-
-
-Quick install with cabal
-------------------------
-
-1. Install the [Haskell platform]. This will give you [GHC] and
- the [cabal-install] build tool.
-
-2. Update your package database:
-
- cabal update
-
-3. Use `cabal` to install pandoc and its dependencies:
-
- cabal install pandoc
-
- This procedure will install the released version of pandoc,
- which will be downloaded automatically from HackageDB.
-
- If this step fails, and you are using an older version
- of the Haskell Platform, e.g. on Debian stable, you may need to
- upgrade your version of cabal:
-
- cabal install cabal-install
- ~/.cabal/bin/cabal update
- ~/.cabal/bin/cabal install pandoc
-
- 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
-
- 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`:
-
- pandoc --help
-
- [Not sure where `$CABALDIR` is?](http://www.haskell.org/haskellwiki/Cabal-Install#The_cabal-install_configuration_file)
-
-5. If you want to process citations with pandoc, you will also need to
- install a separate package, `pandoc-citeproc`. This can be installed
- using cabal:
-
- cabal install pandoc-citeproc
-
- 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
-
-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 `MANUAL.txt` has been modified, the man page can be
-rebuilt: `make man/pandoc.1`.
-
-The `pandoc-citeproc.1` man page will also be installed automatically.
-
-[GHC]: http://www.haskell.org/ghc/
-[Haskell platform]: http://hackage.haskell.org/platform/
-[cabal-install]: http://hackage.haskell.org/trac/hackage/wiki/CabalInstall
-
-Custom install
---------------
-
-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.
-For more details, see the [Cabal User's Guide]. These instructions
-assume that the pandoc source directory is your working directory.
-
-1. Install dependencies: in addition to the [Haskell platform],
- you will need a number of additional libraries. You can install
- them all with
-
- cabal update
- cabal install --only-dependencies
-
-2. Configure:
-
- cabal configure --prefix=DIR --bindir=DIR --libdir=DIR \
- --datadir=DIR --libsubdir=DIR --datasubdir=DIR --docdir=DIR \
- --htmldir=DIR --program-prefix=PREFIX --program-suffix=SUFFIX \
- --mandir=DIR --flags=FLAGSPEC
-
- All of the options have sensible defaults that can be overridden
- as needed.
-
- `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:
-
- - `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
- `hsb2hs` preprocessor: `cabal install hsb2hs` (version 0.3.1 or
- higher is required).
-
- - `https`: enable support for downloading resources over https
- (using the `http-client` and `http-client-tls` libraries).
-
-3. Build:
-
- cabal build
-
-4. Build API documentation:
-
- cabal haddock --html-location=URL --hyperlink-source
-
-5. Copy the files:
-
- cabal copy --destdir=PATH
-
- The default destdir is `/`.
-
-6. Register pandoc as a GHC package:
-
- cabal register
-
- 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.
-
-Creating a relocatable binary
------------------------------
-
-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.
-
- cabal install hsb2hs # a required build tool
- cabal install --flags="embed_data_files" citeproc-hs
- cabal configure --flags="embed_data_files"
- cabal build
-
-You can find the pandoc executable in `dist/build/pandoc`. Copy this wherever
-you please.
-
-Or alternatively with `stack`:
-
- stack install pandoc --flag pandoc:embed_data_files
-
-[zip-archive]: http://hackage.haskell.org/package/zip-archive
-[highlighting-kate]: http://hackage.haskell.org/package/highlighting-kate
-[blaze-html]: http://hackage.haskell.org/package/blaze-html
-[Cabal User's Guide]: http://www.haskell.org/cabal/release/latest/doc/users-guide/builders.html#setup-configure-paths
-
-Running tests
--------------
-
-Pandoc comes with an automated test suite integrated to cabal.
-To build the tests:
-
- cabal configure --enable-tests && cabal build
-
-To run the tests:
-
- cabal test
-
-To run particular tests (pattern-matching on their names), use
-the `-t` option:
-
- cabal test --test-options='-t markdown'
-
-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
-`tests/test-pandoc.hs`. If you are adding a new reader or writer, it is
-probably easiest to add some data files to the `tests` directory, and
-modify `tests/Tests/Old.hs`. Otherwise, it is better to modify the module
-under the `tests/Tests` hierarchy corresponding to the pandoc module you
-are changing.
-
-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'
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 000000000..d3a853f4c
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,341 @@
+# Installing pandoc
+
+## Windows
+
+ - There is a package installer at pandoc's [download page].
+
+ - For PDF output, you'll also need to install LaTeX.
+ We recommend [MiKTeX](http://miktex.org/).
+
+## Mac OS X
+
+ - There is a package installer at pandoc's [download page].
+ If you later want to uninstall the package, you can do so
+ by downloading [this script][uninstaller]
+ and running it with `perl uninstall-pandoc.pl`.
+
+ - You can also install pandoc using
+ [homebrew](http://brew.sh): `brew install pandoc`.
+
+ - For PDF output, you'll also need LaTeX. Because a full [MacTeX]
+ installation takes more than a gigabyte of disk space, we recommend
+ installing [BasicTeX](http://www.tug.org/mactex/morepackages.html)
+ (64M) and using the `tlmgr` tool to install additional packages
+ as needed. If you get errors warning of fonts not found, try
+
+ tlmgr install collection-fontsrecommended
+
+## Linux
+
+ - First, try your package manager.
+ Pandoc is in the [Debian], [Ubuntu], [Slackware],
+ [Arch], [Fedora], [NiXOS], [openSUSE], and [gentoo] repositories.
+ Note, however, that versions in the repositories are often
+ old.
+
+ - For 64-bit [Debian] and [Ubuntu], we provide a debian package
+ on the [download page].
+
+ sudo dpkg -i $DEB
+
+ where `$DEB` is the path to the downloaded deb, will
+ will install the `pandoc` and `pandoc-citeproc` executables
+ and man pages. If you use an RPM-based distro, you may be
+ able to install this deb using `alien`, or try
+
+ ar p $DEB data.tar.gz | sudo tar xvz --strip-components 2 -C /usr/local
+
+ - If you'd rather install pandoc in your home directory, say
+ in `$HOME/.local`, then you can extract the files manually
+ from the deb:
+
+ ar p $DEB data.tar.gz | tar xvz --strip-components 2 -C $HOME/.local/
+
+ where, again, `$DEB` is the path to the downloaded deb.
+
+ - If the version in your repository is too old and you cannot
+ use the deb we provide, you can install from source, using the
+ instructions below under [Installing from source].
+ Note that most distros have the Haskell platform in their
+ package repositories. For example, on Debian/Ubuntu,
+ you can install it with `apt-get install haskell-platform`.
+
+ - For PDF output, you'll need LaTeX. We recommend installing
+ [TeX Live](http://www.tug.org/texlive/) via your package
+ manager. (On Debian/Ubuntu, `apt-get install texlive`.)
+
+## BSD
+
+ - Pandoc is in the [NetBSD] and [FreeBSD ports] repositories.
+
+## Compiling from source
+
+If for some reason a binary package is not available for your
+platform, or if you want to hack on pandoc or use a non-released
+version, you can install from source.
+
+### Getting the pandoc source code
+
+Source tarballs can be found at
+<https://hackage.haskell.org/package/pandoc>. For example, to
+fetch the source for version 1.17.0.3:
+
+ wget https://hackage.haskell.org/package/pandoc-1.17.0.3/pandoc-1.17.0.3.tar.gz
+ tar xvzf pandoc-1.17.0.3.tar.gz
+ cd pandoc-1.17.0.3
+
+Or you can fetch the development code by cloning the repository:
+
+ git clone https://github.com/jgm/pandoc
+ cd pandoc
+ git submodule update --init # to fetch the templates
+
+Note: there may be times when the development code is broken
+or depends on other libraries which must be installed
+separately. Unless you really know what you're doing, install
+the last released version.
+
+### Quick stack method
+
+The easiest way to build pandoc from source is to use [stack]:
+
+1. Install [stack].
+
+2. Change to the pandoc source directory and issue the following commands:
+
+ stack setup
+ stack install --test
+
+ `stack setup` will automatically download the ghc compiler
+ if you don't have it. `stack install` will install the
+ `pandoc` executable into `~/.local/bin`, which you should
+ add to your `PATH`. This process will take a while, and
+ will consume a considerable amount of disk space.
+
+### Quick cabal method
+
+1. Install the [Haskell platform]. This will give you [GHC] and
+ the [cabal-install] build tool. Note that pandoc requires
+ GHC >= 7.8.
+
+2. Update your package database:
+
+ cabal update
+
+3. Use `cabal` to install pandoc and its dependencies:
+
+ cabal install pandoc --enable-tests
+
+ This procedure will install the released version of pandoc,
+ which will be downloaded automatically from HackageDB.
+
+ 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
+
+ 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`:
+
+ pandoc --help
+
+ [Not sure where `$CABALDIR` is?](http://www.haskell.org/haskellwiki/Cabal-Install#The_cabal-install_configuration_file)
+
+5. If you want to process citations with pandoc, you will also need to
+ install a separate package, `pandoc-citeproc`. This can be installed
+ using cabal:
+
+ cabal install pandoc-citeproc
+
+ 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
+
+6. 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 `MANUAL.txt` has been modified, the man page can be
+ rebuilt: `make man/pandoc.1`.
+
+ The `pandoc-citeproc.1` man page will also be installed automatically.
+
+[GHC]: http://www.haskell.org/ghc/
+[Haskell platform]: http://hackage.haskell.org/platform/
+[cabal-install]: http://hackage.haskell.org/trac/hackage/wiki/CabalInstall
+
+### Custom cabal method
+
+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.
+For more details, see the [Cabal User's Guide]. These instructions
+assume that the pandoc source directory is your working directory.
+
+1. Install dependencies: in addition to the [Haskell platform],
+ you will need a number of additional libraries. You can install
+ them all with
+
+ cabal update
+ cabal install --only-dependencies
+
+2. Configure:
+
+ cabal configure --prefix=DIR --bindir=DIR --libdir=DIR \
+ --datadir=DIR --libsubdir=DIR --datasubdir=DIR --docdir=DIR \
+ --htmldir=DIR --program-prefix=PREFIX --program-suffix=SUFFIX \
+ --mandir=DIR --flags=FLAGSPEC --enable-tests
+
+ All of the options have sensible defaults that can be overridden
+ as needed.
+
+ `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:
+
+ - `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
+ `hsb2hs` preprocessor: `cabal install hsb2hs` (version 0.3.1 or
+ higher is required).
+
+ - `https`: enable support for downloading resources over https
+ (using the `http-client` and `http-client-tls` libraries).
+
+3. Build:
+
+ cabal build
+ cabal test
+
+4. Build API documentation:
+
+ cabal haddock --html-location=URL --hyperlink-source
+
+5. Copy the files:
+
+ cabal copy --destdir=PATH
+
+ The default destdir is `/`.
+
+6. Register pandoc as a GHC package:
+
+ cabal register
+
+ 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.
+
+### Creating a relocatable binary
+
+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.
+With cabal, add `-fembed_data_files` to the `cabal configure`
+or `cabal install` commands.
+
+With stack, use `--flag pandoc:embed_data_files`.
+
+
+
+### Running tests
+
+Pandoc comes with an automated test suite.
+To run with cabal, `cabal test`; to run with stack, `stack
+test`.
+
+To run particular tests (pattern-matching on their names), use
+the `-t` option:
+
+ cabal test --test-options='-t markdown'
+
+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
+`tests/test-pandoc.hs`. If you are adding a new reader or writer, it is
+probably easiest to add some data files to the `tests` directory, and
+modify `tests/Tests/Old.hs`. Otherwise, it is better to modify the module
+under the `tests/Tests` hierarchy corresponding to the pandoc module you
+are changing.
+
+### Running benchmarks
+
+To build and run the benchmarks:
+
+ cabal configure --enable-benchmarks && cabal build
+ cabal bench
+
+or with stack:
+
+ stack 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'
+
+### Building the whole pandoc ecosystem
+
+Sometimes pandoc's development code depends on unreleased versions
+of dependent libraries. You'll need to build these as well. A
+maximal build method would be
+
+ mkdir pandoc-build
+ cd pandoc-build
+ git clone https://github.com/jgm/pandoc-types
+ git clone https://github.com/jgm/texmath
+ git clone https://github.com/jgm/pandoc-citeproc
+ git clone https://github.com/jgm/pandoc
+ git clone https://github.com/jgm/cmark-hs
+ git clone https://github.com/jgm/zip-archive
+ cd pandoc
+ git submodule update --init
+ stack install --test --install-ghc --stack-yaml stack.full.yaml
+
+To pull in the latest changes, after you've done this and there have been
+changes in the repositories: Visit each repository in pandoc-build
+(pandoc-types, texmath, pandoc-citeproc, pandoc, zip-archive, cmark-hs) and do
+`git pull`. In the pandoc repo, also do `git submodule update` and `stack
+install --test --stack-yaml stack.full.yaml`.
+
+
+[Arch]: https://www.archlinux.org/packages/community/x86_64/pandoc/
+[Cabal User's Guide]: http://www.haskell.org/cabal/release/latest/doc/users-guide/builders.html#setup-configure-paths
+[Debian]: http://packages.debian.org/lenny/pandoc
+[Fedora]: https://apps.fedoraproject.org/packages/pandoc
+[FreeBSD ports]: http://www.freshports.org/textproc/pandoc/
+[GHC]: http://www.haskell.org/ghc/
+[GPL]: http://www.gnu.org/copyleft/gpl.html
+[Haskell platform]: http://hackage.haskell.org/platform/
+[MacPorts]: http://trac.macports.org/browser/trunk/dports/textproc/pandoc/Portfile
+[MacTeX]: https://tug.org/mactex/
+[NetBSD]: http://pkgsrc.se/wip/pandoc
+[NixOS]: http://nixos.org/nixos/
+[Slackware]: http://www.linuxpackages.net/search_view.php?by=name&name=pandoc&ver=
+[Ubuntu]: http://www.ubuntu.com
+[download page]: https://github.com/jgm/pandoc/releases/latest
+[gentoo]: http://packages.gentoo.org/package/app-text/pandoc
+[haskell repository]: https://wiki.archlinux.org/index.php/Haskell_Package_Guidelines#.5Bhaskell.5D
+[openSUSE]: https://software.opensuse.org/package/pandoc
+[source tarball]: http://hackage.haskell.org/package/pandoc
+[stack]: http://docs.haskellstack.org/en/stable/install_and_upgrade.html
+[uninstaller]: https://raw.githubusercontent.com/jgm/pandoc/master/osx/uninstall-pandoc.pl
diff --git a/pandoc.cabal b/pandoc.cabal
index da9d005ef..d830de133 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -108,7 +108,7 @@ Data-Files:
MANUAL.txt, COPYRIGHT
Extra-Source-Files:
-- documentation
- INSTALL, BUGS, README.md, CONTRIBUTING.md, changelog
+ INSTALL.md, BUGS, README.md, CONTRIBUTING.md, changelog
man/pandoc.1
-- stack build plan
stack.yaml