zim-wiki team mailing list archive
-
zim-wiki team
-
Mailing list archive
-
Message #01526
Re: Zim (personal desktop wiki) looking to possibly support "pandoc syntax"
On Wed, Jan 25, 2012 at 5:29 PM, Jaap Karssenberg
<jaap.karssenberg@xxxxxxxxx> wrote:
> >> meta-data header
> Consider this a zim specific wrapper around the actual content of the
> page. Just using email headers (rfc 822) with a few custom fields. Other
> media could use different wrapper to communicate the same meta-data.
>
Exactly - I was simply pointing out that to the extent this
meta-information is useful and similarly supported in one or more of the
target output formats, it should be converted along with the content - for
example, I believe EPUB has something similar. . ..
> Quick question - I was told before that markdown+extensions is the
> preferred format for pandoc. But now it sounds like you consider reST the
> default format. Which of the two should we focus on?
>
Back to my question why we are talking about reST/Spinx, and not Markdow
> with pandoc extensions.
>
It turns out now there are actually three choices for your "entry point"
syntax into Pandoc 8-)
- markdown + extensions
- a subset of standard reST (all the relevant bits)
- json syntax
John recommended reST based on the fact that Zim's a Python project. Pandoc
supports all the reST features with corresponding markdown+ elements, and
I'm confident that support would expand if needed in the future (more on
that below).
I'm sure if you'd prefer markdown+ that would also work perfectly well, but
note that reST is more of an "open standard" supported by the huge Python
dev-docs community, while Pandoc's extensions are specific to Pandoc.
I personally know very little about json (not being a programmer), but
apparently that would most reliably represent the internal/native pandoc
data structures; however its syntax isn't documented, so would require a
fair bit of experimentation with pandocs itself.
My long term goal is for zim to support multiple syntaxes to store it's
> data. Markdown is on my list for that feature, looks like I'll need
> extensions like the ones in pandoc to make all zim features work.
>
Note that however you get the data structured properly for Pandoc, you get
"for free" not only markdown/reST, but:
- HTML, textile/LaTeX (hence PDF), ConTeXt, S5, DocBook XML,
OpenDocumentXML, ODT, RTF, MediaWiki, Emacs org-mode, EPUB
and many more as well. The only reason Pandoc has added its own extensions
is to allow for features supported by these other target output formats but
not by the core markdown syntax, like:
- inline LaTeX math, tables, definition lists, superscripts and
subscripts, smart quotes and dashes, and footnotes.
I'm starting to feel like the amazing Ginsu knife salesman here - but wait!
there's more! 8-)
>
> My understanding is that I can generate markdown with extension and call
> pandoc to convert it to any of the formats supported by pandoc. This means
> some coding for me, but does not require any change in pandoc, correct ?
>
Correct.
My (at this stage somewhat premature) point was that if you choose to
follow John's primary recommendation - to output standard reST/Sphinx path
rather than markdown+pandoc-specific-extensions, you now also have the
ability to use the standard Python docutils+Sphinx conversion tools for say
HTML and PDF (usually via LaTeX).
You may find that some Zim features (current or future) such as
hierarchical table of contents, cross-reference links, glossary terms,
topic-tagging and end-matter indexes, citation/biblio references could make
use - within that context - of some of the Sphinx extensions to reST that
aren't supported by Pandoc.
>From Zim's point of view, that's not an issue, you're not dependent on
Pandoc. However, from what I've seen of the rapid dev cycle around here, I
reckon it's very likely that John would in fact quickly enhance Pandoc's
support of the rest/Sphinx syntax - I'm no coder, but I've been frankly
amazed at the speed he's turned around what seem to me to be pretty
non-trivial feature requests posted to the pandoc list.
However this is more work then just export, because I need both export and
> import, and make sure all data from import is preserved in the internal
> model such that export reconstructs the import.
>
AFAICT you won't need to do your own import - just let Pandoc handle the
many-to-many complexity, including the changes constantly coming in various
output formats - you only need to track the one "entry point" syntax.
And by selecting reST/Sphinx as that syntax, you've still got the few
biggest mainstream output formats directly supported by the Python doc/devs
even if Pandocs were to disappear.
Seems like a slam-dunk to me 8-)
PS once again emphasizing that I'm a total noob to both projects, so to the
extent any of the above contains errors I hope those more knowledgeable
than me will jump in - obviously any comments welcome from anyone.
Follow ups
References