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 = [ LIBRARY_ALIAS_MAPPING = [
'./node_modules/jquery/dist/jquery.js:jquery'
'./node_modules/backbone/backbone.js:backbone' './node_modules/backbone/backbone.js:backbone'
'./node_modules/jade/runtime.js:jade' './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/underscore/underscore.js:underscore'
'./node_modules/when/when.js:when' './node_modules/when/when.js:when'
] ]
@@ -54,9 +53,6 @@ module.exports = (grunt)->
copy: copy:
styles: styles:
files: [expand:true, cwd:'./src/css', src:'**/*.scss', dest:'./dist/src/css'] 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: exorcise:
dev: dev:
@@ -133,7 +129,7 @@ module.exports = (grunt)->
files: ['./static/**/*'] files: ['./static/**/*']
tasks: ['rsync:static'] tasks: ['rsync:static']
coffee: coffee:
files: ['./src/**/*.coffee'] files: ['./src/**/*.coffee', './src/**/*.js']
tasks: ['browserify:dev', 'exorcise'] tasks: ['browserify:dev', 'exorcise']
jade: jade:
files: ['./src/**/*.jade'] files: ['./src/**/*.jade']
+1 -1
View File
@@ -43,7 +43,7 @@
"crafting-guide-common": "^1.0.0", "crafting-guide-common": "^1.0.0",
"jade": "^1.8.2", "jade": "^1.8.2",
"jquery": "^2.1.3", "jquery": "^2.1.3",
"markdown": "^0.5.0", "marked": "^0.3.3",
"underscore": "^1.7.0", "underscore": "^1.7.0",
"when": "^3.6.4" "when": "^3.6.4"
} }
@@ -5,10 +5,10 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved. All rights reserved.
### ###
BaseController = require './base_controller' BaseController = require './base_controller'
_ = require 'underscore' convertMarkdown = require 'marked'
{markdown} = require 'markdown' _ = require 'underscore'
{Url} = require '../constants' {Url} = require '../constants'
######################################################################################################################## ########################################################################################################################
@@ -31,13 +31,18 @@ module.exports = class MarkdownSectionController extends BaseController
onDidRender: -> onDidRender: ->
@$title = @$('h2') @$title = @$('h2')
@$markdownPanel = @$('.markdown') @$markdownPanel = @$('.markdown')
super super
refresh: -> refresh: ->
@$title.html @title @$title.html @title
@$markdownPanel.empty() text = @model
@$markdownPanel.html @_parseMarkdown() text = @_convertWikiLinks text
text = @_convertImageLinks text
@$markdownPanel.html convertMarkdown text
super super
# Backbone.View Overrides ###################################################################### # Backbone.View Overrides ######################################################################
@@ -48,33 +53,18 @@ module.exports = class MarkdownSectionController extends BaseController
# Private Methods ############################################################################## # 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)=> _convertWikiLinks: (text)->
logger.verbose -> "inspecting a #{node[0]}" text.replace /\[\[([^\]]*)\]\]/g, (match, name)=>
if node[0] is 'link_ref' result = match
logger.verbose -> "looking for item named: #{node[2]}" item = @modPack.findItemByName name
item = @modPack.findItemByName node[2] if item?
if item? display = @modPack.findItemDisplay item.slug
logger.verbose -> "found item #{item.slug}, updating link" result = "[#{name}](#{display.itemUrl})"
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()
logger.verbose "replacing wiki-style links" return result
findLinkRefs tree
logger.verbose "finished"
html = markdown.renderJsonML markdown.toHTMLTree tree
return html
+4
View File
@@ -12,6 +12,7 @@ CraftingGuideRouter = require './crafting_guide_router'
FeedbackController = require './controllers/feedback_controller' FeedbackController = require './controllers/feedback_controller'
_ = require './underscore_mixins' _ = require './underscore_mixins'
backbone = require 'backbone' backbone = require 'backbone'
marked = require 'marked'
views = require './views' views = require './views'
{CraftingGuideClient} = require 'crafting-guide-common' {CraftingGuideClient} = require 'crafting-guide-common'
{Logger} = require 'crafting-guide-common' {Logger} = require 'crafting-guide-common'
@@ -48,6 +49,9 @@ client.onStatusChanged = (c, oldStatus, newStatus)->
backbone.$ = $ backbone.$ = $
marked.setOptions
sanitize: true
global.feedbackController = new FeedbackController el:'.view__feedback' global.feedbackController = new FeedbackController el:'.view__feedback'
feedbackController.render() feedbackController.render()
+1 -1
View File
@@ -7,4 +7,4 @@
.view__markdown_section.section .view__markdown_section.section
h2 h2
.panel.markdown .panel.markdown
+1
View File
@@ -51,6 +51,7 @@ All rights reserved.
font-size: $font-size-normal; font-size: $font-size-normal;
font-weight: bold; font-weight: bold;
vertical-align: middle; vertical-align: middle;
text-align: center;
} }
td[align="center"] { td[align="center"] {
+1
View File
@@ -19,6 +19,7 @@ All rights reserved.
@import 'item_selector'; @import 'item_selector';
@import 'item_selector_element'; @import 'item_selector_element';
@import 'login_page'; @import 'login_page';
@import 'markdown_section';
@import 'minimal_recipe'; @import 'minimal_recipe';
@import 'mod'; @import 'mod';
@import 'mod_pack'; @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%;
}
}