Giter Site home page Giter Site logo

jazzynico / objavi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from booktype/objavi

0.0 2.0 0.0 107.21 MB

Publishing engine for Booktype

Home Page: https://www.sourcefabric.org/en/booktype/

License: Other

Python 82.73% Shell 3.17% CSS 8.06% JavaScript 6.04%

objavi's Introduction

Introduction
------------

Objavi is a publishing engine primarly intender for exporting Booktype
books to PDF, EPUB or ODF for distribution or printing.  The name comes
from the Croatian word "objavi!" meaning "publish!".

Objavi is primarily written in Python, with a substantial amount of
QSAScript (an ECMAscript variant) and some Javascript, HTML, and CSS.

The development of Objavi was supported by Internews.  It was
extended to produce EPUB documents with support from the Internet
Archive.

Currently Objavi is part of the Booktype project which is being developed
by the Sourcefabric organization (www.sourcefabric.org).


Installation
------------

See the INSTALL.txt file for installation instructions.


More Info
---------

Objavi is part of the Booktype project, so they shared support and
development forums.

Wiki
https://wiki.sourcefabric.org/display/Booktype/Booktype

Support forum
http://forum.sourcefabric.org/categories/booktype-support

Development forum
http://forum.sourcefabric.org/categories/booktype-development

Bug tracker
http://dev.sourcefabric.org/browse/OB



The objavi process
------------------

Objavi starts with a "booki-zip", as defined in the file
"doc/booki-zip-standard.txt".  This might be sourced from a Booktype
instance, or from TWiki via the booki-twiki-gateway script, or perhaps
form an EPUB imported via Espri.

PDF Output
~~~~~~~~~~
If a PDF is required, the HTML is concatenated, various extra bits are
inserted, and the wkhtmltopdf program rederes it using WebKit.

At this point the PDF has no page numbers, no gutters, no table of
contents, and is using a too big paper size.  In order to write a
table of contents, an outline of the PDF is extracted and laid out as
html.  The table of contents thus generated is combined with other
preliminary pages and another PDF is created.

If a book PDF is required, Pdfedit is used to crop the pages down to
size and to shift them alternately left and right, creating a gutter
for the spine of the book.  Then pdfedit is used again to add page
numbers to both PDFs, with lowercase roman numbers being used for the
preliminary pages.

Finally the two PDFs are combined using pdftk and, optionally, spun
180 degrees so they appear upside down.  If a right-to-left book is
printed like this on a left-to-right printer, the binding will be on
the correct side.

Pdfedit and wkhtmltopdf both require an X server to run, for which
Xvfb is used.

For newspaper format, the page size is set to the column width, and
pdfnup is used to arrange the columns on another page.

OpenOffice output
~~~~~~~~~~~~~~~~~
ODF output was introduced with Objavi 2.1.  This uses an Open Office
instance controlled by pyuno.

EPUB output
~~~~~~~~~~~
The html in the booki-zip is manipulated into xhtml using lxml, and
the structural information and metadata is converted into EPUB form.

objavi's People

Contributors

bjandras avatar tuukka avatar aerkalov avatar johanneswilm avatar jazzynico avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.