var fs = require("fs"); var path = require("path"); var mammoth = require("./"); var promises = require("./promises"); var htmlPaths = require("./html-paths"); function main(argv) { var docxPath = argv["docx-path"]; var outputPath = argv["output-path"]; var outputDir = argv["output-dir"]; var options = {}; if (outputDir) { var basename = path.basename(docxPath, ".docx"); outputPath = path.join(outputDir, basename + ".html"); var imageIndex = 0; options.convertImage = function(element, html, messages, callback) { imageIndex++; var extension = element.contentType.split("/")[1]; var filename = imageIndex + "." + extension; element.read().then(function(imageBuffer) { var imagePath = path.join(outputDir, filename); return promises.nfcall(fs.writeFile, imagePath, imageBuffer); }).then(function() { var attributes = {src: filename}; if (element.altText) { attributes.alt = element.altText; } html.selfClosing(htmlPaths.element("img", attributes)); callback(); }).fail(callback); }; } mammoth.convertToHtml({path: docxPath}, options) .then(function(result) { var outputStream = outputPath ? fs.createWriteStream(outputPath) : process.stdout; outputStream.write(result.value); }) .done(); } module.exports = main;