Switch to using "marked" as a markdown parser

This commit is contained in:
Andrew Miner
2015-05-02 17:41:13 -07:00
parent 76d517cc4f
commit 8334012ea5
8 changed files with 45 additions and 41 deletions
+2 -6
View File
@@ -11,10 +11,9 @@ util = require 'util'
########################################################################################################################
LIBRARY_ALIAS_MAPPING = [
'./node_modules/jquery/dist/jquery.js:jquery'
'./node_modules/backbone/backbone.js:backbone'
'./node_modules/jade/runtime.js:jade'
'./node_modules/markdown/lib/index.js:markdown'
'./node_modules/jquery/dist/jquery.js:jquery'
'./node_modules/underscore/underscore.js:underscore'
'./node_modules/when/when.js:when'
]
@@ -54,9 +53,6 @@ module.exports = (grunt)->
copy:
styles:
files: [expand:true, cwd:'./src/css', src:'**/*.scss', dest:'./dist/src/css']
style_extras:
files:
'./dist/css/mocha.css': ['./node_modules/mocha/mocha.css']
exorcise:
dev:
@@ -133,7 +129,7 @@ module.exports = (grunt)->
files: ['./static/**/*']
tasks: ['rsync:static']
coffee:
files: ['./src/**/*.coffee']
files: ['./src/**/*.coffee', './src/**/*.js']
tasks: ['browserify:dev', 'exorcise']
jade:
files: ['./src/**/*.jade']
+1 -1
View File
@@ -43,7 +43,7 @@
"crafting-guide-common": "^1.0.0",
"jade": "^1.8.2",
"jquery": "^2.1.3",
"markdown": "^0.5.0",
"marked": "^0.3.3",
"underscore": "^1.7.0",
"when": "^3.6.4"
}
@@ -6,8 +6,8 @@ All rights reserved.
###
BaseController = require './base_controller'
convertMarkdown = require 'marked'
_ = require 'underscore'
{markdown} = require 'markdown'
{Url} = require '../constants'
########################################################################################################################
@@ -31,13 +31,18 @@ module.exports = class MarkdownSectionController extends BaseController
onDidRender: ->
@$title = @$('h2')
@$markdownPanel = @$('.markdown')
super
refresh: ->
@$title.html @title
@$markdownPanel.empty()
@$markdownPanel.html @_parseMarkdown()
text = @model
text = @_convertWikiLinks text
text = @_convertImageLinks text
@$markdownPanel.html convertMarkdown text
super
# Backbone.View Overrides ######################################################################
@@ -48,33 +53,18 @@ module.exports = class MarkdownSectionController extends BaseController
# Private Methods ##############################################################################
_parseMarkdown: ->
return '' unless @model
_
tree = markdown.parse @model, 'Maruku'
_convertImageLinks: (text)->
text.replace /\!\[([^\]]*)\]\(([^\)]*)\)/g, (match, altText, fileName)=>
return "![#{altText}](#{@imageBase}/#{fileName})"
findLinkRefs = (node)=>
logger.verbose -> "inspecting a #{node[0]}"
if node[0] is 'link_ref'
logger.verbose -> "looking for item named: #{node[2]}"
item = @modPack.findItemByName node[2]
_convertWikiLinks: (text)->
text.replace /\[\[([^\]]*)\]\]/g, (match, name)=>
result = match
item = @modPack.findItemByName name
if item?
logger.verbose -> "found item #{item.slug}, updating link"
node[0] = 'link'
node[1].href = Url.item itemSlug:item.slug.item, modSlug:item.slug.mod
delete node[1].ref
else if node[0] is 'img'
node[1].href = "#{@imageBase}/#{node[1].href}"
else
for index in [1...node.length]
if _.isArray node[index]
logger.indent()
findLinkRefs node[index]
logger.outdent()
display = @modPack.findItemDisplay item.slug
result = "[#{name}](#{display.itemUrl})"
logger.verbose "replacing wiki-style links"
findLinkRefs tree
logger.verbose "finished"
html = markdown.renderJsonML markdown.toHTMLTree tree
return html
return result
+4
View File
@@ -12,6 +12,7 @@ CraftingGuideRouter = require './crafting_guide_router'
FeedbackController = require './controllers/feedback_controller'
_ = require './underscore_mixins'
backbone = require 'backbone'
marked = require 'marked'
views = require './views'
{CraftingGuideClient} = require 'crafting-guide-common'
{Logger} = require 'crafting-guide-common'
@@ -48,6 +49,9 @@ client.onStatusChanged = (c, oldStatus, newStatus)->
backbone.$ = $
marked.setOptions
sanitize: true
global.feedbackController = new FeedbackController el:'.view__feedback'
feedbackController.render()
+1
View File
@@ -51,6 +51,7 @@ All rights reserved.
font-size: $font-size-normal;
font-weight: bold;
vertical-align: middle;
text-align: center;
}
td[align="center"] {
+1
View File
@@ -19,6 +19,7 @@ All rights reserved.
@import 'item_selector';
@import 'item_selector_element';
@import 'login_page';
@import 'markdown_section';
@import 'minimal_recipe';
@import 'mod';
@import 'mod_pack';
+12
View File
@@ -0,0 +1,12 @@
/*
Crafting Guide - markdown_section.scss
Copyright (C) 2015 by Redwood Labs
All rights reserved.
*/
.view__markdown_section {
.editor {
width: 100%;
}
}