Marco Pessotto (melmothX)
Publishing with Amusewiki
Oslo, Nordic Perl Workshop 2018
Sample imposed PDF (more schemas available)
Sample EPUB (on Firefox, Epubreader plugin)
Upload a text (with an HTML importer)
Publish (tailing a background daemon)
Powerful and fast faceted search, powered by Xapian
About me: Marco Pessotto
- PAUSE id
-
MELMOTHX
- IRC
-
melmothX
on Libera Chat andirc.perl.org
-
melmothx@gmail.com
- Homepage
- IRC channel
-
irc://irc.libera.chat/#amusewiki
- GitHub
- 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
Sample imposed PDF (more schemas available)
Sample EPUB (on Firefox, Epubreader plugin)
Sample Slides
-
Amusewiki can be used to produce slides as well
-
You are looking at them
:-)
Upload a text (with an HTML importer)
Editing
Ready to publish?
Checking
Publish (tailing a background daemon)
Done
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) andDBIx::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
Static but functional mirror
wget -q -O - https://amusewiki.org/mirror.txt | \ wget -x -N -q -i -
Bookbuilder
Tutorial available at https://amusewiki.org/library/bookbuilder-tutorial
Imposer
Fine tuning for formats
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!