node-pandoc
Interact with Pandoc from NodeJS. *Requires Pandoc to be installed.
Last updated 4 years ago by eshinn .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install node-pandoc 
SYNC missed versions from official npm registry.

node-pandoc npm version SugarHai

Run Pandoc from NodeJS. Pandoc installation is required.

Install

# If using as a dependancy in your module
npm install node-pandoc --save

# ...or for use in your project
npm install node-pandoc --save-dev

Prior to using node-pandoc, you must install Pandoc by John MacFarlane.

What’s Pandoc?

If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert documents in markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, TWiki markup, OPML, Emacs Org-Mode, Txt2Tags, Microsoft Word docx, LibreOffice ODT, EPUB, or Haddock markup to

So Then What’s Node-Pandoc Do?

Node-Pandoc is simply a bridge between the Pandoc CLI (command-line interface) and NodeJS.

Usage

pandoc ( src args [options] callback )

Parameters

src

The src can be either the location of a file (./content/file.docx) or a string of textual input ("# Hello, Bananas").

args

The same list of arguments that pandoc accepts on the command line. Arguments are accepted as either a full String or as an Array.

options

The options parameter accepts and passes along a Node Child_Process.Spawn object and is completely optional. View a complete list of Pandoc options on the Pandoc website or pull it from the command-line by typing:
$ pandoc -h

callback

Function that call it called back with the parameters of (error, result).

Examples of Using Node-Pandoc

Converting a word.docx file to a markdown.md

// In EcmaScript 5...

var nodePandoc = require('node-pandoc');
var src, args, callback;

src = './word.docx';

// Arguments can be either a single string:
args = '-f docx -t markdown -o ./markdown.md';
// Or in an array of strings -- careful no spaces are present:
args = ['-f','docx','-t','markdown','-o','markdown.md'];

// Set your callback function
callback = function (err, result) {

  if (err) {
    console.error('Oh Nos: ',err);
  }

  // For output to files, the 'result' will be a boolean 'true'.
  // Otherwise, the converted value will be returned.
  console.log(result);
  return result;
};

// Call pandoc
nodePandoc(src, args, callback);
// In ES-6 (ES-2015)
import nodePandoc from 'node-pandoc'

let src = './word.docx';

// Arguments can be either a single String or in an Array
let args = '-f docx -t markdown -o ./markdown.md';

// Set your callback function
const callback = (err, result)=> {

  if (err) console.error('Oh Nos: ',err)
  return console.log(result), result
}

// Call pandoc
nodePandoc(src, args, callback);

Converting a word.docx file and returning HTML.

var pandoc = require('node-pandoc'),
    src = './word.docx',
    // Arguments in either a single String or as an Array:
    args = '-f docx -t html5';

// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};

// Call pandoc
pandoc(src, args, callback);

This also works the other way ’round; converting a bit of HTML and saving it as word.docx

var pandoc = require('node-pandoc'),
    src = '<h1>Hello</h1><p>It&rsquo;s bananas</p>',
    // Arguments in either a single String or as an Array:
    args = '-f html -t docx -o word.docx';

// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};

// Call pandoc
pandoc(src, args, callback);

Or give-a-string/get-a-string: Markdown -> HTML

var pandoc = require('node-pandoc'),
    src = '# Hello \n\nIt\'s bananas',
    // Arguments in either a single String or as an Array:
    args = '-f markdown -t html';

// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};

// Call pandoc
pandoc(src, args, callback);

...and in reverse: HTML -> Markdown

var pandoc = require('node-pandoc'),
    src = '<h1>Hello</h1><p>It&rsquo;s bananas</p>',
    // Arguments in either a single String or as an Array:
    args = '-f html -t markdown --atx-headers';

// NOTE: The --atx-headers flag set above will produce <h1>s as:
// # Hello
//
// ...while omitting --atx-headers flat will result in this style:
// Hello
// =====

// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};

// Call pandoc
pandoc(src, args, callback);

One more thing...

It does URLs too.

var pandoc = require('node-pandoc'),
    src = 'https://www.npmjs.com/package/node-pandoc',
    // Arguments in either a single String or as an Array:
    args = '-f html -t docx -o node-pandoc.docx';

// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};

// Call pandoc
pandoc(src, args, callback);

Wokavagor

...it can go sideways and slantways and longways and backways and squareways and frontways and any other ways that you can think of.

License

Copyright © Eric Shinn
Licensed under the MIT License

Current Tags

  • 0.3.0                                ...           latest (4 years ago)

4 Versions

  • 0.3.0                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.1                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 6
Dependencies (0)
None
Dev Dependencies (0)
None

Copyright 2014 - 2016 © taobao.org |