Browse Source

Renderer rules are now modifiable

pull/14/head
Vitaly Puzrin 10 years ago
parent
commit
79a25c777f
  1. 7
      lib/parser.js
  2. 10
      lib/renderer.js
  3. 3
      package.json

7
lib/parser.js

@ -3,6 +3,9 @@
'use strict';
var assign = require('object-assign');
var State = require('./state');
var Renderer = require('./renderer');
var LexerBlock = require('./lexer_block');
@ -24,9 +27,7 @@ function Parser(options) {
Parser.prototype.set = function (options) {
Object.keys(options).forEach(function (key) {
this.options[key] = options[key];
}, this);
assign(this.options, options);
};

10
lib/renderer.js

@ -1,6 +1,9 @@
'use strict';
var assign = require('object-assign');
function escapeHtml(str) {
return str.replace(/&/g, '&')
.replace(/</g, '&lt;')
@ -85,13 +88,16 @@ rules.text = function (state, token) {
};
// TODO: Stub. Do extendable.
// Renderer class
function Renderer() {
// Clone rules object to allow local modifications
this.rules = assign({}, rules);
}
Renderer.prototype.render = function (state) {
var i, len, rule,
tokens = state.tokens;
tokens = state.tokens,
rules = this.rules;
for (i = 0, len = tokens.length; i < len; i++) {
rule = rules[tokens[i].type];

3
package.json

@ -17,7 +17,8 @@
],
"main": "index.js",
"dependencies": {
"argparse": "~ 0.1.15"
"argparse": "~ 0.1.15",
"object-assign": "^1.0.0"
},
"devDependencies": {
"ansi": "^0.3.0",

Loading…
Cancel
Save