SF.net SVN: docutils:[10094 ] trunk/docutils
milde--- via Docutils-checkins <[email protected]> Fri, 18 Apr 2025 15:48:46 +0000
| Newsgroups | gmane.text.docutils.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 10094
http://sourceforge.net/p/docutils/code/10094
Author: milde
Date: 2025-04-18 15:48:45 +0000 (Fri, 18 Apr 2025)
Log Message:
-----------
More precise INFO if explicit target name overrides implicit one.
Modified Paths:
--------------
trunk/docutils/docutils/nodes.py
trunk/docutils/test/test_parsers/test_rst/test_targets.py
Modified: trunk/docutils/docutils/nodes.py
===================================================================
--- trunk/docutils/docutils/nodes.py 2025-04-17 21:44:18 UTC (rev 10093)
+++ trunk/docutils/docutils/nodes.py 2025-04-18 15:48:45 UTC (rev 10094)
@@ -1904,18 +1904,18 @@
) -> None:
old_id = self.nameids[name]
old_explicit = self.nametypes[name]
+ old_node = self.ids.get(old_id)
self.nametypes[name] = old_explicit or explicit
if explicit:
if old_explicit:
level = 2
if old_id is not None:
- old_node = self.ids[old_id]
if 'refuri' in node:
refuri = node['refuri']
if (old_node['names']
and 'refuri' in old_node
and old_node['refuri'] == refuri):
- level = 1 # just inform if refuri's identical
+ level = 1 # just inform if refuri is identical
if level > 1:
dupname(old_node, name)
self.nameids[name] = None
@@ -1925,21 +1925,21 @@
if msgnode is not None:
msgnode += msg
dupname(node, name)
- else:
+ else: # new explicit, old implicit -> silently overwrite
self.nameids[name] = id
if old_id is not None:
- old_node = self.ids[old_id]
dupname(old_node, name)
- else:
+ else: # new name is implicit
if old_id is not None and not old_explicit:
self.nameids[name] = None
- old_node = self.ids[old_id]
dupname(old_node, name)
dupname(node, name)
if not explicit or (not old_explicit and old_id is not None):
- msg = self.reporter.info(
- 'Duplicate implicit target name: "%s".' % name,
- backrefs=[id], base_node=node)
+ if explicit:
+ s = f'Target name overrides implicit target name "{name}".'
+ else:
+ s = f'Duplicate implicit target name: "{name}".'
+ msg = self.reporter.info(s, backrefs=[id], base_node=node)
if msgnode is not None:
msgnode += msg
Modified: trunk/docutils/test/test_parsers/test_rst/test_targets.py
===================================================================
--- trunk/docutils/test/test_parsers/test_rst/test_targets.py 2025-04-17 21:44:18 UTC (rev 10093)
+++ trunk/docutils/test/test_parsers/test_rst/test_targets.py 2025-04-18 15:48:45 UTC (rev 10094)
@@ -271,7 +271,7 @@
Title
<system_message backrefs="title-1" level="1" line="6" source="test data" type="INFO">
<paragraph>
- Duplicate implicit target name: "title".
+ Target name overrides implicit target name "title".
<target ids="title-1" names="title">
<paragraph>
Paragraph.
@@ -295,7 +295,7 @@
<pending ids="title-1" names="title">
<system_message backrefs="title-1" level="1" line="7" source="test data" type="INFO">
<paragraph>
- Duplicate implicit target name: "title".
+ Target name overrides implicit target name "title".
.. internal attributes:
.transform: docutils.transforms.references.TargetNotes
.details:
@@ -394,7 +394,7 @@
TARGET
<system_message backrefs="target-1" level="1" line="8" source="test data" type="INFO">
<paragraph>
- Duplicate implicit target name: "target".
+ Target name overrides implicit target name "target".
<paragraph>
Citation target.
<footnote auto="1" dupnames="target" ids="target-2">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.