aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2013-08-18 15:36:54 -0700
committerJohn MacFarlane <fiddlosopher@gmail.com>2013-08-18 15:37:27 -0700
commit70386a6a54c54189b8456b547a657873481a70b7 (patch)
treeff5d2ce432e0145f65c0728e66caf6cd193d48ac
parent8d441af3da4709fd48a44e860d5a0cd4d35792af (diff)
downloadpandoc-70386a6a54c54189b8456b547a657873481a70b7.tar.gz
Removed scripts directory.
This has been put in its own github repo: https://github.com/jgm/pandoc-filters-python
-rw-r--r--pandoc.cabal10
-rwxr-xr-xscripts/abc.py50
-rwxr-xr-xscripts/caps.py15
-rwxr-xr-xscripts/comments.py30
-rwxr-xr-xscripts/deemph.py15
-rwxr-xr-xscripts/deflists.py20
-rwxr-xr-xscripts/graphviz.py47
-rwxr-xr-xscripts/myemph.py18
-rwxr-xr-xscripts/pandoc.py75
-rwxr-xr-xscripts/tikz.py67
10 files changed, 0 insertions, 347 deletions
diff --git a/pandoc.cabal b/pandoc.cabal
index a3d0dfa83..e22908918 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -112,16 +112,6 @@ Extra-Source-Files:
-- generated man pages (produced post-build)
man/man1/pandoc.1,
man/man5/pandoc_markdown.5,
- -- python library and sample python scripts
- scripts/abc.py,
- scripts/comments.py,
- scripts/graphviz.py,
- scripts/pandoc.py,
- scripts/caps.py,
- scripts/deemph.py,
- scripts/myemph.py,
- scripts/tikz.py,
- scripts/deflists.py,
-- tests
tests/bodybg.gif,
tests/docbook-reader.docbook
diff --git a/scripts/abc.py b/scripts/abc.py
deleted file mode 100755
index daecd1070..000000000
--- a/scripts/abc.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Pandoc filter to process code blocks with class "abc" containing
-ABC notation into images. Assumes that abcm2ps and ImageMagick's
-convert are in the path. Images are put in the abc-images directory.
-"""
-
-import hashlib
-import os
-import sys
-from pandoc import toJSONFilter
-from subprocess import Popen, PIPE, call
-
-imagedir = "abc-images"
-
-def sha1(x):
- return hashlib.sha1(x).hexdigest()
-
-def abc2eps(abc, filetype, outfile):
- p = Popen(["abcm2ps", "-O", outfile + '.eps', "-"],stdin=PIPE)
- p.stdin.write(abc)
- p.communicate()
- p.stdin.close()
- call(["convert", outfile + '.eps', outfile + '.' + filetype])
-
-def abc(key, value, format):
- if key == 'CodeBlock':
- [[ident,classes,keyvals], code] = value
- if "abc" in classes:
- outfile = imagedir + '/' + sha1(code)
- if format == "html":
- filetype = "png"
- elif format == "latex":
- filetype = "pdf"
- else:
- filetype = "png"
- src = outfile + '.' + filetype
- if not os.path.isfile(src):
- try:
- os.mkdir(imagedir)
- sys.stderr.write('Created directory ' + imagedir + '\n')
- except OSError:
- pass
- abc2eps(code, filetype, outfile)
- sys.stderr.write('Created image ' + src + '\n')
- return {'Para': [{'Image': [[], [src,""]]}]}
-
-if __name__ == "__main__":
- toJSONFilter(abc)
diff --git a/scripts/caps.py b/scripts/caps.py
deleted file mode 100755
index b86cd1520..000000000
--- a/scripts/caps.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Pandoc filter to convert all regular text to uppercase.
-Code, link URLs, etc. are not affected.
-"""
-
-from pandoc import toJSONFilter
-
-def caps(key, value, format):
- if key == 'Str':
- return {'Str': value.upper()}
-
-if __name__ == "__main__":
- toJSONFilter(caps)
diff --git a/scripts/comments.py b/scripts/comments.py
deleted file mode 100755
index ded21039c..000000000
--- a/scripts/comments.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env python
-from pandoc import toJSONFilter
-import re
-
-"""
-Pandoc filter that causes everything between
-'<!-- BEGIN COMMENT -->' and '<!-- END COMMENT -->'
-to be ignored. The comment lines must appear on
-lines by themselves, with blank lines surrounding
-them.
-"""
-
-incomment = False
-
-def comment(k,v,fmt):
- global incomment
- if k == 'RawBlock':
- fmt, s = v
- if fmt == "html":
- if re.search("<!-- BEGIN COMMENT -->", s):
- incomment = True
- return []
- elif re.search("<!-- END COMMENT -->", s):
- incomment = False
- return []
- if incomment:
- return [] # suppress anything in a comment
-
-if __name__ == "__main__":
- toJSONFilter(comment)
diff --git a/scripts/deemph.py b/scripts/deemph.py
deleted file mode 100755
index f69dac5b8..000000000
--- a/scripts/deemph.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-from pandoc import walk, toJSONFilter
-from caps import caps
-
-"""
-Pandoc filter that causes emphasized text to be displayed
-in ALL CAPS.
-"""
-
-def deemph(key, val, fmt):
- if key == 'Emph':
- return walk(val, caps, fmt)
-
-if __name__ == "__main__":
- toJSONFilter(deemph)
diff --git a/scripts/deflists.py b/scripts/deflists.py
deleted file mode 100755
index 502963419..000000000
--- a/scripts/deflists.py
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Pandoc filter to convert definition lists to bullet
-lists with the defined terms in strong emphasis (for
-compatibility with standard markdown).
-"""
-
-from pandoc import toJSONFilter
-
-def deflists(key, value, format):
- if key == 'DefinitionList':
- return {'BulletList': [tobullet(t,d) for [t,d] in value]}
-
-def tobullet(term, defs):
- return [{'Para': [{'Strong': term}]}] + [b for d in defs for b in d]
-
-
-if __name__ == "__main__":
- toJSONFilter(deflists)
diff --git a/scripts/graphviz.py b/scripts/graphviz.py
deleted file mode 100755
index 519a3a9cc..000000000
--- a/scripts/graphviz.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Pandoc filter to process code blocks with class "graphviz" into
-graphviz-generated images.
-"""
-
-import pygraphviz
-import hashlib
-import os
-import sys
-from pandoc import toJSONFilter
-
-def sha1(x):
- return hashlib.sha1(x).hexdigest()
-
-imagedir = "graphviz-images"
-
-def graphviz(key, value, format):
- if key == 'CodeBlock':
- [[ident,classes,keyvals], code] = value
- caption = "caption"
- if "graphviz" in classes:
- G = pygraphviz.AGraph(string = code)
- G.layout()
- filename = sha1(code)
- if format == "html":
- filetype = "png"
- elif format == "latex":
- filetype = "pdf"
- else:
- filetype = "png"
- alt = [{'Str': caption}]
- src = imagedir + '/' + filename + '.' + filetype
- if not os.path.isfile(src):
- try:
- os.mkdir(imagedir)
- sys.stderr.write('Created directory ' + imagedir + '\n')
- except OSError:
- pass
- G.draw(src)
- sys.stderr.write('Created image ' + src + '\n')
- tit = ""
- return {'Para': [{'Image': [alt, [src,tit]]}]}
-
-if __name__ == "__main__":
- toJSONFilter(graphviz)
diff --git a/scripts/myemph.py b/scripts/myemph.py
deleted file mode 100755
index 2a322b385..000000000
--- a/scripts/myemph.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-from pandoc import toJSONFilter
-
-"""
-Pandoc filter that causes emphasis to be rendered using
-the custom macro '\myemph{...}' rather than '\emph{...}'
-in latex. Other output formats are unaffected.
-"""
-
-def latex(s):
- return {'RawInline': ['latex', s]}
-
-def myemph(k, v, f):
- if k == 'Emph' and f == 'latex':
- return [latex('\\myemph{')] + v + [latex('}')]
-
-if __name__ == "__main__":
- toJSONFilter(myemph)
diff --git a/scripts/pandoc.py b/scripts/pandoc.py
deleted file mode 100755
index f21e9cc83..000000000
--- a/scripts/pandoc.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# Author: John MacFarlane <jgm@berkeley.edu>
-# Copyright: (C) 2013 John MacFarlane
-# License: GPL version 2 or higher
-
-"""
-Functions to aid writing python scripts that process the pandoc
-AST serialized as JSON.
-"""
-
-import sys
-import json
-
-def walk(x, action, format = ""):
- """Walk a tree, applying an action to every object.
- Returns a modified tree.
- """
- if isinstance(x, list):
- array = []
- for item in x:
- if isinstance(item, dict):
- if item == {}:
- array.append(walk(item, action, format))
- else:
- for k in item:
- res = action(k, item[k], format)
- if res is None:
- array.append(walk(item, action, format))
- elif isinstance(res, list):
- for z in res:
- array.append(walk(z, action, format))
- else:
- array.append(walk(res, action, format))
- else:
- array.append(walk(item, action, format))
- return array
- elif isinstance(x, dict):
- obj = {}
- for k in x:
- obj[k] = walk(x[k], action, format)
- return obj
- else:
- return x
-
-def toJSONFilter(action):
- """Converts an action into a filter that reads a JSON-formatted
- pandoc document from stdin, transforms it by walking the tree
- with the action, and returns a new JSON-formatted pandoc document
- to stdout. The argument is a function action(key, value, format),
- where key is the type of the pandoc object (e.g. 'Str', 'Para'),
- value is the contents of the object (e.g. a string for 'Str',
- a list of inline elements for 'Para'), and format is the target
- output format (which will be taken for the first command line
- argument if present). If the function returns None, the object
- to which it applies will remain unchanged. If it returns an
- object, the object will be replaced. If it returns a list, the
- list will be spliced in to the list to which the target object
- belongs. (So, returning an empty list deletes the object.)
- """
- doc = json.loads(sys.stdin.read())
- if len(sys.argv) > 1:
- format = sys.argv[1]
- else:
- format = ""
- altered = walk(doc, action, format)
- json.dump(altered, sys.stdout)
-
-def attributes(attrs):
- """Returns an attribute list, constructed from the
- dictionary attrs.
- """
- attrs = attrs or []
- ident = attrs["id"] or ""
- classes = attrs["classes"] or []
- keyvals = [x for x in attrs and x != "classes" and x != "id"]
- return [ident, classes, keyvals]
diff --git a/scripts/tikz.py b/scripts/tikz.py
deleted file mode 100755
index 4ff8b2383..000000000
--- a/scripts/tikz.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Pandoc filter to process raw latex tikz environments into images.
-Assumes that pdflatex is in the path, and that the standalone
-package is available. Also assumes that ImageMagick's convert
-is in the path. Images are put in the tikz-images directory.
-"""
-
-import hashlib
-import re
-import os
-import sys
-import shutil
-from pandoc import toJSONFilter
-from subprocess import Popen, PIPE, call
-from tempfile import mkdtemp
-
-imagedir = "tikz-images"
-
-def sha1(x):
- return hashlib.sha1(x).hexdigest()
-
-def tikz2image(tikz, filetype, outfile):
- tmpdir = mkdtemp()
- olddir = os.getcwd()
- os.chdir(tmpdir)
- f = open('tikz.tex', 'w')
- f.write("""\\documentclass{standalone}
- \\usepackage{tikz}
- \\begin{document}
- """)
- f.write(tikz)
- f.write("\n\\end{document}\n")
- f.close()
- p = call(["pdflatex", 'tikz.tex'], stdout=sys.stderr)
- os.chdir(olddir)
- if filetype == 'pdf':
- shutil.copyfile(tmpdir + '/tikz.pdf', outfile + '.pdf')
- else:
- call(["convert", tmpdir + '/tikz.pdf', outfile + '.' + filetype])
- shutil.rmtree(tmpdir)
-
-def tikz(key, value, format):
- if key == 'RawBlock':
- [fmt, code] = value
- if fmt == "latex" and re.match("\\\\begin{tikzpicture}", code):
- outfile = imagedir + '/' + sha1(code)
- if format == "html":
- filetype = "png"
- elif format == "latex":
- filetype = "pdf"
- else:
- filetype = "png"
- src = outfile + '.' + filetype
- if not os.path.isfile(src):
- try:
- os.mkdir(imagedir)
- sys.stderr.write('Created directory ' + imagedir + '\n')
- except OSError:
- pass
- tikz2image(code, filetype, outfile)
- sys.stderr.write('Created image ' + src + '\n')
- return {'Para': [{'Image': [[], [src,""]]}]}
-
-if __name__ == "__main__":
- toJSONFilter(tikz)