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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.