diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-08-13 16:14:33 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-08-14 09:07:23 +0300 |
commit | 82cf29e251685de8ea6c14fff5d1b1b3d7001fe5 (patch) | |
tree | f934f27ca6ebcc14d0d018d9ee8e9d9cfdc6b732 /subplot.md | |
parent | e90337da2b293eb0111e6be9131ef2f25e861b9c (diff) | |
download | subplot-82cf29e251685de8ea6c14fff5d1b1b3d7001fe5.tar.gz |
feat! drop support to act as a Pandoc filter
When we change Subplot to take a YAML file instead of a Markdown file
as input, it doesn't make sense to act as a Pandoc filter anymore:
Pandoc doesn't understand our YAML file.
In any case, I seem to have been the only user ever of that feature,
so it won't really bother anyone else. Even so, we should treat this
as a breaking change.
"subplot docgen" still works as before.
Sponsored-by: author
Diffstat (limited to 'subplot.md')
-rw-r--r-- | subplot.md | 64 |
1 files changed, 21 insertions, 43 deletions
@@ -138,7 +138,7 @@ Subplot actually consists mainly of two separate programs: **subplot docgen** for generating output documents, and **subplot codegen** for generating the test program. There are a couple of additional tools (**subplot metadata** for reporting meta data about a Subplot document, and -**subplot-filter** for doing the document generation as a Pandoc filter). +**subplot extract** for extracting embedded files from a subplot document. Thus a more detailed architecture view is shown below. @@ -3007,13 +3007,17 @@ and is not referenced as an external image. ~~~scenario given file pikchr.md and an installed subplot -when I run pandoc --filter subplot-filter pikchr.md -o pikchr.html +when I run subplot docgen pikchr.md -o pikchr.html then file pikchr.html matches regex /src="data:image/svg\+xml;base64,/ ~~~ The sample input file **pikchr.md**: ~~~~~~~~{#pikchr.md .file .markdown .numberLines} +--- +title: Pikchr test +... + This is an example markdown file that embeds a simple Pikchr diagram. ~~~pikchr @@ -3046,13 +3050,17 @@ HTML output, not referenced as an external image. given file dot.md and file b.yaml and an installed subplot -when I run pandoc --filter subplot-filter dot.md -o dot.html +when I run subplot docgen dot.md -o dot.html then file dot.html matches regex /src="data:image/svg\+xml;base64,/ ~~~ The sample input file **dot.md**: ~~~~~~~~{#dot.md .file .markdown .numberLines} +--- +title: Dot test +... + This is an example Markdown file, which embeds a diagram using dot markup. ~~~dot @@ -3088,13 +3096,17 @@ the HTML output, not referenced as an external image. given file plantuml.md and file b.yaml and an installed subplot -when I run pandoc --filter subplot-filter plantuml.md -o plantuml.html +when I run subplot docgen plantuml.md -o plantuml.html then file plantuml.html matches regex /src="data:image/svg\+xml;base64,/ ~~~ The sample input file **plantuml.md**: ~~~~~~~~{#plantuml.md .file .markdown .numberLines} +--- +title: Plantuml test +... + This is an example Markdown file, which embeds a diagram using PlantUML markup. @@ -3169,13 +3181,17 @@ HTML output, not referenced as an external image. given file roadmap.md and file b.yaml and an installed subplot -when I run pandoc --filter subplot-filter roadmap.md -o roadmap.html +when I run subplot docgen roadmap.md -o roadmap.html then file roadmap.html matches regex /src="data:image/svg\+xml;base64,/ ~~~ The sample input file **roadmap.md**: ~~~~~~~~{#roadmap.md .file .markdown .numberLines} +--- +title: Roadmap test +... + This is an example Markdown file, which embeds a roadmap. ~~~roadmap @@ -3270,44 +3286,6 @@ This content is foobarish ~~~~~~~~ -## Using as a Pandoc filter - -Subplot can be used as a Pandoc _filter_, which means Pandoc can allow -Subplot to modify the document while it is being converted or typeset. -This can useful in a variety of ways, such as when using Pandoc to -improve Markdown processing in the [ikiwiki][] blog engine. - -[ikiwiki]: http://ikiwiki.info/ - -The way filters work is that Pandoc parses the input document into an -abstract syntax tree, serializes that into JSON, gives that to the -filter (via the standard input), gets a modified abstract syntax tree -(again as JSON, via the filter's standard output). - -Subplot supports this via the **subplot-filter** executable. It is built -using the same internal logic as Subplot's docgen. The interface is -merely different to be usable as a Pandoc filter. - -This scenarios verifies that the filter works at all. More -importantly, it does that by feeding the filter a Markdown file that -does not have a YAML metadata block. For the ikiwiki use case, that's -what the input files are like. - -~~~scenario -given file justdata.md -and an installed subplot -when I run pandoc --filter subplot-filter justdata.md -o justdata.html -then file justdata.html matches regex /does not have a YAML metadata/ -~~~ - -The input file **justdata.md**: - -~~~~~~~~{#justdata.md .file .markdown .numberLines} -This is an example Markdown file. -It does not have a YAML metadata block. -~~~~~~~~ - - ## Extract embedded files `subplot extract` extracts embedded files from a subplot file. |