[py-svn] r36305 - in py/dist/py/rest: . testing
cfbolz at codespeak.net
cfbolz at codespeak.net
Mon Jan 8 18:51:09 CET 2007
Author: cfbolz
Date: Mon Jan 8 18:51:02 2007
New Revision: 36305
Modified:
py/dist/py/rest/directive.py
py/dist/py/rest/testing/test_directive.py
Log:
add some support code for a interpreted text role that produces links
Modified: py/dist/py/rest/directive.py
==============================================================================
--- py/dist/py/rest/directive.py (original)
+++ py/dist/py/rest/directive.py Mon Jan 8 18:51:02 2007
@@ -103,3 +103,13 @@
return [imagenode], []
latexformula_role.content = True
latexformula_role.options = {}
+
+def register_linkrole(role_name, callback):
+ def source_role(name, rawtext, text, lineno, inliner, options={},
+ content=[]):
+ text, target = callback(name, text)
+ reference_node = nodes.reference(rawtext, text, name=text, refuri=target)
+ return [reference_node], []
+ source_role.content = True
+ source_role.options = {}
+ roles.register_canonical_role(role_name, source_role)
Modified: py/dist/py/rest/testing/test_directive.py
==============================================================================
--- py/dist/py/rest/testing/test_directive.py (original)
+++ py/dist/py/rest/testing/test_directive.py Mon Jan 8 18:51:02 2007
@@ -7,6 +7,7 @@
from py.__.rest.latex import process_rest_file
datadir = py.magic.autopath().dirpath().join("data")
+testdir = py.test.ensuretemp("rest")
def test_graphviz_html():
if not py.path.local.sysfind("dot"):
@@ -39,4 +40,20 @@
assert dotpdf.check()
pdf.remove()
dotpdf.remove()
-
+
+def test_own_links():
+ def callback(name, text):
+ assert name == "foo"
+ return "bar xyz", "http://codespeak.net/noclue"
+ directive.register_linkrole("foo", callback)
+ txt = testdir.join("link-role.txt")
+ txt.write("""
+:foo:`whatever`
+""")
+ process_rest_file(txt)
+ html = txt.new(ext="html")
+ rest.process(txt)
+ assert html.check()
+ htmlcontent = html.read()
+ assert "http://codespeak.net/noclue" in htmlcontent
+ assert "bar xyz" in htmlcontent
More information about the py-svn
mailing list