Fair warning: This is all under development and not yet packaged up for easy deployment ## Cinera ### Download, and prepare the parser 1. `git clone git@gitssh.handmade.network:Annotation-Pushers/Annotation-System.git` 2. `cd Annotation-System/hmmlib` 3. `make` 4. `cp hmml.a hmmlib.h ../cinera/` 5. `cd ../cinera/` Note: For each parser update, remember to make and copy it into place. ### Install the dependency 1. curl ### Build 1. `$SHELL cinera.c` ### Configure the server If you enforce a strict Content Security Policy and X-Frame-Options in your server configuration as recommended by [Security Headers](https://securityheaders.com/), you may enable _Cinera_ to function by making two small tweaks: add_header Content-Security-Policy "default-src … https://www.youtube.com https://s.ytimg.com"; add_header X-Frame-Options "ALLOW-FROM https://www.youtube.com"; Note: For more information about these and other security headers, see Scott Helme's articles [Content Security Policy - An Introduction](https://scotthelme.co.uk/content-security-policy-an-introduction/) and [Hardening your HTTP response headers](https://scotthelme.co.uk/hardening-your-http-response-headers/#x-frame-options). ### 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` (configurable with -o). #### 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 -R Root URL, corresponding to the Root Directory (optional if the Output Base Directory resides in the Root Directory) -c CSS Directory, relative to Root -i Images Directory, relative to Root -j JS Directory, relative to Root -b Output Base Directory, location of the table of contents / search page -B Output Base URL, corresponding to the Output Base Directory -t Template Directory -x Index Template Location, relative to Template Directory -y Player Template Location, relative to Template Directory #### Templates *Index Template* - `` _the necessary `.css` and `.js` files_ - `` _the table of contents, and search functionality_ *Player Template* - `` _the necessary `.css` and `.js` files, and charset setting_ - `` _ _the menu bar that typically appears above the player in my samples_ - `` _the player_ - `` _the filter state objects and `.js` file, which must come after both the MENUS and PLAYER tags_ *Optional tags available for use in your Player Template* - `` _the day / episode name, intended to be used inside your own `