Use MarkdownSectionController on item page

This commit is contained in:
Andrew Miner
2015-04-03 18:01:38 -07:00
parent 8f7f513880
commit 0b043b9677
3 changed files with 22 additions and 46 deletions
@@ -12,6 +12,7 @@ Item = require '../models/item'
ItemGroupController = require './item_group_controller'
ItemPage = require '../models/item_page'
ItemSlug = require '../models/item_slug'
MarkdownSectionController = require './markdown_section_controller'
PageController = require './page_controller'
VideoController = require './video_controller'
{Duration} = require '../constants'
@@ -57,13 +58,13 @@ module.exports = class ItemPageController extends PageController
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
options = imageLoader:@imageLoader, modPack:@modPack, show:false
@_descriptionController = @addChild MarkdownSectionController, '.section.description', options
@_similarItemsController = @addChild ItemGroupController, '.view__item_group.similar', options
@_usedAsToolToMakeController = @addChild ItemGroupController, '.view__item_group.usedAsToolToMake', options
@_usedToMakeController = @addChild ItemGroupController, '.view__item_group.usedToMake', options
@$byline = @$('.byline')
@$bylineLink = @$('.byline a')
@$descriptionPanel = @$('.description .panel')
@$descriptionSection = @$('.description')
@$name = @$('h1.name')
@$officialPageLink = @$('a.officialPage')
@@ -129,9 +130,8 @@ module.exports = class ItemPageController extends PageController
@hide @$byline
_refreshDescription: ->
description = @model.compileDescription()
if description?
@$descriptionPanel.html description
if @model.item?.description?.length > 0
@_descriptionController.model = @model.item.description
@show @$descriptionSection
else
@hide @$descriptionSection
@@ -48,13 +48,14 @@ module.exports = class MarkdownSectionController extends BaseController
return '' unless @model
tree = markdown.parse @model, 'Maruku'
refs = tree[1].references
findLinkRefs = (node)=>
logger.verbose "inspecting a #{node[0]}"
if node[0] is 'link_ref'
name = node[2]
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
@@ -65,7 +66,9 @@ module.exports = class MarkdownSectionController extends BaseController
findLinkRefs node[index]
logger.outdent()
logger.verbose "replacing wiki-style links"
findLinkRefs tree
logger.verbose "finished"
html = markdown.renderJsonML markdown.toHTMLTree tree
return html
-27
View File
@@ -21,33 +21,6 @@ module.exports = class ItemPage extends BaseModel
# Property Methods #############################################################################
compileDescription: ->
return null unless @item?.description?
tree = markdown.parse @item.description, 'Maruku'
refs = tree[1].references
findLinkRefs = (node)=>
if node[0] is 'link_ref'
name = node[2]
item = @modPack.findItemByName node[2]
if item?
node[0] = 'link'
node[1].href = Url.item itemSlug:item.slug.item, modSlug:item.slug.mod
delete node[1].ref
else
for index in [1...node.length]
if _.isArray node[index]
for child in node[index]
logger.indent()
findLinkRefs child
logger.outdent()
findLinkRefs tree
html = markdown.renderJsonML markdown.toHTMLTree tree
return html
findComponentInItems: ->
return @_findRecipesMatching (recipe)=> recipe.requires @item.slug