Switch to using "marked" as a markdown parser
This commit is contained in:
+2
-6
@@ -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
@@ -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"
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Copyright (c) 2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
###
|
||||
|
||||
BaseController = require './base_controller'
|
||||
_ = require 'underscore'
|
||||
{markdown} = require 'markdown'
|
||||
{Url} = require '../constants'
|
||||
BaseController = require './base_controller'
|
||||
convertMarkdown = require 'marked'
|
||||
_ = require 'underscore'
|
||||
{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 ""
|
||||
|
||||
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]
|
||||
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()
|
||||
_convertWikiLinks: (text)->
|
||||
text.replace /\[\[([^\]]*)\]\]/g, (match, name)=>
|
||||
result = match
|
||||
item = @modPack.findItemByName name
|
||||
if item?
|
||||
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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ All rights reserved.
|
||||
font-size: $font-size-normal;
|
||||
font-weight: bold;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
td[align="center"] {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
Crafting Guide - markdown_section.scss
|
||||
|
||||
Copyright (C) 2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
.view__markdown_section {
|
||||
.editor {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user