Skip to main content

No project description provided

Project description


Utilities to convert to and from CNXML - a lightweight XML markup language for marking up educational content in use by Connexions (

To run transformations manually see *.sh script files manual-tests/ Usually all test xml/html files are stored in rhaptos/cnxmlutils/tests/data/


Run the tests by running ./script/setup and then ./script/test.

To rebuild the tests, run ./script/rebuild-tests.

Code is hosted at: -


This software is subject to the provisions of the GNU Affero General Public License Version 3.0 (AGPL). See license.txt for details. Copyright (c) 2013 Rice University



  • preseve class name on links that have autogenerated link text


  • Ensure footnotes with equations aren’t dropped
  • Copy id attribute from CNXML table row entries


  • Dump footnotes right after para
  • Use epub notation for footnotes


  • Fix lxml version in for python 2.7


  • Install lxml>=4, <4.4 only for python != 2.7 or < 3.5
  • Change travis to use python 3.5 instead of 3.4


  • Add self close comment to section titles h3 etc
  • fix travis on python 3.4


  • Add no self close comment to <section> in cnxml-to-html5
  • Add no self close comment to <figure> in cnxml-to-html5
  • Add no self close comment to <u> in cnxml-to-html5
  • Remove no self close comment for <a> where unnecessary
  • Add no self close comment to <figcaption> in cnxml-to-html5


  • Added twine check to travis (#183)
  • Fixed restructured text error in README.txt (#184)


  • Fix restructured text error in history.txt (#182)


  • Added new comment <!– no-selfclose –> is only created in the output when there is no content inside the tag (#180)
  • Make self-closing tags mandatory for spans, div, iframe, etc. (#179)
  • Add utf-8 and math content to tests, check for self closing tags in tests (#178)


  • Add longdesc attribute to img tags during transform (#175)


  • convert all cnx:newline to span (#174)


  • Fix conversion of para/cite/note (partial fix for #162)


  • Fix handling of nested terms in glossary (#164)


  • Set xsl/test/ version to “v0.test”
  • Include the version that was used when transforming (#161)
  • Convert windows ISO characters to UTF-8 (#160)
  • Make lists nicer for CSS usage (#159)
  • Unwrap blocks in paragraphs (#158)
  • Remove class=”TYPE” in favor of just data-type=”type” (#154)
  • Fix double-listing the footnotes (#151)
  • Fix footnotes so they are not double-numbered and more selectable (#150)
  • Move cnxml section title to be an h3 (and down, for subsections) (#148)
  • Fix to preserve the ‘class’ on the top node of the document (#145)
  • Fix notes to be exactly one paragraph with title (#141)
  • Correct input cnxml for xsl tests to be valid (#139)
  • Update tests to be python3 compatible (#137)
  • Remove stale test for a feature not used in later versions


  • (unknown)


  • Handle bold and italic paragraph styles [rochecompaan]
  • alt tags on figures propogate to media
  • fixed subfigure cases


  • Initial release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for rhaptos.cnxmlutils, version 2.1.1
Filename, size File type Python version Upload date Hashes
Filename, size rhaptos.cnxmlutils-2.1.1-py2.py3-none-any.whl (151.3 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page