diff --git a/options.js b/options.js index 4ba864f..6543a64 100644 --- a/options.js +++ b/options.js @@ -397,6 +397,12 @@ function defaults() default: false, label: "Reader insert at bottom" }); + settings.push({ + id: "reader_convert_newlines", + kind: "checkbox", + default: false, + label: "Reader force newlines into linebreaks" + }); settings.push({ id: "reader_bg", diff --git a/reader.js b/reader.js index 1b308d0..2003304 100644 --- a/reader.js +++ b/reader.js @@ -16,7 +16,8 @@ reader_max_width: "1000px", reader_margin: "8px", reader_font: "", reader_auto: false, -reader_throttle: 200 +reader_throttle: 200, +reader_convert_newlines: false }; function update_styles() @@ -60,6 +61,7 @@ async function reader_settings_init() getvar("reader_font", ""); getvar("reader_auto", false); getvar("reader_throttle", 200); + getvar("reader_convert_newlines", false); } catch(err) {} // options not stored yet } @@ -96,7 +98,17 @@ function reader_update(text) let target = document.body; let newnode = document.createElement("p"); - newnode.textContent = text; + if(reader_settings.reader_convert_newlines) + { + newnode.textContent = ""; + for(let line of text.split("\n")) + { + newnode.appendChild(document.createTextNode(line)); + newnode.appendChild(document.createElement("br")); + } + } + else + newnode.textContent = text; if(!reader_settings.reader_reverse) target.insertBefore(newnode, document.body.firstChild);