about summary refs log blame commit diff stats
path: root/update_html
blob: 08e9a3f4113805ddccb6129d6b1c2e9847ab87f5 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { c
#!/usr/bin/zsh
# Regenerate html files.

rm html/**/*.html

process() {
  vim -c "TOhtml | w | qa" $1

  sed -i 's,<title>\~/mu/,<title>Mu - ,' $1.html
  sed -i 's,\.html</title>,</title>,' $1.html
  sed -i 's/^\*.*/* { font-size: 1.05em; }/g' $1.html
  # tweak contrast
  sed -i 's/^\.Constant .*/.Constant { color: #00a0a0; }/' $1.html
  sed -i 's/^\.muControl .*/.muControl { color: #c0a020; }/' $1.html
  sed -i 's/^\.Comment .*/.Comment { color: #9090ff; }/' $1.html
  sed -i 's/^\.Delimiter .*/.Delimiter { color: #a04060; }/' $1.html  # not meant to be read/ can be lower-contrast

  mv -i $1.html html/`dirname $1`
}

for f in *.cc *.mu edit/*.mu
do
  process $f
done
n>num ] container console [ current-event-index:num events:&:@:event ] def new-fake-console events:&:@:event -> result:&:console [ local-scope load-inputs result:&:console <- new console:type *result <- put *result, events:offset, events ] def read-event console:&:console -> result:event, found?:bool, quit?:bool, console:&:console [ local-scope load-inputs { break-unless console current-event-index:num <- get *console, current-event-index:offset buf:&:@:event <- get *console, events:offset { max:num <- length *buf done?:bool <- greater-or-equal current-event-index, max break-unless done? dummy:&:event <- new event:type return *dummy, true/found, true/quit } result <- index *buf, current-event-index current-event-index <- add current-event-index, 1 *console <- put *console, current-event-index:offset, current-event-index return result, true/found, false/quit } switch # real event source is infrequent; avoid polling it too much result:event, found?:bool <- check-for-interaction return result, found?, false/quit ] # variant of read-event for just keyboard events. Discards everything that # isn't unicode, so no arrow keys, page-up/page-down, etc. But you still get # newlines, tabs, ctrl-d.. def read-key console:&:console -> result:char, found?:bool, quit?:bool, console:&:console [ local-scope load-inputs x:event, found?:bool, quit?:bool, console <- read-event console return-if quit?, 0, found?, quit? return-unless found?, 0, found?, quit? c:char, converted?:bool <- maybe-convert x, text:variant return-unless converted?, 0, false/found, false/quit return c, true/found, false/quit ] def send-keys-to-channel console:&:console, chan:&:sink:char, screen:&:screen -> console:&:console, chan:&:sink:char, screen:&:screen [ local-scope load-inputs { c:char, found?:bool, quit?:bool, console <- read-key console loop-unless found? break-if quit? assert c, [invalid event, expected text] screen <- print screen, c chan <- write chan, c loop } chan <- close chan ] def wait-for-event console:&:console -> console:&:console [ local-scope load-inputs { _, found?:bool <- read-event console break-if found? switch loop } ] def has-more-events? console:&:console -> result:bool [ local-scope load-inputs return-if console, false # fake events are processed as soon as they arrive result <- interactions-left? ]