Skip to main content

A pandoc filter for automatic numbering

Project description

pandoc-numbering is a pandoc filter for numbering all kinds of things.

Each paragraph ended by a # character will be numbered. The text preceding the # character is used a as key to determine the number used as a replacement for the # character.

  • if it’s a new key, a new numbering is started with index 1;

  • if it’s an existing key, the last number is incremented.

You can add an identifier to the # character. It does not change the behavior explained above. It allows to be cross-referred in links:

  • [](#identifier "title") the empty text is replaced by the associated key concatenated with the associated number;

  • [text](#identifier "title") the character # is replaced by the associated number in the text.

In both cases, the # character is replaced by the associated number in the title.

Demonstration: Using pandoc-numbering-sample.md as input gives output files in [pdf], [tex], [html], [epub], [md] and other formats.

$ cat pandoc-numbering-sample.md
% Sample use of automatic numbering
% Ch. Demko <chdemko@gmail.com>
% 04/11/2015

This is the first section
=========================

Exercise #

This is the first exercise. Have also a look at the [](#second).

> Theorem (Needed for the [second exercise](#second)) #theorem1
>
> This is a the first theorem.
> Look at the [exercise](#second "Go to the exercise #").

Exercise (This is the second exercise) #second

Use [_theorem #_](#theorem1)

This is the second section
==========================

> Theorem #
>
> Another theorem.

Unnumbered ##

Converting the pandoc-numbering-sample.md file will give:

$ pandoc -s --filter pandoc-numbering pandoc-numbering-sample.md -t markdown
---
author:
- 'Ch. Demko <chdemko@gmail.com>'
date: '04/11/2015'
title: Sample use of automatic numbering
...

This is the first section
=========================

**Exercise 1**

This is the first exercise. Have also a look at the [Exercise
2](#second).

> <span id="theorem1">**Theorem 1*** (Needed for the [second
> exercise](#second))*</span>
>
> This is a the first theorem. Look at the
> [exercise](#second "Go to the exercise 2").

<span id="second">**Exercise 2*** (This is the second exercise)*</span>

Use [*theorem 1*](#theorem1)

This is the second section
==========================

> **Theorem 2**
>
> Another theorem.

Unnumbered \#

This version of pandoc-numbering was tested using pandoc 1.15.1 and is known to work under linux, Mac OS X and Windows.

Usage

To apply the filter, use the following option with pandoc:

--filter pandoc-numbering

Installation

pandoc-numbering requires python, a programming language that comes pre-installed on linux and Mac OS X, and which is easily installed on Windows. Either python 2.7 or 3.x will do.

Install pandoc-numbering as root using the bash command

pip install pandoc-numbering

To upgrade to the most recent release, use

pip install --upgrade pandoc-numbering

Pip is a script that downloads and installs modules from the Python Package Index, PyPI. It should come installed with your python distribution. If you are running linux, pip may be bundled separately. On a Debian-based system (including Ubuntu), you can install it as root using

apt-get update
apt-get install python-pip

Getting Help

If you have any difficulties with pandoc-numbering, please feel welcome to file an issue on github so that we can help.

Project details


Download files

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

Source Distribution

pandoc-numbering-0.3.0.tar.gz (5.9 kB view details)

Uploaded Source

File details

Details for the file pandoc-numbering-0.3.0.tar.gz.

File metadata

File hashes

Hashes for pandoc-numbering-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3d8d8bc9218d36731ea5480bb3a65d97cde41a36829de25dc97358997b18e10e
MD5 e3882b920e2b00fb6af3c2f376ae5a37
BLAKE2b-256 7d8fd866a87be31e1e5360c46c52dc306df65eea687a9e99bcdae871f03c0292

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