pandoc-filter
TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published

About

Node.js/TypeScript port of the Python pandocfilters for filtering with Pandoc

Install

npm install -g pandoc-filter

Example

#!/usr/bin/env node

// Pandoc filter to convert all text to uppercase

var pandoc = require("pandoc-filter");
var Str = pandoc.Str;

function action({ t: type, c: value }, format, meta) {
	if (type === "Str") return Str(value.toUpperCase());
}

pandoc.stdio(action);

Async using native promise

#!/usr/bin/env node
"use strict";

var pandoc = require("pandoc-filter");
var rp = require("request-promise-native");
var Str = pandoc.Str;

async function action({ t: type, c: value }, format, meta) {
	if (type === "Str") {
		const data = await rp({
			uri: value,
			json: true,
		});
		return Str(data.places[0]["post code"]);
	}
}

pandoc.stdio(action);

Using TypeScript:

import { stdio, Str } from "pandoc-filter";

stdio((ele) => {
	if (ele.t === "Str") {
		// c is typed as string
		return Str(ele.c.toUpperCase());
	}
	if (ele.t === "Image") {
		// ele.c is typed as a three-tuple
		const [attr, label, target] = ele.c;
		const [url, title] = target;
		return Str("url was " + url);
	}
});

Compatibility Notes

Required node >=v8 for async/await/promise support.

v0.1.6 is required for pandoc versions after 1.17.2 to support the new JSON format. See this issue for details.

Credits

Thanks to John MacFarlane for Pandoc.

License

MIT

/pandoc-filter/

    Package Sidebar

    Install

    npm i pandoc-filter

    Weekly Downloads

    888

    Version

    2.2.0

    License

    MIT

    Unpacked Size

    25.1 kB

    Total Files

    10

    Last publish

    Collaborators

    • mvhenderson