summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--makespec.py5
-rwxr-xr-xspecfilter.hs13
2 files changed, 10 insertions, 8 deletions
diff --git a/makespec.py b/makespec.py
index 4d157a5..8e73cf4 100644
--- a/makespec.py
+++ b/makespec.py
@@ -20,7 +20,10 @@ def pipe_through_prog(prog, text):
def replaceAnchor(match):
refs.append("[{0}]: #{1}".format(match.group(1), match.group(2)))
- return '<a id="{1}" href="#{1}" class="definition">{0}</a>'.format(match.group(1), match.group(2))
+ if specformat == "html":
+ return '<a id="{1}" href="#{1}" class="definition">{0}</a>'.format(match.group(1), match.group(2))
+ else:
+ return match.group(0)
stage = 0
example = 0
diff --git a/specfilter.hs b/specfilter.hs
index 67c8fa5..7a7676b 100755
--- a/specfilter.hs
+++ b/specfilter.hs
@@ -1,11 +1,11 @@
#!/usr/bin/env runhaskell
import Text.Pandoc.JSON
-import Text.Pandoc.Walk
+import Text.Pandoc.Generic
main = toJSONFilter go
where go :: Pandoc -> Pandoc
- go = walk exampleDivs . walk anchors
+ go = bottomUp exampleDivs . bottomUp (concatMap anchors)
exampleDivs :: Block -> Block
exampleDivs (Div (ident, ["example"], kvs)
@@ -30,8 +30,7 @@ exampleDivs (Div (ident, ["example"], kvs)
else code
exampleDivs x = x
-anchors :: Inline -> Inline
-anchors (RawInline (Format "html") ('<':'a':' ':'i':'d':'=':'"':xs)) =
- RawInline (Format "latex") ("\\hyperdef{}{" ++ lab ++ "}{\\label{" ++ lab ++ "}}")
- where lab = takeWhile (/='"') xs
-anchors x = x
+anchors :: Inline -> [Inline]
+anchors (Link text ('@':lab,_)) =
+ [RawInline (Format "latex") ("\\hyperdef{}{" ++ lab ++ "}{\\label{" ++ lab ++ "}}"), Strong text]
+anchors x = [x]