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 = [
|
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
@@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ All rights reserved.
|
|||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
BaseController = require './base_controller'
|
||||||
|
convertMarkdown = require 'marked'
|
||||||
_ = require 'underscore'
|
_ = require 'underscore'
|
||||||
{markdown} = require 'markdown'
|
|
||||||
{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 ""
|
||||||
|
|
||||||
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?
|
||||||
logger.verbose -> "found item #{item.slug}, updating link"
|
display = @modPack.findItemDisplay item.slug
|
||||||
node[0] = 'link'
|
result = "[#{name}](#{display.itemUrl})"
|
||||||
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
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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"] {
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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