[docutils:bugs] #517 content_offset in directives inside grid/simple tables are off

Günter Milde via Docutils-develop <[email protected]> Wed, 07 Jan 2026 13:16:59 -0000
Newsgroups gmane.text.docutils.devel
Message-ID </p/docutils/bugs/517/1e2bbc6bffdb3a064aeef1084a9417e96e1679af.bugs@docutils.p.sourceforge.net>
This is a multi-part message in MIME format.
--===============2572451095679813789==
Content-Type: multipart/related; boundary="===============4047993594718675591=="

This is a multi-part message in MIME format.
--===============4047993594718675591==
Content-Type: multipart/alternative; boundary="===============2163515234558877920=="
MIME-Version: 1.0

--===============2163515234558877920==
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

Line numbers are still wrong in the nested parsing of cell content in "CSV tables".
Generally, the line numbers are only intended for ease of debugging and should not be relied upon too heavily.


---

**[bugs:#517] content_offset in directives inside grid/simple tables are off**

**Status:** open-fixed
**Created:** Sat Dec 27, 2025 05:07 PM UTC by Felix Fontein
**Last Updated:** Wed Jan 07, 2026 01:13 PM UTC
**Owner:** nobody


When parsing a directive in a grid table or simple table, the directive's `content_offset` is off by one. (When nesting such a table in another such a table, it's off by one for every nesting level.)

For example, for the following code block directives, `content_offset` is always off from the real content line where the code block's content is in:

```rst
content_offset is off by 1:

+----------------------+
| .. code-block:: yaml |
|                      |
|    - foo             |
+----------------------+

content_offset is off by 2:

+------------------------+
|+----------------------+|
|| .. code-block:: yaml ||
||                      ||
||    - foo             ||
|+----------------------+|
+------------------------+

content_offset is off by 3:

+--------------------------+
|+------------------------+|
||+----------------------+||
||| .. code-block:: yaml |||
|||                      |||
|||    - foo             |||
||+----------------------+||
|+------------------------+|
+--------------------------+

content_offset is off by 1:

=====  =====
col 1  col 2
=====  =====
1      .. code-block:: yaml

          - foo
=====  =====

content_offset is off by 2:

=====  =====
col 1  col 2
=====  =====
1      =====  =====
       col 1  col 2
       =====  =====
       1      .. code-block:: yaml

                 - foo
       =====  =====
=====  =====
```

(I've noticed this when registering an own code block directive to find the actual location - row and column - of the code block's contents, to be able to give more precise error messages when linting.)


---

Sent from sourceforge.net because [email protected] is subscribed to https://sourceforge.net/p/docutils/bugs/

To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
--===============2163515234558877920==
MIME-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: 7bit

<div class="markdown_content"><p>Line numbers are still wrong in the nested parsing of cell content in "CSV tables".<br/>
Generally, the line numbers are only intended for ease of debugging and should not be relied upon too heavily.</p>
<hr/>
<p><strong><a class="alink" href="https://sourceforge.net/p/docutils/bugs/517/">[bugs:#517]</a> content_offset in directives inside grid/simple tables are off</strong></p>
<p><strong>Status:</strong> open-fixed<br/>
<strong>Created:</strong> Sat Dec 27, 2025 05:07 PM UTC by Felix Fontein<br/>
<strong>Last Updated:</strong> Wed Jan 07, 2026 01:13 PM UTC<br/>
<strong>Owner:</strong> nobody</p>
<p>When parsing a directive in a grid table or simple table, the directive's <code>content_offset</code> is off by one. (When nesting such a table in another such a table, it's off by one for every nesting level.)</p>
<p>For example, for the following code block directives, <code>content_offset</code> is always off from the real content line where the code block's content is in:</p>
<div class="codehilite"><pre><span></span><code>content_offset is off by 1:

+----------------------+
<span class="o">|</span> .. code-block:: yaml |
<span class="o">|</span>                      |
<span class="o">|</span>    - foo             |
+----------------------+

content_offset is off by 2:

+------------------------+
|+----------------------+|
|| .. code-block:: yaml ||
||                      ||
||    - foo             ||
|+----------------------+|
+------------------------+

content_offset is off by 3:

+--------------------------+
|+------------------------+|
||+----------------------+||
||| .. code-block:: yaml |||
|||                      |||
|||    - foo             |||
||+----------------------+||
|+------------------------+|
+--------------------------+

content_offset is off by 1:

=====  =====
col 1  col 2
=====  =====
1      .. code-block:: yaml

          <span class="m">-</span> foo
=====  =====

content_offset is off by 2:

=====  =====
col 1  col 2
=====  =====
1      =====  =====
       col 1  col 2
       =====  =====
       1      .. code-block:: yaml

                 <span class="m">-</span> foo
       =====  =====
=====  =====
</code></pre></div>

<p>(I've noticed this when registering an own code block directive to find the actual location - row and column - of the code block's contents, to be able to give more precise error messages when linting.)</p>
<hr/>
<p>Sent from sourceforge.net because [email protected] is subscribed to <a href="https://sourceforge.net/p/docutils/bugs/">https://sourceforge.net/p/docutils/bugs/</a></p>
<p>To unsubscribe from further messages, a project admin can change settings at <a href="https://sourceforge.net/p/docutils/admin/bugs/options.">https://sourceforge.net/p/docutils/admin/bugs/options.</a>  Or, if this is a mailing list, you can unsubscribe from the mailing list.</p></div>
--===============2163515234558877920==--

--===============4047993594718675591==--


--===============2572451095679813789==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============2572451095679813789==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline