-----Original Message----- From: program-l-bou...@freelists.org [mailto:program-l-bou...@freelists.org] On Behalf Of Lloyd Rasmussen Sent: Thursday, May 07, 2009 7:15 PM To: progra...@freelists.org; Technical Developments Discussion List; nf...@nfbnet.org; braille-in-da...@daisy.org Subject: [program-l] [Fwd: Preparing documents for Braille printing - Announcing Transcribo: a plain text renderer for Docutils]
This may be of interest to some of you. Replies should go to Dr. Leo, who appears to be in Germany. >Date: Thu, 07 May 2009 10:18:39 +0200 >From: Hans Zoebelein <hzoebel...@gmail.com> >To: blinux-annou...@redhat.com >Subject: [Fwd: Preparing documents for Braille printing - Announcing > Transcribo: a plain text renderer for Docutils] >List-Subscribe: <https://www.redhat.com/mailman/listinfo/blinux-announce>, > <mailto:blinux-announce-requ...@redhat.com?subject=subscribe> >Sender: blinux-announce-boun...@redhat.com > > > >-------- Original Message -------- >Subject: Preparing documents for Braille printing - Announcing Transcribo: >a plain text renderer for Docutils >Date: Sun, 26 Apr 2009 12:59:32 +0200 >From: Leo <mailto:fhaxbo...@googlemail.com><fhaxbo...@googlemail.com> >Reply-To: <mailto:fhaxbo...@googlemail.com>fhaxbo...@googlemail.com, >Developing software for blind Linux users ><mailto:blinux-deve...@redhat.com><blinux-deve...@redhat.com> >To: <mailto:blinux-deve...@redhat.com><blinux-deve...@redhat.com> > > > >Hi all, > >looking for a cross-platform, open-source software preparing structured >documents for Braille printing, I finally decided to start my own project >named Transcribo. It is hosted on ><http://transcribo.berlios.de/>http://transcribo.berlios.de/. It is >written in the Python programming language and builds on Docutils >(<http://docutils.sourceforge.net>http://docutils.sourceforge.net). >Docutils parses text written in a >light-weight, easy-to-learn, extensible mark-up language called >reStructuredText (rst). While rst has many features that make it suitable >for writing technical documentation, it is general enough to allow authoring >any kind of structured document. The simplicity and power of >reStructuredText make it suitable for authoring large documents for Braille >printing as well. One objective of Transcribo is to distinguish different >content types in a single document and associate dedicated translators with >these. Hence, Transcribo easily integrates with third-party software for >contracted Braille (see e.g. <http://yabt.berlios.de>http://yabt.berlios.de). > > Transcribo consists of two parts: >- first, a general purpose plain text renderer that is based on frames to >handle the layout, and ContentManagers responsible for translations, text >wrapping etc. > - second, a writer component for Docutils called rst2txt. It provides the >bridge between the Docutils raw output and the renderer. > >The output of rst2txt is customizable through styles. All this is very >much pre-alpha, even if the demo scripts show that nested lists and >enumerations can already be rendered. > >I believe that Transcribo's planned features could make it a very powerful >authoring solution for Braille printing. Apart from the Docutils - rst2txt - >renderer tool chain, other input formats such as odf, rtf etc. are >conceivable if a good soul wrote suitable frontends for the renderer. >Clearly, all this requires really really a lot of work which I can hardly do >alone due to many other commitments. > >See a more detailed description including all the links below. Any >feedback and help is warmly welcomed. Feel free to join the mailing list. >The source code can be obtained by checking out the Mercurial repository. > >Regards > >Leo > > > > >Transcribo - a plain text rendering library written in Python >================================================================= > >Project home: <http://transcribo.berlios.de/>http://transcribo.berlios.de/ > >Mercurial repository: ><http://hg.berlios.de/repos/transcribo/>http://hg.berlios.de/repos/transcri bo/ > >Mailing-List: <mailto:transcribo-...@berlios.de>transcribo-...@berlios.de > >Version: 0.1 (experimental) > >Author: Dr. Leo <mailto:dr-...@users.berlios.de><dr-...@users.berlios.de> > >License: GPL >(<http://www.opensource.org/licenses/gpl-license.html>http://www.opensource .org/licenses/gpl-license.html) > >(c) 2009 Dr. leo > > > > >1. Introduction >================= > >Transcribo is a pure Python library to render input from various >sources as plain unicode text. It currently >consists of two subpackages: > >1.1 rst2txt >-------------- > >In combination with the renderer, this will be a Writer component for >Docutils (<http://docutils.sourceforge.net/>http://docutils.sourceforge.net/). >Once finished, it will allow to render >reStructuredText files as plain text. At the same time it demonstrates >how the renderer (see below) can be >used. rst2txt roughly maps the nodes of the Docutils doctree to Frame >instances that form a fram tree. However, the frame tree >has a somewhat different structure than the docutils doc tree as frames do >not >necessarily reflect the document structure. E.g., sections are not >rendered as parent frames of the section content, >but at the same level. > >The rst2txt package is heavily under construction. Currently, the following >node types are supported: > >document, title, section, paragraph, text, bullet_list, >enumerated_list, list_item > > >1.2 The renderer >------------------------- > >The renderer is the core of Transcribo. It is premised on an almost >complete abstraction of layout and content. > >* The key concept to achieve simple yet > powerful layout capabilities is the Frame class. Each Frame >instance represents a > rectangular area within the final output. Its position and size >are determined dynamically > relative to other frames during the rendering process. Frames can be >nested. > The RootFrame instance controls the rendering process and assembles the >line > snippets rendered by each frame to form complete text lines. This allows > things like multiple columns, nested enumerations etc. In future >versions, > the RootFrame will also control pagination features. > >* Content: Leafs of the tree of Frame instances store the actual >content within a > content.ContentManager instance which, in turn, may store various >content elements such as > text, mathematical expressions, MusicXML etc. Currently, only >GenericText is supported. > More precisely, each leaf Frame must have a ContentManager >instance which controls the > rendering of the content it contains. Each content element is >rendered separately. > A special feature is the possibility to attach a translator instance to >each > content object as well as to the ContentManager. This feature is >required, > in particular, for Braille translation. The ContentManager is also >responsible > for wrapping and hyphenating the content, if required. > >All aforementioned features are highly configurable through >dictionaries passed to the >constructors. > > >2. the Frame API >====================== > >(to be completed; meanwhile please see the documented sources and the >test.py script) > > >3. The ContentManager API >============================== > >(to be completed; meanwhile please see the documented sources and the >test.py script) > > > >4. Testing >============== > >The test subdirectory contains two test scripts that should work out of the >box: > >* test.py: demonstrates the renderer API by rendering a nested enumeration. >* rst2txt.py is a command line tool. A demo text file shows some of >the features of the rst2txt writer. > > > >5. Contributing >================== > >Development is in an early stage. Any help is very much appreciated. >Feel free to join the mailing >list, check out the Mercurial repository and start coding, > >_______________________________________________ >Blinux-develop mailing list ><mailto:blinux-deve...@redhat.com>blinux-deve...@redhat.com >https://www.redhat.com/mailman/listinfo/blinux-develop > Lloyd Rasmussen, Senior Project Engineer, Engineering Section National Library Service for the Blind and Physically Handicapped Library of Congress (202) 707-0535 <http://www.loc.gov/nls> HOME: <http://lras.home.sprynet.com> The opinions expressed here are my own and do not necessarily represent those of NLS. ** To leave the list, click on the immediately-following link:- ** [mailto:program-l-requ...@freelists.org?subject=unsubscribe] ** If this link doesn't work then send a message to: ** program-l-requ...@freelists.org ** and in the Subject line type ** unsubscribe ** For other list commands such as vacation mode, click on the ** immediately-following link:- ** [mailto:program-l-requ...@freelists.org?subject=faq] ** or send a message, to ** program-l-requ...@freelists.org with the Subject:- faq To unsubscribe send a message to accessindia-requ...@accessindia.org.in with the subject unsubscribe. To change your subscription to digest mode or make any other changes, please visit the list home page at http://accessindia.org.in/mailman/listinfo/accessindia_accessindia.org.in