about summary refs log blame commit diff stats
path: root/update_html
blob: 0717a979fb50b3c442fbb9f7c3ad310d6d99d9c4 (plain) (tree)
1
2
3
4
5
6
7
8
           

                        

      
                               
           
                                                   


                                                

                                                                    


                                                                          
                                                                       



                                                                              

                                                                    

                                                                                                                          

                                                                                                                   
                                                                                           
                                                                                         
 





                                                                                           


                                 



                      


              





                                                                         
 










                                               
 

                       
                      









                                          
      
           
                                           
   

                                               


                
 





                     
                                                                                                           






                                            

                      
#!/bin/bash
# Regenerate html files.

set -e

# convert a single file to html
process() {
  vim -c "set number" -c TOhtml -c write -c qall $1

  sed -i 's,<title>\~/mu/,<title>Mu - ,' $1.html
  sed -i 's,\.html</title>,</title>,' $1.html
  sed -i 's/^\* { \(.*\) }/* { font-size: 12pt; \1 }/g' $1.html
  sed -i 's/^body { \(.*\) }/body { font-size: 12pt; \1 }/g' $1.html
  # turn most code grey
  sed -i 's/#eeeeee/#aaaaaa/g' $1.html
  # ..so that we can use white for cross-links (underlining only on hover)
  sed -i '/^body {/ a  a:hover { text-decoration: underline; }' $1.html
  sed -i '/^body {/ a  a { color:#eeeeee; text-decoration: none; }' $1.html
  # line numbers are darker still
  sed -i 's/^\.LineNr .*/.LineNr { color: #444444; }/' $1.html  # line numbers
  # tweak contrast for remaining colors
  sed -i 's/^\.Constant .*/.Constant { color: #00a0a0; }/' $1.html
  sed -i 's/^\.muControl .*/.muControl { color: #c0a020; }/' $1.html
  # real links in comments continue to be the usual blue
  sed -i 's/^\.Comment .*/.Comment { color: #9090ff; }\n.Comment a { color:#0000ee; text-decoration:underline; }/' $1.html
  sed -i 's/^\.Delimiter .*/.Delimiter { color: #800080; }/' $1.html  # not meant to be read; can be lower-contrast
  sed -i 's/^\.PreProc .*/.PreProc { color: #800080; }/' $1.html  # not meant to be read; can be lower-contrast
  sed -i 's/^\.Identifier .*/.Identifier { color: #c0a020; }/' $1.html  # same as muControl
  sed -i 's/^\.Special .*/.Special { color: #c00000; }/' $1.html  # same as traceAbsent..

  # switch unicode characters around in the rendered html
  #   the ones we have in the source files render double-wide in html
  #   the ones we want in the html cause iTerm2 to slow down in alt-tabbing for some reason
  # the following commands give us the best of both worlds
  sed -i -e 's/┈/╌/g' -e 's/┊/╎/g' $1.html

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

( cd linkify; build; )

  rm html/*.cc.html
  for f in *.cc
  do
    process $f
  done
  ctags -x *.cc  |grep -v "^operator \| member \| variable "  > /tmp/tags
  linkify/linkify /tmp/tags html/*.cc.html
  for f in html/*.cc.html
  do
    mv $f.out $f
  done

  rm html/[0-9]*.mu.html
  for f in [0-9]*.mu
  do
    process $f
  done
  ctags -x [0-9]*.mu  > /tmp/tags
  linkify/linkify /tmp/tags html/[0-9]*.mu.html
  for f in html/[0-9]*.mu.html
  do
    mv $f.out $f
  done

  for f in [a-zA-Z]*.mu
  do
    rm -f html/$f.html
    process $f
    ctags -x [0-9]*.mu $f  > /tmp/tags
    linkify/linkify /tmp/tags html/$f.html
    mv html/$f.html.out html/$f.html
  done

  rm html/edit/*.html
  for f in edit/*.mu
  do
    process $f
  done
  ( cd edit
    ctags -x ../[0-9]*.mu *.mu  > /tmp/tags
  )
  linkify/linkify /tmp/tags html/edit/*.mu.html
  for f in html/edit/*.mu.html
  do
    mv $f.out $f
  done

  rm html/subx/*.html
  for f in subx/*.cc
  do
    process $f
  done
  ( cd subx
    ctags -x *.cc  |grep -v '^. '  > /tmp/tags  # don't hyperlink every 'i' to the integer register variant
  )
  linkify/linkify /tmp/tags html/subx/*.html
  for f in html/subx/*.cc.html
  do
    mv $f.out $f
  done

rm /tmp/tags
( cd linkify; clean; )