From 451c47634cb5bd5a19b90b3d06760eb9c7f0286b Mon Sep 17 00:00:00 2001 From: Clyybber Date: Fri, 17 Jan 2020 16:49:37 +0100 Subject: [PATCH] Fix docs for subdirs too (#13180) * Fix doc subdirs * Extract to helper proc, and fix on windows --- compiler/docgen.nim | 26 +++++++++++-------- config/nimdoc.cfg | 2 +- .../expected/subdir/subdir_b/utils.html | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/compiler/docgen.nim b/compiler/docgen.nim index 505488e271..e2d516dfe6 100644 --- a/compiler/docgen.nim +++ b/compiler/docgen.nim @@ -1009,6 +1009,9 @@ proc genSection(d: PDoc, kind: TSymKind) = "sectionid", "sectionTitle", "sectionTitleID", "content"], [ ord(kind).rope, title, rope(ord(kind) + 50), d.toc[kind]]) +proc cssHref(outDir: AbsoluteDir, destFile: AbsoluteFile): Rope = + rope($relativeTo(outDir / RelativeFile"nimdoc.out.css", destFile.splitFile().dir, '/')) + proc genOutFile(d: PDoc): Rope = var code, content: Rope @@ -1042,12 +1045,11 @@ proc genOutFile(d: PDoc): Rope = rope(getClockStr()), code, d.modDeprecationMsg]) if optCompileOnly notin d.conf.globalOptions: # XXX what is this hack doing here? 'optCompileOnly' means raw output!? - code = ropeFormatNamedVars(d.conf, getConfigVar(d.conf, "doc.file"), ["title", - "tableofcontents", "moduledesc", "date", "time", + code = ropeFormatNamedVars(d.conf, getConfigVar(d.conf, "doc.file"), [ + "nimdoccss", "title", "tableofcontents", "moduledesc", "date", "time", "content", "author", "version", "analytics", "deprecationMsg"], - [title.rope, toc, d.modDesc, rope(getDateStr()), - rope(getClockStr()), content, d.meta[metaAuthor].rope, - d.meta[metaVersion].rope, d.analytics.rope, d.modDeprecationMsg]) + [cssHref(d.conf.outDir, d.destFile), title.rope, toc, d.modDesc, rope(getDateStr()), rope(getClockStr()), + content, d.meta[metaAuthor].rope, d.meta[metaVersion].rope, d.analytics.rope, d.modDeprecationMsg]) else: code = content result = code @@ -1183,15 +1185,17 @@ proc commandTags*(cache: IdentCache, conf: ConfigRef) = proc commandBuildIndex*(cache: IdentCache, conf: ConfigRef) = var content = mergeIndexes(conf.projectFull.string).rope - let code = ropeFormatNamedVars(conf, getConfigVar(conf, "doc.file"), ["title", - "tableofcontents", "moduledesc", "date", "time", - "content", "author", "version", "analytics"], - ["Index".rope, nil, nil, rope(getDateStr()), - rope(getClockStr()), content, nil, nil, nil]) - # no analytics because context is not available var outFile = RelativeFile"theindex" if conf.outFile != RelativeFile"": outFile = conf.outFile let filename = getOutFile(conf, outFile, HtmlExt) + + let code = ropeFormatNamedVars(conf, getConfigVar(conf, "doc.file"), [ + "nimdoccss", "title", "tableofcontents", "moduledesc", "date", "time", + "content", "author", "version", "analytics"], + [cssHref(conf.outDir, filename), rope"Index", nil, nil, rope(getDateStr()), + rope(getClockStr()), content, nil, nil, nil]) + # no analytics because context is not available + if not writeRope(code, filename): rawMessage(conf, errCannotOpenFile, filename.string) diff --git a/config/nimdoc.cfg b/config/nimdoc.cfg index 932dde4646..4faebdf721 100644 --- a/config/nimdoc.cfg +++ b/config/nimdoc.cfg @@ -237,7 +237,7 @@ doc.file = """ $title - + diff --git a/nimdoc/testproject/expected/subdir/subdir_b/utils.html b/nimdoc/testproject/expected/subdir/subdir_b/utils.html index 038ef93a5b..dc91433903 100644 --- a/nimdoc/testproject/expected/subdir/subdir_b/utils.html +++ b/nimdoc/testproject/expected/subdir/subdir_b/utils.html @@ -18,7 +18,7 @@ utils - +