Do not include excluded headlines when calculating headline index

This commit is contained in:
Niklas Fasching 2024-08-20 15:22:59 +02:00
parent d4f684b248
commit 7bc6100fc7
3 changed files with 20 additions and 21 deletions

View file

@ -260,7 +260,9 @@ func (d *Document) parseMany(i int, stop stopFn) (int, []Node) {
func (d *Document) addHeadline(headline *Headline) int {
current := &Section{Headline: headline}
d.Outline.last.add(current)
d.Outline.count++
if !headline.IsExcluded(d) {
d.Outline.count++
}
d.Outline.last = current
return d.Outline.count
}

View file

@ -43,9 +43,6 @@ func lexHeadline(line string) (token, bool) {
func (d *Document) parseHeadline(i int, parentStop stopFn) (int, Node) {
t, headline := d.tokens[i], Headline{}
headline.Lvl = len(t.matches[1])
headline.Index = d.addHeadline(&headline)
text := t.content
todoKeywords := trimFastTags(
strings.FieldsFunc(d.Get("TODO"), func(r rune) bool { return unicode.IsSpace(r) || r == '|' }),
@ -67,7 +64,7 @@ func (d *Document) parseHeadline(i int, parentStop stopFn) (int, Node) {
text = m[1]
headline.Tags = strings.FieldsFunc(m[2], func(r rune) bool { return r == ':' })
}
headline.Index = d.addHeadline(&headline)
headline.Title = d.parseInline(text)
stop := func(d *Document, i int) bool {

View file

@ -10,9 +10,9 @@
</li>
<li><a href="#headline-5">headline with custom status</a>
</li>
<li><a href="#headline-7">malformed property drawer</a>
<li><a href="#headline-6">malformed property drawer</a>
</li>
<li><a href="#headline-8">level limit for headlines to be included in the table of contents</a>
<li><a href="#headline-7">level limit for headlines to be included in the table of contents</a>
</li>
</ul>
</nav>
@ -75,40 +75,40 @@ headline with custom status
</div>
</div>
</div>
<div id="outline-container-headline-7" class="outline-2">
<h2 id="headline-7">
<div id="outline-container-headline-6" class="outline-2">
<h2 id="headline-6">
malformed property drawer
</h2>
<div id="outline-text-headline-7" class="outline-text-2">
<div id="outline-text-headline-6" class="outline-text-2">
<p>:PROPERTIES:
not a property</p>
<p>:END:</p>
</div>
</div>
<div id="outline-container-headline-8" class="outline-2">
<h2 id="headline-8">
<div id="outline-container-headline-7" class="outline-2">
<h2 id="headline-7">
level limit for headlines to be included in the table of contents
</h2>
<div id="outline-text-headline-8" class="outline-text-2">
<div id="outline-text-headline-7" class="outline-text-2">
<p>The toc option allows setting a <a href="https://orgmode.org/manual/Export-settings.html">level limit</a>. For this file we set it to 1 - which means that the following headlines
won&#39;t be included in the table of contents.</p>
<div id="outline-container-headline-9" class="outline-3">
<h3 id="headline-9">
<div id="outline-container-headline-8" class="outline-3">
<h3 id="headline-8">
headline 2 not in toc
</h3>
<div id="outline-text-headline-9" class="outline-text-3">
<div id="outline-container-headline-10" class="outline-4">
<h4 id="headline-10">
<div id="outline-text-headline-8" class="outline-text-3">
<div id="outline-container-headline-9" class="outline-4">
<h4 id="headline-9">
headline 3 not in toc
</h4>
</div>
</div>
</div>
<div id="outline-container-headline-11" class="outline-3">
<h3 id="headline-11">
<div id="outline-container-headline-10" class="outline-3">
<h3 id="headline-10">
anoter headline 2 not in toc
</h3>
<div id="outline-text-headline-11" class="outline-text-3">
<div id="outline-text-headline-10" class="outline-text-3">
<p>you get the gist…</p>
</div>
</div>