From c063e4711bb43883c6ecea4566be0835fb414bfc Mon Sep 17 00:00:00 2001 From: James Kiesel Date: Tue, 6 Jun 2017 21:39:17 +1200 Subject: [PATCH 1/3] Add lexer setter --- dist/angular-marked.js | 19 +++++++++++++++++++ dist/angular-marked.min.js | 2 +- lib/angular-marked.js | 19 +++++++++++++++++++ package.json | 4 ++-- 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/dist/angular-marked.js b/dist/angular-marked.js index 9dd322d..7084859 100644 --- a/dist/angular-marked.js +++ b/dist/angular-marked.js @@ -185,6 +185,18 @@ function markedProvider() { this.defaults = opts; }; + /** + * @ngdoc method + * @name markedProvider#setLexer + * @methodOf hc.marked.service:markedProvider + * + * @param {object} lexer The lexer applied to [marked](https://github.com/chjj/marked#access-to-lexer-and-parser). + */ + + self.setLexer = function (lexer) { + this.lexer = lexer; + }; + self.$get = ['$log', '$window', function ($log, $window) { var m; @@ -232,6 +244,13 @@ function markedProvider() { m.setOptions(self.defaults); + // add marked lexer to defaults + self.defaults.lexer = m.lexer; + + if (self.lexer) { + m.lexer = self.lexer; + }; + return m; }]; } diff --git a/dist/angular-marked.min.js b/dist/angular-marked.min.js index c4ea91c..85f390a 100644 --- a/dist/angular-marked.min.js +++ b/dist/angular-marked.min.js @@ -1 +1 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.angularMarked=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o"+string+""}var renderCode=r.code.bind(r);r.code=function(code,lang,escaped){return wrapNonBindable(renderCode(code,lang,escaped))};var renderCodespan=r.codespan.bind(r);r.codespan=function(code){return wrapNonBindable(renderCodespan(code))};self.defaults=self.defaults||{};self.defaults.renderer=r;m.setOptions(self.defaults);return m}]}markedDirective.$inject=["marked","$templateRequest","$compile"];function markedDirective(marked,$templateRequest,$compile){return{restrict:"AE",replace:true,scope:{opts:"=",marked:"=",compile:"@",src:"="},link:function(scope,element,attrs){if(attrs.marked){set(scope.marked);scope.$watch("marked",set)}else if(attrs.src){scope.$watch("src",function(src){$templateRequest(src,true).then(function(response){set(response)},function(){set("");scope.$emit("$markedIncludeError",attrs.src)})})}else{set(element.text())}function set(text){text=unindent(String(text||""));element.html(marked(text,scope.opts||null));if(scope.$eval(attrs.compile)){$compile(element.contents())(scope.$parent)}}}}}module.exports=angular.module("hc.marked",[]).directive("marked",markedDirective).provider("marked",markedProvider).name},{"./strip-indent":2,marked:"marked"}],2:[function(require,module,exports){module.exports=function unindent(text){if(!text){return text}var lines=text.replace(/\t/g," ").split(/\r?\n/);var min=null;var len=lines.length;var i;for(i=0;i0){for(i=0;i"+string+""}var renderCode=r.code.bind(r);r.code=function(code,lang,escaped){return wrapNonBindable(renderCode(code,lang,escaped))};var renderCodespan=r.codespan.bind(r);r.codespan=function(code){return wrapNonBindable(renderCodespan(code))};self.defaults=self.defaults||{};self.defaults.renderer=r;m.setOptions(self.defaults);self.defaults.lexer=m.lexer;if(self.lexer){m.lexer=self.lexer}return m}]}markedDirective.$inject=["marked","$templateRequest","$compile"];function markedDirective(marked,$templateRequest,$compile){return{restrict:"AE",replace:true,scope:{opts:"=",marked:"=",compile:"@",src:"="},link:function(scope,element,attrs){if(attrs.marked){set(scope.marked);scope.$watch("marked",set)}else if(attrs.src){scope.$watch("src",function(src){$templateRequest(src,true).then(function(response){set(response)},function(){set("");scope.$emit("$markedIncludeError",attrs.src)})})}else{set(element.text())}function set(text){text=unindent(String(text||""));element.html(marked(text,scope.opts||null));if(scope.$eval(attrs.compile)){$compile(element.contents())(scope.$parent)}}}}}module.exports=angular.module("hc.marked",[]).directive("marked",markedDirective).provider("marked",markedProvider).name},{"./strip-indent":2,marked:"marked"}],2:[function(require,module,exports){module.exports=function unindent(text){if(!text){return text}var lines=text.replace(/\t/g," ").split(/\r?\n/);var min=null;var len=lines.length;var i;for(i=0;i0){for(i=0;i Date: Tue, 6 Jun 2017 22:03:45 +1200 Subject: [PATCH 2/3] Add setParse method --- dist/angular-marked.js | 23 +++++++++++++++++++++-- dist/angular-marked.min.js | 2 +- lib/angular-marked.js | 23 +++++++++++++++++++++-- package.json | 2 +- 4 files changed, 44 insertions(+), 6 deletions(-) diff --git a/dist/angular-marked.js b/dist/angular-marked.js index 7084859..e750a7c 100644 --- a/dist/angular-marked.js +++ b/dist/angular-marked.js @@ -197,6 +197,18 @@ function markedProvider() { this.lexer = lexer; }; + /** + * @ngdoc method + * @name markedProvider#setParse + * @methodOf hc.marked.service:markedProvider + * + * @param {function} parse Overwrite the parse method called by marked. + */ + + self.setParse = function (parse) { + this.parse = parse; + }; + self.$get = ['$log', '$window', function ($log, $window) { var m; @@ -246,11 +258,18 @@ function markedProvider() { // add marked lexer to defaults self.defaults.lexer = m.lexer; - + if (self.lexer) { m.lexer = self.lexer; }; + // add marked parse method to defaults + self.defaults.parse = m.parse; + + if (self.parser) { + m.parse = self.parse; + }; + return m; }]; } @@ -352,7 +371,7 @@ function markedDirective(marked, $templateRequest, $compile) { function set(text) { text = unindent(String(text || '')); - element.html(marked(text, scope.opts || null)); + element.html(marked.parse(text, scope.opts || null)); if (scope.$eval(attrs.compile)) { $compile(element.contents())(scope.$parent); } diff --git a/dist/angular-marked.min.js b/dist/angular-marked.min.js index 85f390a..19e6840 100644 --- a/dist/angular-marked.min.js +++ b/dist/angular-marked.min.js @@ -1 +1 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.angularMarked=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o"+string+""}var renderCode=r.code.bind(r);r.code=function(code,lang,escaped){return wrapNonBindable(renderCode(code,lang,escaped))};var renderCodespan=r.codespan.bind(r);r.codespan=function(code){return wrapNonBindable(renderCodespan(code))};self.defaults=self.defaults||{};self.defaults.renderer=r;m.setOptions(self.defaults);self.defaults.lexer=m.lexer;if(self.lexer){m.lexer=self.lexer}return m}]}markedDirective.$inject=["marked","$templateRequest","$compile"];function markedDirective(marked,$templateRequest,$compile){return{restrict:"AE",replace:true,scope:{opts:"=",marked:"=",compile:"@",src:"="},link:function(scope,element,attrs){if(attrs.marked){set(scope.marked);scope.$watch("marked",set)}else if(attrs.src){scope.$watch("src",function(src){$templateRequest(src,true).then(function(response){set(response)},function(){set("");scope.$emit("$markedIncludeError",attrs.src)})})}else{set(element.text())}function set(text){text=unindent(String(text||""));element.html(marked(text,scope.opts||null));if(scope.$eval(attrs.compile)){$compile(element.contents())(scope.$parent)}}}}}module.exports=angular.module("hc.marked",[]).directive("marked",markedDirective).provider("marked",markedProvider).name},{"./strip-indent":2,marked:"marked"}],2:[function(require,module,exports){module.exports=function unindent(text){if(!text){return text}var lines=text.replace(/\t/g," ").split(/\r?\n/);var min=null;var len=lines.length;var i;for(i=0;i0){for(i=0;i"+string+""}var renderCode=r.code.bind(r);r.code=function(code,lang,escaped){return wrapNonBindable(renderCode(code,lang,escaped))};var renderCodespan=r.codespan.bind(r);r.codespan=function(code){return wrapNonBindable(renderCodespan(code))};self.defaults=self.defaults||{};self.defaults.renderer=r;m.setOptions(self.defaults);self.defaults.lexer=m.lexer;if(self.lexer){m.lexer=self.lexer}self.defaults.parse=m.parse;if(self.parser){m.parse=self.parse}return m}]}markedDirective.$inject=["marked","$templateRequest","$compile"];function markedDirective(marked,$templateRequest,$compile){return{restrict:"AE",replace:true,scope:{opts:"=",marked:"=",compile:"@",src:"="},link:function(scope,element,attrs){if(attrs.marked){set(scope.marked);scope.$watch("marked",set)}else if(attrs.src){scope.$watch("src",function(src){$templateRequest(src,true).then(function(response){set(response)},function(){set("");scope.$emit("$markedIncludeError",attrs.src)})})}else{set(element.text())}function set(text){text=unindent(String(text||""));element.html(marked.parse(text,scope.opts||null));if(scope.$eval(attrs.compile)){$compile(element.contents())(scope.$parent)}}}}}module.exports=angular.module("hc.marked",[]).directive("marked",markedDirective).provider("marked",markedProvider).name},{"./strip-indent":2,marked:"marked"}],2:[function(require,module,exports){module.exports=function unindent(text){if(!text){return text}var lines=text.replace(/\t/g," ").split(/\r?\n/);var min=null;var len=lines.length;var i;for(i=0;i0){for(i=0;i Date: Tue, 6 Jun 2017 22:10:12 +1200 Subject: [PATCH 3/3] Revert package json --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ac8b174..5446e04 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "loomio-angular-marked", - "version": "1.3.2", + "name": "angular-marked", + "version": "1.2.2", "description": "AngularJS Markdown using marked.", "main": "lib/angular-marked.js", "directories": {