Title: Publishing with Amusewiki
Subtitle: Oslo, Nordic Perl Workshop 2018
Author: Marco Pessotto
Date: September 6, 2018

      About me: Marco Pessotto

      Main features

      Overview

        Sample page

        Sample imposed PDF (more schemas available)

        Sample EPUB (on Firefox, Epubreader plugin)

        Sample Slides

        Upload a text (with an HTML importer)

        Editing

        Ready to publish?

        Checking

        Publish (tailing a background daemon)

        Done

      Source sample

      Modules and offline tools

      Web Frontend

        Powerful and fast faceted search, powered by Xapian

        Static but functional mirror

        Bookbuilder

        Imposer

        Fine tuning for formats

      Any time left? Debian packages

        Debian packages cons

        Debian packages pros

      Questions?

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

#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!