diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index 22350a2bb..c220902ff 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -456,7 +456,7 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind) =
var seeSrcRope: Rope = nil
let docItemSeeSrc = getConfigVar("doc.item.seesrc")
if docItemSeeSrc.len > 0:
- let cwd = getCurrentDir()
+ let cwd = getCurrentDir().canonicalizePath()
var path = n.info.toFullPath
if path.startsWith(cwd):
path = path[cwd.len+1 .. ^1].replace('\\', '/')
diff --git a/config/nimdoc.cfg b/config/nimdoc.cfg
index 2d6ce1861..b953383de 100644
--- a/config/nimdoc.cfg
+++ b/config/nimdoc.cfg
@@ -115,7 +115,7 @@ doc.listing_end = ""
doc.file = """
-
+
@@ -1280,14 +1280,14 @@ function togglepragma(d) {
function main() {
var elements = document.getElementsByClassName("pragmabegin");
- for (var i = 0; i < elements.length; ++i) {
+ for (var i = 0; i < elements.length; ++i) {
var e = elements[i];
e.onclick = function(event) {
togglepragma(event.target.nextSibling);
};
}
var elements = document.getElementsByClassName("pragmaend");
- for (var i = 0; i < elements.length; ++i) {
+ for (var i = 0; i < elements.length; ++i) {
var e = elements[i];
e.onclick = function(event) {
togglepragma(event.target.previousSibling);
diff --git a/lib/packages/docutils/rstgen.nim b/lib/packages/docutils/rstgen.nim
index 8b5bb0e8f..13c0c0a29 100644
--- a/lib/packages/docutils/rstgen.nim
+++ b/lib/packages/docutils/rstgen.nim
@@ -415,18 +415,28 @@ proc sortIndex(a: var openArray[IndexEntry]) =
a[j] <- v
if h == 1: break
+proc escapeLink(s: string): string =
+ result = newStringOfCap(s.len + s.len shr 2)
+ for c in items(s):
+ case c
+ of 'a'..'z', '_', 'A'..'Z', '0'..'9':
+ result.add c
+ else:
+ add(result, "X")
+ add(result, toHex(ord(c), 2))
+
proc generateSymbolIndex(symbols: seq[IndexEntry]): string =
- result = ""
+ result = "
"
var i = 0
while i < symbols.len:
- let keyword= symbols[i].keyword
- let cleaned_keyword = keyword[1..keyword.high - 1]
- result.addf("