Inspired by the non-centralised, tentacular cognition capabilities of the octopus, we imagined a space in which the artificial boundaries of writing and designing can be crossed; where writing, editing and designing can be done in one environment simultaneously, allowing the format to influence the matter and vice-versa.
While operating *in octomode*, we write/design collectively using an online real-time text editor called Etherpad. Etherpad is a free and open source tool that uses synchronization algorithms to merge our textual/design changes together. We use the word "pad" to refer to one single Etherpad document. Each change that is made on a pad is called a "changeset", which holds information about each character that is added and deleted, or each word that is turned into bold or italic. The changesets follow us while we write and think together, taking care of a kind of collectivity where we work towards *one* outcome together.
While operating *in octomode* we work collectively in the sense of: sharing the same environment, blurring boundaries between roles and merging authorship, to become one tentacular entity.
If you want to work collectively on making a PDF, you can use octomode. There is an instance installed here: <https://octomode.vvvvvvaria.org/>. You can write any name of in the input field, this will create a new octomode environment.
*`pad`: all materials for the PDF are collected here. (written in Markdown)
*`stylesheet`: all CSS rules for the PDF are collected here (written in CSS)
*`html`: render the lay out as a HTML (rendered with PyPandoc)
*`pdf`: render the lay out as a PDF (rendered with Paged.js)
When creating a new environment, a few things happen:
* a pad is created for collecting the materials of your PDF. The name of the octomode environment will become the name of this pad. For example: `http://pad.vvvvvvaria.org/NAME.md`.
* another pad is created for writing the stylesheet of your PDF. The name of the octomode environment will become the name of this pad, followed by .css. For example: `https://pad.vvvvvvaria.org/NAME.css`
* If both pads were not created yet, a template is added to the pad. The main pad will get a Markdown template and the stylesheet pad a CSS template.
In case a pad was already made, you can copy the templates below and paste them at the top of your pads.
The PDFs are rendered using [Paged.js](https://pagedjs.org/), a free and open source JavaScript library "that paginates content in the browser to create PDF output from any HTML content. This means you can design works for print (eg. books) using HTML and CSS!" The project is maintained by the [Coko Foundation](https://coko.foundation/). Paged.js adds features to the CSS3 standards, expanding the possibilities to make lay outs for specific sections, place content in the margins of pages, and render indexes (amonst other things). The documentation is very ufesul and can be found here: <https://pagedjs.org/documentation/>.
When working with multiple people on one PDF it is recommended to use the same browser. CSS rules are rendered slightly differently on different browsers.
* To keep the flask application running in the background: add a new config to supervisor (`cp /etc/supervisor/conf.d/previousexample.conf /etc/supervisor/conf.d/new.conf`)