Fair warning: This is all under development and not yet packaged up for easy deployment ## Cinera ### Install the dependencies 1. flex (for hmmlib) 2. curl (for 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. ### 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 Asset Root Directory, path shallower than or equal to the CSS, Images and JS directories -R Asset Root URL, corresponding to 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 Search Template Location, relative to Template Directory -y Player Template Location, relative to Template Directory #### Templates *Search Template* - `` _to put inside your own ``_ - `` _the table of contents and search functionality_ *Player Template* - `` _to put inside your own ``_ - `` - `` - `` _must come after `` and ``_ *Optional tags available for use in your Player Template* - `` - `` - `` *Other tags available for use in either template* - Asset tags: - `` General purpose tag that outputs the URL of the specified asset relative to the Asset Root URL (-R) - `` General purpose tag that outputs the URL of the specified asset relative to the Images Directory (-i) - `` Convenience tag that outputs a node for the specified asset relative to the CSS Directory (-c), for use inside your block - `` Convenience tag that outputs a