Use MarkdownSectionController on item page
This commit is contained in:
@@ -12,6 +12,7 @@ Item = require '../models/item'
|
|||||||
ItemGroupController = require './item_group_controller'
|
ItemGroupController = require './item_group_controller'
|
||||||
ItemPage = require '../models/item_page'
|
ItemPage = require '../models/item_page'
|
||||||
ItemSlug = require '../models/item_slug'
|
ItemSlug = require '../models/item_slug'
|
||||||
|
MarkdownSectionController = require './markdown_section_controller'
|
||||||
PageController = require './page_controller'
|
PageController = require './page_controller'
|
||||||
VideoController = require './video_controller'
|
VideoController = require './video_controller'
|
||||||
{Duration} = require '../constants'
|
{Duration} = require '../constants'
|
||||||
@@ -57,13 +58,13 @@ module.exports = class ItemPageController extends PageController
|
|||||||
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
|
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
|
||||||
|
|
||||||
options = imageLoader:@imageLoader, modPack:@modPack, show:false
|
options = imageLoader:@imageLoader, modPack:@modPack, show:false
|
||||||
|
@_descriptionController = @addChild MarkdownSectionController, '.section.description', options
|
||||||
@_similarItemsController = @addChild ItemGroupController, '.view__item_group.similar', options
|
@_similarItemsController = @addChild ItemGroupController, '.view__item_group.similar', options
|
||||||
@_usedAsToolToMakeController = @addChild ItemGroupController, '.view__item_group.usedAsToolToMake', options
|
@_usedAsToolToMakeController = @addChild ItemGroupController, '.view__item_group.usedAsToolToMake', options
|
||||||
@_usedToMakeController = @addChild ItemGroupController, '.view__item_group.usedToMake', options
|
@_usedToMakeController = @addChild ItemGroupController, '.view__item_group.usedToMake', options
|
||||||
|
|
||||||
@$byline = @$('.byline')
|
@$byline = @$('.byline')
|
||||||
@$bylineLink = @$('.byline a')
|
@$bylineLink = @$('.byline a')
|
||||||
@$descriptionPanel = @$('.description .panel')
|
|
||||||
@$descriptionSection = @$('.description')
|
@$descriptionSection = @$('.description')
|
||||||
@$name = @$('h1.name')
|
@$name = @$('h1.name')
|
||||||
@$officialPageLink = @$('a.officialPage')
|
@$officialPageLink = @$('a.officialPage')
|
||||||
@@ -129,9 +130,8 @@ module.exports = class ItemPageController extends PageController
|
|||||||
@hide @$byline
|
@hide @$byline
|
||||||
|
|
||||||
_refreshDescription: ->
|
_refreshDescription: ->
|
||||||
description = @model.compileDescription()
|
if @model.item?.description?.length > 0
|
||||||
if description?
|
@_descriptionController.model = @model.item.description
|
||||||
@$descriptionPanel.html description
|
|
||||||
@show @$descriptionSection
|
@show @$descriptionSection
|
||||||
else
|
else
|
||||||
@hide @$descriptionSection
|
@hide @$descriptionSection
|
||||||
|
|||||||
@@ -48,13 +48,14 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
return '' unless @model
|
return '' unless @model
|
||||||
|
|
||||||
tree = markdown.parse @model, 'Maruku'
|
tree = markdown.parse @model, 'Maruku'
|
||||||
refs = tree[1].references
|
|
||||||
|
|
||||||
findLinkRefs = (node)=>
|
findLinkRefs = (node)=>
|
||||||
|
logger.verbose "inspecting a #{node[0]}"
|
||||||
if node[0] is 'link_ref'
|
if node[0] is 'link_ref'
|
||||||
name = node[2]
|
logger.verbose "looking for item named: #{node[2]}"
|
||||||
item = @modPack.findItemByName node[2]
|
item = @modPack.findItemByName node[2]
|
||||||
if item?
|
if item?
|
||||||
|
logger.verbose "found item #{item.slug}, updating link"
|
||||||
node[0] = 'link'
|
node[0] = 'link'
|
||||||
node[1].href = Url.item itemSlug:item.slug.item, modSlug:item.slug.mod
|
node[1].href = Url.item itemSlug:item.slug.item, modSlug:item.slug.mod
|
||||||
delete node[1].ref
|
delete node[1].ref
|
||||||
@@ -65,7 +66,9 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
findLinkRefs node[index]
|
findLinkRefs node[index]
|
||||||
logger.outdent()
|
logger.outdent()
|
||||||
|
|
||||||
|
logger.verbose "replacing wiki-style links"
|
||||||
findLinkRefs tree
|
findLinkRefs tree
|
||||||
|
logger.verbose "finished"
|
||||||
|
|
||||||
html = markdown.renderJsonML markdown.toHTMLTree tree
|
html = markdown.renderJsonML markdown.toHTMLTree tree
|
||||||
return html
|
return html
|
||||||
|
|||||||
@@ -21,33 +21,6 @@ module.exports = class ItemPage extends BaseModel
|
|||||||
|
|
||||||
# Property Methods #############################################################################
|
# 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: ->
|
findComponentInItems: ->
|
||||||
return @_findRecipesMatching (recipe)=> recipe.requires @item.slug
|
return @_findRecipesMatching (recipe)=> recipe.requires @item.slug
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user