pandoc-code-attribute

Pandoc filter to add attributes to code blocks based on their classes


License
MIT
Install
pip install pandoc-code-attribute==0.2.0

Documentation

pandoc-code-attribute

Pandoc filter to add attributes to code blocks based on their classes.

Installation

First install python and python-pip.

Then use pip to install:

pip3 install --user pandoc-code-attribute

Usage

Configuration

By default, this filter won't add style attributes to prevent undefined errors.

You can enable it by setting code-attribute field in metadata.

To add attributes to all classes, use:

code-attribute: true

To add attributes to specific classes, use:

code-attribute:
	- cpp

Example

This pandoc filter will add attributes to code blocks based on their classes.

For example, it can be very useful to use different styles for different language in listings :

---
code-attribute:
	- cpp
	- python
header-includes: |
	\usepackage{listings}
	\usepackage[usenames,dvipsnames]{color}
	
	\lstset{ % General settings
		numbers=left,
		numberstyle=\tiny
	}

	\lstdefinestyle{cpp}{ % Only for C++
		keywordstyle=\color{Green}
	}

	\lstdefinestyle{python}{ % Only for Python
		keywordstyle=\color{Magenta}
	}
---

C++:

```cpp
int main(int argc, char *argv[])
{
	return 0;
}
```

Python:

```python
def main():
	print('Hello')

if __name__ == '__main__':
	main()
```

Then compile the example (--listings is needed only for this example):

pandoc input.md --filter pandoc-code-attribute --listings -o output.pdf

Results:

Command

In general, to use this filter, just add this filter to pandoc command:

pandoc input.md --filter pandoc-code-attribute -o output.pdf

License

MIT License