Mostly get analytics working for docs
This commit is contained in:
parent
ea4160b23f
commit
f9c93d23bc
4 changed files with 33 additions and 4 deletions
|
|
@ -23,6 +23,7 @@ type
|
|||
id: int # for generating IDs
|
||||
toc, section: TSections
|
||||
indexValFilename: string
|
||||
gaId: string # Google Analytics ID, null if doesn't exist
|
||||
seenSymbols: StringTableRef # avoids duplicate symbol generation for HTML.
|
||||
|
||||
PDoc* = ref TDocumentor ## Alias to type less.
|
||||
|
|
@ -61,6 +62,8 @@ 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.gaId = config["doc.googleAnalytics"]
|
||||
result.seenSymbols = newStringTable(modeCaseInsensitive)
|
||||
result.id = 100
|
||||
|
||||
|
|
@ -534,6 +537,7 @@ proc genOutFile(d: PDoc): PRope =
|
|||
var
|
||||
code, content: PRope
|
||||
title = ""
|
||||
analytics = ""
|
||||
var j = 0
|
||||
var tmp = ""
|
||||
renderTocEntries(d[], j, 1, tmp)
|
||||
|
|
@ -553,6 +557,21 @@ proc genOutFile(d: PDoc): PRope =
|
|||
# Modules get an automatic title for the HTML, but no entry in the index.
|
||||
title = "Module " & extractFilename(changeFileExt(d.filename, ""))
|
||||
|
||||
# if there exists an analytics id, use it
|
||||
if d.gaId != nil:
|
||||
analytics = """
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '$1', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
""" % [d.gaId]
|
||||
|
||||
let bodyname = if d.hasToc: "doc.body_toc" else: "doc.body_no_toc"
|
||||
content = ropeFormatNamedVars(getConfigVar(bodyname), ["title",
|
||||
"tableofcontents", "moduledesc", "date", "time", "content"],
|
||||
|
|
@ -562,10 +581,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, analytics.toRope])
|
||||
else:
|
||||
code = content
|
||||
result = code
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue