Connexions CNXML Library


License
Other
Install
pip install cnxml==3.0.0

Documentation

CNXML Library

This is a python library for working with CNXML content, which includes the CNXML and COLLXML formats.

Install

This library requires Python >=3.5.

Install using:

pip install -e "."

Tests

Use the tox to run the tests:

tox

If tox is not installed, run the following:

pip install tox

Edit/Validate files using atom.io

Preparation

  1. Install https://atom.io
  2. Get the cnxml RNG Schema files
    1. Download the most recent version from https://github.com/Connexions/cnxml/releases (click the "zip" link)
      • It should be in your Download foler
      • Move it to ~/.neb/
    2. Unzip the file
    3. It should have created a folder named something like cnxml-2.0.0 (with /cnxml/xml/cnxml/schema/rng/0.7/cnxml-jing.rng in it)
    4. Rename the folder to be something you are unlikely to accidentally delete (like cnxml-validation)
      • Remember the name for later when you are editing ~/.atom/config.cson

Install

  1. Start up Atom
  2. Install the linter-autocomplete-jing package
  3. Type <kbd>⌘</kbd>+<kbd>,</kbd> (for Mac) to open Settings (or click Atom, Preferences... in the menu bar)
    1. Click Install in the left-hand-side
    2. Enter linter-autocomplete-jing and click Install
    3. Alternative: run apm install linter-autocomplete-jing from the commandline
  4. Edit ~/.atom/config.cson by clicking Atom, Config in the menu bar and add the following lines (at the bottom of this document)
  5. Restart Atom
  6. Open an unzipped complete-zip. (I run atom ~/Downloads/col1234_complete From a terminal)
  7. Verify by opening an index.cnxml file and typing in <figure> somewhere in the file. If it is a valid location then it should auto-add id="" for you

Changes to ~/.atom/config.cson:

"*":
  core:
    customFileTypes:

      # Add this to the bottom of the customFileTypes area.
      # Note: Indentation is important!
      "text.xml": [
        "index.cnxml"
      ]


  # And then this to the bottom of the file
  # 1. Make sure "linter-autocomplete-jing" only occurs once in this file!
  # 1. make sure it is indented by 2 spaces just like it is in this example.

  "linter-autocomplete-jing":
    displaySchemaWarnings: true
    rules: [
      {
        priority: 1
        test:
          pathRegex: ".cnxml$"
        outcome:
          schemaProps: [
            {
              lang: "rng"
              path: "~/.neb/cnxml-validation/cnxml/xml/cnxml/schema/rng/0.7/cnxml-jing.rng"
            }
          ]
      }
    ]

License

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) 2016 Rice University