| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| var parseMarkdown = require('marked'); |
| var path = require('path'); |
| var through2 = require('through2'); |
| |
| module.exports = { |
| canTransform: isMarkdown, |
| transform: transform |
| }; |
| |
| /* |
| * Transform the given markdown file by parsing the markdown file. |
| */ |
| function transform(file) { |
| var contents = []; |
| |
| return through2(write, flush); |
| |
| // Simply collect string fragments of the markdown file. |
| function write(data, encoding, callback) { |
| var string = data.toString(); |
| contents.push(string); |
| callback(); |
| } |
| |
| // Reconstruct the markdown and then parse it. |
| function flush(callback) { |
| var string = contents.join(''); |
| this.push('module.exports = ' + JSON.stringify(parseMarkdown(string))); |
| callback(); |
| } |
| } |
| |
| /* Determines if the filetype is markdown. */ |
| function isMarkdown(file) { |
| return path.extname(file) === '.md'; |
| } |