{ "Templates": { "html": ''' <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="/main.css" rel="stylesheet"> </head> <body> <header> <nav class="navbar"> <ul class="navbar-nav"> <li class="nav-item"> <a href="/">Home</a> </li> <li class="nav-item"> <a href="/touch">Touch</a> </li> <li class="nav-item"> <a href="/blog">Blog</a> </li> <li class="nav-item"> <a href="/play">Play</a> </li> </ul> </nav> </header> <main class="site"> {{template "children" .}} </main> </body> </html> {{define "HTMLAttributes"}}{{with .Data}}{{with .Attributes}} {{attributesToHTML .}}{{end}}{{end}}{{end}} {{define "children"}} {{- range $c := elementChildren . -}} {{- dynamicTemplate $c.Element $c -}} {{- end -}} {{end}} ''' }, "Elements": { "Note": { "Type": "walled", "Delimiter": "*", "Templates": { "html": ''' <aside class="note" {{- template "HTMLAttributes" .}}> {{template "children" .}} </aside> ''' } }, "CodeBlock": { "Type": "fenced", "Delimiter": "`", "Templates": { "html": ''' <pre class="codeblock" {{- template "HTMLAttributes" .}}><code {{- with .Data.openingText}} lang="{{.}}"{{end}}> {{- template "children" . -}} </code></pre> ''' } }, "Time": { "Type": "verbatimLine", "Delimiter": ".time", "Templates": { "html": ''' <time {{- template "HTMLAttributes" .}}>{{trimSpacing .TextContent}}</time> ''' } }, "ThematicBreak": { "Type": "verbatimLine", "Delimiter": "---", "Templates": { "html": ''' <hr {{- template "HTMLAttributes" .}}> ''' } }, "TableOfContents": { "Type": "hanging", "Delimiter": ".toc", "Templates": { "html": ''' <div {{- template "HTMLAttributes" .}}> <p>{{template "children" .}}</p> {{template "grouper" global.aggregates.numberedHeadings.Group}} </div> {{define "grouper"}} <ul> {{range .}} {{if eq (printf "%T" .) "sequentialnumber.group"}} {{template "grouper" .}} {{else}} <li> <a href="#{{.ID}}">{{.SequentialNumber}} {{.Text}}</a> </li> {{end}} {{end}} </ul> {{end}} ''' } } }, "Aggregates": { "numberedHeadings": { "Type": "sequentialNumber", "Elements": ["NumberedHeading"] } } }