A Python filter to manage acronyms
Project description
pandoc-acronyms - A Pandoc filter for managing acronyms
Acronyms? WTF?
There is a convention in more precise writing to provide the full text
of an acronym at first use. This can get difficult for example if the
text of documents is split over multiple files, which makes it hard
for the authors to know where the acronym will be used first. Such a
task is best left to the computer. This is what the pandoc-acronyms
filter is for. Authors list acronyms in a data file and then reference
them in the text.
HOWTO
Write a data file that contains your acronyms:
{
"aba": {
"shortform": "ABA",
"longform": "a better acronym"
},
"bba": {
"shortform": "BBA",
"longform": "beer brewing attitude"
}
}
Then in the text, use the acronym in encoded form like [!bba]
. The
filter will recognize it. On first use it replaces the marker with
beer brewing attitude (BBA)
.
Any later use will be replaced by BBA
. The
filter will print a notice if an acronym is found in the text that is
not defined in the data file.
Using the filter
The filter mechanism is a built-in feature of pandoc. The filter is added to how pandoc is invoked:
> pandoc --filter pandoc-acronyms document.md
Unfortunately, pandoc does not allow to pass parameters to filters. The acronym filter needs to load the acronyms from the data file. To work around this, the parameters to the filter can be passed in environment variables:
> pandoc-acronyms --help
Usage: pandoc-acronyms [OPTIONS] [FORMAT]...
The pandoc-acronyms filter.
Options:
-a, --acronyms TEXT A file with acronym definitions in JSON format.
-v, --verbose / --no-verbose Enable verbose output.
-v, --debug / --no-debug Enable debug output.
--help Show this message and exit.
The environment variable PANDOC_ACRONYMS_ACRONYMS can be used to replace the --acronyms option. Similarly, the variable PANDOC_ACRONYMS_VERBOSE enables diagnostic output.
Installation
The pandoc acronym filter is installed using Python setuptools:
> python setup.py install
...
After that, it is available as a stand-alone program in the installation location used by Python.
Testing and debugging
The pandoc-acronyms
code uses the standard Python unittest
framework. Most tests are data-driven in that they use regular
Markdown files and JSON acronym dictionaries as input and test how the
code handles them. To test the filter code as regular Python unit
tests, test Markdown input is first converted into the Pandoc "native
JSON" format in memory and then fed to the filter code by the
tests. This means the unit tests run stand-alone (without the need for
Pandon to invoke them as a filter), making the test code easily
debugable.
How to contribute
The Git repository for the pandoc acronym filter is hosted on Gitlab. It uses the Gitlab CI to ensure quality, also for development branches and incoming merge requests. To contribute, please submit a merge request. Your merge request should maintain or increase the test coverage.
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
File details
Details for the file pandoc-acronyms-0.3.dev202002071310.tar.gz
.
File metadata
- Download URL: pandoc-acronyms-0.3.dev202002071310.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07210b07ddec8689c88d557266b998684eff791984a7cf39193815491805c557 |
|
MD5 | 3ffcf1afc4285a6f07563d2086bb4558 |
|
BLAKE2b-256 | d0e97239b0bf0da752be068b9d5d10ecbc749afaf2522aa83864a8d91280437f |
File details
Details for the file pandoc_acronyms-0.3.dev202002071310-py3-none-any.whl
.
File metadata
- Download URL: pandoc_acronyms-0.3.dev202002071310-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4ee346db2ff0d4cb9816c67559943bc4648fb27f23b9b6233bed6bfea1deff5 |
|
MD5 | 31fe5d348a89c5a3359504f9db0d23c0 |
|
BLAKE2b-256 | 174d78c014591e5d3eb2f861f71341e04f9a9252e7a84f0d2818fa719b3853b2 |