Pandoc filter that intelligently typesets code by detecting indentation boundaries and aligning operators.
Install via Stack:
stack install pandoc-filter-indentUse with Pandoc:
pandoc --filter pandoc-filter-indent input.md -o output.pdf
pandoc --filter pandoc-filter-indent input.md -o output.htmlTransforms code blocks into well-aligned, tabular layouts that highlight code structure. Instead of plain monospaced code, you get properly aligned operators, function signatures, and nested structures.
Input:
```{.haskell}
class Eq a
=> Compare a where
compare :: a -> a -> Ordering
(>=) :: a -> a -> Bool
```Output: Rendered with operators vertically aligned in clean tables, using mathematical symbols (→, ⇒, ≥) in LaTeX/PDF output.
- Smart alignment - Detects and aligns operators (
::,=,->, etc.) using GHC lexer - Multiple languages - Haskell (GHC), Python, or generic indentation-based formatting
- Flexible output - LaTeX tables, HTML tables, or Pandoc native tables
- Symbol beautification - Converts operators to mathematical symbols (optional)
- Lightweight - Simple Pandoc filter, easy to integrate
Mark code blocks with language attribute:
```{.haskell}
-- your Haskell code
```Or use alternate lexers:
```{.python}
# your Python code
```For generic indentation-based alignment:
```{.haskell lexer=indent}
-- any indented code
```Configure via code block attributes:
lexer=haskell- GHC lexer (default)lexer=python3- Python lexerlexer=indent- Indent-only alignmentlexer=spaces- Space-based alignmentdebug=true- Show column boundaries for debugging
Example:
```{.haskell debug=true}
yourCode :: Here
```For detailed algorithm explanation, implementation guide, and advanced usage, see DESCRIPTION.md.
See also: Complete Unicode operator symbol mapping for all supported operator conversions (→, ⇒, ≥, ⊥, ∅, etc.).
- GitHub: https://github.com/migamake/pandoc-filter-typeset-code
- Hackage: https://hackage.haskell.org/package/pandoc-filter-indent
- Issues: https://github.com/migamake/pandoc-filter-typeset-code/issues
BSD3 - see LICENSE file