SF.net SVN: docutils:[9807 ] trunk/docutils/docutils/w riters/manpage.py
grubert--- via Docutils-checkins <[email protected]>
| Newsgroups | gmane.text.docutils.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 9807
http://sourceforge.net/p/docutils/code/9807
Author: grubert
Date: 2024-07-31 16:41:59 +0000 (Wed, 31 Jul 2024)
Log Message:
-----------
add _reference with macros
Modified Paths:
--------------
trunk/docutils/docutils/writers/manpage.py
Modified: trunk/docutils/docutils/writers/manpage.py
===================================================================
--- trunk/docutils/docutils/writers/manpage.py 2024-07-31 13:24:20 UTC (rev 9806)
+++ trunk/docutils/docutils/writers/manpage.py 2024-07-31 16:41:59 UTC (rev 9807)
@@ -203,6 +203,10 @@
def __init__(self, document):
nodes.NodeVisitor.__init__(self, document)
self.settings = settings = document.settings
+ self.visit_reference = self._visit_reference_no_macro
+ self.depart_reference = self._depart_reference_no_macro
+ self.visit_reference = self._visit_reference_with_macro
+ self.depart_reference = self._depart_reference_with_macro
lcode = settings.language_code
self.language = languages.get_language(lcode, document.reporter)
self.head = []
@@ -1041,11 +1045,15 @@
# Keep non-manpage raw text out of output:
raise nodes.SkipNode
- def visit_reference(self, node):
+ # references ----
+
+ def _visit_reference_no_macro(self, node):
"""E.g. link or email address."""
# For .UR/.UE and .MT/.ME macros groff might use OSC8 escape sequences
# which are not supported everywhere yet
# therefore make the markup ourself
+
+ # TODO insert_URI_breakpoints in text or refuri
if 'refuri' in node:
# if content has the "email" do not output "mailto:email"
if node['refuri'].endswith(node.astext()):
@@ -1052,7 +1060,7 @@
self.body.append(" <")
# TODO elif 'refid' in node:
- def depart_reference(self, node):
+ def _depart_reference_no_macro(self, node):
if 'refuri' in node:
# if content has the "email" do not output "mailto:email"
if node['refuri'].endswith(node.astext()):
@@ -1061,6 +1069,20 @@
self.body.append(" <%s>\n" % node['refuri'])
# TODO elif 'refid' in node:
+ def _visit_reference_with_macro(self, node):
+ # use UR/UE or MT/ME not yet
+ # TODO insert_URI_breakpoints in text or refuri
+ self.ensure_eol()
+ self.body.append(".UR ")
+ if 'refuri' in node:
+ if not node['refuri'].endswith(node.astext()):
+ self.body.append("%s\n" % node['refuri'])
+
+ def _depart_reference_with_macro(self, node):
+ self.ensure_eol()
+ self.body.append(".UE\n")
+ # ----
+
def visit_revision(self, node):
self.visit_docinfo_item(node, 'revision')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.