<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://cc.practices.tools/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simoon</id>
	<title>Creative Crowds wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://cc.practices.tools/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simoon"/>
	<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/Special:Contributions/Simoon"/>
	<updated>2026-04-09T16:15:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Fonts&amp;diff=5543</id>
		<title>Fonts</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Fonts&amp;diff=5543"/>
		<updated>2026-03-21T12:08:36Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Hosted on CC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hosted elsewhere==&lt;br /&gt;
&lt;br /&gt;
* https://usemodify.com An aggregator made by Raphäel Bastide&lt;br /&gt;
* https://www.design-research.be/by-womxn/ Badass Libre fonts by womxn&lt;br /&gt;
* https://velvetyne.fr/ French Libre fonts type foundry&lt;br /&gt;
* http://osp.kitchen/foundry/ The foundry of Brussel&#039;s Open Source Publishing&lt;br /&gt;
* http://www.peter-wiegel.de/ Weird and wonderful letters (mostly script and display) made by font-dabbler Peter Wiegel, for his personal  foundry &amp;quot;Cat Fonts&amp;quot;&lt;br /&gt;
* https://justseeds.org/project/justseeds-open-type-project/ &amp;quot;The Justseeds Open Type Project creates open-access fonts for activists, organizers, and movement designers&amp;quot;&lt;br /&gt;
* https://typotheque.genderfluid.space/ The typotheque of Franco-Belgian collective Bye Bye Binary&lt;br /&gt;
&lt;br /&gt;
==Hosted on CC==&lt;br /&gt;
&lt;br /&gt;
https://cc.practices.tools/fonts/&lt;br /&gt;
&lt;br /&gt;
Typefaces and fonts that are installed on CC (often) come with pre-prepared stylesheets. To use these fonts, first import the relevant stylesheet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;@import url(&#039;https://path.to.the.stylesheet/stylesheet.css&#039;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an always under construction list of the fonts installed on CC:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! foundry !! typeface !! designer !! type !! families &amp;amp; styles || formats || licence || stylesheet&lt;br /&gt;
|-&lt;br /&gt;
| || All Con || Simon Browne || monospace, sans-serif || Regular, Bold, Extended, Big Dots, Monospace || .ttf || || https://cc.practices.tools/fonts/simoon/AC/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://authentic.website/ Authentic] || [https://authentic.website/sans Authentic Sans] || Christina Janus, Desmond Wong || sans-serif || 60, 90, 130, 150 (Regular &amp;amp; Condensed) || .otf, .woff, .woff2 || [http://www.wtfpl.net/ WTFPL] || https://cc.practices.tools/fonts/Authentic_Sans/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://typotheque.genderfluid.space Bye Bye Binary] || [https://typotheque.genderfluid.space/amiamie.html Amiamie] || Mirat Masson || sans-serif || Light, Regular, Bold, Italic || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/BBB/Amiamie-Typeface-main/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://typotheque.genderfluid.space Bye Bye Binary] || [https://typotheque.genderfluid.space/baskervvol.html Baskervvol] || Bye Bye Binary || serif || Base, Fondue || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/BBB/baskervvol/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://typotheque.genderfluid.space Bye Bye Binary] || [https://typotheque.genderfluid.space/poppins.html BBB-Poppins-TN] || Eugénie Bidaut &amp;amp; Camille°Circlude || sans-serif || Regular, Italic, Bold, Bold Italic || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/BBB/bbb-poppins-tn/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://typotheque.genderfluid.space Bye Bye Binary] || [https://typotheque.genderfluid.space/poppins.html Crozette] || Thais Cuny || decorative || Regular || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/BBB/crozette/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://typotheque.genderfluid.space Bye Bye Binary] || [https://typotheque.genderfluid.space/ductus-mono.html Ductus Mono] || Amélie Dumont || sans-serif, monospace || Regular, Calligraphic, Geometric || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/BBB/ductus-mono/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| || Computer Modern || Donald Knuth || sans, sans-serif, script, monospace || Bright, Bright_Semibold, Classical Serif Italic, Concrete, Sans, Sans Demi-Condensed, Serif, Serif Slanted, Typewriter Light, Typewriter Variable, Upright Italic || .eot, .woff, .ttf, .svg || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/Computer_Modern/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.collletttivo.it Collletttivo] || [https://www.collletttivo.it/typefaces/absans Absans] || Valerio Monopoli || sans-serif || Regular || .otf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/collletttivo/CLT-Absans/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.collletttivo.it Collletttivo] || [https://www.collletttivo.it/typefaces/necto-mono Necto Mono] || Marco Condello || monospace || Regular || .otf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/collletttivo/CLT-Necto_Mono/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.collletttivo.it Collletttivo] || [https://www.collletttivo.it/typefaces/ortica Ortica] || Ben Bovani || serif || Light, Regular, Bold, Angular || .otf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/collletttivo/CLT-Ortica/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| || [https://healtheweb.site/ Heal the Web] || Rainbow Unicorn &amp;amp; Jakub Kanior || sans-serif || A, B || .otf ||  [https://www.mozilla.org/en-US/MPL/2.0/FAQ/ MPL-2.0] || https://cc.practices.tools/fonts/HealTheWeb/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| || [https://usemodify.com/fonts/lucette/ Lucette] || Yann Linguinou || serif || Regular, Italic || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/Lucette/font/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [http://osp.kitchen/foundry/ OSP] || [http://osp.kitchen/foundry/crickx/ Crickx] || OSP || script, display || PubliFlourChrystelise, PubliFluorDroiteOuverte, PubliFluorDroiteOuverte, PubliFluorDroiteRush, PubliFluorNormale, PubliFluorNormaleOuverte, PubliFluorNormaleRush || .otf, .woff || [https://constantvzw.org/wefts/cc4r.en.html CC4R] || https://cc.practices.tools/fonts/OSP/Crickx/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| || [https://www.redaction.us/ Redaction] || Jeremy Mickel || serif || 10, 35, 50, 70, 90, 100 (Regular, Italic, Bold) || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/Redaction/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://velvetyne.fr/ Velvetyne] || [https://velvetyne.fr/fonts/degheest/ Degheest Family] || Ange Degheest, Camille Depalle, Eugénie Bidaut, Luna Delabre, Mandy Elbé, May Jolivet, Oriane Charvieux, Benjamin Gomez, Justine Herbel || pixel, monospace, sans-serif, serif || director regular, director light, director bold, director variable, abordage regular, basalte fond, basalte multicolor, basalte volume, equateur regular, ft88 bold, ft88 expanded, ft88 gothique, ft88 italic, ft88 regular, ft88 school, ft88 serif, latitude regular, louise regular || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/velvetyne/degheest-types/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://velvetyne.fr/ Velvetyne] || [https://gitlab.com/velvetyne/Happy-Times-at-the-IKOB Happy Times at the IKOB] || Lucas Le Bihan || serif || regular, bold, italic || .otf, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/velvetyne/happy-times-at-the-IKOB/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://velvetyne.fr/ Velvetyne] || Montchauve || Frank Adebiaye || modular titling fantasy || medium || .otf || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/velvetyne/montchauve/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
| [https://velvetyne.fr/ Velvetyne] || [https://github.com/CollectifWech/Savate Savate] || Collectif Wech || sans-serif || regular, italic || .eot, .svg, .ttf, .woff, .woff2 || [https://openfontlicense.org/open-font-license-official-text/ OFL 1.1] || https://cc.practices.tools/fonts/velvetyne/savate/stylesheet.css&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Main_Page&amp;diff=5536</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Main_Page&amp;diff=5536"/>
		<updated>2026-02-27T10:25:52Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;margin-left:1em;&amp;quot;&amp;gt;&amp;lt;eplite id=&amp;quot;cc-conditions&amp;quot; show-chat=&amp;quot;false&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Creative-crowds-cc.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Welcome to CC, a shared server currently maintained by Simon, Manetta and Doriane from Rotterdam/Brussels. &lt;br /&gt;
&lt;br /&gt;
With CC we explore how community gathers around specific experimental publishing tools, how hosted tools can be prototyped for activist collectivities, and how we can question and participate in a discourse around practices and tools.&lt;br /&gt;
&lt;br /&gt;
CC is currently hosting the following things:&lt;br /&gt;
&lt;br /&gt;
* [https://cc.practices.tools/octomode/ octomode] is running&lt;br /&gt;
* [[Wiki-to-print|wiki-to-print]] is configured for use&lt;br /&gt;
* [https://cc.practices.tools/etherdot/ etherdot] is stitching&lt;br /&gt;
* [https://cc.practices.tools/pad/ pads]&lt;br /&gt;
* [https://cc.practices.tools/fonts/ fonts]&lt;br /&gt;
* [https://cc.practices.tools/traces/ traces]&lt;br /&gt;
* [[Cobbled-paths|cobbled paths]] (not yet)&lt;br /&gt;
* this wiki&lt;br /&gt;
&lt;br /&gt;
If you want, you can sign the &#039;&#039;&#039;collective calendar&#039;&#039;&#039; (on the right) as a way to collect server presences together. Under the calendar you can find the &#039;&#039;&#039;CC-collective conditions for use&#039;&#039;&#039; we formulated, which is something we consider to be in flux.&lt;br /&gt;
&lt;br /&gt;
You can write us at: [mailto:cc@practices.tools cc@practices.tools]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;columns:2;column-gap:5mm;column-fill:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A recent change==&lt;br /&gt;
&lt;br /&gt;
[[File:So-you-decided-to-make-a-zine-in-octomode.pdf|200px|thumb|left|Zine made by Simon during the Des*gn Week in Linz, November 2025]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;display:block;border:0;background:linear-gradient(yellow,white);padding:0.5em;margin:1em 0 0.5em;border-radius:25px 0 0 0;&amp;quot;&amp;gt;CC currently hosts...&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==This wiki==&lt;br /&gt;
&lt;br /&gt;
We use this wiki as a working environment to produce publications with, organise the collective CC server maintenance work, and document things we do.&lt;br /&gt;
&lt;br /&gt;
==octomode==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/octomode/&amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;more info&#039;&#039;&#039;: [[Octomode|octomode]] &amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;git repo&#039;&#039;&#039;: https://git.vvvvvvaria.org/CC/octomode&lt;br /&gt;
&lt;br /&gt;
Octomode is a collective editing space for PDF making, using Etherpad, Paged.js and Flask.&lt;br /&gt;
&lt;br /&gt;
The version installed on CC is open for use but it is password protected, reach out to us to ask for it, we share the password in an open ended network of trusted-peers and trusted-peers-of-peers.&lt;br /&gt;
&lt;br /&gt;
[[File:Rwx-octo5.svg|200px]]&lt;br /&gt;
[[File:Read-write-execute-octo-mode.png|200px]]&lt;br /&gt;
[[File:Octo-hands.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==wiki-to-print==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/wiki/Pdf:Unfolding&amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;more info&#039;&#039;&#039;: [[wiki-to-print]] &amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;git repo&#039;&#039;&#039;: https://git.vvvvvvaria.org/CC/wiki-to-print&lt;br /&gt;
&lt;br /&gt;
Wiki-to-print is a collective publishing environment that hooks into wiki practices and cultures. It uses MediaWiki software, CCS Print rules and Paged.js, to render a preview of the PDF in the browser.&lt;br /&gt;
&lt;br /&gt;
The version installed on CC is internally used. But if you&#039;re curious to try it, let us know.&lt;br /&gt;
&lt;br /&gt;
[[File:Wiki-to-print.gv.svg|200px]]&lt;br /&gt;
&lt;br /&gt;
==pads==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/pads/&lt;br /&gt;
&lt;br /&gt;
Pads on CC are open for use for things related to CC in some way.&lt;br /&gt;
&lt;br /&gt;
==fonts==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/fonts/&amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;more info&#039;&#039;&#039;: [[Fonts]]&lt;br /&gt;
&lt;br /&gt;
We are hosting a very adhocly selected list of fonts to use them in web-to-print projects.&lt;br /&gt;
&lt;br /&gt;
==traces==&lt;br /&gt;
&lt;br /&gt;
→  &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/traces/&lt;br /&gt;
&lt;br /&gt;
Here we collect traces of our practices crossing with CC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Main_Page&amp;diff=5535</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Main_Page&amp;diff=5535"/>
		<updated>2026-02-27T10:18:37Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;margin-left:1em;&amp;quot;&amp;gt;&amp;lt;eplite id=&amp;quot;cc-conditions&amp;quot; show-chat=&amp;quot;false&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Creative-crowds-cc.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Welcome to CC, a shared server currently maintained by Simon, Manetta and Doriane from Rotterdam/Brussels. &lt;br /&gt;
&lt;br /&gt;
With CC we explore how community gathers around specific experimental publishing tools, how hosted tools can be prototyped for activist collectivities, and how we can question and participate in a discourse around practices and tools.&lt;br /&gt;
&lt;br /&gt;
CC is currently hosting the following things:&lt;br /&gt;
&lt;br /&gt;
* [https://cc.practices.tools/octomode/ octomode] is running&lt;br /&gt;
* [[Wiki-to-print|wiki-to-print]] is configured for use&lt;br /&gt;
* [https://cc.practices.tools/etherdot/ etherdot] is graphing&lt;br /&gt;
* [https://cc.practices.tools/pad/ pads]&lt;br /&gt;
* [https://cc.practices.tools/fonts/ fonts]&lt;br /&gt;
* [https://cc.practices.tools/traces/ traces]&lt;br /&gt;
* [[Cobbled-paths|cobbled paths]] (not yet)&lt;br /&gt;
* this wiki&lt;br /&gt;
&lt;br /&gt;
If you want, you can sign the &#039;&#039;&#039;collective calendar&#039;&#039;&#039; (on the right) as a way to collect server presences together. Under the calendar you can find the &#039;&#039;&#039;CC-collective conditions for use&#039;&#039;&#039; we formulated, which is something we consider to be in flux.&lt;br /&gt;
&lt;br /&gt;
You can write us at: [mailto:cc@practices.tools cc@practices.tools]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;columns:2;column-gap:5mm;column-fill:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A recent change==&lt;br /&gt;
&lt;br /&gt;
[[File:So-you-decided-to-make-a-zine-in-octomode.pdf|200px|thumb|left|Zine made by Simon during the Des*gn Week in Linz, November 2025]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;display:block;border:0;background:linear-gradient(yellow,white);padding:0.5em;margin:1em 0 0.5em;border-radius:25px 0 0 0;&amp;quot;&amp;gt;CC currently hosts...&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==This wiki==&lt;br /&gt;
&lt;br /&gt;
We use this wiki as a working environment to produce publications with, organise the collective CC server maintenance work, and document things we do.&lt;br /&gt;
&lt;br /&gt;
==octomode==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/octomode/&amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;more info&#039;&#039;&#039;: [[Octomode|octomode]] &amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;git repo&#039;&#039;&#039;: https://git.vvvvvvaria.org/CC/octomode&lt;br /&gt;
&lt;br /&gt;
Octomode is a collective editing space for PDF making, using Etherpad, Paged.js and Flask.&lt;br /&gt;
&lt;br /&gt;
The version installed on CC is open for use but it is password protected, reach out to us to ask for it, we share the password in an open ended network of trusted-peers and trusted-peers-of-peers.&lt;br /&gt;
&lt;br /&gt;
[[File:Rwx-octo5.svg|200px]]&lt;br /&gt;
[[File:Read-write-execute-octo-mode.png|200px]]&lt;br /&gt;
[[File:Octo-hands.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==wiki-to-print==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/wiki/Pdf:Unfolding&amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;more info&#039;&#039;&#039;: [[wiki-to-print]] &amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;git repo&#039;&#039;&#039;: https://git.vvvvvvaria.org/CC/wiki-to-print&lt;br /&gt;
&lt;br /&gt;
Wiki-to-print is a collective publishing environment that hooks into wiki practices and cultures. It uses MediaWiki software, CCS Print rules and Paged.js, to render a preview of the PDF in the browser.&lt;br /&gt;
&lt;br /&gt;
The version installed on CC is internally used. But if you&#039;re curious to try it, let us know.&lt;br /&gt;
&lt;br /&gt;
[[File:Wiki-to-print.gv.svg|200px]]&lt;br /&gt;
&lt;br /&gt;
==pads==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/pads/&lt;br /&gt;
&lt;br /&gt;
Pads on CC are open for use for things related to CC in some way.&lt;br /&gt;
&lt;br /&gt;
==fonts==&lt;br /&gt;
&lt;br /&gt;
→ &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/fonts/&amp;lt;br&amp;gt;&lt;br /&gt;
→ &#039;&#039;&#039;more info&#039;&#039;&#039;: [[Fonts]]&lt;br /&gt;
&lt;br /&gt;
We are hosting a very adhocly selected list of fonts to use them in web-to-print projects.&lt;br /&gt;
&lt;br /&gt;
==traces==&lt;br /&gt;
&lt;br /&gt;
→  &#039;&#039;&#039;URL&#039;&#039;&#039;: https://cc.practices.tools/traces/&lt;br /&gt;
&lt;br /&gt;
Here we collect traces of our practices crossing with CC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5532</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5532"/>
		<updated>2026-02-22T16:57:30Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates with the old filename that are still being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt; and download the files (make backups first)&lt;br /&gt;
&lt;br /&gt;
 $ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
 $ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
 $ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
 $ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt; and edit the template &amp;lt;code&amp;gt;pagedjs.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
4. Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=CC_to_do_list&amp;diff=5531</id>
		<title>CC to do list</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=CC_to_do_list&amp;diff=5531"/>
		<updated>2026-02-21T14:37:24Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A list of things to do==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;change email address associated with OVH (currently it&#039;s info@varia.zone)&amp;lt;/s&amp;gt;&lt;br /&gt;
** check if OVH offers backups, or makes one full disk copy with vorta/borg (manetta)&lt;br /&gt;
* &amp;lt;s&amp;gt;make servus account (manetta)&amp;lt;/s&amp;gt; -- paid first invoice (apr+may+jun = €90) on 13/06 (mb)&lt;br /&gt;
* &amp;lt;s&amp;gt;check our money status at Varia (simon)&amp;lt;/s&amp;gt;&lt;br /&gt;
* send email to CC users that we know with a hello and backup reminder&lt;br /&gt;
* &amp;lt;s&amp;gt;pay Manetta 566.69&amp;lt;/s&amp;gt; (simon)&lt;br /&gt;
* &amp;lt;s&amp;gt;checking Stimu application digital culture (simon)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;invoice varia for content/form (manetta)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;move octomode git to CC group on varia git (manetta)&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server things==&lt;br /&gt;
&lt;br /&gt;
* check backup situation again&lt;br /&gt;
* check if certbot cronjob works&lt;br /&gt;
* check if ssh root login works&lt;br /&gt;
* think about the etherpad database: do we want to delete history of pads to keep the size of the database under 1GB? (currently 942MB, Jan 2026) or think of a way in which pads can be deleted?&lt;br /&gt;
&lt;br /&gt;
==Things to pick up, a collected list during our residency in Linz==&lt;br /&gt;
&lt;br /&gt;
* [[Finances]]&lt;br /&gt;
** updating the wiki page on what we have spent (lol this is just about Servpub https://cc.practices.tools/wiki/Docum%E2%82%ACntation)&lt;br /&gt;
* continue research question articulation of CC&lt;br /&gt;
** feedback session?&lt;br /&gt;
** how to invite crowd(s)&lt;br /&gt;
** who do we invite directly?&lt;br /&gt;
* things we want to install on the server&lt;br /&gt;
* r/w/x/o ctomode writing&lt;br /&gt;
** could be joined with &amp;quot;so, you decided...&amp;quot;&lt;br /&gt;
* how public/open should the CC wiki be?&lt;br /&gt;
* octomode work&lt;br /&gt;
** welcome page&lt;br /&gt;
** documentation&lt;br /&gt;
** editing of octomode wiki page&lt;br /&gt;
* CC git where?&lt;br /&gt;
* publish interview with Femke and Pierre&lt;br /&gt;
* &amp;lt;s&amp;gt;edit etherpad default text !!!&amp;lt;/s&amp;gt; (done 3 Dec, manetta)&lt;br /&gt;
* so, you decided... zine: how to extend the last few pages for more context, making it open-ended (for another time)&lt;br /&gt;
* document Des*gn Week workshop + zine that we made&lt;br /&gt;
&lt;br /&gt;
==For later==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;send email to Varia about transfer of git repo&amp;lt;/s&amp;gt; (not needed in the end i think, danny knows)&lt;br /&gt;
* move box with many Content/Form copies from XPUB to elsewhere&lt;br /&gt;
* move the wiki to another location in the server&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5530</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5530"/>
		<updated>2026-02-21T14:34:57Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates with the old filename that are still being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt; and download the files (make backups first)&lt;br /&gt;
&lt;br /&gt;
 $ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
 $ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
 $ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
 $ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
4. Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5529</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5529"/>
		<updated>2026-02-21T14:34:14Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates with the old filename that are still being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt; and download the files (make backups first)&lt;br /&gt;
&lt;br /&gt;
 $ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
 $ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
 $ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
 $ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
4. Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5528</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5528"/>
		<updated>2026-02-21T14:33:31Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates with the old filename that are still being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
 $ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
 $ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
 $ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
4. Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5527</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5527"/>
		<updated>2026-02-21T14:32:31Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
 $ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
 $ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
 $ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
4. Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5526</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5526"/>
		<updated>2026-02-21T14:31:50Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
$ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
$ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5525</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5525"/>
		<updated>2026-02-21T14:26:32Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
1. go inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl https://unpkg.com/pagedjs@0.4.3/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. change ownership to the www-data user&lt;br /&gt;
&lt;br /&gt;
$ chown www-data:www-data paged.polyfill.js&lt;br /&gt;
$ chown www-data:www-data interface.css&lt;br /&gt;
&lt;br /&gt;
3. go inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5524</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5524"/>
		<updated>2026-02-21T14:14:49Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
install curl&lt;br /&gt;
switch the the www-data user, which owns the files&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5523</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5523"/>
		<updated>2026-02-21T14:10:21Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/paged.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;paged.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5522</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5522"/>
		<updated>2026-02-21T14:10:01Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;pagedjs.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; paged.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5521</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5521"/>
		<updated>2026-02-21T14:06:35Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;pagedjs.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; pagedjs.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5520</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5520"/>
		<updated>2026-02-21T14:06:14Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;pagedjs.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; pagedjs.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5519</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5519"/>
		<updated>2026-02-21T14:05:27Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;pagedjs.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; pagedjs.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5518</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5518"/>
		<updated>2026-02-21T14:04:10Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;pagedjs.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; pagedjs.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5517</id>
		<title>Upgrading pagedjs</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Upgrading_pagedjs&amp;diff=5517"/>
		<updated>2026-02-21T14:03:25Z</updated>

		<summary type="html">&lt;p&gt;Simoon: Created page with &amp;quot;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.  From today, we will upgrade the version to the latest stable version, 0.4.3.  Octomode depends on two files that should be changed with the upgrade.  * /opt/octomode/static/pagedjs.polyfill.js (v0.1.43) * /opt/octomode/static/pagedjs.css (v0.2.0)  These should be upgraded to   * /opt/octomode/static/pagedjs.polyfill.js (v0.4.3) * /opt/octomode/static/interface.css (v0.4)  Th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up until today (February 21st, 2026), the version of pagedjs that Octomode depends on is 0.1.43.&lt;br /&gt;
&lt;br /&gt;
From today, we will upgrade the version to the latest stable version, 0.4.3.&lt;br /&gt;
&lt;br /&gt;
Octomode depends on two files that should be changed with the upgrade.&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.1.43)&lt;br /&gt;
* /opt/octomode/static/pagedjs.css (v0.2.0)&lt;br /&gt;
&lt;br /&gt;
These should be upgraded to &lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/pagedjs.polyfill.js (v0.4.3)&lt;br /&gt;
* /opt/octomode/static/interface.css (v0.4)&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;pagedjs.polyfill.js&amp;lt;/code&amp;gt; can be overwritten, but as the CSS has a different filename, we should also update any templates that are being used by Octomode:&lt;br /&gt;
&lt;br /&gt;
* /opt/octomode/static/templates/pagedjs.html&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ curl https://app.unpkg.com/pagedjs@0.4.3/files/dist/paged.polyfill.js &amp;gt; pagedjs.polyfill.js&lt;br /&gt;
$ curl https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css?ref_type=heads &amp;gt; interface.css&lt;br /&gt;
&lt;br /&gt;
inside &amp;lt;code&amp;gt;/opt/octomode/static/templates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo nano pagedjs.html&lt;br /&gt;
&lt;br /&gt;
Replace the text &amp;quot;pagedjs.css&amp;quot; with &amp;quot;interface.css&amp;quot;. Changing it from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;pagedjs.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;{{ lang }}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;paged.polyfill.js&#039;) }}&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;{{ url_for(&#039;static&#039;, filename=&#039;interface.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- [LOCAL HACK] mb: added /octomode/ below to make the stylesheet link work again. --&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/octomode/{{ name }}/stylesheet.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;print&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {{ pad_content }}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: upgrade pagedjs for wiki-to-print, which is a separate installation of pagedjs.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5516</id>
		<title>Error log</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5516"/>
		<updated>2026-02-13T10:53:05Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Left-justifying a last line in a full justified paragraph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents (some of) the quirks of using free/libre open-source software to make graphic design &#039;&#039;in Octomode&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
These are all Paged.js related atm.&lt;br /&gt;
&lt;br /&gt;
== Left-justifying a last line in a full justified paragraph ==&lt;br /&gt;
&lt;br /&gt;
=== the problem ===&lt;br /&gt;
At OSP we (Simon &amp;amp; Clara) are designing a novel in Octomode. The text is full justified throughout, with text indentations before each paragraph, and a mix of line breaks and paragraph breaks. But the last sentence of the paragraph is also full justified, because there is a &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; that makes the paragraph break. You could drive a truck through those word spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:you-could-drive-a-truck-through-those-wordspaces.png|thumb|400px|Last line is also full justified :sadface:]]&lt;br /&gt;
&lt;br /&gt;
=== the solution ===&lt;br /&gt;
Lazy method: add a whole heap of non-breaking spaces into the content&amp;lt;nowiki&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:non-breaking-spaces-hack.png|thumb|400px|packing a bunch of non-breaking spaces]]&lt;br /&gt;
&lt;br /&gt;
=== the result ===&lt;br /&gt;
Voila! The last line is now left-justified. There must be a more elegant way to do this, but we go to print in 2 days (!)&lt;br /&gt;
&lt;br /&gt;
[[File:last-line-full-justified.png|thumb|400px|hackity hack works!]]&lt;br /&gt;
&lt;br /&gt;
== An unexpected column jump ==&lt;br /&gt;
[[File:firefox-image-cutoff.png|thumb|Images cut off in PDF exported from Firefox]]&lt;br /&gt;
[[File:column-jump-issue.png|thumb|The automagical column jump]]&lt;br /&gt;
&lt;br /&gt;
=== The situation ===&lt;br /&gt;
The intention was to make a multi-page report, which has a cover page and text flowing across two columns, beginning on page 2. The document was made using the Firefox browser over the course of a week or so. Everything looked great, until the PDF was exported, which showed images breaking across columns. Strange, as this was not how it appeared in the PDF as it was rendered in the browser.&lt;br /&gt;
&lt;br /&gt;
So, the switch was made to Chrome, which was recommended as a more stable browser to work with. But in Chrome, there was an entirely different issue. On page 2, the text did not flow across two columns. Instead, it jumped from the left-hand column on page 2, to page 3.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting... ===&lt;br /&gt;
In the CSS, the property and values &amp;lt;code&amp;gt;columns: 2 auto;&amp;lt;/code&amp;gt; were previously applied to a class called &amp;lt;code&amp;gt;.columns&amp;lt;/code&amp;gt;. In the pad, this class had also been added on page 2, like so: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When inspecting the elements, it appeared that the &amp;lt;code&amp;gt;&amp;lt;section&amp;gt;&amp;lt;/code&amp;gt; tag had been closed at the end of the first column automagically. So, the text did not flow to the second column, as the browser thought this was the end of the section?&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
After much searching online, gnashing of teeth and hand-wringing, the issue was solved by adding &amp;lt;code&amp;gt;&amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the cover (page 1), then a bunch of break tags: &amp;lt;pre&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This pushed the text down to page 2, where it flowed across both columns, as originally intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disappearing sentences ==&lt;br /&gt;
&lt;br /&gt;
Since OSP has been working on [http://diversions.constantvzw.org/ DiVersions] in 2020, which is made with Paged.js, stories of disappearing sentences on page breaks have been circulating in the web-to-print networks-of-networks. It also emerged in the context of making [https://volumetricregimes.xyz/index.php?title=Main_Page Volumetric Regimes]. &lt;br /&gt;
&lt;br /&gt;
Below is a log of messages and exchanges on the Mattermost instance of Coko around this issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all, hope you are well! A couple of months ago i have been hanging around here (or actually in the other chat instance before the move to this one) to learn about paged.js as i was working on a 300+ pages book. It has been my first bigger project made with paged.js and it has been an amazing learning curve! The making of the book has been on hold for a while and i’m picking it up again these days, but unfortunately a mysterious problem suddenly appeared again: sentences are “eaten” and thus disappearing at the bottom of pages. I had bumped into this in the very beginning of the project too, and @julien was so nice to talk me through possible things that could have caused it. We talked about documenting this in some way, as i have heard stories of designers around me who also bumped into this and said how much anxiety it gives them to not understand when or why sentences disappear. Specially when they work with deadlines, this can easily create all-nighters to make sure that a PDF can be send to print on time. We did not find the time to talk and document it at the end of 2021, but since i’m bumping into this problem again now, and it feels interesting and relevant to document this, i was wondering if @julien or someone else would be up for a short conversation somewhere next week to chat about it?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: About the missing sentence in the 342 pages book (Volumetric Regimes): &lt;br /&gt;
&lt;br /&gt;
* i checked the zoom, the browser is at 100% &lt;br /&gt;
* all my sizes are in px, including the baseline and top and bottom margins of the page, to avoid the rounding issue &lt;br /&gt;
* when i turn Hyphenology off, the issue disappears&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I tried again to tweak the page margins, but without success. If i make them smaller, the missing line reappears, but … the next one is missing.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I feel quite desperate now… don’t know what to do anymore, the “hack” of this afternoon (working with the CTRL+S saved copy) messes up the text flow, … which leaves me out of options to try other things or find other hack-ish ways to send this file to print :slightly_frowning_face:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: It turns out that without Hyphenology everything is oke, but we need Hyphenology for the hyphenation of the book… Did you encounter this missing sentences bug before by any chance, in combination with Hyphenology? Is there anything i can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Meanwhile…. i am back at my 342 pages book project, we are sending it to print, but unfortunately the missing sentences bug reappeared……&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey Julien, hope you are well! I wanted to let you know that the missing sentences problem strangely enough suddenly disappeared again. The PDF renders oke now, and i’m crossing fingers for it to stay like this!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hello all! I&#039;m writing with a question around the mystery of sentences disappearing on page breaks... It appeared again, while making a 1st of May anarchist newspaper in Varia. I&#039;m not working on it myself, but it made me curious to check in here and ask what the current status is around these haunting moments? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there. i think we had some interesting experiments with @harshna, it seems that when you have some element with a subpixel height, the rounding/conversion seems to break things. Do you have anything set using em? to explain quickly: on screen, chrome will consider that 8.8px is equal to 8px (6pt). but when it puts the same content on the paper, it consider that 8.8px = 6.6pt. The amount of content it can add on screen is a bit different than what you have on paper. But since paged,js already made the break between pages. the content moves a little bit. &lt;br /&gt;
&lt;br /&gt;
I have an idea to test later with @harshna so we could come with a more usable solution (i hope)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Thanks so much for the reply, will forward this to the others at Varia who were making the newspaper! And would you recommend to work in pixels or in points? I think I asked you this before... but i can&#039;t find my notes back :confused:...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: pixel. because the screen is used to draw the pages first. (we’re exploring options to change a bit how pagedjs do the conversion but it’s not really that simple)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: Hmmmm, yeh, it doesn&#039;t seem to be working. I&#039;m only working with px now across the entire stylesheet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: things are getting dissapeared on the page breaks between columns (image 1: pdf view image 2: print preview) &lt;br /&gt;
&lt;br /&gt;
[[File:Missing-sentences-decentral1se-1.png|300px]] [[File:Missing-sentences-decentral1se-2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: there is also a report about 2 column layout doing strange things so i might try 3 column layout :thinking_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: I agree its still breaking in some places. Its not only about 2 column layout, we tried with single column layout and it has missing lines too. We are working on a fix for that now.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: aha ok, cool! thanks for the efforts :star2: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: happy to test stuff if that helps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: it would be great if you could report abnormalities/ any patterns that you find&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: thank you&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: @decentral1se do you have any footnotes?&lt;br /&gt;
&lt;br /&gt;
we may have found a way to hack our way out of those weird rounding issues.&lt;br /&gt;
&lt;br /&gt;
by adding and then removing some emtpy space.&lt;br /&gt;
&lt;br /&gt;
(a hack,really}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: no footnotes, some text in @page:first { @top-left { content: &amp;quot;...&amp;quot;; ... and page numbers tho. Everythings in https://octomode.vvvvvvaria.org/anarcho-krant-mvp-issue-1/stylesheet/ (DM me for username/password).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: curious about the hack :nerd_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: ok so, the idea is to leverage the footnote space by giving it some empty space, and run a hook to remove that space just before printing.&lt;br /&gt;
&lt;br /&gt;
really, a hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class fixMissingLine extends Paged.Handler {&lt;br /&gt;
  constructor(chunker, polisher, caller) {&lt;br /&gt;
    super(chunker, polisher, caller);&lt;br /&gt;
    this.moveToParentFig = [];&lt;br /&gt;
  }&lt;br /&gt;
  afterRendered(pages) {&lt;br /&gt;
    document.querySelectorAll(&#039;.pagedjs_sheet&#039;).forEach(sheet =&amp;gt; sheet.style.setProperty(&#039;--pagedjs-footnotes-height&#039;, &#039;0px&#039;))&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Paged.registerHandlers(fixMissingLine);&lt;br /&gt;
&lt;br /&gt;
and add to your css:&lt;br /&gt;
.pagedjs_sheet {&lt;br /&gt;
--pagedjs-footnotes-height: 12px&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i hope the children never learn we did such a trick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: it&#039;s hacks all the way down :smile_cat: &lt;br /&gt;
&lt;br /&gt;
i will see about integrating this into octomode to test&lt;br /&gt;
&lt;br /&gt;
have you had some luck testing this already? &lt;br /&gt;
&lt;br /&gt;
oh hmm if i don&#039;t already have footnotes, then i can&#039;t use this? :thinking_face:  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: yep you can &lt;br /&gt;
&lt;br /&gt;
and yes we tried.&lt;br /&gt;
&lt;br /&gt;
it’s completely untested and quite dangerous but hey, who wants to live a long and nice and peaceful life right? :sunglasses: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: haha lovely stuff, will try tmoz, thx!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
* https://git.vvvvvvaria.org/varia/octomode/issues/25&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/130&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87#issuecomment-1476958035&lt;br /&gt;
&lt;br /&gt;
==Differences in PDF renderings in Mac/Linux==&lt;br /&gt;
&lt;br /&gt;
https://mattermost.coko.foundation/coko/pl/6jdgxiybridq5bg4scx63tirgh&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-page-77-78-mb.png|thumb|right|screenshot on Linux]] &lt;br /&gt;
[[File:Screenshot-page-77-78-simon-sm.png|thumb|right|screenshot on Mac]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all! Hope you are having a lovely summer.  @simoon and i&#039;re slowly picking up work again in Rotterdam and are wrapping up a remake of the APRJA journal, which is now produced with Paged.js. :wink:&lt;br /&gt;
&lt;br /&gt;
While going to the list of last changes, we noticed that Paged.js renders the pages differently on a Mac and Linux computer, even though we are on the exact same version of Chrome  :grimacing:.&lt;br /&gt;
Have you noticed that before? Is there anything we can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there!&lt;br /&gt;
yeah it’s one of those thing we can’t really do anything about because it’s about mac and linux use their fonts.&lt;br /&gt;
&lt;br /&gt;
so for example. hypens have been available on mac for much longer than for linux :confused:&lt;br /&gt;
&lt;br /&gt;
The only workaround is by using pagedjs-cli on a server, which comes with the problem of having a hardest time to make small changes.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5515</id>
		<title>Error log</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5515"/>
		<updated>2026-02-13T10:29:58Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Left-justifying a last line in a full justified paragraph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents (some of) the quirks of using free/libre open-source software to make graphic design &#039;&#039;in Octomode&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
These are all Paged.js related atm.&lt;br /&gt;
&lt;br /&gt;
== Left-justifying a last line in a full justified paragraph ==&lt;br /&gt;
&lt;br /&gt;
=== the problem ===&lt;br /&gt;
The text is full justified throughout, with text indentations before each paragraph, and a mix of line breaks and paragraph breaks. But the last sentence of the paragraph is also full justified, because there is a &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; that makes the paragraph break. You could drive a truck through those word spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:you-could-drive-a-truck-through-those-wordspaces.png|thumb|400px|Last line is also full justified :sadface:]]&lt;br /&gt;
&lt;br /&gt;
=== the solution ===&lt;br /&gt;
Lazy method: add a whole heap of non-breaking spaces into the content&amp;lt;nowiki&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:non-breaking-spaces-hack.png|thumb|400px|packing a bunch of non-breaking spaces]]&lt;br /&gt;
&lt;br /&gt;
=== the result ===&lt;br /&gt;
Voila! The last line is now left-justified. There must be a more elegant way to do this, but we go to print in 2 days (!)&lt;br /&gt;
&lt;br /&gt;
[[File:last-line-full-justified.png|thumb|400px|hackity hack works!]]&lt;br /&gt;
&lt;br /&gt;
== An unexpected column jump ==&lt;br /&gt;
[[File:firefox-image-cutoff.png|thumb|Images cut off in PDF exported from Firefox]]&lt;br /&gt;
[[File:column-jump-issue.png|thumb|The automagical column jump]]&lt;br /&gt;
&lt;br /&gt;
=== The situation ===&lt;br /&gt;
The intention was to make a multi-page report, which has a cover page and text flowing across two columns, beginning on page 2. The document was made using the Firefox browser over the course of a week or so. Everything looked great, until the PDF was exported, which showed images breaking across columns. Strange, as this was not how it appeared in the PDF as it was rendered in the browser.&lt;br /&gt;
&lt;br /&gt;
So, the switch was made to Chrome, which was recommended as a more stable browser to work with. But in Chrome, there was an entirely different issue. On page 2, the text did not flow across two columns. Instead, it jumped from the left-hand column on page 2, to page 3.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting... ===&lt;br /&gt;
In the CSS, the property and values &amp;lt;code&amp;gt;columns: 2 auto;&amp;lt;/code&amp;gt; were previously applied to a class called &amp;lt;code&amp;gt;.columns&amp;lt;/code&amp;gt;. In the pad, this class had also been added on page 2, like so: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When inspecting the elements, it appeared that the &amp;lt;code&amp;gt;&amp;lt;section&amp;gt;&amp;lt;/code&amp;gt; tag had been closed at the end of the first column automagically. So, the text did not flow to the second column, as the browser thought this was the end of the section?&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
After much searching online, gnashing of teeth and hand-wringing, the issue was solved by adding &amp;lt;code&amp;gt;&amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the cover (page 1), then a bunch of break tags: &amp;lt;pre&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This pushed the text down to page 2, where it flowed across both columns, as originally intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disappearing sentences ==&lt;br /&gt;
&lt;br /&gt;
Since OSP has been working on [http://diversions.constantvzw.org/ DiVersions] in 2020, which is made with Paged.js, stories of disappearing sentences on page breaks have been circulating in the web-to-print networks-of-networks. It also emerged in the context of making [https://volumetricregimes.xyz/index.php?title=Main_Page Volumetric Regimes]. &lt;br /&gt;
&lt;br /&gt;
Below is a log of messages and exchanges on the Mattermost instance of Coko around this issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all, hope you are well! A couple of months ago i have been hanging around here (or actually in the other chat instance before the move to this one) to learn about paged.js as i was working on a 300+ pages book. It has been my first bigger project made with paged.js and it has been an amazing learning curve! The making of the book has been on hold for a while and i’m picking it up again these days, but unfortunately a mysterious problem suddenly appeared again: sentences are “eaten” and thus disappearing at the bottom of pages. I had bumped into this in the very beginning of the project too, and @julien was so nice to talk me through possible things that could have caused it. We talked about documenting this in some way, as i have heard stories of designers around me who also bumped into this and said how much anxiety it gives them to not understand when or why sentences disappear. Specially when they work with deadlines, this can easily create all-nighters to make sure that a PDF can be send to print on time. We did not find the time to talk and document it at the end of 2021, but since i’m bumping into this problem again now, and it feels interesting and relevant to document this, i was wondering if @julien or someone else would be up for a short conversation somewhere next week to chat about it?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: About the missing sentence in the 342 pages book (Volumetric Regimes): &lt;br /&gt;
&lt;br /&gt;
* i checked the zoom, the browser is at 100% &lt;br /&gt;
* all my sizes are in px, including the baseline and top and bottom margins of the page, to avoid the rounding issue &lt;br /&gt;
* when i turn Hyphenology off, the issue disappears&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I tried again to tweak the page margins, but without success. If i make them smaller, the missing line reappears, but … the next one is missing.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I feel quite desperate now… don’t know what to do anymore, the “hack” of this afternoon (working with the CTRL+S saved copy) messes up the text flow, … which leaves me out of options to try other things or find other hack-ish ways to send this file to print :slightly_frowning_face:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: It turns out that without Hyphenology everything is oke, but we need Hyphenology for the hyphenation of the book… Did you encounter this missing sentences bug before by any chance, in combination with Hyphenology? Is there anything i can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Meanwhile…. i am back at my 342 pages book project, we are sending it to print, but unfortunately the missing sentences bug reappeared……&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey Julien, hope you are well! I wanted to let you know that the missing sentences problem strangely enough suddenly disappeared again. The PDF renders oke now, and i’m crossing fingers for it to stay like this!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hello all! I&#039;m writing with a question around the mystery of sentences disappearing on page breaks... It appeared again, while making a 1st of May anarchist newspaper in Varia. I&#039;m not working on it myself, but it made me curious to check in here and ask what the current status is around these haunting moments? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there. i think we had some interesting experiments with @harshna, it seems that when you have some element with a subpixel height, the rounding/conversion seems to break things. Do you have anything set using em? to explain quickly: on screen, chrome will consider that 8.8px is equal to 8px (6pt). but when it puts the same content on the paper, it consider that 8.8px = 6.6pt. The amount of content it can add on screen is a bit different than what you have on paper. But since paged,js already made the break between pages. the content moves a little bit. &lt;br /&gt;
&lt;br /&gt;
I have an idea to test later with @harshna so we could come with a more usable solution (i hope)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Thanks so much for the reply, will forward this to the others at Varia who were making the newspaper! And would you recommend to work in pixels or in points? I think I asked you this before... but i can&#039;t find my notes back :confused:...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: pixel. because the screen is used to draw the pages first. (we’re exploring options to change a bit how pagedjs do the conversion but it’s not really that simple)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: Hmmmm, yeh, it doesn&#039;t seem to be working. I&#039;m only working with px now across the entire stylesheet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: things are getting dissapeared on the page breaks between columns (image 1: pdf view image 2: print preview) &lt;br /&gt;
&lt;br /&gt;
[[File:Missing-sentences-decentral1se-1.png|300px]] [[File:Missing-sentences-decentral1se-2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: there is also a report about 2 column layout doing strange things so i might try 3 column layout :thinking_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: I agree its still breaking in some places. Its not only about 2 column layout, we tried with single column layout and it has missing lines too. We are working on a fix for that now.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: aha ok, cool! thanks for the efforts :star2: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: happy to test stuff if that helps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: it would be great if you could report abnormalities/ any patterns that you find&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: thank you&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: @decentral1se do you have any footnotes?&lt;br /&gt;
&lt;br /&gt;
we may have found a way to hack our way out of those weird rounding issues.&lt;br /&gt;
&lt;br /&gt;
by adding and then removing some emtpy space.&lt;br /&gt;
&lt;br /&gt;
(a hack,really}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: no footnotes, some text in @page:first { @top-left { content: &amp;quot;...&amp;quot;; ... and page numbers tho. Everythings in https://octomode.vvvvvvaria.org/anarcho-krant-mvp-issue-1/stylesheet/ (DM me for username/password).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: curious about the hack :nerd_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: ok so, the idea is to leverage the footnote space by giving it some empty space, and run a hook to remove that space just before printing.&lt;br /&gt;
&lt;br /&gt;
really, a hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class fixMissingLine extends Paged.Handler {&lt;br /&gt;
  constructor(chunker, polisher, caller) {&lt;br /&gt;
    super(chunker, polisher, caller);&lt;br /&gt;
    this.moveToParentFig = [];&lt;br /&gt;
  }&lt;br /&gt;
  afterRendered(pages) {&lt;br /&gt;
    document.querySelectorAll(&#039;.pagedjs_sheet&#039;).forEach(sheet =&amp;gt; sheet.style.setProperty(&#039;--pagedjs-footnotes-height&#039;, &#039;0px&#039;))&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Paged.registerHandlers(fixMissingLine);&lt;br /&gt;
&lt;br /&gt;
and add to your css:&lt;br /&gt;
.pagedjs_sheet {&lt;br /&gt;
--pagedjs-footnotes-height: 12px&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i hope the children never learn we did such a trick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: it&#039;s hacks all the way down :smile_cat: &lt;br /&gt;
&lt;br /&gt;
i will see about integrating this into octomode to test&lt;br /&gt;
&lt;br /&gt;
have you had some luck testing this already? &lt;br /&gt;
&lt;br /&gt;
oh hmm if i don&#039;t already have footnotes, then i can&#039;t use this? :thinking_face:  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: yep you can &lt;br /&gt;
&lt;br /&gt;
and yes we tried.&lt;br /&gt;
&lt;br /&gt;
it’s completely untested and quite dangerous but hey, who wants to live a long and nice and peaceful life right? :sunglasses: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: haha lovely stuff, will try tmoz, thx!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
* https://git.vvvvvvaria.org/varia/octomode/issues/25&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/130&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87#issuecomment-1476958035&lt;br /&gt;
&lt;br /&gt;
==Differences in PDF renderings in Mac/Linux==&lt;br /&gt;
&lt;br /&gt;
https://mattermost.coko.foundation/coko/pl/6jdgxiybridq5bg4scx63tirgh&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-page-77-78-mb.png|thumb|right|screenshot on Linux]] &lt;br /&gt;
[[File:Screenshot-page-77-78-simon-sm.png|thumb|right|screenshot on Mac]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all! Hope you are having a lovely summer.  @simoon and i&#039;re slowly picking up work again in Rotterdam and are wrapping up a remake of the APRJA journal, which is now produced with Paged.js. :wink:&lt;br /&gt;
&lt;br /&gt;
While going to the list of last changes, we noticed that Paged.js renders the pages differently on a Mac and Linux computer, even though we are on the exact same version of Chrome  :grimacing:.&lt;br /&gt;
Have you noticed that before? Is there anything we can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there!&lt;br /&gt;
yeah it’s one of those thing we can’t really do anything about because it’s about mac and linux use their fonts.&lt;br /&gt;
&lt;br /&gt;
so for example. hypens have been available on mac for much longer than for linux :confused:&lt;br /&gt;
&lt;br /&gt;
The only workaround is by using pagedjs-cli on a server, which comes with the problem of having a hardest time to make small changes.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=File:Last-line-full-justified.png&amp;diff=5514</id>
		<title>File:Last-line-full-justified.png</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=File:Last-line-full-justified.png&amp;diff=5514"/>
		<updated>2026-02-13T10:27:28Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=File:Non-breaking-spaces-hack.png&amp;diff=5513</id>
		<title>File:Non-breaking-spaces-hack.png</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=File:Non-breaking-spaces-hack.png&amp;diff=5513"/>
		<updated>2026-02-13T10:27:09Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=File:You-could-drive-a-truck-through-those-wordspaces.png&amp;diff=5512</id>
		<title>File:You-could-drive-a-truck-through-those-wordspaces.png</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=File:You-could-drive-a-truck-through-those-wordspaces.png&amp;diff=5512"/>
		<updated>2026-02-13T10:26:42Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5511</id>
		<title>Error log</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5511"/>
		<updated>2026-02-13T10:26:20Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Left-justifying a last line in a full justified paragraph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents (some of) the quirks of using free/libre open-source software to make graphic design &#039;&#039;in Octomode&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
These are all Paged.js related atm.&lt;br /&gt;
&lt;br /&gt;
== Left-justifying a last line in a full justified paragraph ==&lt;br /&gt;
&lt;br /&gt;
=== the problem ===&lt;br /&gt;
The text is full justified throughout, with text indentations before each paragraph, and a mix of line breaks and paragraph breaks. But the last sentence of the paragraph is also full justified, because there is a &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; that makes the paragraph break. You could drive a truck through those word spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:you-could-drive-a-truck-through-those-wordspaces.png|thumb|Last line is also full justified :sadface:]]&lt;br /&gt;
&lt;br /&gt;
=== the solution ===&lt;br /&gt;
Lazy method: add a whole heap of non-breaking spaces into the content&amp;lt;nowiki&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:non-breaking-spaces-hack.png|thumb|packing a bunch of non-breaking spaces]]&lt;br /&gt;
&lt;br /&gt;
=== the result ===&lt;br /&gt;
Voila! The last line is now left-justified. There must be a more elegant way to do this, but we go to print in 2 days (!)&lt;br /&gt;
&lt;br /&gt;
[[File:last-line-full-justified.png|thumb|hackity hack works!]]&lt;br /&gt;
&lt;br /&gt;
== An unexpected column jump ==&lt;br /&gt;
[[File:firefox-image-cutoff.png|thumb|Images cut off in PDF exported from Firefox]]&lt;br /&gt;
[[File:column-jump-issue.png|thumb|The automagical column jump]]&lt;br /&gt;
&lt;br /&gt;
=== The situation ===&lt;br /&gt;
The intention was to make a multi-page report, which has a cover page and text flowing across two columns, beginning on page 2. The document was made using the Firefox browser over the course of a week or so. Everything looked great, until the PDF was exported, which showed images breaking across columns. Strange, as this was not how it appeared in the PDF as it was rendered in the browser.&lt;br /&gt;
&lt;br /&gt;
So, the switch was made to Chrome, which was recommended as a more stable browser to work with. But in Chrome, there was an entirely different issue. On page 2, the text did not flow across two columns. Instead, it jumped from the left-hand column on page 2, to page 3.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting... ===&lt;br /&gt;
In the CSS, the property and values &amp;lt;code&amp;gt;columns: 2 auto;&amp;lt;/code&amp;gt; were previously applied to a class called &amp;lt;code&amp;gt;.columns&amp;lt;/code&amp;gt;. In the pad, this class had also been added on page 2, like so: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When inspecting the elements, it appeared that the &amp;lt;code&amp;gt;&amp;lt;section&amp;gt;&amp;lt;/code&amp;gt; tag had been closed at the end of the first column automagically. So, the text did not flow to the second column, as the browser thought this was the end of the section?&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
After much searching online, gnashing of teeth and hand-wringing, the issue was solved by adding &amp;lt;code&amp;gt;&amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the cover (page 1), then a bunch of break tags: &amp;lt;pre&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This pushed the text down to page 2, where it flowed across both columns, as originally intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disappearing sentences ==&lt;br /&gt;
&lt;br /&gt;
Since OSP has been working on [http://diversions.constantvzw.org/ DiVersions] in 2020, which is made with Paged.js, stories of disappearing sentences on page breaks have been circulating in the web-to-print networks-of-networks. It also emerged in the context of making [https://volumetricregimes.xyz/index.php?title=Main_Page Volumetric Regimes]. &lt;br /&gt;
&lt;br /&gt;
Below is a log of messages and exchanges on the Mattermost instance of Coko around this issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all, hope you are well! A couple of months ago i have been hanging around here (or actually in the other chat instance before the move to this one) to learn about paged.js as i was working on a 300+ pages book. It has been my first bigger project made with paged.js and it has been an amazing learning curve! The making of the book has been on hold for a while and i’m picking it up again these days, but unfortunately a mysterious problem suddenly appeared again: sentences are “eaten” and thus disappearing at the bottom of pages. I had bumped into this in the very beginning of the project too, and @julien was so nice to talk me through possible things that could have caused it. We talked about documenting this in some way, as i have heard stories of designers around me who also bumped into this and said how much anxiety it gives them to not understand when or why sentences disappear. Specially when they work with deadlines, this can easily create all-nighters to make sure that a PDF can be send to print on time. We did not find the time to talk and document it at the end of 2021, but since i’m bumping into this problem again now, and it feels interesting and relevant to document this, i was wondering if @julien or someone else would be up for a short conversation somewhere next week to chat about it?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: About the missing sentence in the 342 pages book (Volumetric Regimes): &lt;br /&gt;
&lt;br /&gt;
* i checked the zoom, the browser is at 100% &lt;br /&gt;
* all my sizes are in px, including the baseline and top and bottom margins of the page, to avoid the rounding issue &lt;br /&gt;
* when i turn Hyphenology off, the issue disappears&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I tried again to tweak the page margins, but without success. If i make them smaller, the missing line reappears, but … the next one is missing.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I feel quite desperate now… don’t know what to do anymore, the “hack” of this afternoon (working with the CTRL+S saved copy) messes up the text flow, … which leaves me out of options to try other things or find other hack-ish ways to send this file to print :slightly_frowning_face:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: It turns out that without Hyphenology everything is oke, but we need Hyphenology for the hyphenation of the book… Did you encounter this missing sentences bug before by any chance, in combination with Hyphenology? Is there anything i can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Meanwhile…. i am back at my 342 pages book project, we are sending it to print, but unfortunately the missing sentences bug reappeared……&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey Julien, hope you are well! I wanted to let you know that the missing sentences problem strangely enough suddenly disappeared again. The PDF renders oke now, and i’m crossing fingers for it to stay like this!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hello all! I&#039;m writing with a question around the mystery of sentences disappearing on page breaks... It appeared again, while making a 1st of May anarchist newspaper in Varia. I&#039;m not working on it myself, but it made me curious to check in here and ask what the current status is around these haunting moments? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there. i think we had some interesting experiments with @harshna, it seems that when you have some element with a subpixel height, the rounding/conversion seems to break things. Do you have anything set using em? to explain quickly: on screen, chrome will consider that 8.8px is equal to 8px (6pt). but when it puts the same content on the paper, it consider that 8.8px = 6.6pt. The amount of content it can add on screen is a bit different than what you have on paper. But since paged,js already made the break between pages. the content moves a little bit. &lt;br /&gt;
&lt;br /&gt;
I have an idea to test later with @harshna so we could come with a more usable solution (i hope)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Thanks so much for the reply, will forward this to the others at Varia who were making the newspaper! And would you recommend to work in pixels or in points? I think I asked you this before... but i can&#039;t find my notes back :confused:...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: pixel. because the screen is used to draw the pages first. (we’re exploring options to change a bit how pagedjs do the conversion but it’s not really that simple)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: Hmmmm, yeh, it doesn&#039;t seem to be working. I&#039;m only working with px now across the entire stylesheet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: things are getting dissapeared on the page breaks between columns (image 1: pdf view image 2: print preview) &lt;br /&gt;
&lt;br /&gt;
[[File:Missing-sentences-decentral1se-1.png|300px]] [[File:Missing-sentences-decentral1se-2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: there is also a report about 2 column layout doing strange things so i might try 3 column layout :thinking_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: I agree its still breaking in some places. Its not only about 2 column layout, we tried with single column layout and it has missing lines too. We are working on a fix for that now.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: aha ok, cool! thanks for the efforts :star2: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: happy to test stuff if that helps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: it would be great if you could report abnormalities/ any patterns that you find&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: thank you&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: @decentral1se do you have any footnotes?&lt;br /&gt;
&lt;br /&gt;
we may have found a way to hack our way out of those weird rounding issues.&lt;br /&gt;
&lt;br /&gt;
by adding and then removing some emtpy space.&lt;br /&gt;
&lt;br /&gt;
(a hack,really}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: no footnotes, some text in @page:first { @top-left { content: &amp;quot;...&amp;quot;; ... and page numbers tho. Everythings in https://octomode.vvvvvvaria.org/anarcho-krant-mvp-issue-1/stylesheet/ (DM me for username/password).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: curious about the hack :nerd_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: ok so, the idea is to leverage the footnote space by giving it some empty space, and run a hook to remove that space just before printing.&lt;br /&gt;
&lt;br /&gt;
really, a hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class fixMissingLine extends Paged.Handler {&lt;br /&gt;
  constructor(chunker, polisher, caller) {&lt;br /&gt;
    super(chunker, polisher, caller);&lt;br /&gt;
    this.moveToParentFig = [];&lt;br /&gt;
  }&lt;br /&gt;
  afterRendered(pages) {&lt;br /&gt;
    document.querySelectorAll(&#039;.pagedjs_sheet&#039;).forEach(sheet =&amp;gt; sheet.style.setProperty(&#039;--pagedjs-footnotes-height&#039;, &#039;0px&#039;))&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Paged.registerHandlers(fixMissingLine);&lt;br /&gt;
&lt;br /&gt;
and add to your css:&lt;br /&gt;
.pagedjs_sheet {&lt;br /&gt;
--pagedjs-footnotes-height: 12px&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i hope the children never learn we did such a trick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: it&#039;s hacks all the way down :smile_cat: &lt;br /&gt;
&lt;br /&gt;
i will see about integrating this into octomode to test&lt;br /&gt;
&lt;br /&gt;
have you had some luck testing this already? &lt;br /&gt;
&lt;br /&gt;
oh hmm if i don&#039;t already have footnotes, then i can&#039;t use this? :thinking_face:  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: yep you can &lt;br /&gt;
&lt;br /&gt;
and yes we tried.&lt;br /&gt;
&lt;br /&gt;
it’s completely untested and quite dangerous but hey, who wants to live a long and nice and peaceful life right? :sunglasses: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: haha lovely stuff, will try tmoz, thx!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
* https://git.vvvvvvaria.org/varia/octomode/issues/25&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/130&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87#issuecomment-1476958035&lt;br /&gt;
&lt;br /&gt;
==Differences in PDF renderings in Mac/Linux==&lt;br /&gt;
&lt;br /&gt;
https://mattermost.coko.foundation/coko/pl/6jdgxiybridq5bg4scx63tirgh&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-page-77-78-mb.png|thumb|right|screenshot on Linux]] &lt;br /&gt;
[[File:Screenshot-page-77-78-simon-sm.png|thumb|right|screenshot on Mac]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all! Hope you are having a lovely summer.  @simoon and i&#039;re slowly picking up work again in Rotterdam and are wrapping up a remake of the APRJA journal, which is now produced with Paged.js. :wink:&lt;br /&gt;
&lt;br /&gt;
While going to the list of last changes, we noticed that Paged.js renders the pages differently on a Mac and Linux computer, even though we are on the exact same version of Chrome  :grimacing:.&lt;br /&gt;
Have you noticed that before? Is there anything we can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there!&lt;br /&gt;
yeah it’s one of those thing we can’t really do anything about because it’s about mac and linux use their fonts.&lt;br /&gt;
&lt;br /&gt;
so for example. hypens have been available on mac for much longer than for linux :confused:&lt;br /&gt;
&lt;br /&gt;
The only workaround is by using pagedjs-cli on a server, which comes with the problem of having a hardest time to make small changes.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5510</id>
		<title>Error log</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5510"/>
		<updated>2026-02-13T10:25:33Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Left-justifying a last line in a full justified paragraph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents (some of) the quirks of using free/libre open-source software to make graphic design &#039;&#039;in Octomode&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
These are all Paged.js related atm.&lt;br /&gt;
&lt;br /&gt;
== Left-justifying a last line in a full justified paragraph ==&lt;br /&gt;
&lt;br /&gt;
=== the problem ===&lt;br /&gt;
The text is full justified throughout, with text indentations before each paragraph, and a mix of line breaks and paragraph breaks. But the last sentence of the paragraph is also full justified, because there is a ```&amp;lt;br&amp;gt;``` that makes the paragraph break. You could drive a truck through those word spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:you-could-drive-a-truck-through-those-wordspaces.png|thumb|Last line is also full justified :sadface:]]&lt;br /&gt;
&lt;br /&gt;
=== the solution ===&lt;br /&gt;
Lazy method: add a whole heap of non-breaking spaces into the content&amp;lt;code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:non-breaking-spaces-hack.png|thumb|packing a bunch of non-breaking spaces]]&lt;br /&gt;
&lt;br /&gt;
=== the result ===&lt;br /&gt;
Voila! The last line is now left-justified. There must be a more elegant way to do this, but we go to print in 2 days (!)&lt;br /&gt;
&lt;br /&gt;
[[File:last-line-full-justified.png|thumb|hackity hack works!]]&lt;br /&gt;
&lt;br /&gt;
== An unexpected column jump ==&lt;br /&gt;
[[File:firefox-image-cutoff.png|thumb|Images cut off in PDF exported from Firefox]]&lt;br /&gt;
[[File:column-jump-issue.png|thumb|The automagical column jump]]&lt;br /&gt;
&lt;br /&gt;
=== The situation ===&lt;br /&gt;
The intention was to make a multi-page report, which has a cover page and text flowing across two columns, beginning on page 2. The document was made using the Firefox browser over the course of a week or so. Everything looked great, until the PDF was exported, which showed images breaking across columns. Strange, as this was not how it appeared in the PDF as it was rendered in the browser.&lt;br /&gt;
&lt;br /&gt;
So, the switch was made to Chrome, which was recommended as a more stable browser to work with. But in Chrome, there was an entirely different issue. On page 2, the text did not flow across two columns. Instead, it jumped from the left-hand column on page 2, to page 3.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting... ===&lt;br /&gt;
In the CSS, the property and values &amp;lt;code&amp;gt;columns: 2 auto;&amp;lt;/code&amp;gt; were previously applied to a class called &amp;lt;code&amp;gt;.columns&amp;lt;/code&amp;gt;. In the pad, this class had also been added on page 2, like so: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When inspecting the elements, it appeared that the &amp;lt;code&amp;gt;&amp;lt;section&amp;gt;&amp;lt;/code&amp;gt; tag had been closed at the end of the first column automagically. So, the text did not flow to the second column, as the browser thought this was the end of the section?&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
After much searching online, gnashing of teeth and hand-wringing, the issue was solved by adding &amp;lt;code&amp;gt;&amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the cover (page 1), then a bunch of break tags: &amp;lt;pre&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This pushed the text down to page 2, where it flowed across both columns, as originally intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disappearing sentences ==&lt;br /&gt;
&lt;br /&gt;
Since OSP has been working on [http://diversions.constantvzw.org/ DiVersions] in 2020, which is made with Paged.js, stories of disappearing sentences on page breaks have been circulating in the web-to-print networks-of-networks. It also emerged in the context of making [https://volumetricregimes.xyz/index.php?title=Main_Page Volumetric Regimes]. &lt;br /&gt;
&lt;br /&gt;
Below is a log of messages and exchanges on the Mattermost instance of Coko around this issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all, hope you are well! A couple of months ago i have been hanging around here (or actually in the other chat instance before the move to this one) to learn about paged.js as i was working on a 300+ pages book. It has been my first bigger project made with paged.js and it has been an amazing learning curve! The making of the book has been on hold for a while and i’m picking it up again these days, but unfortunately a mysterious problem suddenly appeared again: sentences are “eaten” and thus disappearing at the bottom of pages. I had bumped into this in the very beginning of the project too, and @julien was so nice to talk me through possible things that could have caused it. We talked about documenting this in some way, as i have heard stories of designers around me who also bumped into this and said how much anxiety it gives them to not understand when or why sentences disappear. Specially when they work with deadlines, this can easily create all-nighters to make sure that a PDF can be send to print on time. We did not find the time to talk and document it at the end of 2021, but since i’m bumping into this problem again now, and it feels interesting and relevant to document this, i was wondering if @julien or someone else would be up for a short conversation somewhere next week to chat about it?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: About the missing sentence in the 342 pages book (Volumetric Regimes): &lt;br /&gt;
&lt;br /&gt;
* i checked the zoom, the browser is at 100% &lt;br /&gt;
* all my sizes are in px, including the baseline and top and bottom margins of the page, to avoid the rounding issue &lt;br /&gt;
* when i turn Hyphenology off, the issue disappears&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I tried again to tweak the page margins, but without success. If i make them smaller, the missing line reappears, but … the next one is missing.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I feel quite desperate now… don’t know what to do anymore, the “hack” of this afternoon (working with the CTRL+S saved copy) messes up the text flow, … which leaves me out of options to try other things or find other hack-ish ways to send this file to print :slightly_frowning_face:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: It turns out that without Hyphenology everything is oke, but we need Hyphenology for the hyphenation of the book… Did you encounter this missing sentences bug before by any chance, in combination with Hyphenology? Is there anything i can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Meanwhile…. i am back at my 342 pages book project, we are sending it to print, but unfortunately the missing sentences bug reappeared……&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey Julien, hope you are well! I wanted to let you know that the missing sentences problem strangely enough suddenly disappeared again. The PDF renders oke now, and i’m crossing fingers for it to stay like this!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hello all! I&#039;m writing with a question around the mystery of sentences disappearing on page breaks... It appeared again, while making a 1st of May anarchist newspaper in Varia. I&#039;m not working on it myself, but it made me curious to check in here and ask what the current status is around these haunting moments? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there. i think we had some interesting experiments with @harshna, it seems that when you have some element with a subpixel height, the rounding/conversion seems to break things. Do you have anything set using em? to explain quickly: on screen, chrome will consider that 8.8px is equal to 8px (6pt). but when it puts the same content on the paper, it consider that 8.8px = 6.6pt. The amount of content it can add on screen is a bit different than what you have on paper. But since paged,js already made the break between pages. the content moves a little bit. &lt;br /&gt;
&lt;br /&gt;
I have an idea to test later with @harshna so we could come with a more usable solution (i hope)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Thanks so much for the reply, will forward this to the others at Varia who were making the newspaper! And would you recommend to work in pixels or in points? I think I asked you this before... but i can&#039;t find my notes back :confused:...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: pixel. because the screen is used to draw the pages first. (we’re exploring options to change a bit how pagedjs do the conversion but it’s not really that simple)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: Hmmmm, yeh, it doesn&#039;t seem to be working. I&#039;m only working with px now across the entire stylesheet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: things are getting dissapeared on the page breaks between columns (image 1: pdf view image 2: print preview) &lt;br /&gt;
&lt;br /&gt;
[[File:Missing-sentences-decentral1se-1.png|300px]] [[File:Missing-sentences-decentral1se-2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: there is also a report about 2 column layout doing strange things so i might try 3 column layout :thinking_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: I agree its still breaking in some places. Its not only about 2 column layout, we tried with single column layout and it has missing lines too. We are working on a fix for that now.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: aha ok, cool! thanks for the efforts :star2: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: happy to test stuff if that helps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: it would be great if you could report abnormalities/ any patterns that you find&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: thank you&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: @decentral1se do you have any footnotes?&lt;br /&gt;
&lt;br /&gt;
we may have found a way to hack our way out of those weird rounding issues.&lt;br /&gt;
&lt;br /&gt;
by adding and then removing some emtpy space.&lt;br /&gt;
&lt;br /&gt;
(a hack,really}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: no footnotes, some text in @page:first { @top-left { content: &amp;quot;...&amp;quot;; ... and page numbers tho. Everythings in https://octomode.vvvvvvaria.org/anarcho-krant-mvp-issue-1/stylesheet/ (DM me for username/password).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: curious about the hack :nerd_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: ok so, the idea is to leverage the footnote space by giving it some empty space, and run a hook to remove that space just before printing.&lt;br /&gt;
&lt;br /&gt;
really, a hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class fixMissingLine extends Paged.Handler {&lt;br /&gt;
  constructor(chunker, polisher, caller) {&lt;br /&gt;
    super(chunker, polisher, caller);&lt;br /&gt;
    this.moveToParentFig = [];&lt;br /&gt;
  }&lt;br /&gt;
  afterRendered(pages) {&lt;br /&gt;
    document.querySelectorAll(&#039;.pagedjs_sheet&#039;).forEach(sheet =&amp;gt; sheet.style.setProperty(&#039;--pagedjs-footnotes-height&#039;, &#039;0px&#039;))&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Paged.registerHandlers(fixMissingLine);&lt;br /&gt;
&lt;br /&gt;
and add to your css:&lt;br /&gt;
.pagedjs_sheet {&lt;br /&gt;
--pagedjs-footnotes-height: 12px&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i hope the children never learn we did such a trick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: it&#039;s hacks all the way down :smile_cat: &lt;br /&gt;
&lt;br /&gt;
i will see about integrating this into octomode to test&lt;br /&gt;
&lt;br /&gt;
have you had some luck testing this already? &lt;br /&gt;
&lt;br /&gt;
oh hmm if i don&#039;t already have footnotes, then i can&#039;t use this? :thinking_face:  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: yep you can &lt;br /&gt;
&lt;br /&gt;
and yes we tried.&lt;br /&gt;
&lt;br /&gt;
it’s completely untested and quite dangerous but hey, who wants to live a long and nice and peaceful life right? :sunglasses: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: haha lovely stuff, will try tmoz, thx!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
* https://git.vvvvvvaria.org/varia/octomode/issues/25&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/130&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87#issuecomment-1476958035&lt;br /&gt;
&lt;br /&gt;
==Differences in PDF renderings in Mac/Linux==&lt;br /&gt;
&lt;br /&gt;
https://mattermost.coko.foundation/coko/pl/6jdgxiybridq5bg4scx63tirgh&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-page-77-78-mb.png|thumb|right|screenshot on Linux]] &lt;br /&gt;
[[File:Screenshot-page-77-78-simon-sm.png|thumb|right|screenshot on Mac]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all! Hope you are having a lovely summer.  @simoon and i&#039;re slowly picking up work again in Rotterdam and are wrapping up a remake of the APRJA journal, which is now produced with Paged.js. :wink:&lt;br /&gt;
&lt;br /&gt;
While going to the list of last changes, we noticed that Paged.js renders the pages differently on a Mac and Linux computer, even though we are on the exact same version of Chrome  :grimacing:.&lt;br /&gt;
Have you noticed that before? Is there anything we can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there!&lt;br /&gt;
yeah it’s one of those thing we can’t really do anything about because it’s about mac and linux use their fonts.&lt;br /&gt;
&lt;br /&gt;
so for example. hypens have been available on mac for much longer than for linux :confused:&lt;br /&gt;
&lt;br /&gt;
The only workaround is by using pagedjs-cli on a server, which comes with the problem of having a hardest time to make small changes.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5509</id>
		<title>Error log</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Error_log&amp;diff=5509"/>
		<updated>2026-02-13T10:25:13Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents (some of) the quirks of using free/libre open-source software to make graphic design &#039;&#039;in Octomode&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
These are all Paged.js related atm.&lt;br /&gt;
&lt;br /&gt;
== Left-justifying a last line in a full justified paragraph ==&lt;br /&gt;
&lt;br /&gt;
=== the problem ===&lt;br /&gt;
The text is full justified throughout, with text indentations before each paragraph, and a mix of line breaks and paragraph breaks. But the last sentence of the paragraph is also full justified, because there is a ```&amp;lt;br&amp;gt;``` that makes the paragraph break. You could drive a truck through those word spaces.&lt;br /&gt;
[[File:you-could-drive-a-truck-through-those-wordspaces.png|thumb|Last line is also full justified :sadface:]]&lt;br /&gt;
&lt;br /&gt;
=== the solution ===&lt;br /&gt;
Lazy method: add a whole heap of non-breaking spaces into the content&amp;lt;code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;&lt;br /&gt;
[[File:non-breaking-spaces-hack.png|thumb|packing a bunch of non-breaking spaces]]&lt;br /&gt;
&lt;br /&gt;
=== the result ===&lt;br /&gt;
Voila! The last line is now left-justified. There must be a more elegant way to do this, but we go to print in 2 days (!)&lt;br /&gt;
[[File:last-line-full-justified.png|thumb|hackity hack works!]]&lt;br /&gt;
&lt;br /&gt;
== An unexpected column jump ==&lt;br /&gt;
[[File:firefox-image-cutoff.png|thumb|Images cut off in PDF exported from Firefox]]&lt;br /&gt;
[[File:column-jump-issue.png|thumb|The automagical column jump]]&lt;br /&gt;
&lt;br /&gt;
=== The situation ===&lt;br /&gt;
The intention was to make a multi-page report, which has a cover page and text flowing across two columns, beginning on page 2. The document was made using the Firefox browser over the course of a week or so. Everything looked great, until the PDF was exported, which showed images breaking across columns. Strange, as this was not how it appeared in the PDF as it was rendered in the browser.&lt;br /&gt;
&lt;br /&gt;
So, the switch was made to Chrome, which was recommended as a more stable browser to work with. But in Chrome, there was an entirely different issue. On page 2, the text did not flow across two columns. Instead, it jumped from the left-hand column on page 2, to page 3.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting... ===&lt;br /&gt;
In the CSS, the property and values &amp;lt;code&amp;gt;columns: 2 auto;&amp;lt;/code&amp;gt; were previously applied to a class called &amp;lt;code&amp;gt;.columns&amp;lt;/code&amp;gt;. In the pad, this class had also been added on page 2, like so: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When inspecting the elements, it appeared that the &amp;lt;code&amp;gt;&amp;lt;section&amp;gt;&amp;lt;/code&amp;gt; tag had been closed at the end of the first column automagically. So, the text did not flow to the second column, as the browser thought this was the end of the section?&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
After much searching online, gnashing of teeth and hand-wringing, the issue was solved by adding &amp;lt;code&amp;gt;&amp;lt;section class=&amp;quot;columns&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the cover (page 1), then a bunch of break tags: &amp;lt;pre&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This pushed the text down to page 2, where it flowed across both columns, as originally intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disappearing sentences ==&lt;br /&gt;
&lt;br /&gt;
Since OSP has been working on [http://diversions.constantvzw.org/ DiVersions] in 2020, which is made with Paged.js, stories of disappearing sentences on page breaks have been circulating in the web-to-print networks-of-networks. It also emerged in the context of making [https://volumetricregimes.xyz/index.php?title=Main_Page Volumetric Regimes]. &lt;br /&gt;
&lt;br /&gt;
Below is a log of messages and exchanges on the Mattermost instance of Coko around this issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all, hope you are well! A couple of months ago i have been hanging around here (or actually in the other chat instance before the move to this one) to learn about paged.js as i was working on a 300+ pages book. It has been my first bigger project made with paged.js and it has been an amazing learning curve! The making of the book has been on hold for a while and i’m picking it up again these days, but unfortunately a mysterious problem suddenly appeared again: sentences are “eaten” and thus disappearing at the bottom of pages. I had bumped into this in the very beginning of the project too, and @julien was so nice to talk me through possible things that could have caused it. We talked about documenting this in some way, as i have heard stories of designers around me who also bumped into this and said how much anxiety it gives them to not understand when or why sentences disappear. Specially when they work with deadlines, this can easily create all-nighters to make sure that a PDF can be send to print on time. We did not find the time to talk and document it at the end of 2021, but since i’m bumping into this problem again now, and it feels interesting and relevant to document this, i was wondering if @julien or someone else would be up for a short conversation somewhere next week to chat about it?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: About the missing sentence in the 342 pages book (Volumetric Regimes): &lt;br /&gt;
&lt;br /&gt;
* i checked the zoom, the browser is at 100% &lt;br /&gt;
* all my sizes are in px, including the baseline and top and bottom margins of the page, to avoid the rounding issue &lt;br /&gt;
* when i turn Hyphenology off, the issue disappears&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I tried again to tweak the page margins, but without success. If i make them smaller, the missing line reappears, but … the next one is missing.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: I feel quite desperate now… don’t know what to do anymore, the “hack” of this afternoon (working with the CTRL+S saved copy) messes up the text flow, … which leaves me out of options to try other things or find other hack-ish ways to send this file to print :slightly_frowning_face:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: It turns out that without Hyphenology everything is oke, but we need Hyphenology for the hyphenation of the book… Did you encounter this missing sentences bug before by any chance, in combination with Hyphenology? Is there anything i can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Meanwhile…. i am back at my 342 pages book project, we are sending it to print, but unfortunately the missing sentences bug reappeared……&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey Julien, hope you are well! I wanted to let you know that the missing sentences problem strangely enough suddenly disappeared again. The PDF renders oke now, and i’m crossing fingers for it to stay like this!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hello all! I&#039;m writing with a question around the mystery of sentences disappearing on page breaks... It appeared again, while making a 1st of May anarchist newspaper in Varia. I&#039;m not working on it myself, but it made me curious to check in here and ask what the current status is around these haunting moments? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there. i think we had some interesting experiments with @harshna, it seems that when you have some element with a subpixel height, the rounding/conversion seems to break things. Do you have anything set using em? to explain quickly: on screen, chrome will consider that 8.8px is equal to 8px (6pt). but when it puts the same content on the paper, it consider that 8.8px = 6.6pt. The amount of content it can add on screen is a bit different than what you have on paper. But since paged,js already made the break between pages. the content moves a little bit. &lt;br /&gt;
&lt;br /&gt;
I have an idea to test later with @harshna so we could come with a more usable solution (i hope)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Thanks so much for the reply, will forward this to the others at Varia who were making the newspaper! And would you recommend to work in pixels or in points? I think I asked you this before... but i can&#039;t find my notes back :confused:...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: pixel. because the screen is used to draw the pages first. (we’re exploring options to change a bit how pagedjs do the conversion but it’s not really that simple)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: Hmmmm, yeh, it doesn&#039;t seem to be working. I&#039;m only working with px now across the entire stylesheet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: things are getting dissapeared on the page breaks between columns (image 1: pdf view image 2: print preview) &lt;br /&gt;
&lt;br /&gt;
[[File:Missing-sentences-decentral1se-1.png|300px]] [[File:Missing-sentences-decentral1se-2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: there is also a report about 2 column layout doing strange things so i might try 3 column layout :thinking_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: I agree its still breaking in some places. Its not only about 2 column layout, we tried with single column layout and it has missing lines too. We are working on a fix for that now.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: aha ok, cool! thanks for the efforts :star2: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: happy to test stuff if that helps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;harshna&#039;&#039;&#039;: it would be great if you could report abnormalities/ any patterns that you find&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: thank you&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: @decentral1se do you have any footnotes?&lt;br /&gt;
&lt;br /&gt;
we may have found a way to hack our way out of those weird rounding issues.&lt;br /&gt;
&lt;br /&gt;
by adding and then removing some emtpy space.&lt;br /&gt;
&lt;br /&gt;
(a hack,really}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: no footnotes, some text in @page:first { @top-left { content: &amp;quot;...&amp;quot;; ... and page numbers tho. Everythings in https://octomode.vvvvvvaria.org/anarcho-krant-mvp-issue-1/stylesheet/ (DM me for username/password).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: curious about the hack :nerd_face: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: ok so, the idea is to leverage the footnote space by giving it some empty space, and run a hook to remove that space just before printing.&lt;br /&gt;
&lt;br /&gt;
really, a hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class fixMissingLine extends Paged.Handler {&lt;br /&gt;
  constructor(chunker, polisher, caller) {&lt;br /&gt;
    super(chunker, polisher, caller);&lt;br /&gt;
    this.moveToParentFig = [];&lt;br /&gt;
  }&lt;br /&gt;
  afterRendered(pages) {&lt;br /&gt;
    document.querySelectorAll(&#039;.pagedjs_sheet&#039;).forEach(sheet =&amp;gt; sheet.style.setProperty(&#039;--pagedjs-footnotes-height&#039;, &#039;0px&#039;))&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Paged.registerHandlers(fixMissingLine);&lt;br /&gt;
&lt;br /&gt;
and add to your css:&lt;br /&gt;
.pagedjs_sheet {&lt;br /&gt;
--pagedjs-footnotes-height: 12px&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i hope the children never learn we did such a trick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: it&#039;s hacks all the way down :smile_cat: &lt;br /&gt;
&lt;br /&gt;
i will see about integrating this into octomode to test&lt;br /&gt;
&lt;br /&gt;
have you had some luck testing this already? &lt;br /&gt;
&lt;br /&gt;
oh hmm if i don&#039;t already have footnotes, then i can&#039;t use this? :thinking_face:  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: yep you can &lt;br /&gt;
&lt;br /&gt;
and yes we tried.&lt;br /&gt;
&lt;br /&gt;
it’s completely untested and quite dangerous but hey, who wants to live a long and nice and peaceful life right? :sunglasses: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;decentral1se&#039;&#039;&#039;: haha lovely stuff, will try tmoz, thx!&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
* https://git.vvvvvvaria.org/varia/octomode/issues/25&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/130&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87&lt;br /&gt;
* https://github.com/pagedjs/pagedjs/issues/87#issuecomment-1476958035&lt;br /&gt;
&lt;br /&gt;
==Differences in PDF renderings in Mac/Linux==&lt;br /&gt;
&lt;br /&gt;
https://mattermost.coko.foundation/coko/pl/6jdgxiybridq5bg4scx63tirgh&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot-page-77-78-mb.png|thumb|right|screenshot on Linux]] &lt;br /&gt;
[[File:Screenshot-page-77-78-simon-sm.png|thumb|right|screenshot on Mac]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;m---b&#039;&#039;&#039;: Hey all! Hope you are having a lovely summer.  @simoon and i&#039;re slowly picking up work again in Rotterdam and are wrapping up a remake of the APRJA journal, which is now produced with Paged.js. :wink:&lt;br /&gt;
&lt;br /&gt;
While going to the list of last changes, we noticed that Paged.js renders the pages differently on a Mac and Linux computer, even though we are on the exact same version of Chrome  :grimacing:.&lt;br /&gt;
Have you noticed that before? Is there anything we can do?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;julien&#039;&#039;&#039;: hey there!&lt;br /&gt;
yeah it’s one of those thing we can’t really do anything about because it’s about mac and linux use their fonts.&lt;br /&gt;
&lt;br /&gt;
so for example. hypens have been available on mac for much longer than for linux :confused:&lt;br /&gt;
&lt;br /&gt;
The only workaround is by using pagedjs-cli on a server, which comes with the problem of having a hardest time to make small changes.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Compresspdf.sh&amp;diff=5508</id>
		<title>Compresspdf.sh</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Compresspdf.sh&amp;diff=5508"/>
		<updated>2026-02-04T17:08:03Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Script==&lt;br /&gt;
&lt;br /&gt;
[[File:compresspdf-2.png|thumb|right|A PDF&#039;s size before compression]]&lt;br /&gt;
[[File:compresspdf-1.png|thumb|right|The resampled PDF&#039;s size, after compression]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
pdffile=$1;&lt;br /&gt;
dpi=$2 &lt;br /&gt;
&lt;br /&gt;
gs \&lt;br /&gt;
  -o &amp;quot;${pdffile%.pdf}-resampled.pdf&amp;quot; \&lt;br /&gt;
  -sDEVICE=pdfwrite \&lt;br /&gt;
  -dDownsampleColorImages=true \&lt;br /&gt;
  -dDownsampleGrayImages=true \&lt;br /&gt;
  -dDownsampleMonoImages=true \&lt;br /&gt;
  -dColorImageResolution=$dpi \&lt;br /&gt;
  -dGrayImageResolution=$dpi \&lt;br /&gt;
  -dMonoImageResolution=$dpi \&lt;br /&gt;
  -dColorImageDownsampleThreshold=1.0 \&lt;br /&gt;
  -dGrayImageDownsampleThreshold=1.0 \&lt;br /&gt;
  -dMonoImageDownsampleThreshold=1.0 \&lt;br /&gt;
   &amp;quot;${pdffile}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to work with it?==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What does this script do?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This script squashes large PDFs into very small ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In which context was it made?&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
The script is written by [http://osp.kitchen Open Source Publishing]. It has since travelled through other practices to be used for a variety of applications, usually at the eleventh hour before sending PDFs via email and webforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What software does it use?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.ghostscript.com/ &amp;lt;code&amp;gt;ghostscript&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to download these pieces of software?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to the URL https://www.ghostscript.com/, you can download it from there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On which systems can this script run?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This works from the command line in terminal sessions on Linux systems, also on Mac OS. Windows has a different shell, and it is likely it won&#039;t work there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to run the script?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
After installing the software &amp;lt;code&amp;gt;ghostscript&amp;lt;/code&amp;gt; (see above), save the code above as a bash script with the &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; extension, for example: &amp;lt;code&amp;gt;compresspdf.sh&amp;lt;/code&amp;gt;. Don&#039;t forget to add &amp;lt;code&amp;gt;#! /bin/bash&amp;lt;/code&amp;gt; to the top of your script!&lt;br /&gt;
&lt;br /&gt;
Make the script executable with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ chmod a+x compresspdf.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, in a terminal session add the PDF you want to compress to the same directory as where &amp;lt;code&amp;gt;compresspdf.sh&amp;lt;/code&amp;gt; is saved. &lt;br /&gt;
&lt;br /&gt;
Then do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./compresspdf.sh &amp;lt;file.pdf&amp;gt; &amp;lt;resolution in DPI&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./compresspdf.sh input.pdf 300&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output will be something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;input-resampled.pdf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Making a portfolio PDF at the last minute==&lt;br /&gt;
&lt;br /&gt;
This script has been used many times on many machines by many users. It&#039;s super handy when making files that need to be sent quickly over a network. One particular use was when making a final final final portfolio PDF for a grant application at the eleventh hour.&lt;br /&gt;
&lt;br /&gt;
Usually, the portfolio is the last thing I make after I write the application text. I should use a template to work from, but I almost always make a file from scratch. I should be better organised! I add images willy-nilly, tailoring them to the particular grant application. And using CSS-to-print to make a PDF means that your software doesn&#039;t have a handy option to compress files when exporting, you have to add this in to the workflow manually.&lt;br /&gt;
&lt;br /&gt;
On the final day of application, January 31st, the resulting PDF was quite large (122,5mb!). I needed to send this through a webform, and the specification was that it could not be bigger than 10mb.&lt;br /&gt;
&lt;br /&gt;
So, I used this script just several hours before submitting the PDF. I managed to get the file down to a manageable size without stress, and pressed send in time. In the end I did not get the grant, but I got the script :)&lt;br /&gt;
&lt;br /&gt;
[[Category:Boilerplates]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Compresspdf.sh&amp;diff=5507</id>
		<title>Compresspdf.sh</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Compresspdf.sh&amp;diff=5507"/>
		<updated>2026-02-04T17:07:28Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* How to work with it? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Script==&lt;br /&gt;
&lt;br /&gt;
[[File:compresspdf-2.png|thumb|right|A PDF&#039;s size before compression]]&lt;br /&gt;
[[File:compresspdf-1.png|thumb|right|The resampled PDF&#039;s size, after compression]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
pdffile=$1;&lt;br /&gt;
dpi=$2 &lt;br /&gt;
&lt;br /&gt;
gs \&lt;br /&gt;
  -o &amp;quot;${pdffile%.pdf}-resampled.pdf&amp;quot; \&lt;br /&gt;
  -sDEVICE=pdfwrite \&lt;br /&gt;
  -dDownsampleColorImages=true \&lt;br /&gt;
  -dDownsampleGrayImages=true \&lt;br /&gt;
  -dDownsampleMonoImages=true \&lt;br /&gt;
  -dColorImageResolution=$dpi \&lt;br /&gt;
  -dGrayImageResolution=$dpi \&lt;br /&gt;
  -dMonoImageResolution=$dpi \&lt;br /&gt;
  -dColorImageDownsampleThreshold=1.0 \&lt;br /&gt;
  -dGrayImageDownsampleThreshold=1.0 \&lt;br /&gt;
  -dMonoImageDownsampleThreshold=1.0 \&lt;br /&gt;
   &amp;quot;${pdffile}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to work with it?==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What does this script do?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This script squashes large PDFs into very small ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In which context was it made?&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
The script is written by [http://osp.kitchen Open Source Publishing]. It has since travelled through other practices to be used for a variety of applications, usually at the eleventh hour before sending PDFs via email and webforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What software does it use?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.ghostscript.com/ &amp;lt;code&amp;gt;ghostscript&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to download these pieces of software?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Go to the URL https://www.ghostscript.com/, you can download it from there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On which systems can this script run?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This works from the command line in terminal sessions on Linux systems, also on Mac OS. Windows has a different shell, and it is likely it won&#039;t work there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to run the script?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
After installing the software &amp;lt;code&amp;gt;ghostscript&amp;lt;/code&amp;gt; (see above), save the code above as a bash script with the &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; extension, for example: &amp;lt;code&amp;gt;compresspdf.sh&amp;lt;/code&amp;gt;. Don&#039;t forget to add &amp;lt;code&amp;gt;#! /bin/bash&amp;lt;/code&amp;gt; to the top of your script!&lt;br /&gt;
&lt;br /&gt;
Make the script executable with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ chmod a+x compresspdf.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, in a terminal session add the PDF you want to compress to the same directory as where &amp;lt;code&amp;gt;compresspdf.sh&amp;lt;/code&amp;gt; is saved. &lt;br /&gt;
&lt;br /&gt;
Then do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./compresspdf.sh &amp;lt;file.pdf&amp;gt; &amp;lt;resolution in DPI&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./compresspdf.sh input.pdf 300&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output will be something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;input-resampled.pdf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Making a portfolio PDF at the last minute==&lt;br /&gt;
&lt;br /&gt;
This script has been used many times on many machines by many users. It&#039;s super handy when making files that need to be sent quickly over a network. One particular use was when making a final final final portfolio PDF for a grant application at the eleventh hour.&lt;br /&gt;
&lt;br /&gt;
Usually, the portfolio is the last thing I make after I write the application text. I should use a template to work from, but I almost always make a file from scratch. I should be better organised! I add images willy-nilly, tailoring them to the particular grant application. And using CSS-to-print to make a PDF means that your software doesn&#039;t have a handy option to compress files when exporting, you have to add this in to the workflow manually.&lt;br /&gt;
&lt;br /&gt;
On the final day of application, January 31st, the resulting PDF was quite large (122,5mb!). I needed to send this through a webform, and the specification was that it could not be bigger than 10mb.&lt;br /&gt;
&lt;br /&gt;
So, I used this script just several hours before submitting the PDF. I managed to get the file down to a manageable size without stress, and pressed send in time. In the end I did not get the grant, but I got the script :)&lt;br /&gt;
&lt;br /&gt;
[[Category:Boilerplates]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Server_move&amp;diff=5457</id>
		<title>Server move</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Server_move&amp;diff=5457"/>
		<updated>2026-01-23T13:59:25Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Server move */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Server move==&lt;br /&gt;
&lt;br /&gt;
Notes here: [[Services on CC]]&lt;br /&gt;
&lt;br /&gt;
* ✅ migrate etherpad&lt;br /&gt;
** ✅ install etherpad (&amp;lt;code&amp;gt;/opt/etherpad/&amp;lt;/code&amp;gt;)&lt;br /&gt;
** ✅ configure nginx &lt;br /&gt;
** ✅ set etherpad up as a systemd background process&lt;br /&gt;
** ✅ test migration of database&lt;br /&gt;
** ✅ migrate the database&lt;br /&gt;
* ✅ install mediawiki (&amp;lt;code&amp;gt;/var/www/wiki/&amp;lt;/code&amp;gt;, version 1.45)&lt;br /&gt;
** ✅ configure nginx&lt;br /&gt;
** ✅ install php + php-fpm + mariadb&lt;br /&gt;
** ✅ migrate the extensions&lt;br /&gt;
** ✅ &amp;lt;del&amp;gt;re-download all extensions&amp;lt;/del&amp;gt; not needed, only EtherpadLite&lt;br /&gt;
** ✅ applied the hack again to EtherpadLite to hide ip-adresses &lt;br /&gt;
** ✅ migrate the images folder&lt;br /&gt;
** ✅ make new database&lt;br /&gt;
** ✅ test migration of database&lt;br /&gt;
** ✅ migrate the database&lt;br /&gt;
** ✅ check extensions&lt;br /&gt;
** update URL in Localsettings&lt;br /&gt;
*** ✅ check if etherpadlite extension works&lt;br /&gt;
** ✅ check if wiki works again!&lt;br /&gt;
** ✅ check CreatePage extension, disabled now as it threw an error&lt;br /&gt;
* ✅ enable home folders&lt;br /&gt;
* ✅ migrate home folders&lt;br /&gt;
* ✅ migrate /var/www/html/&lt;br /&gt;
* ✅ install octomode (&amp;lt;code&amp;gt;/opt/octomode/&amp;lt;/code&amp;gt;, running on port 3333)&lt;br /&gt;
** ✅ update pad URL in .env file &lt;br /&gt;
** test if octomode works&lt;br /&gt;
* ✅ install wiki-to-print (&amp;lt;code&amp;gt;/opt/wiki-to-print/&amp;lt;/code&amp;gt;, running on port 4444)&lt;br /&gt;
** test if wiki-to-print works&lt;br /&gt;
** ✅ update wiki URL in config.json&lt;br /&gt;
** ✅ update wiki URL in [[MediaWiki:Common.js]]&lt;br /&gt;
* change DNS of cc.practices.tools (point to our servus ip-address)&lt;br /&gt;
* enable HTTPS&lt;br /&gt;
** ✅ install certbot&lt;br /&gt;
** ✅ activate cronjob&lt;br /&gt;
* decide on http/https redirect in nginx&lt;br /&gt;
* ✅ redirect / to /wiki/&lt;br /&gt;
* check if https://cc.vvvvvvaria.org still works&lt;br /&gt;
** check with Constant, they use the old URL: https://circulations.constantvzw.org/octomode/genocidal_tech/pad/&lt;br /&gt;
* ✅ let ServPub people know that the new URL is https://cc.practices.tools&lt;br /&gt;
&lt;br /&gt;
==SSH==&lt;br /&gt;
&lt;br /&gt;
Old server:&lt;br /&gt;
&lt;br /&gt;
 Host cc&lt;br /&gt;
 Hostname 51.195.117.20&lt;br /&gt;
 User USERNAME&lt;br /&gt;
 localcommand xtermcontrol --bg &amp;quot;#ffffe0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
New server:&lt;br /&gt;
&lt;br /&gt;
 Host cc&lt;br /&gt;
 Hostname 193.170.194.207&lt;br /&gt;
 User USERNAME&lt;br /&gt;
 localcommand xtermcontrol --bg &amp;quot;#ffff00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Server_move&amp;diff=5454</id>
		<title>Server move</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Server_move&amp;diff=5454"/>
		<updated>2026-01-23T13:46:04Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Server move */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Server move==&lt;br /&gt;
&lt;br /&gt;
Notes here: [[Services on CC]]&lt;br /&gt;
&lt;br /&gt;
* ✅ migrate etherpad&lt;br /&gt;
** ✅ install etherpad (&amp;lt;code&amp;gt;/opt/etherpad/&amp;lt;/code&amp;gt;)&lt;br /&gt;
** ✅ configure nginx &lt;br /&gt;
** ✅ set etherpad up as a systemd background process&lt;br /&gt;
** ✅ test migration of database&lt;br /&gt;
** ✅ migrate the database&lt;br /&gt;
* ✅ install mediawiki (&amp;lt;code&amp;gt;/var/www/wiki/&amp;lt;/code&amp;gt;, version 1.45)&lt;br /&gt;
** ✅ configure nginx&lt;br /&gt;
** ✅ install php + php-fpm + mariadb&lt;br /&gt;
** ✅ migrate the extensions&lt;br /&gt;
** ✅ &amp;lt;del&amp;gt;re-download all extensions&amp;lt;/del&amp;gt; not needed, only EtherpadLite&lt;br /&gt;
** ✅ applied the hack again to EtherpadLite to hide ip-adresses &lt;br /&gt;
** ✅ migrate the images folder&lt;br /&gt;
** ✅ make new database&lt;br /&gt;
** ✅ test migration of database&lt;br /&gt;
** ✅ migrate the database&lt;br /&gt;
** ✅ check extensions&lt;br /&gt;
** update URL in Localsettings&lt;br /&gt;
*** ✅ check if etherpadlite extension works&lt;br /&gt;
** ✅ check if wiki works again!&lt;br /&gt;
** ✅ check CreatePage extension, disabled now as it threw an error&lt;br /&gt;
* ✅ enable home folders&lt;br /&gt;
* ✅ migrate home folders&lt;br /&gt;
* ✅ migrate /var/www/html/&lt;br /&gt;
* ✅ install octomode (&amp;lt;code&amp;gt;/opt/octomode/&amp;lt;/code&amp;gt;, running on port 3333)&lt;br /&gt;
** update pad URL in .env file &lt;br /&gt;
* ✅ install wiki-to-print (&amp;lt;code&amp;gt;/opt/wiki-to-print/&amp;lt;/code&amp;gt;, running on port 4444)&lt;br /&gt;
** test if wiki-to-print works&lt;br /&gt;
** ✅ update wiki URL in config.json&lt;br /&gt;
** ✅ update wiki URL in [[MediaWiki:Common.js]]&lt;br /&gt;
* change DNS of cc.practices.tools (point to our servus ip-address)&lt;br /&gt;
* enable HTTPS&lt;br /&gt;
** install certbot&lt;br /&gt;
** ✅ activate cronjob&lt;br /&gt;
* decide on http/https redirect in nginx&lt;br /&gt;
* ✅ redirect / to /wiki/&lt;br /&gt;
* check if https://cc.vvvvvvaria.org still works&lt;br /&gt;
** check with Constant, they use the old URL: https://circulations.constantvzw.org/octomode/genocidal_tech/pad/&lt;br /&gt;
* let ServPub people know that the new URL is https://cc.practices.tools&lt;br /&gt;
&lt;br /&gt;
==SSH==&lt;br /&gt;
&lt;br /&gt;
Old server:&lt;br /&gt;
&lt;br /&gt;
 Host cc&lt;br /&gt;
 Hostname 51.195.117.20&lt;br /&gt;
 User USERNAME&lt;br /&gt;
 localcommand xtermcontrol --bg &amp;quot;#ffffe0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
New server:&lt;br /&gt;
&lt;br /&gt;
 Host cc&lt;br /&gt;
 Hostname 193.170.194.207&lt;br /&gt;
 User USERNAME&lt;br /&gt;
 localcommand xtermcontrol --bg &amp;quot;#ffff00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Server_move&amp;diff=5422</id>
		<title>Server move</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Server_move&amp;diff=5422"/>
		<updated>2026-01-23T10:29:40Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Server move==&lt;br /&gt;
&lt;br /&gt;
Notes here: [[Services on CC]]&lt;br /&gt;
&lt;br /&gt;
* migrate etherpad&lt;br /&gt;
** ✅ install etherpad (&amp;lt;code&amp;gt;/opt/etherpad/&amp;lt;/code&amp;gt;)&lt;br /&gt;
** ✅ configure nginx &lt;br /&gt;
** ✅ set etherpad up as a systemd background process&lt;br /&gt;
** ✅ test migration of database&lt;br /&gt;
** migrate the database&lt;br /&gt;
* ✅ install mediawiki (&amp;lt;code&amp;gt;/var/www/wiki/&amp;lt;/code&amp;gt;, version 1.45)&lt;br /&gt;
** ✅ configure nginx&lt;br /&gt;
** ✅ install php + php-fpm + mariadb&lt;br /&gt;
** ✅ migrate the extensions&lt;br /&gt;
** ✅ &amp;lt;del&amp;gt;re-download all extensions&amp;lt;/del&amp;gt; not needed, only EtherpadLite&lt;br /&gt;
** ✅ applied the hack again to EtherpadLite to hide ip-adresses &lt;br /&gt;
** migrate the images folder&lt;br /&gt;
** ✅ make new database&lt;br /&gt;
** ✅ test migration of database&lt;br /&gt;
** migrate the database&lt;br /&gt;
** ✅ check extensions&lt;br /&gt;
*** check if etherpadlite extension works&lt;br /&gt;
** ✅ check if wiki works again!&lt;br /&gt;
** ✅ check CreatePage extension, disabled now as it threw an error&lt;br /&gt;
* ✅ enable home folders&lt;br /&gt;
* migrate home folders&lt;br /&gt;
* migrate /var/www/html/&lt;br /&gt;
* ✅ install octomode (&amp;lt;code&amp;gt;/opt/octomode/&amp;lt;/code&amp;gt;, running on port 3333)&lt;br /&gt;
* ✅ install wiki-to-print (&amp;lt;code&amp;gt;/opt/wiki-to-print/&amp;lt;/code&amp;gt;, running on port 4444)&lt;br /&gt;
** ✅ test if wiki-to-print works&lt;br /&gt;
* change DNS of cc.practices.tools (point to our servus ip-address)&lt;br /&gt;
* enable HTTPS&lt;br /&gt;
** install certbot&lt;br /&gt;
** ✅ activate cronjob&lt;br /&gt;
* decide on http/https redirect in nginx&lt;br /&gt;
* ✅ redirect / to /wiki/&lt;br /&gt;
* check if https://cc.vvvvvvaria.org still works&lt;br /&gt;
* let ServPub people know that the new URL is https://cc.practices.tools&lt;br /&gt;
&lt;br /&gt;
==SSH==&lt;br /&gt;
&lt;br /&gt;
Old server:&lt;br /&gt;
&lt;br /&gt;
 Host cc&lt;br /&gt;
 Hostname 51.195.117.20&lt;br /&gt;
 User USERNAME&lt;br /&gt;
 localcommand xtermcontrol --bg &amp;quot;#ffffe0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
New server:&lt;br /&gt;
&lt;br /&gt;
 Host cc&lt;br /&gt;
 Hostname 193.170.194.207&lt;br /&gt;
 User USERNAME&lt;br /&gt;
 localcommand xtermcontrol --bg &amp;quot;#ffff00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Working_with_what%27s_there&amp;diff=5357</id>
		<title>Working with what&#039;s there</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Working_with_what%27s_there&amp;diff=5357"/>
		<updated>2025-12-24T23:16:37Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:varia-darktimes-sticker-sheet.jpeg|thumb|The full sticker set]]&lt;br /&gt;
[[File:varia-darktimes-sticker-on-laptop.jpeg|thumb|One of the stickers on my laptop]]&lt;br /&gt;
&lt;br /&gt;
If we consider design to be a collaborative, transformative activity of world-building as opposed to just problem-solving, how to think about the materials, entities, and groups that are there to work with?&lt;br /&gt;
&lt;br /&gt;
What does it mean to &#039;&#039;work with material that is already there&#039;&#039;? What does this bring to a design practice?&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to articulate this in writing on this page. Here is a place to start gathering thoughts around these topics:&lt;br /&gt;
&lt;br /&gt;
* starting from the middle&lt;br /&gt;
* entry points into ongoing conversations around collaborative and collective practices&lt;br /&gt;
* working within a material practice (I want to relate this to [[With_Simon_about_experimental_publishing|these thoughts]] about experimental publishing)&lt;br /&gt;
* autonomy (choosing inter-dependencencies)&lt;br /&gt;
* subsistence and frugality&lt;br /&gt;
* immediacy and DIY&lt;br /&gt;
* collaboration and DIWO&lt;br /&gt;
* finding joy and inspiration within limitations&lt;br /&gt;
* pedagogy and figuring things out together&lt;br /&gt;
* improvisation and ad-hoc approaches&lt;br /&gt;
&lt;br /&gt;
One example of working with what&#039;s there is an improvised sticker set I made for an issue of SomeTimes with Danny at Varia. We were struggling to find inspiration while designing stickers that reflected the theme of Varia&#039;s 2025/2026 Seasonal Computing public programme. Danny suggested making a &amp;quot;dark&amp;quot; sticker set, which contained inside jokes and puns. I had some pre-cut circular sticker sheets laying around from a project in 2012, so I decided to try out some designs that I could print myself. I designed a sheet using a font I bootlegged in 2015 from an Inuit calendar. I&#039;ve been using this font quite a lot lately, because it is there. The apostrophes as accidentally reversed, but I don&#039;t want to fix that because it is not necessary and the font will only be used for display text. What is more important is that the font, like the pre-cut sticker sheets, is at easily at hand.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Working_with_what%27s_there&amp;diff=5356</id>
		<title>Working with what&#039;s there</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Working_with_what%27s_there&amp;diff=5356"/>
		<updated>2025-12-24T23:15:50Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:varia-darktimes-sticker-sheet.jpeg|thumb|The full sticker set]]&lt;br /&gt;
[[File:varia-darktimes-sticker-on-laptop.jpeg|thumb|One of the stickers on my laptop]]&lt;br /&gt;
&lt;br /&gt;
If we consider design to be a collaborative, transformative activity of world-building as opposed to just problem-solving, how to think about the materials, entities, and groups that are there to work with?&lt;br /&gt;
&lt;br /&gt;
What does it mean to &#039;&#039;work with material that is already there&#039;&#039;? What does this bring to a design practice?&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to articulate this in writing on this page. Here is a place to start gathering thoughts around these topics:&lt;br /&gt;
&lt;br /&gt;
* starting from the middle&lt;br /&gt;
* entry points into ongoing conversations around collaborative and collective practices&lt;br /&gt;
* working within a material practice (I want to relate this to [[With_Simon_about_experimental_publishing|these thoughts]] about experimental publishing)&lt;br /&gt;
* autonomy (choosing inter-dependencencies)&lt;br /&gt;
* subsistence and frugality&lt;br /&gt;
* immediacy and DIY&lt;br /&gt;
* collaboration and DIWO&lt;br /&gt;
* finding joy and inspiration within limitations&lt;br /&gt;
* pedagogy and figuring things out together&lt;br /&gt;
* improvisation and ad-hoc approaches&lt;br /&gt;
&lt;br /&gt;
While making design and art in the past years, I&#039;ve noticed that working with what is around me has brought the most joy, and simplified my approach.&lt;br /&gt;
&lt;br /&gt;
One example is an improvised sticker set I made while working on SomeTimes with Danny at Varia. We were struggling to find inspiration while designing stickers that reflected the theme of Varia&#039;s 2025/2026 Seasonal Computing public programme. Danny suggested making a &amp;quot;DarkTimes&amp;quot; sticker set, which contained inside jokes and puns. I had some pre-cut circular sticker sheets laying around from a project in 2012, so I decided to try out some designs that I could print myself. I designed a sheet using a font I bootlegged in 2015 from an Inuit calendar. I&#039;ve been using this font quite a lot lately, because it is there. The apostrophes as accidentally reversed, but I don&#039;t want to fix that because it is not necessary and the font will only be used for display text. What is more important is that the font, like the pre-cut sticker sheets, is at easily at hand.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=User:Simoon&amp;diff=5355</id>
		<title>User:Simoon</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=User:Simoon&amp;diff=5355"/>
		<updated>2025-12-24T23:14:35Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Puns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;F/LOSS design + publishing at [https://varia.zone Varia], [https://osp.kitchen OSP] and here at CC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:simon-bio-pic-2025.jpeg|thumb|2025 bio pic, photo courtesy of Clara Pasteau]]&lt;br /&gt;
&lt;br /&gt;
==CC-Housekeeping==&lt;br /&gt;
&#039;&#039;Keeping up with sysadmin work&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[[CC_to_do_list|CC to do list]]&lt;br /&gt;
*[[:Category:Sysadmin]]&lt;br /&gt;
*[[CC-collective conditions for use]]&lt;br /&gt;
&lt;br /&gt;
==CC-Conversations==&lt;br /&gt;
&#039;&#039;Conversations with others about publishing and design&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===about wiki publishing===&lt;br /&gt;
* [[Relearning layout]] with Manetta&lt;br /&gt;
* [[Wiki-to-print, Wiki2print, Wiki-to-pdf,_and_so_on...]] together with Manetta (as Varia), and with Anja, Karl &amp;amp; Heerko (as Hackers &amp;amp; Designers)&lt;br /&gt;
* [[Wiki_publishing_chapter|Wiki publishing]] with Manetta, in the context of ServPub&lt;br /&gt;
&lt;br /&gt;
==Puns==&lt;br /&gt;
&#039;&#039;Jokes that will change the world&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Abode (for) Creative Crowds&lt;br /&gt;
* Two&#039;s company, three&#039;s a creative crowd&lt;br /&gt;
* Sime&#039;s New Roman&lt;br /&gt;
* You are in CC&lt;br /&gt;
* My work is at the intersection of Wolphaertstraat and Gouwstraat&lt;br /&gt;
&lt;br /&gt;
==Snippets==&lt;br /&gt;
&#039;&#039;Bits and pieces of writing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Re-pairing]]&lt;br /&gt;
* [[D*signweek 2025]]&lt;br /&gt;
* [[Working with what&#039;s there]]&lt;br /&gt;
&lt;br /&gt;
==Typography==&lt;br /&gt;
&#039;&#039;Keeping links and references here in one place&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[https://www.msarnoff.org/millitext/ Millitext], using subpixels (via Doriane)&lt;br /&gt;
&lt;br /&gt;
==Zines==&lt;br /&gt;
&lt;br /&gt;
* [[Why Bootleg Books? / Pourquoi des livres pirates?|&#039;&#039;Why Bootleg Books? / Pourquoi des livres pirates?&#039;&#039;]] published February 2025 at esam Caen (FR)&lt;br /&gt;
* [[Octomode#so,_you_decided_to_make_a_zine_using_octomode|&#039;&#039;So, you decided to make a zine using Octomode&#039;&#039;]] published June 2025 at the Leitrim Sculpture Center (IE)&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Finances&amp;diff=5354</id>
		<title>Finances</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Finances&amp;diff=5354"/>
		<updated>2025-12-21T08:35:54Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* CC costs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a collective log of our finances.&lt;br /&gt;
&lt;br /&gt;
==CC costs==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! what !! date !! who paid !! amount !! shared&lt;br /&gt;
|-&lt;br /&gt;
| OVH server purchase || 22 December 2023 || manetta || € 150 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 01-04-2024 till 30-06-2024 || manetta || € 90 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 01-07-2024 till 31-12-2024 || manetta || € 90 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH backups 1 year || 24-12-2024 till 24-12-2025 || simon || € 67,35 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month || 22-12-2024 || simon || € 23,11 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month || 18-01-2025 || simon || € 23,11 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month|| 19-02-2025 || simon || € 23,11 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 11-03-2025 || simon || € 69,33 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 27-05-2025 || simon || € 69,33 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 10-09-2025 || simon || € 69,33 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 2025 Q1 + Q2 || manetta || € 180 || 50/50&lt;br /&gt;
|-&lt;br /&gt;
| stickers PrinterPro || November 2025 || manetta || € 111,61 || not needed&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month|| 21-12-2025 || simon || € 23,11 || not yet&lt;br /&gt;
|- &lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CC income==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! what !! date !! from who !! to whom !! amount !! recirculated&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 1) || 16-02-2023 || CSNI (through Varia) || manetta || € 1796,88 || manetta + simon&#039;s part??&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 2) || ??? || CSNI (through Varia) || manetta || € ??? || manetta&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 1) || 19-02-2023 || CSNI (through Varia) || simon || € 934,38 || simon&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 2) || 23-08-2023 || CSNI (through Varia) || simon || € 305,47 || simon&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| Content/Form  || xxx || xxx || xxx || £ 1,000.00 || split between manetta &amp;amp; simon&lt;br /&gt;
|-&lt;br /&gt;
| contribution to CC for using octomode during a workshop at Utrecht University || 21-04-2023 || Winnie &amp;amp; Geoff || Varia || € 400 || split between manetta &amp;amp; simon &lt;br /&gt;
|-&lt;br /&gt;
| contribution to CC for using the pads || soon, December 2025 || Constant || simon || € 500 || to production costs of self-published version of servpub contribution&lt;br /&gt;
|-&lt;br /&gt;
| ServPub book event || 26-11-2025 || Coventry University || simon || € 249,39 || yes, to simon&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysadmin]]&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Technotextual_editorial_guidelines&amp;diff=5254</id>
		<title>Technotextual editorial guidelines</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Technotextual_editorial_guidelines&amp;diff=5254"/>
		<updated>2025-11-30T14:39:25Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* Who commits to be responsible for what?= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technotextual editorial guidelines for wiki layout practices ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wiki software has an attitude! The following are a set of handles to be reused as guidelines during a conversation between editor-designers and design-editors at the start of a publishing project, to shape the editorial workflow together.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open questions:&lt;br /&gt;
* the scope of this document: focus on wiki-to-print or wiki-layout practices (which includes websites, printed publications, ...)&lt;br /&gt;
* do we want to include examples of wiki projects?&lt;br /&gt;
* check references&lt;br /&gt;
* opinionated enough?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What role does the wiki play?===&lt;br /&gt;
&lt;br /&gt;
A wiki invites readers to become writers. And to be messy, to repeat and re-embed material, to let unfinished thoughts linger around and to let structure emerge collectively and over time. &lt;br /&gt;
&lt;br /&gt;
As a writing environment, it invites us to bend the idea of an individual genius author into a distributed practice of writing.&lt;br /&gt;
&lt;br /&gt;
* Is the wiki an online environment that readers can find and browse?&lt;br /&gt;
* Can readers also write?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Is the wiki a temporary production environment or continuous infrastructure?===&lt;br /&gt;
&lt;br /&gt;
We understand infrastructure as something that exist because multiple people depend on it, something that is present for a longer amount of time, and something that does not change a lot but needs maintenance. &lt;br /&gt;
&lt;br /&gt;
When using a wiki to publish from, writing can go through phases of transformation, versioning and change.&lt;br /&gt;
&lt;br /&gt;
* Is this publication a snapshot of a particular state of a wiki in flux? &lt;br /&gt;
* Or is this wiki a production environment for the making of this publication? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
https://post.lurk.org/@hannah@posts.rat.pictures/114333527919107597&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What can a page become?===&lt;br /&gt;
&lt;br /&gt;
What we like about the wiki as a writing environment, is that it comes with a very open understanding of a page. Wiki’s are based on the idea that everything is a page. By default, a wiki does not work with templates and input fields for a title, subtitle, introduction, etc, such as Wordpress for example does. There is no structural difference between the landing page or any other page, even the uploaded images are stored on a specific File namespace page. This radical horizontal approach gives the space to turn each wiki page into any kind of page you want. A wiki page can turn into an essay, an annotated image gallery, a piece of code, a logbook or a budget sheet. &lt;br /&gt;
&lt;br /&gt;
* What limits do we want to set for a page?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(ontology of the page)&lt;br /&gt;
&lt;br /&gt;
How does the wiki understand pages?&lt;br /&gt;
&lt;br /&gt;
What do the contributors want pages to be?&lt;br /&gt;
&lt;br /&gt;
Can there be different understanding of a page within the publication?&lt;br /&gt;
&lt;br /&gt;
How much structure is needed for the production of the layout?&lt;br /&gt;
&lt;br /&gt;
[example of placing an image on a page]&lt;br /&gt;
&lt;br /&gt;
WikiWikiWeb (the first wiki, made by Ward Cunningham) describes its culture as distinctly different from WikiPedia: https://wiki.c2.com/?WikiIsNotWikipedia. For example, they do not always give attribution to content &amp;amp;quot;shamelessly ripped off from other forums&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* not making one centralized structure&lt;br /&gt;
* but structure emerging through writing and practice situated in a cultural context&lt;br /&gt;
&lt;br /&gt;
[example of the User pages in the pzwiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Does hypertext shape our writing?===&lt;br /&gt;
&lt;br /&gt;
Can the content be written in smaller pieces that can be assembled together in different ways?&lt;br /&gt;
&lt;br /&gt;
non-sequential writing&lt;br /&gt;
&lt;br /&gt;
finding different paths through the material&lt;br /&gt;
&lt;br /&gt;
Ted Nelson describes a feature of hypertext: to create a public repository through which new texts can be re-assembled&lt;br /&gt;
&lt;br /&gt;
when writing smaller pieces, it&#039;s easier to &amp;quot;hook in&amp;quot; to each others writing&lt;br /&gt;
&lt;br /&gt;
How to motivate others to write?&lt;br /&gt;
&lt;br /&gt;
How can a page become an invitation to write another page in response?&lt;br /&gt;
&lt;br /&gt;
role of red-links, parking an idea&lt;br /&gt;
&lt;br /&gt;
[ref olia lialina &amp;quot;links&amp;quot; in A Vernacular Web text?] https://art.teleportacia.org/observation/vernacular/links.html&lt;br /&gt;
&lt;br /&gt;
===Who is the author of this publication?===&lt;br /&gt;
&lt;br /&gt;
Which authorship regimes does the publication cross with? &lt;br /&gt;
How does this shape our common understanding of an author? &lt;br /&gt;
How does this shape our approach to referencing?&lt;br /&gt;
&lt;br /&gt;
* wiki understanding: &amp;quot;a wiki is actually hyper-authored&amp;quot; (Michael), everything is traced through revisions, based on a single branch (no diverging and merging), there is always just one published version of the text, disagreement is not visible (there is space for it in Talk pages and in the History)&lt;br /&gt;
* academic economy of referencing, footnotes/endnotes&lt;br /&gt;
* practice based attribution&lt;br /&gt;
* CC4r: i as an author am not disconnected from all the authors that i learned from and have grown with, plus i want to keep their living conditions into account&lt;br /&gt;
&lt;br /&gt;
What is the difference between:&lt;br /&gt;
&lt;br /&gt;
* contributor (multiple ways to contribute to a larger body of text)&lt;br /&gt;
* author (having the authority/responsibility to speak)&lt;br /&gt;
&lt;br /&gt;
Let&#039;s not say: this publication is made by us all in &amp;quot;collective authorship&amp;quot;. That might mean that we avoid any conversation about this. Has there been a consensus about this, really? &lt;br /&gt;
At the same time, collective authorship can be a strategic way to share responsibility across a group.&lt;br /&gt;
&lt;br /&gt;
Who can reuse the material?&lt;br /&gt;
&lt;br /&gt;
[[File:Revisions-New media art in Slovakia 1990s 2000s.dot.png|thumb|First outcome of our wiki technotext ethnographic trajectory. The graph above was generated with [https://cc.vvvvvvaria.org/~friends/recentchanges.py this script], using Python, Jinja and GraphViz and working with the wiki of monoskop.org.]]&lt;br /&gt;
&lt;br /&gt;
[Something about authorship as revisions? About the hidden position of the version tracker under the “View history” tab?]&lt;br /&gt;
&lt;br /&gt;
In a forum, for instance, the focus lies much more on individual voices. Different authors state their ideas, and formulate them clearly in a post. On a wiki however, the focus is on the text on a page. The name of an author is not even visible by default. The text that is written is the central point of attention.&lt;br /&gt;
&lt;br /&gt;
[ref olia lialina &amp;quot;tilde&amp;quot; in A Vernacular Web text?] https://art.teleportacia.org/observation/vernacular/tilde.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Who commits to be responsible for what?===&lt;br /&gt;
&lt;br /&gt;
- wiki understanding: bureaucrats, administrators, moderators, editor&lt;br /&gt;
- design-editors and editor-designers: it&#039;s not about anyone can do anything, it&#039;s about committment!&lt;br /&gt;
&lt;br /&gt;
===How does the wiki shape our collaboration (or not)?===&lt;br /&gt;
&lt;br /&gt;
The role of the RecentChanges page, the diff&#039;s, the wiki as an async collaboration environment. &lt;br /&gt;
The need to switch to pads sometimes to be close to a thought process in real time.&lt;br /&gt;
&lt;br /&gt;
How can traces of our collaboration be included in the layout?&lt;br /&gt;
&lt;br /&gt;
What we know of layout comes from the history of the printing press.. The traces of the digital are often invisible... How can we show that this layout comes from another timeline/history/context?&lt;br /&gt;
&lt;br /&gt;
How does the visibility of edits and editors co-shape the writing?&lt;br /&gt;
What kind of paratext can the recent changes become? What role can they get in a book?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Recentchanges-cc.vvvvvvaria.org_wiki-2025-04-11.dot.png|thumb|April 11th, 2025: Snapshot layout of the recent changes to the wiki of cc.vvvvvvaria.org.]]&lt;br /&gt;
&lt;br /&gt;
[[File:recentchanges-monoskop.org-2025-04-11.dot.png|thumb|April 11th, 2025: Snapshot layout of the recent changes to the wiki of monoskop.org.]]&lt;br /&gt;
&lt;br /&gt;
[[File:recentchanges-wiki4print.servpub.net-2025-04-03.dot.png|thumb|April 11th, 2025: Snapshot layout of the recent changes to the wiki of wiki4print.servpub.net.]]&lt;br /&gt;
&lt;br /&gt;
[recent changes snapshots thinking here?]&lt;br /&gt;
&lt;br /&gt;
The RecentChanges page as the (backstage?) a wiki, as a place that reveals both the social dynamics and also its specific culture. Who is there? Who wrote something today? It&#039;s a page that signals that a wiki page, that has maybe been forgotten for years, is relevant again and connects to a specific activity happening today.&lt;br /&gt;
&lt;br /&gt;
The RecentChanges page as a social environment is exciting. &lt;br /&gt;
&lt;br /&gt;
Taking samples at different moments to make layouts. It introduces an element of time and temporality. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Which medium will this publication transform into?===&lt;br /&gt;
&lt;br /&gt;
* wiki-to-print&lt;br /&gt;
* wiki-to-pdf&lt;br /&gt;
* wiki-to-graphs&lt;br /&gt;
* wiki-to-slideshow&lt;br /&gt;
* wiki-to-stickers&lt;br /&gt;
* wiki-to-podcast&lt;br /&gt;
* wiki-to-website&lt;br /&gt;
* wiki-to-index-cards&lt;br /&gt;
* wiki-to-stencil&lt;br /&gt;
* wiki-to-riso&lt;br /&gt;
* wiki-to-polymer-clay&lt;br /&gt;
* wiki-to-email-thread&lt;br /&gt;
* wiki-to-rss-feed&lt;br /&gt;
* wiki-to-video&lt;br /&gt;
* wiki-to-puppet-show&lt;br /&gt;
&lt;br /&gt;
A layout engine is an environment that defines the parameters with which you can produce layout.&lt;br /&gt;
Layout is about situated meaning making through positioning/arranging graphic elements spatially.&lt;br /&gt;
&lt;br /&gt;
Thoughts about Graphviz? &lt;br /&gt;
&lt;br /&gt;
Notes about Paged.js and wiki-to-print?&lt;br /&gt;
&lt;br /&gt;
====wiki-as-wiki====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;browser&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A wiki skin is a layout in itself.&lt;br /&gt;
&lt;br /&gt;
====wiki-to-print====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paged.js, Python, Jinja, Flask, Pandoc, Mediawiki:Common.js, Mediawiki:Common.css&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
polyfill, codex logics&lt;br /&gt;
&lt;br /&gt;
====wiki-to-graphs====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GraphViz, Python, Jinja&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Taking snapshots of a wiki using [https://graphviz.org/ GraphViz] to make layout. As a layout engine, GraphViz is not easy to control, and that&#039;s meant to be so. You can control some things like fontsize and shape of the nodes, but the placement of nodes and edges is controlled by the software.&lt;br /&gt;
&lt;br /&gt;
If you make something for print, or for the web, you think about how long something will last. We tend to then simplify layout, to make it accessible for people for as long as the layout exists. We follow conventions based on our reading direction (left to right, top to bottom in our language). Putting something on the top-left of the page (like a link to a homepage), is a decision that feels very accessible.&lt;br /&gt;
&lt;br /&gt;
But GraphViz follows a different approach. It places the nodes and the edges without thinking about usual hierarchies, or usual ways of reading. We have done a bit of that with the title of the graphs. Here the placement at the top is important, it is different information to the content of the graph. But the rest of the layout of the graph is decided upon by GraphViz. And also placed differently once the content of the graph changes. It connects the act of making snapshots and taking a particular slice from the bigger whole in the form of a graph at a particular moment in time. From the start, we were excited about the aesthetics of the wiki that are structural. The GraphViz output comes close to this, as it starts to show this structure.&lt;br /&gt;
&lt;br /&gt;
[include link to the code we wrote]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:ServPub]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Finances&amp;diff=5253</id>
		<title>Finances</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Finances&amp;diff=5253"/>
		<updated>2025-11-30T10:05:14Z</updated>

		<summary type="html">&lt;p&gt;Simoon: /* CC income */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a collective log of our finances.&lt;br /&gt;
&lt;br /&gt;
==CC costs==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! what !! date !! who paid !! amount !! shared&lt;br /&gt;
|-&lt;br /&gt;
| OVH server purchase || 22 December 2023 || manetta || € 150 || yes&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 01-04-2024 till 30-06-2024 || manetta || € 90 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 01-07-2024 till 31-12-2024 || manetta || € 90 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH backups 1 year || 24-12-2024 till 24-12-2025 || simon || € 67,35 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month || 22-12-2024 || simon || € 23,11 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month || 18-01-2025 || simon || € 23,11 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month|| 19-02-2025 || simon || € 23,11 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 11-03-2025 || simon || € 69,33 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 27-05-2025 || simon || € 69,33 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 10-09-2025 || simon || € 69,33 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 2025 Q1 + Q2 || manetta || € 180 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| stickers PrinterPro || November 2025 || manetta || € 111,61 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|- &lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CC income==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! what !! date !! from who !! to whom !! amount !! recirculated&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 1) || 16-02-2023 || CSNI (through Varia) || manetta || € 1796,88 || manetta&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 2) || ??? || CSNI (through Varia) || manetta || € ??? || manetta&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 1) || 19-02-2023 || CSNI (through Varia) || simon || € 934,38 || simon&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 2) || 23-08-2023 || CSNI (through Varia) || simon || € 305,47 || simon&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| Content/Form  || xxx || xxx || xxx || £ 1,000.00 || split between manetta &amp;amp; simon&lt;br /&gt;
|-&lt;br /&gt;
| contribution to CC for using octomode during a workshop at Utrecht University || 21-04-2023 || Winnie &amp;amp; Geoff || Varia || € 400 || split between manetta &amp;amp; simon &lt;br /&gt;
|-&lt;br /&gt;
| contribution to CC for using the pads || soon, December 2025 || Constant || ?? || € 500 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| ServPub book event || 26-11-2025 || Coventry University || simon || € 249,39 || yes, to simon&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Finances&amp;diff=5252</id>
		<title>Finances</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Finances&amp;diff=5252"/>
		<updated>2025-11-30T09:55:31Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a collective log of our finances.&lt;br /&gt;
&lt;br /&gt;
==CC costs==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! what !! date !! who paid !! amount !! shared&lt;br /&gt;
|-&lt;br /&gt;
| OVH server purchase || 22 December 2023 || manetta || € 150 || yes&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 01-04-2024 till 30-06-2024 || manetta || € 90 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 01-07-2024 till 31-12-2024 || manetta || € 90 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH backups 1 year || 24-12-2024 till 24-12-2025 || simon || € 67,35 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month || 22-12-2024 || simon || € 23,11 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month || 18-01-2025 || simon || € 23,11 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 1 month|| 19-02-2025 || simon || € 23,11 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 11-03-2025 || simon || € 69,33 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 27-05-2025 || simon || € 69,33 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| OVH server renewal 3 months || 10-09-2025 || simon || € 69,33 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| Servus membership || 2025 Q1 + Q2 || manetta || € 180 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| stickers PrinterPro || November 2025 || manetta || € 111,61 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|- &lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CC income==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! what !! date !! from who !! to whom !! amount !! recirculated&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 1) || 16-02-2023 || CSNI (through Varia) || manetta || € 1796,88 || manetta&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| Toward a Minor Tech (phase 2) || ??? || CSNI (through Varia) || manetta || € ??? || manetta&#039;s part&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| Content/Form  || xxx || xxx || xxx || £ 1,000.00 || split between manetta &amp;amp; simon&lt;br /&gt;
|-&lt;br /&gt;
| contribution to CC for using octomode during a workshop at Utrecht University || 21-04-2023 || Winnie &amp;amp; Geoff || Varia || € 400 || split between manetta &amp;amp; simon &lt;br /&gt;
|-&lt;br /&gt;
| contribution to CC for using the pads || soon, December 2025 || Constant || ?? || € 500 || not yet&lt;br /&gt;
|-&lt;br /&gt;
| ServPub book event || 26-11-2025 || Coventry University || simon || € 249,39 || yes, to simon&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|-&lt;br /&gt;
| xxx || xxx || xxx || xxx || xxx || xxx&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=PdfCSS:Dw&amp;diff=5240</id>
		<title>PdfCSS:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=PdfCSS:Dw&amp;diff=5240"/>
		<updated>2025-11-29T15:32:01Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@page{&lt;br /&gt;
    size:a5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p {&lt;br /&gt;
color: purple;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5239</id>
		<title>Pdf:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5239"/>
		<updated>2025-11-29T15:30:45Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hello&lt;br /&gt;
&lt;br /&gt;
=[[Tools]]=&lt;br /&gt;
{{ :Tools }}&lt;br /&gt;
&lt;br /&gt;
=[[Howtos]]=&lt;br /&gt;
{{ :Howtos }}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5238</id>
		<title>Pdf:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5238"/>
		<updated>2025-11-29T15:29:46Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hello&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
{{ :Tools }}&lt;br /&gt;
&lt;br /&gt;
=Howtos=&lt;br /&gt;
{{ :Howtos }}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5237</id>
		<title>Pdf:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5237"/>
		<updated>2025-11-29T15:28:59Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hello&lt;br /&gt;
&lt;br /&gt;
{{ :Tools }}&lt;br /&gt;
&lt;br /&gt;
{{ :Howtos }}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5236</id>
		<title>Pdf:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5236"/>
		<updated>2025-11-29T15:28:35Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hello&lt;br /&gt;
&lt;br /&gt;
{{ :Tools }}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=PdfCSS:Dw&amp;diff=5235</id>
		<title>PdfCSS:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=PdfCSS:Dw&amp;diff=5235"/>
		<updated>2025-11-29T15:27:12Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* {&lt;br /&gt;
border: 1px solid red;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@page{&lt;br /&gt;
    size:a5;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=PdfCSS:Dw&amp;diff=5234</id>
		<title>PdfCSS:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=PdfCSS:Dw&amp;diff=5234"/>
		<updated>2025-11-29T15:23:30Z</updated>

		<summary type="html">&lt;p&gt;Simoon: Created page with &amp;quot;@page{     size:a5; }&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@page{&lt;br /&gt;
    size:a5;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5233</id>
		<title>Pdf:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5233"/>
		<updated>2025-11-29T15:22:45Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hello&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5232</id>
		<title>Pdf:Dw</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Pdf:Dw&amp;diff=5232"/>
		<updated>2025-11-29T15:22:31Z</updated>

		<summary type="html">&lt;p&gt;Simoon: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=5219</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=5219"/>
		<updated>2025-11-28T16:42:25Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* Installed on CC&lt;br /&gt;
** Octomode|octomode&lt;br /&gt;
** Wiki-to-print|wiki-to-print&lt;br /&gt;
** Cobbled-paths|cobbled-paths&lt;br /&gt;
* Possibly handy pages&lt;br /&gt;
** Tools|tools&lt;br /&gt;
** Links|links&lt;br /&gt;
** Fonts|fonts&lt;br /&gt;
** Howtos|howtos&lt;br /&gt;
** CSS Print|CSS print&lt;br /&gt;
** Error log|error log&lt;br /&gt;
** Category:Sysadmin|sysadmin&lt;br /&gt;
** Editing Guide|editing guide&lt;br /&gt;
* Things we made&lt;br /&gt;
** https://cc.practices.tools/pdf/so-you-decided-to-make-a-zine-in-octomode.pdf|so, you decided to make a zine in octomode&lt;br /&gt;
** Pdf:Tools_shape_practice_shapes_tools|Tools shape practices shape tools&lt;br /&gt;
** Content-Form|Content-Form&lt;br /&gt;
** Toward a Minor Tech|Toward a Minor Tech&lt;br /&gt;
* TOOLBOX&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
	<entry>
		<id>http://cc.practices.tools/wiki/index.php?title=Working_with_what%27s_there&amp;diff=5214</id>
		<title>Working with what&#039;s there</title>
		<link rel="alternate" type="text/html" href="http://cc.practices.tools/wiki/index.php?title=Working_with_what%27s_there&amp;diff=5214"/>
		<updated>2025-11-26T12:02:48Z</updated>

		<summary type="html">&lt;p&gt;Simoon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:varia-darktimes-sticker-sheet.jpeg|thumb|The full sticker set]]&lt;br /&gt;
[[File:varia-darktimes-sticker-on-laptop.jpeg|thumb|One of the stickers on my laptop]]&lt;br /&gt;
&lt;br /&gt;
If we consider design to be a collaborative, transformative activity of world-building as opposed to just problem-solving, how to think about the materials, entities, and groups that are there to work with?&lt;br /&gt;
&lt;br /&gt;
What does it mean to &#039;&#039;work with material that is already there&#039;&#039;? What does this bring to a design practice?&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to articulate this in writing on this page. Here is a place to start gathering thoughts around these topics:&lt;br /&gt;
&lt;br /&gt;
* starting from the middle&lt;br /&gt;
* entry points into ongoing conversations around collaborative and collective practices&lt;br /&gt;
* working within a material practice (I want to relate this to [[With_Simon_about_experimental_publishing|these thoughts]] about experimental publishing)&lt;br /&gt;
* autonomy (choosing inter-dependencencies)&lt;br /&gt;
* subsistence and frugality&lt;br /&gt;
* immediacy and DIY&lt;br /&gt;
* collaboration and DIWO&lt;br /&gt;
* finding joy and inspiration within limitations&lt;br /&gt;
* pedagogy and figuring things out together&lt;br /&gt;
* improvisation and ad-hoc approaches&lt;br /&gt;
&lt;br /&gt;
While making design and art in the past years, I&#039;ve noticed that working with what is around me has been a successful approach.&lt;br /&gt;
&lt;br /&gt;
One example is an improvised sticker set I made while working on SomeTimes with Danny at Varia. We were struggling to find inspiration while designing stickers that reflected the theme of Varia&#039;s 2025/2026 Seasonal Computing public programme. Danny suggested making a &amp;quot;DarkTimes&amp;quot; sticker set, which contained inside jokes and puns. I had some pre-cut circular sticker sheets laying around from a project in 2012, so I decided to try out some designs that I could print myself. I designed a sheet using a font I bootlegged in 2015 from an Inuit calendar. I&#039;ve been using this font quite a lot lately, because it is there. The apostrophes as accidentally reversed, but I don&#039;t want to fix that because it is not necessary and the font will only be used for display text. What is more important is that the font, like the pre-cut sticker sheets, is at easily at hand.&lt;/div&gt;</summary>
		<author><name>Simoon</name></author>
	</entry>
</feed>