Draft.js sample content generated with Markov chains of Project Gutenberg books.
Project description
markov_draftjs
![npm](https://pypi-camo.freetls.fastly.net/cca2e8e67c849d34a45a9094d8a049695c344352/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6d61726b6f765f64726166746a732e737667)
Draft.js sample content generated with Markov chains of Project Gutenberg books.
This sample content is meant to be used while testing projects based on Draft.js, in particular Draftail and draftjs_exporter.
Why
Sample content can be useful to stress-test and benchmark tools built to handle Draft.js content. For the exporter, this is a great way to reliably assess its performance.
The content from this repository isn't generated randomly – while the text and metadata values are fake, the content’s structure and the distribution of rich text formatting amongst the text is representative of that of 3 big CMS sites combined.
Here are rich text formats used in the content:
- Blocks
unstyled
header-two
header-three
header-four
ordered-list-item
, depth: 0 or 1unordered-list-item
, depth: 0 or 1atomic
- Inline styles
BOLD
ITALIC
- Entities
LINK
,MUTABLE
withurl
(URL),linkType
(page|external|email
), optionallyid
(number)DOCUMENT
,MUTABLE
withlabel
(plain text),id
(string containing a number)IMAGE
,IMMUTABLE
withtitle
(plain text),id
(string containing a number),src
(URL)HORIZONTAL_RULE
,IMMUTABLE
without data
Using the sample content
In order to simplify using the samples across multiple projects, they are published as packages on npm and PyPI.
# JavaScript projects.
npm install markov_draftjs
# Python projects.
pip install markov_draftjs
Then, in JavaScript:
const contentStates = require("markov_draftjs");
And in Python:
from markov_draftjs import get_content_sample
content_states = get_content_sample()
The sample content is also available from GitHub, eg. with RawGit (warning - big file): https://cdn.rawgit.com/thibaudcolas/markov_draftjs/44827d98/markov_draftjs/content.json.
Development
Requirements:
virtualenv
,pyenv
,twine
git clone git@github.com:thibaudcolas/markov_draftjs.git
cd markov_draftjs/
# Install the git hooks.
./.githooks/deploy
# Install dependencies
nvm install
npm install
# Unarchive sample text.
cd corpora/
tar -xzvf *.tar.gz
cd ..
# Install the Python environment.
virtualenv .venv
source ./.venv/bin/activate
make init
# Install required Python versions
pyenv install --skip-existing 3.10.0
# Make required Python versions available globally.
pyenv global system 3.10.0
# Generate new sample content.
npm run start
Releases
- Use
irish-pub
to confirm the content of the npm package. - Make a new branch for the release of the new version.
- Update the CHANGELOG.
- Update the version number in
markov_draftjs/__init__.py
, andpackage.json
, following semver. - Make a PR and squash merge it.
- Back on main with the PR merged, use
make publish
(confirm, and enter your password) andnpm publish
. - Finally, go to GitHub and create a release and a tag for the new version.
- Done!
See also
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 Distribution
Built Distribution
Hashes for markov_draftjs-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7974e424bf99ee599aed6ff470bff35b4b594a0d69a8d75e2134b0c7cd78760f |
|
MD5 | 14cb4ac599bdf93d43e2dfb2f11451fa |
|
BLAKE2b-256 | e796e79ec2b65397a4a1f4b2a7a1b10fb0e71ac61f1c337a1016c4bbe2ec21e2 |