summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2018-01-03 04:27:49 -0800
committeriximeow <me@iximeow.net>2018-01-03 04:27:49 -0800
commitb2074b0f9c3f0def3d6d66ef9b91d69bdd6a19ad (patch)
treed79007c8175fb2090eeb0ac6223a9c463c22f91c
parentef04a36884d3dac175577f46d0807e3b4ff4c0f0 (diff)
add pandoc styling, adjust template
template was indented, resulting in weirdness about <pre> content. insert a newline before adding #include'd content try to decode read lines as utf-8 and report error if any do *not* try to decode for output, just let python deal with it (writing unicode strings causes issues because python may try to write multi-byte codepoints by converting to a byte, then throwing due to out of range values)
-rw-r--r--content_template.pandoc113
-rw-r--r--generator/generate.py10
2 files changed, 89 insertions, 34 deletions
diff --git a/content_template.pandoc b/content_template.pandoc
index 589eb25..d748c4a 100644
--- a/content_template.pandoc
+++ b/content_template.pandoc
@@ -14,7 +14,8 @@
margin: auto;
width: 80%
}
- /* colors pulled from my current terminal config */
+ /* colors pulled from my current terminal config.
+ applicable for aha-rendered ANSI text */
.codebox .black { color: #2e3436; }
.codebox .red { color: #cc0000; }
.codebox .green { color: #4e9a06; }
@@ -31,6 +32,52 @@
/* terminal background */
background: #171717;
}
+
+ /* pandoc's default styling colors pre, but we don't need that */
+ .sourceCode { background-color: transparent; }
+ /*
+ DataTypeTok
+ classes, types, etc
+ */
+ .sourceCode .dt { color: #4e9a06; }
+
+ /*
+ KeyWordTok
+ keywords. if, while, except, ...
+ */
+ .sourceCode .kw { color: #c4a000; }
+
+ /* the following five are usually the same color for any language */
+ /* decimal value, base N value, float */
+ .sourceCode .dv, .sourceCode .bn, .sourceCode .fl { color: #cc0000; }
+ /* strings */
+ .sourceCode .st { color: #cc0000; }
+ /* characters */
+ .sourceCode .ch { color: #cc0000; }
+
+ /* comments */
+ .sourceCode .co { color: #3465a4; }
+ /* other - dunno what this is! */
+ .sourceCode .ot { color: #A57800; }
+ /* alert - dunno what this is but it's pretty red. maybe errors? */
+ .sourceCode .al { color: #CB4B16; font-weight: bold; }
+ /* function names - same as other text for now */
+ .sourceCode .fu { }
+ /* region marker - i think ony applicable for c#-like? */
+ .sourceCode .re { }
+ /* error token - how does this differ from alert? */
+ .sourceCode .er { color: #D30102; font-weight: bold; }
+
+ .header {
+ height: 128px;
+ color: #b0b0ff;
+ }
+
+ .button {
+ float: left;
+ width: 256px;
+ color: #00ff00;
+ }
</style>
$for(css)$
@@ -43,34 +90,38 @@
$header-includes$
$endfor$
</head>
- <body>
- $for(include-before)$
- $include-before$
- $endfor$
- $if(title)$
- <div id="$idprefix$header">
- <h1 class="title">$title$</h1>
- $if(subtitle)$
- <h1 class="subtitle">$subtitle$</h1>
- $endif$
- $for(author)$
- <h2 class="author">$author$</h2>
- $endfor$
- $if(date)$
- <h3 class="date">$date$</h3>
- $endif$
- </div>
- $endif$
- $if(toc)$
- <div id="$idprefix$TOC">
- $toc$
- </div>
- $endif$
- <div class="content">
- $body$
- </div>
- $for(include-after)$
- $include-after$
- $endfor$
- </body>
+<body>
+<div class="header">
+<span class="button">writing index</span>
+<span class="button">main index</span>
+</div>
+$for(include-before)$
+$include-before$
+$endfor$
+$if(title)$
+<div id="$idprefix$header">
+<h1 class="title">$title$</h1>
+$if(subtitle)$
+<h1 class="subtitle">$subtitle$</h1>
+$endif$
+$for(author)$
+<h2 class="author">$author$</h2>
+$endfor$
+$if(date)$
+<h3 class="date">$date$</h3>
+$endif$
+</div>
+$endif$
+$if(toc)$
+<div id="$idprefix$TOC">
+$toc$
+</div>
+$endif$
+<div class="content">
+$body$
+</div>
+$for(include-after)$
+$include-after$
+$endfor$
+</body>
</html>
diff --git a/generator/generate.py b/generator/generate.py
index 494ad0c..7d64f6e 100644
--- a/generator/generate.py
+++ b/generator/generate.py
@@ -14,7 +14,7 @@ def replace_references(lines, file_dir):
try:
f = open(filepath)
content = f.read()
- result = result + content
+ result = result + '\n' + content
except Exception as err:
print("Error reading file {}:{}".format(filepath, str(err)))
return None
@@ -32,7 +32,11 @@ def replace_references(lines, file_dir):
return None
else:
# just include the line!
- result = result + line
+ try:
+ result = result + line.decode("utf-8")
+ except Exception as e:
+ print("Error processing line {}:\n {}\nError: {}".format(i, line, e))
+ return None
return result
if __name__ == "__main__":
@@ -73,7 +77,7 @@ if __name__ == "__main__":
if not os.path.isdir(dest_wd):
os.makedirs(dest_wd)
out_file = open(compiled_dest, 'w')
- out_file.write(html.decode('utf-8'))
+ out_file.write(html)
out_file.close()
except IOError as ioerr:
print("Unknown error writing result: " + str(ioerr))