Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
We had primed versions of all the Writer types and getWriter
functions, as we transitioned. Now that we're using the new ones
exclusively, we'll get rid of the old ones, and get rid of the primes in
the names.
|
|
Since PandocMonad is an instance of MonadError, this will allow us, in a
future commit, to change all invocations of `error` to `throwError`,
which will be preferable for the pure versions. At the moment, we're
disabling the lua custom writers (this is temporary).
This requires changing the type of the Writer in Text.Pandoc. Right now,
we run `runIOorExplode` in pandoc.hs, to make the conversion easier. We
can switch it to the safer `runIO` in the future.
Note that this required a change to Text.Pandoc.PDF as well. Since
running an external program is necessarily IO, we can be clearer about
using PandocIO.
|
|
|
|
|
|
So far this just reproduces capacity.
Later we'll be able to add features like warning
messages, dynamic loading of xml syntax definitions,
and dynamic loading of themes.
|
|
|
|
Closes #2640.
|
|
Closes #2749.
|
|
Previously setting writerStandalone = True did nothing unless
a template was provided in writerTemplate. Now a fragment
will be generated if writerTemplate is Nothing; otherwise,
the specified template will be used and standalone output
generated. [API change]
|
|
The "default" option is no longer represented as `Nothing` but via a new
type constructor, making the `Maybe` wrapper superfluous.
The default behavior of using heuristics can now be enabled explicitly
by setting `--top-level-division=default`.
API change (`Text.Pandoc.Options`): The `Division` type was renamed to
`TopLevelDivision`. The `Section`, `Chapter`, and `Part` constructors
were renamed to `TopLevelSection`, `TopLevelChapter`, and
`TopLevelPart`, respectively. An additional `TopLevelDefault`
constructor was added, which is now also the new default value of the
`writerTopLevelDivision` field in `WriterOptions`.
|
|
Pandoc uses heuristics to determine the most resonable top-level
division type when emitting LaTeX or Docbook markup. It is now possible
to overwrite this implicitly set top-level division via the
`top-level-division` command line parameter.
API change (`Text.Pandoc.Options`): the type of the
`writerTopLevelDivision` field in of the `WriterOptions` data type is
altered from `Division` to `Maybe Division`. The field's default value
is changed from `Section` to `Nothing`.
Closes: #3197
|
|
* Removed a hardcoded '/' that may have caused problems with Windows
paths.
* Cleaned up the logic.
|
|
- We now first treat the argument of `--filter` as a full (absolute
or relative) path, looking for a program there. If it's found,
we run it.
- If not, and if it is a simple program name or a relative path,
we try resolving it relative to `$DATADIR/filters`.
- If this fails, then we treat it as a program name and look in
the user's PATH.
Previously if you did `--filter foo` and you had `foo` in your
path and also an executable `foo` in your working directory,
the one in the path would be used. Now the one in the working
directory is used.
In addition, when you do `--filter foo/bar.hs`, pandoc will now
find a filter `$DATADIR/filters/foo/bar.hs` -- assuming there
isn't a `foo/bar.hs` relative to the working directory.
@jkr note the slight revision of what we had before.
This was motivated by the idea that one might clone filter
repositories into the filters subdirectory; it is nice to
be able to run them as `reponame/filtername`.
|
|
This fixes a crash with `pandoc --version` on unusual systems with
no real user (e.g. SQL Server 2016). Closes #3241.
|
|
Also improved default reader format detection. Previously
with a URI ending in .md or .markdown, pandoc would assume HTML input.
Now it treats these as markdown.
Closes #3196.
|
|
|
|
|
|
[API change]
|
|
|
|
Only works on posix. On Windows, pandoc works as before and
requires an output file parameter for binary formats.
Closes #2677.
|
|
Added `--list-input-formats`, `--list-output-formats`,
`--list-extensions`, `--list-highlight-languages`,
`--list-highlight-styles`.
Removed list of highlighting languages from `--version`
output.
Removed list of input and output formats from default
`--help` output.
Closes #3173.
|
|
The `--chapters` option is replaced with `--top-level-division` which allows
users to specify the type as which top-level headers should be output. Possible
values are `section` (the default), `chapter`, or `part`.
The formats LaTeX, ConTeXt, and Docbook allow `part` as top-level division, TEI
only allows to set the `type` attribute on `div` containers. The writers are
altered to respect this option in a sensible way.
|
|
Add --parts command line argument.
This only effects LaTeX writer, and only for non-beamer output formats.
It changes the output levels so the top level is 'part', the next
'chapter' and then into sections.
|
|
|
|
|
|
|
|
|
|
If the `$DATADIR/filters` is present, pandoc will look in it for filters
specified without a path, before looking in the $PATH. Note that unlike
executables in $PATH, the `filters` dir may contain scripts that are not
executable (pandoc will try to execute them using an associated
interpreter, if possible).
Note: the `filters` dir has priority over the user path. In order of
preference, pandoc will look in:
1. a specified full or relative path (executable or non-executable)
2. `$DATADIR/filters` (executable or non-executable)
3. `$PATH` (executable only)
This closes #3127.
|
|
- remove a space between `[` and `*` in the list of input formats, to match the list of output formats
- add space after the `*`s, for improved readability
|
|
- `writerEmailObfuscation` in `defaultWriterOptions` is now
`NoObfuscation`
- the default for the command-line `--email-obfuscation` option is
now `none`.
Closes #2988.
|
|
This reverts commit 285bbf61cf2b21278792e48aee7c25fa0ee62faa.
|
|
This reverts commit ee45be5723ef6001ae333110ce45ae2f7b1b17af.
|
|
This reverts commit 07a4320ba97cdd219e5cbb18f21dbbda00bc5543.
|
|
We need `createProcess_` to be exported.
|
|
`createProcess_` is in Internals until process 1.2.1.
|
|
This should get .bat files on Windows. Closes #2903, with luck.
|
|
Catch not-found error.
Improves on 285bbf61cf2b21278792e48aee7c25fa0ee62faa to fix #2903.
|
|
Now instead of using `findExecutable`, which has limitations
on Windows, we just do `progname --version` and see if it
returns successfully. Closes #2903.
|
|
|
|
This is designed for cases where the input is always TeX and maximal
conformity with TeX is desired.
It seems to be smaller and load faster than what we used before.
See #2858.
|
|
Closes #2858.
|
|
|
|
Regardless of input type, we should use default handling if we are
dealing with stdin. In other words, there should be no file-scope if
there are no files. This was an issue with pandoc json, which could be
piped on stdin, but which was read by default with `--file-scope`.
|
|
JSON files have metadata and list structure, so they can't be simply
catted, but they're useful as intermediate build files in large projects.
|
|
Traditionally pandoc operates on multiple files by first concetenating
them (around extra line breaks) and then processing the joined file. So
it only parses a multi-file document at the document scope. This has the
benefit that footnotes and links can be in different files, but it also
introduces a couple of difficulties:
- it is difficult to join files with footnotes without some sort of
preprocessing, which makes it difficult to write academic documents
in small pieces.
- it makes it impossible to process multiple binary input files, which
can't be catted.
- it makes it impossible to process files from different input
formats.
This commit introduces alternative method. Instead of catting the files
first, it parses the files first, and then combines the parsed
output. This makes it impossible to have links across multiple files,
and auto-identified headers won't work correctly if headers in multiple
files have the same name. On the other hand, footnotes across multiple
files will work correctly and will allow more freedom for input formats.
Since ByteStringReaders can currently only read one binary file, and
will ignore subsequent files, we also changes the behavior to
automatically parse before combining if using the ByteStringReader. If
we use one file, it will work as normal. If there is more than one file
it will combine them after parsing (assuming that the format is the
same).
Note that this is intended to be an optional method, defaulting to
off. Turn it on with `--file-scope`.
|
|
|
|
Previously, if you tried to do `pandoc -s -t /path/to/lua/script.lua`,
pandoc would look for the template in
`~/.pandoc/templates/default./path/to/lua/script.lua`.
With this change it will look in the more reasonable
`~/.pandoc/templates/default.script.lua`.
This makes it possible to store default templates for custom
writers.
Closes #2625.
|
|
This reverts commit 363ecfebc32c6fe15d81634422e8607847f588fb.
|