4.6 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
Install Dependencies
- curl
Build
$SHELL cinera.c
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_PROJECT__ -->
the project's full name<!-- __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
-s <style>
Set the style / theme, corresponding to a cinera__*.css file
This is equal to the "project" field in the HMML files by default
-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")
-v
display version and exit
-h
display this help
Environment Variables
CINERA_MODE=INTEGRATE
Enable integration