Skip to main content

A package for authoring and building PreTeXt documents.

Project description

PreTeXt-CLI

A package for authoring and building PreTeXt documents.

Documentation and examples for authors/publishers

This README is written for the PreTeXt developer community. Documentation for PreTeXt authors and publishers is available at:

Authors and publishers may also find the examples catalog useful as well:


Installation

Installing Python

PreTeXt-CLI requires the Python version specified in .python-version.

To check your version, type this into your terminal or command prompt:

python -V

If your version is 2.x, try this instead (and if so, either replace all future references to python in these instructions with python3).

python3 -V

If you don't have a compatible Python available, try one of these:

Installing PreTeXt-CLI

Once you've confirmed that you're using a valid version of Python, just run (replacing python with python3 if necessary):

python -m pip install --user pretextbook

(It's also possible you may get an error like error: invalid command 'bdist_wheel' — good news, you can ignore it!)

After installation, try to run:

pretext --help

If that works, great! Otherwise, it likely means that Python packages aren't available on your “PATH”. In that case, replace all pretext commands with python -m pretext instead:

python -m pretext --help

Either way, you're now ready to use the CLI, the --help option will explain how to use all the different subcommands like pretext new and pretext build.

Upgrading PreTeXt-CLI

If you have an existing installation and you want to upgrade to a more recent version, you can run:

python -m pip install --upgrade pretextbook

Importing PreTeXt-provided XSL into custom XSL

When using the custom XSL CLI feature, PreTeXt XSL (e.g. pretext-common.xsl) may be imported by including the following line:

<xsl:import pretext-href="pretext-common.xsl"/>

Development

From the "Clone or Download" button on GitHub, copy the REPO_URL into the below command to clone the project.

git clone [REPO_URL]
cd pretext-cli

Using a valid Python installation

Developers and contributors are highly encouraged to install the exact version of Python that is specified in .python-version. All instructions assume that the Python on your path (e.g. the result of python -V) matches this version.

Using pyenv (Mac/Linux)

The pyenv tool for Linux automates the process of running the correct version of Python when working on this project (even if you have other versions of Python installed on your system).

$ pyenv install "$(cat .python-version)"
    # installs version set in `.python-version`
$ which python
/home/user/.pyenv/shims/python
$ python -V
Python (version set in `.python-version`)

Steps on Windows

In windows, you can either use the bash shell and follow the directions above, or try pyenv-win. In the latter case, make sure to follow all the installation instructions, including the Finish the installation. Then proceed to follow the directions above to install the version of python in .python-version. Finally, you may then need to manually add that version of python to your path.

Managing packages and virtual environments

Install pipenv to manage your Python packages:

python -m pip install --upgrade pip
python -m pip install pipenv

Then all additional dependencies can be installed into a virtual environment as follows:

$ python -m pipenv --rm
    # destroy any outdated environment
$ git pull
    # ensures your build versions locked by Pipfile.lock
$ python -m pipenv install --dev
    # creates virtual environment and installs dependencies

Then use python -m pipenv shell to enter the virtual environment directly.

$ python -m pipenv shell
Launching subshell in virtual environment…
$ cd
$ pretext new
Generating new PreTeXt project in `/home/user/new-pretext-project` using `book` template.

You can also use python -m pipenv run [CMD] for quick runs outside the virtual environment, e.g.:

$ python -m pipenv run pretext new

Updating dependencies

To add dependencies for the package, edit setup.py. then run

python -m pipenv update

To add dependencies for the development environment (those not needed to use the packaged CLI), use

python -m pipenv install [package] --dev

To update dependencies added by other contributors, use

python -m pipenv sync

Syncing untracked updates

Updates to certain files tracked to the repository will need to be rebuilt by each user when pulled from GitHub.

The file pretext/static/CORE_COMMIT tracks the upstream commit of core PreTeXt XSL/Python code we're developing against (from rbeezer/mathbook). To grab these updates from upstream, run:

python scripts/update_core.py

If you instead want to point to a local copy of rbeezer/mathbook, try this instead to set up symlinks:

python scripts/simlink_core.py path/to/mathbook

Updates to templates/ must be zipped and moved into pretext/static/templates. This is done automatically by running:

python scripts/zip_templates.py

Packaging

See https://packaging.python.org/tutorials/packaging-projects/. Inside a virtual environment:

python scripts/build_release.py

Versioning

See VERSIONING.md.

About

PreTeXt-CLI Lead Developers

About PreTeXt

The development of PreTeXt's core is led by Rob Beezer.

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

pretextbook-0.6rc0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pretextbook-0.6rc0-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file pretextbook-0.6rc0.tar.gz.

File metadata

  • Download URL: pretextbook-0.6rc0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.5

File hashes

Hashes for pretextbook-0.6rc0.tar.gz
Algorithm Hash digest
SHA256 cbc60b99290e78f78f934a7b3c0908900f5ab6be92a919e21541b6a5fa01aca9
MD5 2fae28da613d737ddd2d3e43d207acba
BLAKE2b-256 349d0e0f550ad86befb19bee86c1189ae0991aee4474c403a06b4ae5d4ecbb18

See more details on using hashes here.

File details

Details for the file pretextbook-0.6rc0-py3-none-any.whl.

File metadata

  • Download URL: pretextbook-0.6rc0-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.5

File hashes

Hashes for pretextbook-0.6rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 06fdeeafba44ecba20affe116feec3da75abebf2730147645ecee3dbaddfad6d
MD5 262dca5de6ffef6d7cda83f8737d3a94
BLAKE2b-256 1077edb06fc33abea2d40f7a26d2bc6ef782220fa9a1b8945b99b5c22a6d5981

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page