diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index 35acf1379f..3f4f39c279 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -23,6 +23,7 @@ type
id: int # for generating IDs
toc, section: TSections
indexValFilename: string
+ analytics: string # Google Analytics javascript, "" if doesn't exist
seenSymbols: StringTableRef # avoids duplicate symbol generation for HTML.
PDoc* = ref TDocumentor ## Alias to type less.
@@ -61,6 +62,23 @@ proc newDocumentor*(filename: string, config: StringTableRef): PDoc =
initRstGenerator(result[], (if gCmd != cmdRst2tex: outHtml else: outLatex),
options.gConfigVars, filename, {roSupportRawDirective},
docgenFindFile, compilerMsgHandler)
+
+ if config.hasKey("doc.googleAnalytics"):
+ result.analytics = """
+
+ """ % [config["doc.googleAnalytics"]]
+ else:
+ result.analytics = ""
+
result.seenSymbols = newStringTable(modeCaseInsensitive)
result.id = 100
@@ -562,10 +580,10 @@ proc genOutFile(d: PDoc): PRope =
# XXX what is this hack doing here? 'optCompileOnly' means raw output!?
code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title",
"tableofcontents", "moduledesc", "date", "time",
- "content", "author", "version"],
+ "content", "author", "version", "analytics"],
[title.toRope, toc, d.modDesc, toRope(getDateStr()),
toRope(getClockStr()), content, d.meta[metaAuthor].toRope,
- d.meta[metaVersion].toRope])
+ d.meta[metaVersion].toRope, d.analytics.toRope])
else:
code = content
result = code
@@ -630,7 +648,8 @@ proc commandBuildIndex*() =
let code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title",
"tableofcontents", "moduledesc", "date", "time",
- "content", "author", "version"],
+ "content", "author", "version", "analytics"],
["Index".toRope, nil, nil, toRope(getDateStr()),
- toRope(getClockStr()), content, nil, nil])
+ toRope(getClockStr()), content, nil, nil, nil])
+ # no analytics because context is not available
writeRope(code, getOutFile("theindex", HtmlExt))
diff --git a/config/nimdoc.cfg b/config/nimdoc.cfg
index 3abae73885..3375460ccc 100644
--- a/config/nimdoc.cfg
+++ b/config/nimdoc.cfg
@@ -86,6 +86,7 @@ $moduledesc
$content
"""
+# * $analytics: Google analytics location, includes