Mercurial > evolve
view docs/tutorial/mypandocfilters/graphviz-file.py @ 5691:6eb9f82b43ba stable
evolve: remove spurious "working directory is now at ..." messages
The `startnode` variable was sometimes a context, which made the
comparison with `repo[b'.'].node()` in `_cleanup()` fail. This patch
fixes that by making sure that `startnode` is always a (binary)
nodeid.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 24 Nov 2020 18:04:40 -0800 |
parents | aad37ffd7d58 |
children |
line wrap: on
line source
#!/usr/bin/env python """ Pandoc filter to process code blocks with class "graphviz" into graphviz-generated images. Needs pygraphviz """ import os import sys import pygraphviz from pandocfilters import toJSONFilter, Para, Image, get_filename4code, get_caption, get_extension, get_value def graphviz(key, value, format, _): if key == 'CodeBlock': [[ident, classes, keyvals], file] = value if "graphviz-file" in classes: caption, typef, keyvals = get_caption(keyvals) prog, keyvals = get_value(keyvals, u"prog", u"dot") filetype = get_extension(format, "svg", html="svg", latex="pdf") with open(file) as f: code = f.read() dest = get_filename4code("graphviz", code, filetype) if not os.path.isfile(dest): g = pygraphviz.AGraph(string=code) g.layout() g.draw(dest, prog=prog) sys.stderr.write('Created image ' + dest + '\n') return Para([Image([ident, ['graphviz'], keyvals], caption, [dest, typef])]) if __name__ == "__main__": toJSONFilter(graphviz)