go-org-orgwiki/etc/generate-gh-pages
Niklas Fasching 338dfae4f1 Remove goorgeous comparison
`go mod tidy` kept including goorgeous and blackfriday for me - turns out go
does not honor gitignore [1] and the correct way of ignoring a subdirectory is to
place an empty `go.mod` file in it [2]. As I haven't looked in that file for
quite some time and goorgeous has been deprecated let's rather just get rid of
the comparison altogether.

[1] the .go file requiring goorgeous was placed into `docs/`
    when running `make generate-gh-pages`. `docs/` is gitignored but not
    ignored by go
[2] https://github.com/golang/go/wiki/Modules#can-an-additional-gomod-exclude-unnecessary-content-do-modules-have-the-equivalent-of-a-gitignore-file
2022-05-31 14:31:31 +02:00

139 lines
3.1 KiB
Bash
Executable file

#!/bin/bash
set -eu
examples_style="
.source {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 1rem;
}
.org, .html {
border: 1px dashed grey;
padding: 1em;
overflow-x: auto;
}
.sections { margin-left: 2rem; }
.sections a { display: block; padding: 0.25em 0; }
.sections a:hover, .sections a:focus, .sections a:active { background: rgba(200, 200, 200, 0.2); }"
org_files=org/testdata/*.org
go_org_examples="
<h1>Sections</h1>
<style>$examples_style</style>
<ul class='sections'>"
for org_file in $org_files; do
name=$(basename $org_file)
go_org_examples+="<li><a id='toc-${name}' href='#${name}'>${name}</a>"
done
go_org_examples+="</ul><hr>"
for org_file in $org_files; do
echo generating content for $org_file
name=$(basename $org_file)
go_org_examples+="
<h2><a id='${name}' href='#toc-${name}'>${name}</a></h2>
<div class='source'>
<pre class='org'>$(sed 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g;' $org_file)</pre>
<div class='html'>$(./go-org render $org_file html-chroma)</div>
</div>"
done
convert="
<h1>Blorg</h1>
<a href=blorg/>example blorg output</a>
<h1>Convert</h1>
<button id='run' disabled='true' onclick='run()'>
RUN (initializing...)
</button>
or ctrl + return
<textarea id='input'>* Hello World</textarea>
<div id='output'></div>
<style>
#run {
background-color: #50CCDD;
border: none;
border-radius: 0.33em;
color: #FFF;
cursor: pointer;
font-weight: bold;
letter-spacing: 0.1em;
padding: 0.5em 1.5em;
}
#run:hover {
background-color: #40AACC;
outline: 0;
}
#run:disabled {
background-color: #AAA;
cursor: wait;
}
#input, #output {
display: block;
border: 1px dashed grey;
margin: 0.5em 0;
overflow: auto;
padding: 0.25em;
width: 100%;
}
#input { height: 30%; }
#output { max-height: 100%; }
</style>
<script src='wasm_exec.js'></script>
<script>
const go = new Go();
WebAssembly
.instantiateStreaming(fetch('main.wasm'), go.importObject)
.then((result) => go.run(result.instance),
(error) => {
const button = document.getElementById('run');
button.textContent = 'ERROR: (' + error + ')';
});
function initialized() {
const button = document.getElementById('run');
button.textContent = 'RUN';
button.removeAttribute('disabled');
}
document.getElementById('input').addEventListener('keydown', function(e) {
if (e.keyCode == 13 && e.ctrlKey) { // ctrl+enter
run();
e.preventDefault();
}
}, false)
</script>"
index="<html>
<head>
<style>$(cat etc/style.css)</style>
</head>
<body>
$convert
$go_org_examples
</body>
</html>"
convert="<html>
<head>
<style>$(cat etc/style.css)</style>
</head>
<body>
$convert
</body>
</html>"
rm -rf docs
mkdir docs
echo "$index" > docs/index.html
echo "$convert" > docs/convert.html
cp etc/_wasm.go docs/wasm.go
GOOS=js GOARCH=wasm go build -o docs/main.wasm docs/wasm.go
cp $(go env GOROOT)/misc/wasm/wasm_exec.js docs/wasm_exec.js
mkdir -p docs/blorg
cp -r blorg/testdata/public/* docs/blorg/