Skip to main content

Proper title-casing for Python's Markdown.

Project description

Markdown title-casing extension

Python’s Markdown extension to apply proper English title-casing.

This project use titlecase module under the hood. Transformation is applied on content enclosed in <h1> to <h6> HTML tags. Meta-Data extension is supported so that document title can be transformed too.

Stable release: Last release Software license Requirements freshness Popularity

Development: Unit-tests status Coverage Status Code Quality


This package is available on PyPi, so you can install the latest stable release and its dependencies with a simple pip call:

$ pip install mdx_titlecase

See also pip installation instructions.


Parameter Default value Description
metadata ['title', ] List of metadata keys to which apply titlecasing.


Check out latest development branch:

$ git clone
$ cd ./mdx_titlecase
$ python ./ develop

Run unit-tests:

$ python ./ nosetests

Run PEP8 and Pylint code style checks:

$ pip install pep8 pylint
$ pep8 mdx_titlecase
$ pylint --rcfile=setup.cfg mdx_titlecase

Stability policy

Here is a bunch of rules we’re trying to follow regarding stability:

  • Patch releases (0.x.n0.x.(n+1) upgrades) are bug-fix only. These releases must not break anything and keeps backward-compatibility with 0.x.* and 0.(x-1).* series.
  • Minor releases (0.n.*0.(n+1).0 upgrades) includes any non-bugfix changes. These releases must be backward-compatible with any 0.n.* version but are allowed to drop compatibility with the 0.(n-1).* series and below.
  • Major releases (n.*.*(n+1).0.0 upgrades) are not planned yet: we’re still in beta and the final feature set of the 1.0.0 release is not decided yet.

Release process

Start from the develop branch:

$ git clone
$ git checkout develop

Revision should already be set to the next version, so we just need to set the released date in the changelog:

$ vi ./CHANGES.rst

Create a release commit, tag it and merge it back to master branch:

$ git add ./mdx_titlecase/ ./CHANGES.rst
$ git commit -m "Release vX.Y.Z"
$ git tag "vX.Y.Z"
$ git push
$ git push --tags
$ git checkout master
$ git pull
$ git merge "vX.Y.Z"
$ git push

Push packaging to the test cheeseshop:

$ pip install wheel
$ python ./ register -r testpypi
$ python ./ clean
$ rm -rf ./build ./dist
$ python ./ sdist bdist_egg bdist_wheel upload -r testpypi

Publish packaging to PyPi:

$ python ./ register -r pypi
$ python ./ clean
$ rm -rf ./build ./dist
$ python ./ sdist bdist_egg bdist_wheel upload -r pypi

Bump revision back to its development state:

$ pip install bumpversion
$ git checkout develop
$ bumpversion --verbose patch
$ git add ./mdx_titlecase/ ./CHANGES.rst
$ git commit -m "Post release version bump."
$ git push

Now if the next revision is no longer bug-fix only:

$ bumpversion --verbose minor
$ git add ./mdx_titlecase/ ./CHANGES.rst
$ git commit -m "Next release no longer bug-fix only. Bump revision."
$ git push


This software is licensed under the GNU General Public License v2 or later (GPLv2+).


1.2.0 (2018-06-26)

  • Fix plugin initialization.
  • Add Python 3 support.
  • Add default isort config.
  • Add missing trove classifiers.
  • Activate tests on Python 3.3, 3.4, 3.5, PyPy and PyPy3.
  • Bump Markdown requirement to 2.6.

1.1.0 (2015-11-29)

  • Allow title casing of metadata.

1.0.1 (2015-11-23)

  • Switch from to

1.0.0 (2015-11-23)

  • First public release.

0.0.0 (2015-11-22)

  • First commit.

Download files

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

Source Distribution

mdx_titlecase-1.2.0.tar.gz (15.2 kB view hashes)

Uploaded source

Built Distributions

mdx_titlecase-1.2.0-py3.6.egg (7.4 kB view hashes)

Uploaded 3 6

mdx_titlecase-1.2.0-py3-none-any.whl (7.5 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page