summary refs log tree commit diff stats
path: root/lib/packages/docutils/rstgen.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/packages/docutils/rstgen.nim')
-rw-r--r--lib/packages/docutils/rstgen.nim12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/packages/docutils/rstgen.nim b/lib/packages/docutils/rstgen.nim
index 57bc00fcb..ec9926863 100644
--- a/lib/packages/docutils/rstgen.nim
+++ b/lib/packages/docutils/rstgen.nim
@@ -591,10 +591,16 @@ proc readIndexDir*(dir: string):
     if path.endsWith(IndexExt):
       var (fileEntries, title) = parseIdxFile(path)
       # Depending on type add this to the list of symbols or table of APIs.
-      if title.kind == ieNimTitle:
+      if title.kind in {ieNimTitle, ieIdxRole}:
         for i in 0 ..< fileEntries.len:
-          if fileEntries[i].kind != ieNim:
-            continue
+          if title.kind == ieIdxRole:
+            # Don't add to symbols TOC entries (they start with a whitespace).
+            let toc = fileEntries[i].linkTitle
+            if toc.len > 0 and toc[0] == ' ':
+              continue
+          else:
+            if fileEntries[i].kind != ieNim:
+              continue
           # Ok, non TOC entry, add it.
           setLen(result.symbols, L + 1)
           result.symbols[L] = fileEntries[i]