rewind: alias the command to undo
This is a step in unifiying rewind and undo and not talk about them as different
commands or concepts. If there exists rewind command, that should be an alias of
undo and the vice versa.
The exact implmentation detail and how the command works etc. is a different
thing but there should be just one command.
#!/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)