d598baf02b
This change ups the required node version to 7.0 because it relies on the builtin url module. We now pass a url when constructing a jsdom document or JSDOMParser document. Because this is an API change, I'm increasing the package version. Ultimately, I would like to remove the argument from the readability constructor. It should use the documentURI from the document it is passed.
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
var path = require("path");
|
|
var fs = require("fs");
|
|
var url = require("url");
|
|
|
|
// We want to load Readability and JSDOMParser, which aren't set up as commonjs libraries,
|
|
// and so we need to do some hocus-pocus with 'vm' to import them on a separate scope
|
|
// (identical) scope context.
|
|
var vm = require("vm");
|
|
var readabilityPath = path.join(__dirname, "Readability.js");
|
|
var jsdomPath = path.join(__dirname, "JSDOMParser.js");
|
|
|
|
|
|
var scopeContext = {};
|
|
// We generally expect dump() and console.{whatever} to work, so make these available
|
|
// in the scope we're using:
|
|
scopeContext.dump = console.log;
|
|
scopeContext.console = console;
|
|
scopeContext.URL = url.URL;
|
|
|
|
// Actually load files. NB: if either of the files has parse errors,
|
|
// node is dumb and shows you a syntax error *at this callsite* . Don't try to find
|
|
// a syntax error on this line, there isn't one. Go look in the file it's loading instead.
|
|
vm.runInNewContext(fs.readFileSync(jsdomPath), scopeContext, jsdomPath);
|
|
vm.runInNewContext(fs.readFileSync(readabilityPath), scopeContext, readabilityPath);
|
|
|
|
module.exports = {
|
|
Readability: scopeContext.Readability,
|
|
JSDOMParser: scopeContext.JSDOMParser
|
|
};
|