summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docutils/docutils/parsers/rst/states.py2
-rw-r--r--docutils/docutils/transforms/references.py5
-rw-r--r--docutils/test/functional/expected/standalone_rst_html4css1.html6
-rw-r--r--docutils/test/functional/expected/standalone_rst_latex.tex6
-rwxr-xr-xdocutils/test/test_transforms/test_hyperlinks.py68
5 files changed, 46 insertions, 41 deletions
diff --git a/docutils/docutils/parsers/rst/states.py b/docutils/docutils/parsers/rst/states.py
index 3427c4694..f2c2d5144 100644
--- a/docutils/docutils/parsers/rst/states.py
+++ b/docutils/docutils/parsers/rst/states.py
@@ -1857,6 +1857,8 @@ class Body(RSTState):
else: # anonymous target
if refuri:
target['refuri'] = refuri
+ else:
+ self.document.note_internal_target(target)
target['anonymous'] = 1
self.document.note_anonymous_target(target)
diff --git a/docutils/docutils/transforms/references.py b/docutils/docutils/transforms/references.py
index 8fda16c77..c8989f2a6 100644
--- a/docutils/docutils/transforms/references.py
+++ b/docutils/docutils/transforms/references.py
@@ -448,7 +448,10 @@ class InternalTargets(Transform):
element.walk(visitor)
except nodes.NodeFound:
target.parent.remove(target)
- visitor.found.insert(0, target)
+ for child in visitor.found:
+ target += child
+ visitor.found.children = []
+ visitor.found += target
return
else:
# At end of section or container; try parent's sibling
diff --git a/docutils/test/functional/expected/standalone_rst_html4css1.html b/docutils/test/functional/expected/standalone_rst_html4css1.html
index b4e932b8d..c54bf046d 100644
--- a/docutils/test/functional/expected/standalone_rst_html4css1.html
+++ b/docutils/test/functional/expected/standalone_rst_html4css1.html
@@ -211,7 +211,7 @@ live link to PEP 258 here.</p>
</ul>
</div>
<div class="section" id="enumerated-lists">
-<h2><a class="toc-backref" href="#id33" name="enumerated-lists">2.3&nbsp;&nbsp;&nbsp;<span class="target" id="target"></span>Enumerated Lists</a></h2>
+<h2><a class="toc-backref" href="#id33" name="enumerated-lists">2.3&nbsp;&nbsp;&nbsp;<span class="target" id="target">Enumerated Lists</span></a></h2>
<ol class="arabic">
<li><p class="first">Arabic numerals.</p>
<ol class="loweralpha simple">
@@ -490,9 +490,9 @@ citation.</p>
</div>
<div class="section" id="targets">
<h2><a class="toc-backref" href="#id43" name="targets">2.13&nbsp;&nbsp;&nbsp;Targets</a></h2>
-<p><span class="target" id="example"></span>This paragraph is pointed to by the explicit &quot;example&quot; target. A
+<p><span class="target" id="example">This paragraph is pointed to by the explicit &quot;example&quot; target. A
reference can be found under <a class="reference" href="#inline-markup">Inline Markup</a>, above. <a class="reference" href="#inline-hyperlink-targets">Inline
-hyperlink targets</a> are also possible.</p>
+hyperlink targets</a> are also possible.</span></p>
<p>Section headers are implicit targets, referred to by name. See
<a class="reference" href="#targets">Targets</a>, which is a subsection of <a class="reference" href="#body-elements">Body Elements</a>.</p>
<p>Explicit external targets are interpolated into references such as
diff --git a/docutils/test/functional/expected/standalone_rst_latex.tex b/docutils/test/functional/expected/standalone_rst_latex.tex
index 847e1749e..a65919472 100644
--- a/docutils/test/functional/expected/standalone_rst_latex.tex
+++ b/docutils/test/functional/expected/standalone_rst_latex.tex
@@ -374,7 +374,7 @@ This nested list should be compacted by the HTML writer.
\hypertarget{enumerated-lists}{}
\pdfbookmark[1]{2.3~~~Enumerated Lists}{enumerated-lists}
-\subsection*{2.3~~~\hypertarget{target}{}Enumerated Lists}
+\subsection*{2.3~~~\hypertarget{target}{Enumerated Lists}}
\newcounter{listcnt1}
\begin{list}{\arabic{listcnt1}.}
{
@@ -773,9 +773,9 @@ citation.
\pdfbookmark[1]{2.13~~~Targets}{targets}
\subsection*{2.13~~~Targets}
-\hypertarget{example}{}This paragraph is pointed to by the explicit ``example'' target. A
+\hypertarget{example}{This paragraph is pointed to by the explicit ``example'' target. A
reference can be found under \href{\#inline-markup}{Inline Markup}, above. \href{\#inline-hyperlink-targets}{Inline
-hyperlink targets} are also possible.
+hyperlink targets} are also possible.}
Section headers are implicit targets, referred to by name. See
\href{\#targets}{Targets}, which is a subsection of \href{\#body-elements}{Body Elements}.
diff --git a/docutils/test/test_transforms/test_hyperlinks.py b/docutils/test/test_transforms/test_hyperlinks.py
index 3a09e0207..e82a3580d 100755
--- a/docutils/test/test_transforms/test_hyperlinks.py
+++ b/docutils/test/test_transforms/test_hyperlinks.py
@@ -68,9 +68,9 @@ direct_ internal
<document source="test data">
<paragraph>
<target id="direct" name="direct">
- <reference name="direct" refid="direct">
- direct
- internal
+ <reference name="direct" refid="direct">
+ direct
+ internal
"""],
["""\
.. _ztarget:
@@ -84,9 +84,9 @@ indirect_ internal
<document source="test data">
<paragraph>
<target id="ztarget" name="ztarget">
- <reference name="indirect" refid="ztarget">
- indirect
- internal
+ <reference name="indirect" refid="ztarget">
+ indirect
+ internal
<target id="indirect2" name="indirect2" refid="ztarget">
<target id="indirect" name="indirect" refid="ztarget">
"""],
@@ -226,10 +226,10 @@ __
""",
"""\
<document source="test data">
- <target anonymous="1" id="id1">
<paragraph>
- <reference anonymous="1" name="direct internal" refid="id1">
- direct internal
+ <target anonymous="1" id="id1">
+ <reference anonymous="1" name="direct internal" refid="id1">
+ direct internal
"""],
["""\
.. _ztarget:
@@ -242,8 +242,8 @@ __ ztarget_
<document source="test data">
<paragraph>
<target id="ztarget" name="ztarget">
- <reference anonymous="1" name="indirect internal" refid="ztarget">
- indirect internal
+ <reference anonymous="1" name="indirect internal" refid="ztarget">
+ indirect internal
<target anonymous="1" id="id1" refid="ztarget">
"""],
["""\
@@ -263,13 +263,13 @@ __ ztarget_
<document source="test data">
<paragraph>
<target dupname="ztarget" id="ztarget">
- First
+ First
<system_message backrefs="id1" level="2" line="5" source="test data" type="WARNING">
<paragraph>
Duplicate explicit target name: "ztarget".
<paragraph>
<target dupname="ztarget" id="id1">
- Second
+ Second
<paragraph>
<problematic id="id4" refid="id3">
`indirect internal`__
@@ -324,7 +324,7 @@ By this `internal hyperlink`_ referemce.
<document source="test data">
<paragraph>
<target id="internal-hyperlink" name="internal hyperlink">
- This paragraph referenced.
+ This paragraph referenced.
<paragraph>
By this \n\
<reference name="internal hyperlink" refid="internal-hyperlink">
@@ -346,8 +346,8 @@ The results of the transform are not visible at the XML level.
<document source="test data">
<paragraph>
<target id="internal-hyperlink" name="internal hyperlink">
- <target id="chained" name="chained">
- This paragraph referenced.
+ <target id="chained" name="chained">
+ This paragraph referenced.
<paragraph>
By this \n\
<reference name="internal hyperlink" refid="internal-hyperlink">
@@ -461,23 +461,23 @@ __
<target anonymous="1" id="id3" refuri="http://simplified">
<target id="external" name="external" refuri="http://indirect.external">
<target anonymous="1" id="id4" refuri="http://indirect.external">
- <target anonymous="1" id="id5">
<paragraph>
- <reference anonymous="1" name="Full syntax anonymous external hyperlink reference" refuri="http://full">
- Full syntax anonymous external hyperlink reference
- ,
- <reference anonymous="1" name="chained anonymous external reference" refuri="http://simplified">
- chained anonymous external reference
- ,
- <reference anonymous="1" name="simplified syntax anonymous external hyperlink reference" refuri="http://simplified">
- simplified syntax anonymous external hyperlink reference
- ,
- <reference anonymous="1" name="indirect anonymous hyperlink reference" refuri="http://indirect.external">
- indirect anonymous hyperlink reference
- ,
- <reference anonymous="1" name="internal anonymous hyperlink reference" refid="id5">
- internal anonymous hyperlink reference
- .
+ <target anonymous="1" id="id5">
+ <reference anonymous="1" name="Full syntax anonymous external hyperlink reference" refuri="http://full">
+ Full syntax anonymous external hyperlink reference
+ ,
+ <reference anonymous="1" name="chained anonymous external reference" refuri="http://simplified">
+ chained anonymous external reference
+ ,
+ <reference anonymous="1" name="simplified syntax anonymous external hyperlink reference" refuri="http://simplified">
+ simplified syntax anonymous external hyperlink reference
+ ,
+ <reference anonymous="1" name="indirect anonymous hyperlink reference" refuri="http://indirect.external">
+ indirect anonymous hyperlink reference
+ ,
+ <reference anonymous="1" name="internal anonymous hyperlink reference" refid="id5">
+ internal anonymous hyperlink reference
+ .
"""],
["""\
Duplicate external target_'s (different URIs):
@@ -542,7 +542,7 @@ __ http://example.org
<target id="indirect" name="indirect" refuri="http://uri">
<reference name="external_" refuri="http://uri">
<target id="internal" name="internal">
- <image uri="picture.png">
+ <image uri="picture.png">
<reference name="indirect_" refuri="http://uri">
<image uri="picture.png">
<reference name="internal_" refid="internal">
@@ -594,7 +594,7 @@ Let's reference it (`explicit target`_) to avoid an irrelevant error.
<section id="title" name="title">
<title>
<target id="explicit-target" name="explicit target">
- Title
+ Title
<paragraph>
Let's reference it (
<reference name="explicit target" refid="explicit-target">