Connexions CNXML Library
Project description
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
Install https://atom.io
Get the cnxml RNG Schema files
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/
Unzip the file
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)
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
Start up Atom
Install the linter-autocomplete-jing package
Type <kbd>⌘</kbd>+<kbd>,</kbd> (for Mac) to open Settings (or click Atom, Preferences… in the menu bar)
Click Install in the left-hand-side
Enter linter-autocomplete-jing and click Install
Alternative: run apm install linter-autocomplete-jing from the commandline
Edit ~/.atom/config.cson by clicking Atom, Config in the menu bar and add the following lines (at the bottom of this document)
Restart Atom
Open an unzipped complete-zip. (I run atom ~/Downloads/col1234_complete From a terminal)
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
Change Log
3.1.4
Make module titles in collection optional (#35)
3.1.3
Support using document title once it is removed from metadata (#33)
Remove some metadata unused by git storage (#32)
3.1.2
Update schema and add support for slug in metadata (#30)
3.1.1
Add support for new optional metadata (#28)
3.1.0
Relax required information when parsing metadata (#25)
3.0.1
Re-release of 3.0.0
3.0.0
Add tests for cnxml <md:derived-from …> validation
Fix failing derived-from cnxml validation tests
Use a self-closing md:derived-from as the valid repr
Move the metadata parsing from Press to cnxml (#20)
Add a CLI utility for extracting cnxml metadata to json (#22)
2.2.0
Extend validation API to accept multiple documents to validate
2.1.1
Tweak mdml schema to properly allow any metadata element under derived-from
2.1.0
Remove external pathlib dependency
Drop support for Python <= 2.7
Use versioneer for project versioning
Correct license in setup.py
Add instructions to validate with the atom.io editor
2.0.0
Add a commandline interface for collxml validation
Rename main cli function to make room for another entrypoint
Make the metadata section required in collxml
Add collxml validation function
1.1.0
Use a namedtuple for validation error line data.
1.0.0
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file cnxml-3.1.4-py3-none-any.whl
.
File metadata
- Download URL: cnxml-3.1.4-py3-none-any.whl
- Upload date:
- Size: 914.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e88e5a5ad921437b1d5836766eb36757846370c9eb6cfc0b0ef157960cdc21d5 |
|
MD5 | 1bcad6239f9546b257a3e642fc31effd |
|
BLAKE2b-256 | 6a03bc1ad21f6956d128d12a280acc848177f4016ebb459069750ab0f014084c |