diff --git a/src/coffee/controllers/item_page_controller.coffee b/src/coffee/controllers/item_page_controller.coffee index 4a113236c..f6911da44 100644 --- a/src/coffee/controllers/item_page_controller.coffee +++ b/src/coffee/controllers/item_page_controller.coffee @@ -5,19 +5,20 @@ Copyright (c) 2015 by Redwood Labs All rights reserved. ### -AdsenseController = require './adsense_controller' -FullRecipeController = require './full_recipe_controller' -ImageLoader = require './image_loader' -Item = require '../models/item' -ItemGroupController = require './item_group_controller' -ItemPage = require '../models/item_page' -ItemSlug = require '../models/item_slug' -PageController = require './page_controller' -VideoController = require './video_controller' -{Duration} = require '../constants' -{Event} = require '../constants' -{Text} = require '../constants' -{Url} = require '../constants' +AdsenseController = require './adsense_controller' +FullRecipeController = require './full_recipe_controller' +ImageLoader = require './image_loader' +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' +{Event} = require '../constants' +{Text} = require '../constants' +{Url} = 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 diff --git a/src/coffee/controllers/markdown_section_controller.coffee b/src/coffee/controllers/markdown_section_controller.coffee index 6c98ac88a..6e2423deb 100644 --- a/src/coffee/controllers/markdown_section_controller.coffee +++ b/src/coffee/controllers/markdown_section_controller.coffee @@ -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 diff --git a/src/coffee/models/item_page.coffee b/src/coffee/models/item_page.coffee index 285941c29..98b24db1a 100644 --- a/src/coffee/models/item_page.coffee +++ b/src/coffee/models/item_page.coffee @@ -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