golit progress
This commit is contained in:
parent
1b74499f1f
commit
c90760c285
144
style/book.css
144
style/book.css
@ -1,9 +1,55 @@
|
||||
/* Reset */
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, ruby, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
|
||||
line-height: 1;
|
||||
}
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
/* Typography and Layout */
|
||||
body {
|
||||
font-family: 'Book Antiqua';
|
||||
font-size: 15px;
|
||||
line-height: 20px;
|
||||
color: #252519;
|
||||
margin: 0; padding: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
a {
|
||||
color: #261a3b;
|
||||
@ -12,119 +58,59 @@ a {
|
||||
color: #261a3b;
|
||||
}
|
||||
p {
|
||||
margin: 0 0 15px 0;
|
||||
margin: 0 0 20px 0;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0px 0 15px 0;
|
||||
margin: 0px 0 20px 0;
|
||||
}
|
||||
h1 {
|
||||
margin-top: 40px;
|
||||
h2 {
|
||||
margin-top: 40px;
|
||||
font-size: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
hr {
|
||||
border: 0 none;
|
||||
border-top: 1px solid #e5e5ee;
|
||||
height: 1px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
#container {
|
||||
position: relative;
|
||||
}
|
||||
#background {
|
||||
position: fixed;
|
||||
top: 0; left: 525px; right: 0; bottom: 0;
|
||||
top: 0; left: 455px; right: 0; bottom: 0;
|
||||
background: #f5f5ff;
|
||||
border-left: 1px solid #e5e5ee;
|
||||
z-index: -1;
|
||||
}
|
||||
#jump_to, #jump_page {
|
||||
background: white;
|
||||
-webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777;
|
||||
-webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;
|
||||
font: 10px Arial;
|
||||
text-transform: uppercase;
|
||||
cursor: pointer;
|
||||
text-align: right;
|
||||
}
|
||||
#jump_to, #jump_wrapper {
|
||||
position: fixed;
|
||||
right: 0; top: 0;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
#jump_wrapper {
|
||||
padding: 0;
|
||||
display: none;
|
||||
}
|
||||
#jump_to:hover #jump_wrapper {
|
||||
display: block;
|
||||
}
|
||||
#jump_page {
|
||||
padding: 5px 0 3px;
|
||||
margin: 0 0 25px 25px;
|
||||
}
|
||||
#jump_page .source {
|
||||
display: block;
|
||||
padding: 5px 10px;
|
||||
text-decoration: none;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
#jump_page .source:hover {
|
||||
background: #f5f5ff;
|
||||
}
|
||||
#jump_page .source:first-child {
|
||||
}
|
||||
table td {
|
||||
border: 0;
|
||||
outline: 0;
|
||||
}
|
||||
td.docs, th.docs {
|
||||
td.docs {
|
||||
max-width: 350px;
|
||||
min-width: 350px;
|
||||
min-height: 5px;
|
||||
padding: 10px 25px 1px 50px;
|
||||
overflow-x: hidden;
|
||||
min-height: 5px; /* ? */
|
||||
padding: 0px 30px 0px 60px;
|
||||
overflow-x: hidden; /* ? */
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
}
|
||||
.docs pre {
|
||||
margin: 15px 0 15px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.docs p tt, .docs p code {
|
||||
background: #f8f8ff;
|
||||
border: 1px solid #dedede;
|
||||
font-size: 12px;
|
||||
padding: 0 0.2em;
|
||||
}
|
||||
.pilwrap {
|
||||
position: relative;
|
||||
}
|
||||
.pilcrow {
|
||||
font: 12px Arial;
|
||||
text-decoration: none;
|
||||
color: #454545;
|
||||
position: absolute;
|
||||
top: 3px; left: -20px;
|
||||
padding: 1px 2px;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
}
|
||||
td.docs:hover .pilcrow {
|
||||
opacity: 1;
|
||||
}
|
||||
td.code, th.code {
|
||||
padding: 14px 15px 16px 25px;
|
||||
td.code {
|
||||
padding: 0px 20px 0px 30px;
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
background: #f5f5ff;
|
||||
border-left: 1px solid #e5e5ee;
|
||||
}
|
||||
pre, tt, code {
|
||||
font-size: 12px; line-height: 18px;
|
||||
font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace;
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
font-family: Menlo;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Syntax Highlighting */
|
||||
td.linenos { background-color: #f0f0f0; padding-right: 10px; }
|
||||
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
|
||||
body .hll { background-color: #ffffcc }
|
||||
|
193
style/golit.html
Normal file
193
style/golit.html
Normal file
@ -0,0 +1,193 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-eqiv="content-type" content="text/html;charset=utf-8">
|
||||
<title>Page Title</title>
|
||||
<link rel=stylesheet href="book.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<div id="background"></div>
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr><td class=docs></td><td class=code></td></tr>
|
||||
</thead>
|
||||
<tbody><tr><td class=docs><h2>Line Filters</h2>
|
||||
</td><td class=code><div class="highlight"><pre><span class="c1">///</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Generate literate-programming style HTML
|
||||
documentation form Go source files.</p>
|
||||
</td><td class=code><div class="highlight"><pre><span class="k">package</span> <span class="n">main</span>
|
||||
|
||||
<span class="k">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"os/exec"</span>
|
||||
<span class="s">"regexp"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Recognize doc lines, extract their comment prefixes.</p>
|
||||
</td><td class=code><div class="highlight"><pre><span class="k">var</span> <span class="n">docsPat</span> <span class="p">=</span> <span class="n">regexp</span><span class="p">.</span><span class="n">MustCompile</span><span class="p">(</span><span class="s">"^\\s*\\/\\/\\s"</span><span class="p">)</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Abort on non-nil errors.</p>
|
||||
</td><td class=code><div class="highlight"><pre><span class="k">func</span> <span class="n">check</span><span class="p">(</span><span class="n">err</span> <span class="n">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="n">err</span> <span class="p">!=</span> <span class="n">nil</span> <span class="p">{</span>
|
||||
<span class="n">panic</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>For docs and code rendering: pipe source data
|
||||
through binary at path with given argv, return
|
||||
the output.</p>
|
||||
</td><td class=code><div class="highlight"><pre><span class="k">func</span> <span class="n">pipedCmd</span><span class="p">(</span><span class="n">path</span> <span class="nb">string</span><span class="p">,</span> <span class="n">argv</span> <span class="p">[]</span><span class="nb">string</span><span class="p">,</span> <span class="n">source</span> <span class="nb">string</span><span class="p">)</span> <span class="nb">string</span> <span class="p">{</span>
|
||||
<span class="n">cmd</span> <span class="p">:=</span> <span class="n">exec</span><span class="p">.</span><span class="n">Command</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">argv</span><span class="p">...)</span>
|
||||
<span class="n">in</span><span class="p">,</span> <span class="n">err</span> <span class="p">:=</span> <span class="n">cmd</span><span class="p">.</span><span class="n">StdinPipe</span><span class="p">()</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">out</span><span class="p">,</span> <span class="n">err</span> <span class="p">:=</span> <span class="n">cmd</span><span class="p">.</span><span class="n">StdoutPipe</span><span class="p">()</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">err</span> <span class="p">=</span> <span class="n">cmd</span><span class="p">.</span><span class="n">Start</span><span class="p">()</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">in</span><span class="p">.</span><span class="n">Write</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="n">source</span><span class="p">))</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">err</span> <span class="p">=</span> <span class="n">in</span><span class="p">.</span><span class="n">Close</span><span class="p">()</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">bytes</span><span class="p">,</span> <span class="n">err</span> <span class="p">:=</span> <span class="n">ioutil</span><span class="p">.</span><span class="n">ReadAll</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">err</span> <span class="p">=</span> <span class="n">cmd</span><span class="p">.</span><span class="n">Wait</span><span class="p">()</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="nb">string</span><span class="p">(</span><span class="n">bytes</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>We'll break the code into {docs, code} pairs,
|
||||
and then render those text segments before
|
||||
including them in the HTML doc.</p>
|
||||
</td><td class=code><div class="highlight"><pre><span class="k">type</span> <span class="n">segment</span> <span class="k">struct</span> <span class="p">{</span>
|
||||
<span class="n">docs</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">docsRendered</span><span class="p">,</span> <span class="n">codeRendered</span> <span class="nb">string</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">func</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Accept exactly 1 argument - the input filename.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">os</span><span class="p">.</span><span class="n">Args</span><span class="p">)</span> <span class="p">!=</span> <span class="mi">2</span> <span class="p">{</span>
|
||||
<span class="n">fmt</span><span class="p">.</span><span class="n">Fprintln</span><span class="p">(</span><span class="n">os</span><span class="p">.</span><span class="n">Stderr</span><span class="p">,</span> <span class="s">"Usage: tool/generate input.go > output.html"</span><span class="p">)</span>
|
||||
<span class="n">os</span><span class="p">.</span><span class="n">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Ensure that we have <code>markdown</code> and <code>pygmentize</code>,
|
||||
binaries, remember their paths.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="n">markdownPath</span><span class="p">,</span> <span class="n">err</span> <span class="p">:=</span> <span class="n">exec</span><span class="p">.</span><span class="n">LookPath</span><span class="p">(</span><span class="s">"markdown"</span><span class="p">)</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">pygmentizePath</span><span class="p">,</span> <span class="n">err</span> <span class="p">:=</span> <span class="n">exec</span><span class="p">.</span><span class="n">LookPath</span><span class="p">(</span><span class="s">"pygmentize"</span><span class="p">)</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Read the source file in, split into lines.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="n">sourceBytes</span><span class="p">,</span> <span class="n">err</span> <span class="p">:=</span> <span class="n">ioutil</span><span class="p">.</span><span class="n">ReadFile</span><span class="p">(</span><span class="n">os</span><span class="p">.</span><span class="n">Args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
|
||||
<span class="n">check</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">lines</span> <span class="p">:=</span> <span class="n">strings</span><span class="p">.</span><span class="n">Split</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="n">sourceBytes</span><span class="p">),</span> <span class="s">"\n"</span><span class="p">)</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Group lines into docs/code segments.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="n">segments</span> <span class="p">:=</span> <span class="p">[]*</span><span class="n">segment</span><span class="p">{}</span>
|
||||
<span class="n">segments</span> <span class="p">=</span> <span class="n">append</span><span class="p">(</span><span class="n">segments</span><span class="p">,</span> <span class="p">&</span><span class="n">segment</span><span class="p">{</span><span class="n">code</span><span class="p">:</span> <span class="s">""</span><span class="p">,</span> <span class="n">docs</span><span class="p">:</span> <span class="s">""</span><span class="p">})</span>
|
||||
<span class="n">lastLine</span> <span class="p">:=</span> <span class="s">""</span>
|
||||
<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">line</span> <span class="p">:=</span> <span class="k">range</span> <span class="n">lines</span> <span class="p">{</span>
|
||||
<span class="n">head</span> <span class="p">:=</span> <span class="n">segments</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">segments</span><span class="p">)-</span><span class="mi">1</span><span class="p">]</span>
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Doc line - trim off the comment markers.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="k">if</span> <span class="p">(</span><span class="n">line</span> <span class="p">==</span> <span class="s">""</span> <span class="p">&&</span> <span class="n">lastLine</span> <span class="p">==</span> <span class="s">"docs"</span><span class="p">)</span> <span class="p">||</span> <span class="n">docsPat</span><span class="p">.</span><span class="n">MatchString</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="n">trimLine</span> <span class="p">:=</span> <span class="n">docsPat</span><span class="p">.</span><span class="n">ReplaceAllString</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="s">""</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="p">!(</span><span class="n">lastLine</span> <span class="p">==</span> <span class="s">"code"</span> <span class="p">&&</span> <span class="n">head</span><span class="p">.</span><span class="n">docs</span> <span class="p">!=</span> <span class="s">""</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="n">head</span><span class="p">.</span><span class="n">docs</span> <span class="p">=</span> <span class="n">head</span><span class="p">.</span><span class="n">docs</span> <span class="p">+</span> <span class="s">"\n"</span> <span class="p">+</span> <span class="n">trimLine</span>
|
||||
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
||||
<span class="n">segments</span> <span class="p">=</span> <span class="n">append</span><span class="p">(</span><span class="n">segments</span><span class="p">,</span> <span class="p">&</span><span class="n">segment</span><span class="p">{</span><span class="n">docs</span><span class="p">:</span> <span class="n">trimLine</span><span class="p">,</span> <span class="n">code</span><span class="p">:</span> <span class="s">""</span><span class="p">})</span>
|
||||
<span class="p">}</span>
|
||||
<span class="n">lastLine</span> <span class="p">=</span> <span class="s">"docs"</span>
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Code line - preserve all whitespace.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">!(</span><span class="n">lastLine</span> <span class="p">==</span> <span class="s">"docs"</span> <span class="p">&&</span> <span class="n">head</span><span class="p">.</span><span class="n">code</span> <span class="p">!=</span> <span class="s">""</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="n">head</span><span class="p">.</span><span class="n">code</span> <span class="p">=</span> <span class="n">head</span><span class="p">.</span><span class="n">code</span> <span class="p">+</span> <span class="s">"\n"</span> <span class="p">+</span> <span class="n">line</span>
|
||||
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
||||
<span class="n">segments</span> <span class="p">=</span> <span class="n">append</span><span class="p">(</span><span class="n">segments</span><span class="p">,</span> <span class="p">&</span><span class="n">segment</span><span class="p">{</span><span class="n">docs</span><span class="p">:</span> <span class="s">""</span><span class="p">,</span> <span class="n">code</span><span class="p">:</span> <span class="n">line</span><span class="p">})</span>
|
||||
<span class="p">}</span>
|
||||
<span class="n">lastLine</span> <span class="p">=</span> <span class="s">"code"</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Render docs via <code>markdown</code> and code via
|
||||
<code>pygmentize</code> in each segment.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">seg</span> <span class="p">:=</span> <span class="k">range</span> <span class="n">segments</span> <span class="p">{</span>
|
||||
<span class="n">seg</span><span class="p">.</span><span class="n">docsRendered</span> <span class="p">=</span> <span class="n">pipedCmd</span><span class="p">(</span><span class="n">markdownPath</span><span class="p">,</span> <span class="p">[]</span><span class="nb">string</span><span class="p">{},</span> <span class="n">seg</span><span class="p">.</span><span class="n">docs</span><span class="p">)</span>
|
||||
<span class="n">seg</span><span class="p">.</span><span class="n">codeRendered</span> <span class="p">=</span> <span class="n">pipedCmd</span><span class="p">(</span><span class="n">pygmentizePath</span><span class="p">,</span> <span class="p">[]</span><span class="nb">string</span><span class="p">{</span><span class="s">"-l"</span><span class="p">,</span> <span class="s">"go"</span><span class="p">,</span> <span class="s">"-f"</span><span class="p">,</span> <span class="s">"html"</span><span class="p">},</span> <span class="n">seg</span><span class="p">.</span><span class="n">code</span> <span class="p">+</span> <span class="s">" "</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Print HTML header.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="n">fmt</span><span class="p">.</span><span class="n">Print</span><span class="p">(</span><span class="s">`</span>
|
||||
<span class="s"><!DOCTYPE html></span>
|
||||
<span class="s"><html></span>
|
||||
<span class="s"> <head></span>
|
||||
<span class="s"> <meta http-eqiv="content-type" content="text/html;charset=utf-8"></span>
|
||||
<span class="s"> <title>Page Title</title></span>
|
||||
<span class="s"> <link rel=stylesheet href="book.css"></span>
|
||||
<span class="s"> </head></span>
|
||||
<span class="s"> <body></span>
|
||||
<span class="s"> <div id="container"></span>
|
||||
<span class="s"> <div id="background"></div></span>
|
||||
<span class="s"> <table cellspacing="0" cellpadding="0"></span>
|
||||
<span class="s"> <thead></span>
|
||||
<span class="s"> <tr><td class=docs></td><td class=code></td></tr></span>
|
||||
<span class="s"> </thead></span>
|
||||
<span class="s"> <tbody>`</span><span class="p">)</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Print HTML docs/code segments.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">seg</span> <span class="p">:=</span> <span class="k">range</span> <span class="n">segments</span> <span class="p">{</span>
|
||||
<span class="n">fmt</span><span class="p">.</span><span class="n">Printf</span><span class="p">(</span><span class="s">"<tr><td class=docs>%s</td><td class=code>%s</td></tr>\n"</span><span class="p">,</span> <span class="n">seg</span><span class="p">.</span><span class="n">docsRendered</span><span class="p">,</span> <span class="n">seg</span><span class="p">.</span><span class="n">codeRendered</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
<tr><td class=docs><p>Print HTML footer.</p>
|
||||
</td><td class=code><div class="highlight"><pre> <span class="n">fmt</span><span class="p">.</span><span class="n">Print</span><span class="p">(</span><span class="s">`</span>
|
||||
<span class="s"> </tbody></span>
|
||||
<span class="s"> </table></span>
|
||||
<span class="s"> </div></span>
|
||||
<span class="s"> </body></span>
|
||||
<span class="s"></html></span>
|
||||
<span class="s">`</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,6 +1,7 @@
|
||||
// ## golit
|
||||
// ## Line Filters
|
||||
///
|
||||
|
||||
// Generate literate-programming style HTTML
|
||||
// Generate literate-programming style HTML
|
||||
// documentation form Go source files.
|
||||
|
||||
package main
|
||||
@ -99,10 +100,10 @@ func main() {
|
||||
}
|
||||
|
||||
// Render docs via `markdown` and code via
|
||||
// `pygmentize`in each segment.
|
||||
// `pygmentize` in each segment.
|
||||
for _, seg := range segments {
|
||||
seg.docsRendered = pipedCmd(markdownPath, []string{}, seg.docs)
|
||||
seg.codeRendered = pipedCmd(pygmentizePath, []string{"-l", "go", "-f", "html"}, seg.code)
|
||||
seg.codeRendered = pipedCmd(pygmentizePath, []string{"-l", "go", "-f", "html"}, seg.code + " ")
|
||||
}
|
||||
|
||||
// Print HTML header.
|
||||
|
Loading…
x
Reference in New Issue
Block a user