#title Publishing with Amusewiki #pubdate 2018-09-07 #subtitle Oslo, Nordic Perl Workshop 2018 #author Marco Pessotto (melmothX) #SORTauthors Marco Pessotto #date September 6, 2018 #slides ON *** About me: Marco Pessotto PAUSE id :: =MELMOTHX= IRC :: =melmothX= on Libera Chat and =irc.perl.org= E-mail :: =melmothx@gmail.com= Homepage :: [[https://amusewiki.org]] IRC channel :: =irc://irc.libera.chat/#amusewiki= GitHub :: [[https://github.com/melmothx]] Background :: Humanities (history and translations) *** Main features - Flat file storage, under Git - Each text is stored in a single, self-contained, text file - Rich range of output formats (PDF, Epub, HTML) - Don't lock the users in: high decoupling (single text / archive / application) - A comprehensive test suite - Packaged for Debian: [[http://packages.amusewiki.org]] *** Overview **** Sample page [[o-s-slides-1.png]] **** Sample imposed PDF (more schemas available) [[o-s-slides-2.png]] **** Sample EPUB (on Firefox, Epubreader plugin) [[o-s-slides-3.png]] **** Sample Slides - Amusewiki can be used to produce slides as well - You are looking at them =:-)= **** Upload a text (with an HTML importer) [[o-s-slides-4.png]] **** Editing [[o-s-slides-5.png]] **** Ready to publish? [[o-s-slides-6.png]] **** Checking [[o-s-slides-7.png]] **** Publish (tailing a background daemon) [[o-s-slides-8.png]] **** Done [[o-s-slides-9.png]] *** Source sample - Borrowed from Emacs Muse [[https://www.gnu.org/software/emacs-muse/index.html]] - Supported (read/write) by Pandoc [[https://pandoc.org/]] {{{ #title My title #author John Doe #lang en ** Chapter one And **here** the *text* starts 1. Foo 2. Bar }}} *** Modules and offline tools =Text::Amuse= :: The parser =Text::Amuse::Preprocessor= :: Typographical filters (=muse-preprocessor.pl=) and HTML importer (=html-to-muse.pl=) =Text::Amuse::Compiler= :: The compiler (=muse-compile.pl=) =PDF::Imposition= :: The PDF imposer (=pdf-imposer.pl=) =PDF::Cropmarks= :: Add cropmarks to the PDF (=pdf-cropmarks.pl=) *** Web Frontend Framework :: Catalyst Layout :: Bootstrap Multisite :: on one instance you can run as many sites you want Database :: =DBIx::Class= (SQLite, MySQL, PostgreSQL) and =DBIx::Class::DeploymentHandler= for automatic upgrades Templating :: Template Toolkit Localization :: Danish, German, English, Spanish, Finnish, French, Serbo-Croatian, Italian, Macedonian, Dutch, Russian, Albanian, Swedish **** Powerful and fast faceted search, powered by Xapian [[o-s-slides-10.png]] **** Static but functional mirror {{{ wget -q -O - https://amusewiki.org/mirror.txt | \ wget -x -N -q -i - }}} [[o-s-slides-11.png]] **** Bookbuilder [[o-s-slides-12.png]] Tutorial available at [[https://amusewiki.org/library/bookbuilder-tutorial]] **** Imposer [[o-s-slides-13.png]] **** Fine tuning for formats [[o-s-slides-14.png]] *** Any time left? Debian packages Instead of running the app from the git tree on a dedicated home, with a =local::lib= tree or with a perl installed in the home, now you can visit [[http://packages.amusewiki.org/]] and follow the instructions there (import the key, add the repository, and install the package). Minimum requirement: Debian Jessie and Ubuntu 16.04 LTS. [[https://github.com/melmothx/amusewiki-debian-packages]] **** Debian packages cons - More burden on the developer - Trivial changes require a package rebuild - Needs to ship about 25 new packages (fonts and perl modules) - Can't use fresh code from the module used without being too invasive. - Debian people usually don't like private repositories **** Debian packages pros - Installation is straightforward - Maintenance for the administrator is integrated in the regular =apt-get= routine - Much smaller installation footprint (mostly because the texlive installation is optimized and shared) - Improved security - code is installed and owned by root, not by the user running the application - debian is taking care of the security updates of the dependencies (not only the perl dependencies, but also the libraries used by =LaTeX=, =cgit= and other utilities) - 0 downtime upgrades out of the box - Predictability of locations and module versions (so gets more live testing) *** Questions? Thanks!