From 9a96eebdb18e0e9129cb959deb6debc95f95c4f6 Mon Sep 17 00:00:00 2001 From: Scott Tolksdorf Date: Fri, 9 Sep 2016 09:36:45 -0400 Subject: [PATCH] Adding my own markdown-html validator, still needs line numbers though --- client/homebrew/brewRenderer/brewRenderer.jsx | 13 ++++++++++- shared/naturalcrit/markdown.js | 22 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 34de1f416..61e264fa8 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -16,7 +16,9 @@ var BrewRenderer = React.createClass({ return { viewablePageNumber: 0, height : 0, - isMounted : false + isMounted : false, + + errors : [] }; }, totalPages : 0, @@ -80,6 +82,15 @@ var BrewRenderer = React.createClass({ var pages = this.props.text.split('\\page'); this.totalPages = pages.length; + try{ + var temp = Markdown.validate(this.props.text); + + console.log(temp); + }catch(e){ + console.log('ERR', e); + } + + return _.map(pages, (page, index)=>{ if(this.shouldRender(page, index)){ return this.renderPage(page, index); diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index ba64ad7dc..caa6a2307 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -17,5 +17,27 @@ module.exports = { render : (rawText)=>{ return Markdown(rawText, {renderer : renderer}) }, + validate : (rawText)=>{ + var errors = []; + var tokens = Markdown.lexer(rawText); + + _.each(tokens, (token)=>{ + if(token.type === 'paragraph'){ + if(_.startsWith(token.text, '')){ + errors.push({ + err : ' No opening tag', + token : token + }) + } + } + }); + + return errors; + }, marked : Markdown };