Comparing version 0.14.0 to 0.15.0
@@ -0,1 +1,6 @@ | ||
0.15.0 / 2015-03-27 | ||
=================== | ||
* Add support for setting `parse`, `stringify` options during runtime ([999f3f4](https://github.com/wooorm/mdast/commit/999f3f4)) | ||
0.14.0 / 2015-03-26 | ||
@@ -2,0 +7,0 @@ =================== |
@@ -10,3 +10,3 @@ 'use strict'; | ||
var defaultExpressions = require('./expressions.js'); | ||
var defaults = require('./defaults.js').parse; | ||
var defaultOptions = require('./defaults.js').parse; | ||
@@ -18,2 +18,3 @@ /* | ||
var repeat = utilities.repeat; | ||
var clone = utilities.clone; | ||
var copy = utilities.copy; | ||
@@ -1594,7 +1595,4 @@ var raise = utilities.raise; | ||
var self = this; | ||
var expressions = self.expressions; | ||
var rules = copy({}, expressions.rules); | ||
var rules = copy({}, self.expressions.rules); | ||
self.options = options; | ||
/* | ||
@@ -1608,6 +1606,2 @@ * Create space for definition/reference type nodes. | ||
self.options = options; | ||
self.rules = rules; | ||
self.footnoteCounter = 1; | ||
@@ -1620,2 +1614,38 @@ | ||
self.rules = rules; | ||
self.descape = descapeFactory(rules, 'escape'); | ||
self.setOptions(options); | ||
} | ||
/** | ||
* Set options. | ||
* | ||
* @this {Parser} | ||
* @param {Object?} options | ||
* @return {Parser} - `self`. | ||
*/ | ||
Parser.prototype.setOptions = function (options) { | ||
var self = this; | ||
var expressions = self.expressions; | ||
var rules = self.rules; | ||
var defaults = self.defaults; | ||
if (options === null || options === undefined) { | ||
options = {}; | ||
} else if (typeof options !== 'object') { | ||
raise(options, 'options'); | ||
} else { | ||
options = copy(clone(defaults), options); | ||
} | ||
validate.bool(options, 'gfm', defaults.gfm); | ||
validate.bool(options, 'yaml', defaults.yaml); | ||
validate.bool(options, 'commonmark', defaults.commonmark); | ||
validate.bool(options, 'footnotes', defaults.footnotes); | ||
validate.bool(options, 'breaks', defaults.breaks); | ||
validate.bool(options, 'pedantic', defaults.pedantic); | ||
self.options = options; | ||
if (options.breaks) { | ||
@@ -1637,2 +1667,4 @@ copy(rules, expressions.breaks); | ||
self.enterBlockquote = noopToggler(); | ||
} else { | ||
self.enterBlockquote = stateToggler('inBlockquote', false); | ||
} | ||
@@ -1656,6 +1688,12 @@ | ||
self.descape = descapeFactory(rules, 'escape'); | ||
} | ||
return self; | ||
}; | ||
/* | ||
* Expose `defaults`. | ||
*/ | ||
Parser.prototype.defaults = defaultOptions; | ||
/* | ||
* Expose `expressions`. | ||
@@ -1682,2 +1720,6 @@ */ | ||
if (typeof value !== 'string') { | ||
raise(value, 'value'); | ||
} | ||
/* | ||
@@ -2164,21 +2206,2 @@ * Add an `offset` matrix, used to keep track of | ||
if (typeof value !== 'string') { | ||
raise(value, 'value'); | ||
} | ||
if (options === null || options === undefined) { | ||
options = {}; | ||
} else if (typeof options !== 'object') { | ||
raise(options, 'options'); | ||
} else { | ||
options = copy({}, options); | ||
} | ||
validate.bool(options, 'gfm', defaults.gfm); | ||
validate.bool(options, 'yaml', defaults.yaml); | ||
validate.bool(options, 'commonmark', defaults.commonmark); | ||
validate.bool(options, 'footnotes', defaults.footnotes); | ||
validate.bool(options, 'breaks', defaults.breaks); | ||
validate.bool(options, 'pedantic', defaults.pedantic); | ||
return new CustomParser(options).parse(value); | ||
@@ -2185,0 +2208,0 @@ } |
@@ -9,3 +9,3 @@ 'use strict'; | ||
var utilities = require('./utilities.js'); | ||
var defaults = require('./defaults.js').stringify; | ||
var defaultOptions = require('./defaults.js').stringify; | ||
@@ -18,2 +18,3 @@ /* | ||
var copy = utilities.copy; | ||
var clone = utilities.clone; | ||
var raise = utilities.raise; | ||
@@ -252,3 +253,2 @@ var trimLeft = utilities.trimLeft; | ||
var self = this; | ||
var ruleRepetition; | ||
@@ -259,2 +259,29 @@ self.footnoteCounter = 0; | ||
self.setOptions(options); | ||
} | ||
/* | ||
* Cache prototype. | ||
*/ | ||
var compilerPrototype = Compiler.prototype; | ||
/* | ||
* Expose defaults. | ||
*/ | ||
compilerPrototype.defaults = defaultOptions; | ||
/** | ||
* Set options. | ||
* | ||
* @this {Compiler} | ||
* @param {Object?} options | ||
* @return {Compiler} - `self`. | ||
*/ | ||
compilerPrototype.setOptions = function (options) { | ||
var self = this; | ||
var defaults = self.defaults; | ||
var ruleRepetition; | ||
if (options === null || options === undefined) { | ||
@@ -265,3 +292,3 @@ options = {}; | ||
} else { | ||
options = copy({}, options); | ||
options = copy(clone(defaults), options); | ||
} | ||
@@ -293,10 +320,6 @@ | ||
self.options = options; | ||
} | ||
/* | ||
* Cache prototype. | ||
*/ | ||
return self; | ||
}; | ||
var compilerPrototype = Compiler.prototype; | ||
/** | ||
@@ -303,0 +326,0 @@ * Visit a token. |
{ | ||
"name": "mdast", | ||
"version": "0.14.0", | ||
"version": "0.15.0", | ||
"description": "Speedy Markdown parser/stringifier for multipurpose analysis", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
188814
4173