@@ -63,7 +63,22 @@ proc prettyString(a: object): string =
6363 for k, v in fieldPairs (a):
6464 result .add k & " : " & $ v & " \n "
6565
66- proc presentationPath * (conf: ConfigRef , file: AbsoluteFile , isTitle = false ): RelativeFile =
66+ proc canonicalImport * (conf: ConfigRef , file: AbsoluteFile ): string =
67+ ##[
68+ Shows the canonical module import, e.g.:
69+ system, std/tables, fusion/pointers, system/assertions, std/private/asciitables
70+ ]##
71+ var ret = getRelativePathFromConfigPath (conf, file, isTitle = true )
72+ let dir = getNimbleFile (conf, $ file).parentDir.AbsoluteDir
73+ if not dir.isEmpty:
74+ let relPath = relativeTo (file, dir)
75+ if not relPath.isEmpty and (ret.isEmpty or relPath.string .len < ret.string .len):
76+ ret = relPath
77+ if ret.isEmpty:
78+ ret = relativeTo (file, conf.projectPath)
79+ result = ret.string .nativeToUnixPath.changeFileExt (" " )
80+
81+ proc presentationPath * (conf: ConfigRef , file: AbsoluteFile ): RelativeFile =
6782 # # returns a relative file that will be appended to outDir
6883 let file2 = $ file
6984 template bail () =
@@ -97,10 +112,7 @@ proc presentationPath*(conf: ConfigRef, file: AbsoluteFile, isTitle = false): Re
97112 bail ()
98113 if isAbsolute (result .string ):
99114 result = file.string .splitPath ()[1 ].RelativeFile
100- if isTitle:
101- result = result .string .nativeToUnixPath.RelativeFile
102- else :
103- result = result .string .replace (" .." , dotdotMangle).RelativeFile
115+ result = result .string .replace (" .." , dotdotMangle).RelativeFile
104116 doAssert not result .isEmpty
105117 doAssert not isAbsolute (result .string )
106118
@@ -1259,8 +1271,7 @@ proc genOutFile(d: PDoc, groupedToc = false): Rope =
12591271 setIndexTerm (d[], external, " " , title)
12601272 else :
12611273 # Modules get an automatic title for the HTML, but no entry in the index.
1262- # better than `extractFilename(changeFileExt(d.filename, ""))` as it disambiguates dups
1263- title = $ presentationPath (d.conf, AbsoluteFile d.filename, isTitle = true ).changeFileExt (" " )
1274+ title = canonicalImport (d.conf, AbsoluteFile d.filename)
12641275 var subtitle = " " .rope
12651276 if d.meta[metaSubtitle] != " " :
12661277 dispA (d.conf, subtitle, " <h2 class=\" subtitle\" >$1</h2>" ,
0 commit comments