From 5f84b9741cc949dd0193d223502f561552adb650 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Thu, 4 Feb 2021 21:53:38 +0200 Subject: [PATCH] Adapt HTML to Firefox Reader Mode if --style is missing --- index.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 0ec8b36..6a1f39a 100755 --- a/index.js +++ b/index.js @@ -224,6 +224,11 @@ let args = yargs desc: __`Don't output extra information to stderr`, default: false }) + .option("style", { + alias: 's', + type: "string", + desc: __`Specify .css file for stylesheet. If not specified, HTML will be adapted for Firefox desktop's Reader Mode.` + }) .option("url", { alias: 'u', type: "string", @@ -464,19 +469,63 @@ function onLoadDOM(dom) { for (propertyName of wantedProperties) writeStream.write(Properties.get(propertyName)(article, true, window) + '\n'); } else { + const cssHref = args["style"] || "chrome://global/skin/aboutReader.css"; + writeStream.write(` - - - `); - writeStream.write(Properties.get("title")(article, false, window)); - writeStream.write(` + + + ${escapeHTML(Properties.get("title")(article, false, window), window.document)} - +` + ); + + if (!args["style"]) { + //Add a few divs and classes so that Firefox Reader Mode CSS works well + writeStream.write(` + +
`); + else + writeStream.write('>'); + + writeStream.write(` +
+

${escapeHTML(Properties.get("title")(article, false, window), window.document)}

`); + + const author = Properties.get("byline")(article, false, window); + if (author) { + writeStream.write(` +
${author}
`); + } + + writeStream.write(` +
+ +
+ +
+
+` + ); + } else { + writeStream.write("\n\n"); + } -`); writeStream.write(Properties.get("html-content")(article, false, window)); + + if (!args["style"]) { + writeStream.write(` +
+
+
+` + ); + } writeStream.write("\n"); } }