Cscott has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/238526

Change subject: Improve layout of <pre> content.
......................................................................

Improve layout of <pre> content.

Change-Id: I6e544e80e851c941d4bb515380c3c14139453137
---
M lib/index.js
1 file changed, 25 insertions(+), 1 deletion(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/text_renderer
 refs/changes/26/238526/1

diff --git a/lib/index.js b/lib/index.js
index 49b9331..6389fff 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -92,6 +92,7 @@
        this.stateStack = [];
        this.state = {
                indent: 0,
+               pre: 0,
                wrap: this._makeWrap(0)
        };
 };
@@ -169,6 +170,21 @@
        }
 };
 Formatter.prototype.dedent = function() {
+       this.lineBreak();
+       this.state = this.stateStack.pop();
+};
+Formatter.prototype.incPre = function() {
+       this.lineBreak();
+       this.stateStack.push(this.state);
+       var indent = this.state.indent;
+       var spc = [].fill(' ', 0, indent).join('');
+       this.state = {
+               pre: this.state.pre + 1,
+               indent: indent,
+               wrap: function(t) { return spc + t; }
+       };
+};
+Formatter.prototype.decPre = function() {
        this.lineBreak();
        this.state = this.stateStack.pop();
 };
@@ -298,7 +314,8 @@
 
        case node.TEXT_NODE:
        case node.CDATA_SECTION_NODE:
-               var text = textEscape(node.data);
+               var text = this.format.state.pre ? node.data :
+                       textEscape(node.data);
                if (text) {
                        this.format.write(text);
                }
@@ -567,6 +584,12 @@
        this.format.dedent();
 };
 
+Visitor.prototype.visitPRE = function(node) {
+       this.format.incPre();
+       this.visitChildren(node);
+       this.format.decPre();
+};
+
 Visitor.prototype['visitREL=mw:referencedBy'] = function(node) {
        // hide this span
        /* jshint unused: vars */
@@ -590,6 +613,7 @@
                return;
        }
        // xxx hide all tables for now
+       // XXX emit tables as tab-delimited PRE content?
 };
 
 // images!

-- 
To view, visit https://gerrit.wikimedia.org/r/238526
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6e544e80e851c941d4bb515380c3c14139453137
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/text_renderer
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to