4.4 KiB
Fair warning: This is all under development and not yet packaged up for easy deployment
cinera
Download, and prepare the parser
git clone git@gitssh.handmade.network:Annotation-Pushers/Annotation-System.git
cd Annotation-System/hmmlib
make
cp hmml.a hmmlib.h ../cinera/
cd ../cinera/
Note: For each parser update, remember to make and copy it into place
Build
zsh cinera.c
(replacing zsh with your shell as appropriate)
Run
Single Edition operation
cinera test.hmml
This simply generates an HTML file (and updates cinera_topics.css
if needed)
from test.hmml
and outputs to out.html
Project Edition operation
cinera -p ProjectID
Setting the ProjectID with the -p
flag triggers Project Edition. In this
edition cinera
monitors the Project Input Directory for new, edited and
deleted .hmml files, and generates one table of contents / search page and a
player page each for valid sets of annotations (or removes them, if needed).
By default all directories - input and output - are set to the current working directory. Typical operation will involve setting these flags:
-d Project Input Directory, the directory where the .hmml files reside
-r Root Directory, path shallower than or equal to the CSS, Images and JS
directories
-u Root URL, corresponding to the Root Directory (optional if the Output
Base Directory resides in the Root Directory)
-b Output Base Directory, location of the table of contents / search page
-t Player Template Location
-x Index Template Location
Integration
CINERA_MODE=INTEGRATE cinera test.hmml
This will integrate into template_player.html
(configurable with -t) the
player and related elements generated from test.hmml
and output to
out_integrated.html
Feel free to play with template_player.html
to your heart's content. If you do
anything invalid, cinera
will tell you what's wrong
Templates
Valid tags:
<!-- __CINERA_TITLE__ -->
the day / episode name, intended to be used inside your own<title>
element, but may be used wherever and as many times as you want on your page
Index Template
<!-- __CINERA_INCLUDES__ -->
the necessary.css
and.js
files<!-- __CINERA_INDEX__ -->
the table of contents, and search functionality
Player Template
<!-- __CINERA_INCLUDES__ -->
the necessary.css
and.js
files, and charset setting<!-- __CINERA_MENUS__ -->
_ the menu bar that typically appears above the player in my samples<!-- __CINERA_PLAYER__ -->
the player<!-- __CINERA_SCRIPT__ -->
the filter state objects and.js
file, which must come after both the MENUS and PLAYER tags
Arguments
Usage: ./cinera [option(s)] filename(s)
Options:
Paths:
-r <root directory>
Override default root directory (".")
-u <root URL>
Override default root URL ("")
-b <base output directory>
Override project's default base output directory (".")
-c <CSS directory path>
Override default CSS directory (""), relative to root
-i <images directory path>
Override default images directory (""), relative to root
-j <JS directory path>
Override default JS directory (""), relative to root
-t <player template location>
Override default player template location ("template_player.html"), relative to root
and automatically enable integration
-x <index template location>
Override default index template location ("template_index.html"), relative to root
and automatically enable integration
-o <output location>
Override default output player location for SINGLE_EDITION ("out.html")
-d <project directory>
Override default project directory (".")
-f
Force integration with an incomplete template
-p <project ID>
Set the project ID, corresponding to the "project" field in the HMML files
-l <n>
Override default log level (0), where n is from 0 (terse) to 7 (verbose)
-m <default medium>
Override default default medium ("programming")
-U <seconds>
Override default update interval ("4")
-h
display this help
Environment Variables
CINERA_MODE=INTEGRATE
Enable integration