Skip to content

Commit

Permalink
fixes #12998 nim doc regression (#13117)
Browse files Browse the repository at this point in the history
  • Loading branch information
timotheecour authored and Araq committed Jan 16, 2020
1 parent 5ef0494 commit 1b54be7
Show file tree
Hide file tree
Showing 13 changed files with 28 additions and 16 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,5 @@ megatest.nim

# ignore debug dirs generated by dsymutil on OSX
*.dSYM

nimdoc.out.css
11 changes: 9 additions & 2 deletions compiler/docgen.nim
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import
packages/docutils/rst, packages/docutils/rstgen,
json, xmltree, cgi, trees, types,
typesrenderer, astalgo, lineinfos, intsets,
pathutils, trees
pathutils, trees, nimconf

const
exportSection = skField
Expand All @@ -43,6 +43,7 @@ type
destFile*: AbsoluteFile
thisDir*: AbsoluteDir
examples: string
wroteCss*: bool

PDoc* = ref TDocumentor ## Alias to type less.

Expand Down Expand Up @@ -1069,10 +1070,16 @@ proc writeOutput*(d: PDoc, useWarning = false) =
template outfile: untyped = d.destFile
#let outfile = getOutFile2(d.conf, shortenDir(d.conf, filename), outExt, "htmldocs")
createDir(outfile.splitFile.dir)
d.conf.outFile = outfile.extractFilename.RelativeFile
if not writeRope(content, outfile):
rawMessage(d.conf, if useWarning: warnCannotOpenFile else: errCannotOpenFile,
outfile.string)
d.conf.outFile = outfile.extractFilename.RelativeFile
elif not d.wroteCss:
let cssSource = $d.conf.getPrefixDir() / "doc" / "nimdoc.css"
let cssDest = $d.conf.outDir / "nimdoc.out.css"
# renamed to make it easier to use with gitignore in user's repos
copyFile(cssSource, cssDest)
d.wroteCss = true

proc writeOutputJson*(d: PDoc, useWarning = false) =
runAllExamples(d)
Expand Down
2 changes: 1 addition & 1 deletion compiler/installer.ini
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,4 @@ licenses: "bin/nim,MIT;lib/*,MIT;"

[nimble]
pkgName: "compiler"
pkgFiles: "compiler/*;doc/basicopt.txt;doc/advopt.txt"
pkgFiles: "compiler/*;doc/basicopt.txt;doc/advopt.txt;doc/nimdoc.css"
1 change: 1 addition & 0 deletions compiler/main.nim
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,7 @@ proc mainCommand*(graph: ModuleGraph) =

var dumpdata = %[
(key: "version", val: %VersionAsString),
(key: "prefixdir", val: %conf.getPrefixDir().string),
(key: "project_path", val: %conf.projectFull.string),
(key: "defined_symbols", val: definedSymbols),
(key: "lib_paths", val: %libpaths),
Expand Down
3 changes: 3 additions & 0 deletions compiler/options.nim
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,9 @@ proc getPrefixDir*(conf: ConfigRef): AbsoluteDir =
##
## This is overridden by some tools (namely nimsuggest) via the ``conf.prefixDir``
## field.
## This should resolve to root of nim sources, whether running nim from a local
## clone or using installed nim, so that these exist: `result/doc/advopt.txt`
## and `result/lib/system.nim`
if not conf.prefixDir.isEmpty: result = conf.prefixDir
else: result = AbsoluteDir splitPath(getAppDir()).head

Expand Down
2 changes: 1 addition & 1 deletion config/nimdoc.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ doc.file = """<?xml version="1.0" encoding="utf-8" ?>

<!-- CSS -->
<title>$title</title>
<link rel="stylesheet" type="text/css" href="nimdoc.css">
<link rel="stylesheet" type="text/css" href="/nimdoc.out.css">

<script type="text/javascript" src="dochack.js"></script>

Expand Down
4 changes: 3 additions & 1 deletion koch.nim
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ when defined(i386) and defined(windows) and defined(vcc):
{.link: "icons/koch-i386-windows-vcc.res".}

import
os, strutils, parseopt, osproc, streams
os, strutils, parseopt, osproc

import tools / kochdocs

Expand All @@ -45,6 +45,7 @@ Options:
--help, -h shows this help and quits
--latest bundle the installers with a bleeding edge Nimble
--stable bundle the installers with a stable Nimble (default)
--nim:path use specified path for nim binary
Possible Commands:
boot [options] bootstraps with given command line options
distrohelper [bindir] helper for distro packagers
Expand Down Expand Up @@ -605,6 +606,7 @@ when isMainModule:
case normalize(op.key)
of "latest": latest = true
of "stable": latest = false
of "nim": nimExe = op.val.absolutePath # absolute so still works with changeDir
else: showHelp()
of cmdArgument:
case normalize(op.key)
Expand Down
2 changes: 1 addition & 1 deletion nimdoc/test_out_index_dot_html/expected/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- CSS -->
<title>foo</title>
<link rel="stylesheet" type="text/css" href="nimdoc.css">
<link rel="stylesheet" type="text/css" href="/nimdoc.out.css">

<script type="text/javascript" src="dochack.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion nimdoc/test_out_index_dot_html/expected/theindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- CSS -->
<title>Index</title>
<link rel="stylesheet" type="text/css" href="nimdoc.css">
<link rel="stylesheet" type="text/css" href="/nimdoc.out.css">

<script type="text/javascript" src="dochack.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion nimdoc/testproject/expected/subdir/subdir_b/utils.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- CSS -->
<title>utils</title>
<link rel="stylesheet" type="text/css" href="nimdoc.css">
<link rel="stylesheet" type="text/css" href="/nimdoc.out.css">

<script type="text/javascript" src="dochack.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion nimdoc/testproject/expected/testproject.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- CSS -->
<title>testproject</title>
<link rel="stylesheet" type="text/css" href="nimdoc.css">
<link rel="stylesheet" type="text/css" href="/nimdoc.out.css">

<script type="text/javascript" src="dochack.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion nimdoc/testproject/expected/theindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- CSS -->
<title>Index</title>
<link rel="stylesheet" type="text/css" href="nimdoc.css">
<link rel="stylesheet" type="text/css" href="/nimdoc.out.css">

<script type="text/javascript" src="dochack.js"></script>

Expand Down
9 changes: 3 additions & 6 deletions tools/kochdocs.nim
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ const
webUploadOutput = "web/upload"
docHackDir = "tools/dochack"

var nimExe*: string

proc exe*(f: string): string =
result = addFileExt(f, ExeExt)
when defined(windows):
result = result.replace('/','\\')

proc findNim*(): string =
if nimExe.len > 0: return nimExe
var nim = "nim".exe
result = "bin" / nim
if existsFile(result): return
Expand Down Expand Up @@ -366,14 +369,11 @@ proc buildJS() =
proc buildDocs*(args: string) =
const
docHackJs = "dochack.js"
css = "nimdoc.css"
let
a = nimArgs & " " & args
docHackJsSource = docHackDir / docHackJs
docHackJsDest = docHtmlOutput / docHackJs

cssSource = "doc" / css
cssDest = docHtmlOutput / css
buildJS() # This call generates docHackJsSource
let docup = webUploadOutput / NimVersion
createDir(docup)
Expand All @@ -387,6 +387,3 @@ proc buildDocs*(args: string) =
buildDoc(nimArgs, docHtmlOutput)
copyFile(docHackJsSource, docHackJsDest)
copyFile(docHackJsSource, docup / docHackJs)

copyFile(cssSource, cssDest)
copyFile(cssSource, docup / css)

0 comments on commit 1b54be7

Please sign in to comment.