5 from pandocfilters
import (toJSONFilter
, RawInline
, Space
, Str
, walk
, Image
,
9 Pandoc filter for Markdown that converts most endnotes into
10 Pandoc's inline notes. If input notes had multiple paragraphs,
11 the paragraphs are joined by a space. But if an input note
12 had any blocks other than paragraphs, the note is left as is.
15 #inkscape -z sv/bridge_phy.svg --export-png=bridge.png
16 out
= open("/tmp/log.txt", "w")
18 def query(k
, v
, f
, meta
):
22 elif isinstance(v
, list):
23 if inlines
and k
== 'Para':
24 inlines
.append(Space())
28 def inlinenotes(k
, v
, f
, meta
):
29 out
.write("k v f meta %s %s %s %s\n" % \
30 (repr(k
), repr(v
), repr(f
), repr(meta
)))
33 if k
== u
'Image' and f
== 'latex':
35 out
.write(" image %s\n" % (imgname
))
36 # HACK! works only relative to openpower directory!
37 if imgname
.startswith("/"):
38 imgname
= ".." + imgname
39 png
= imgname
.replace(".svg", ".png")
40 png
= os
.path
.split(png
)[1]
41 png
= "tex_out/%s" % png
42 subprocess
.run(["inkscape", "-z", "-C", imgname
,
43 "--export-png=%s" % png
],
44 stdout
=subprocess
.PIPE
)
47 if k
== 'Str' and f
== 'latex':
49 if not v
.startswith("[["):
51 find_brack
= v
.find(']]')
54 link
= v
[2:find_brack
]
55 out
.write(" link %s\n" % link
)
56 lookups
= {'sv': 'Scalable Vectors for Power ISA',
57 'SV|sv': 'Scalable Vectors for Power ISA',
58 'sv/overview': 'Overview Chapter',
59 'sv/compliancy_levels': 'Compliancy Levels',
60 'sv/svp64': 'SVP64 Chapter',
62 'sv/normal': 'Arithmetic Mode',
63 'sv/ldst': 'Load/Store Mode',
64 'sv/cr_ops': 'Condition Register Fields Mode',
65 'sv/branches': 'Branch Mode',
66 'sv/setvl': 'setvl instruction',
67 'sv/svstep': 'svstep instruction',
68 'sv/remap': 'REMAP subsystem',
69 'sv/mv.swizzle': 'Swizzle Move',
70 'sv/mv.vec': 'Pack / Unpack',
71 'svp64/appendix': 'SVP64 Appendix',
72 'sv/svp64_quirks': 'SVP64 Quirks',
73 'openpower/isa/simplev': 'Simple-V pseudocode',
74 'sv/opcode_regs_deduped': 'SVP64 Augmentation Table',
77 out
.write(" found %s\n" % lookups
[link
])
78 return [Link(['', [], []],
80 ['#%s' % link
, '']), Str(v
[find_brack
+2:])]
82 link
, ref
= link
.split("|")
83 return [Link(['', [], []],
85 [ref
, '']), Str(v
[find_brack
+2:])]
87 out
.write(" link type %s\n" % \
91 if __name__
== "__main__":
92 toJSONFilter(inlinenotes
)