Self-service project template

The delivery format of XMLPaper is a self-service project template. This project template does not only contain an outline of a paper to be filled in, but also configuration files for all the required tools and services so that authors can start working on the conference paper right away.

In order to create an affordable solution we reused off-the-shelf tools and services and made them work together without having the author set every up thing. To make it easy to create a portable configuration that works without any software requirements for authors XMLPaper uses mostly cloud services.

XMLPaper allows authors, just by clicking a button, to copy the project template to their Git account and deploy a web-based dashboard for working on the paper.

XMLPaper Dashboard

The Dashboard contains buttons to perform the following tasks:

The back-end of the solution is composed of several services as depicted in the diagram below:

XMLPaper back-end services diagram

  • The Dashboard is a static web page with hyperlinks to the web interfaces of the other services. It is generated during the initial setup since the links depend on the location of the Git repository.

  • The Git repository stores the source of the paper together with configuration files and build scripts.

  • The web-based editor can be opened using a link on the Dashboard. It connects to the Git repository to read the paper source and to commit it every time the users saves.

  • Every time an user commits a file in the Git repository, a git hook triggers a new job on the build server. This job connects back to the Git repository to pull the entire repository and then performs the following tasks:

    • Generates the PDF preview.

      This task involves downloading several tools such as Saxon 6.5, DocBook XSL, XSLT-HL (for syntax highlight in code-blocks), and Apache FOP. It also involves applying some custom XSLT and configuring the above-mentioned tools.

      Example 1. PDF Generation configuration

      java -cp "bin/saxon.jar:bin/docbook/xsl/extensions/xslthl.jar" \           
          com.icl.saxon.StyleSheet processed_paper.xml \
          bin/docbook/xsl/fo/docbook_custom.xsl \
        admon.graphics=1 \
        admon.graphics.extension=.png \
        admon.graphics.path=bin/docbook/css/img/ \
        "body.font.family=Times New Roman, Tahoma, Batang, serif" \
        callout.graphics.path=bin/docbook/xsl/images/callouts/ \
        draft.mode="no" \
        fop.extensions=0 \
        fop1.extensions=0 \
        highlight.source=1 \
        highlight.xslthl.config=\
          file://`pwd`/bin/docbook/xsl/hl/xslthl-config.xml \
        "monospace.font.family=monospace, Courier New, Consolas, Arial" \
        paper.type=A4 \
        "title.font.family=Arial, Tahoma, Batang, sans-serif" \
      > out/paper.fo


      However, configuring the publishing pipeline is the job of the conference organizers. Authors just save in the editor and then a build starts which in turn uploads the generated PDF to the web server.

    • Generates the deliverable archive containing the XML source and all its referenced files, for example images.

    • Generates the Dashboard web page. This page is static and does not change over time. However, its links depend on the URL of the Git repository, so it has to be generated during the first build.

    • Pushes everything on the web hosting service. In the current implementation the web hosting and build server services are part of the same product.