diff --git a/src/coffee/constants.coffee b/src/coffee/constants.coffee index 76481054a..9919113bc 100644 --- a/src/coffee/constants.coffee +++ b/src/coffee/constants.coffee @@ -114,8 +114,15 @@ exports.ProductionEnvs = [ 'staging', 'production' ] exports.RequiredMods = [ 'minecraft' ] -exports.Text = Text = {} -Text.title = 'The Ultimate Minecraft Crafting Guide' +exports.Text = Text = {} +Text.browseDescription = _.template 'Browse through complete item listings for over a dozen top mods and use the interactive crafting planner for step-by-step instructions' +Text.configDescription = _.template 'Configure the interactive crafting planner for your exact modpack and get step-by-step instructions for any item in your world' +Text.craftDescription = _.template 'Build anything in your Minecraft mod pack with a full list of materials and step-by-step instructions using our interactive crafting planner' +Text.homeDescription = _.template 'Find everything you need to know about your Minecraft mod pack and use the interactive crafting planner for step-by-step instructions and full lists of materials' +Text.itemDescription = _.template 'Make <%= itemName %> and the rest of <%= modName %> easy and use the interactive crafting planner for step-by-step instructions' +Text.modDescription = _.template 'Make <%= modName %> easy with tutorials, videos, and a full item listing along with an interactive crafting planner for step-by-step instructions' +Text.title = _.template 'Minecraft Crafting Guide' +Text.titleWithText = _.template '<%= text %> | Minecraft Crafting Guide' exports.Url = Url = {} Url.crafting = _.template "/craft/<%= inventoryText %>" diff --git a/src/coffee/controllers/browse_page_controller.coffee b/src/coffee/controllers/browse_page_controller.coffee index 5268e7796..5f6a6e70d 100644 --- a/src/coffee/controllers/browse_page_controller.coffee +++ b/src/coffee/controllers/browse_page_controller.coffee @@ -10,6 +10,7 @@ ModController = require './mod_controller' PageController = require './page_controller' {Duration} = require '../constants' {Event} = require '../constants' +{Text} = require '../constants' ######################################################################################################################## @@ -25,6 +26,9 @@ module.exports = class BrowsePageController extends PageController # PageController Overrides ##################################################################### + getMetaDescription: -> + return Text.browseDescription() + getTitle: -> return 'Browse' diff --git a/src/coffee/controllers/configure_page_controller.coffee b/src/coffee/controllers/configure_page_controller.coffee index 000d662ef..dfa7e43a4 100644 --- a/src/coffee/controllers/configure_page_controller.coffee +++ b/src/coffee/controllers/configure_page_controller.coffee @@ -8,6 +8,7 @@ All rights reserved. AdsenseController = require './adsense_controller' PageController = require './page_controller' ModPackController = require './mod_pack_controller' +{Text} = require '../constants' ######################################################################################################################## @@ -24,6 +25,9 @@ module.exports = class ConfigurePageController extends PageController # PageController Overrides ##################################################################### + getMetaDescription: -> + return Text.configDescription() + getTitle: -> return "Configure" @@ -36,4 +40,4 @@ module.exports = class ConfigurePageController extends PageController refresh: -> @adsenseController.fillAdPositions() - super \ No newline at end of file + super diff --git a/src/coffee/controllers/craft_page_controller.coffee b/src/coffee/controllers/craft_page_controller.coffee index 0c808d61d..83f6f4042 100644 --- a/src/coffee/controllers/craft_page_controller.coffee +++ b/src/coffee/controllers/craft_page_controller.coffee @@ -12,6 +12,7 @@ PageController = require './page_controller' StepController = require './step_controller' _ = require 'underscore' {Event} = require '../constants' +{Text} = require '../constants' {Url} = require '../constants' ######################################################################################################################## @@ -74,6 +75,9 @@ module.exports = class CraftPageController extends PageController # PageController Overrides ##################################################################### + getMetaDescription: -> + return Text.craftDescription() + getTitle: -> return 'Craft' diff --git a/src/coffee/controllers/home_page_controller.coffee b/src/coffee/controllers/home_page_controller.coffee index 589b26e5f..a376ecb15 100644 --- a/src/coffee/controllers/home_page_controller.coffee +++ b/src/coffee/controllers/home_page_controller.coffee @@ -8,6 +8,7 @@ All rights reserved. AdsenseController = require './adsense_controller' PageController = require './page_controller' _ = require 'underscore' +{Text} = require '../constants' ######################################################################################################################## @@ -17,6 +18,11 @@ module.exports = class HomeController extends PageController options.templateName = 'home_page' super options + # PageController Overrides ##################################################################### + + getMetaDescription: -> + return Text.homeDescription() + # BaseController Overrides ##################################################################### onDidRender: -> diff --git a/src/coffee/controllers/item_page_controller.coffee b/src/coffee/controllers/item_page_controller.coffee index 92c7af346..481c31f92 100644 --- a/src/coffee/controllers/item_page_controller.coffee +++ b/src/coffee/controllers/item_page_controller.coffee @@ -56,8 +56,17 @@ module.exports = class ItemPageController extends PageController # PageController Overrides ##################################################################### + getMetaDescription: -> + if @model.item? + display = @modPack.findItemDisplay @model.item.slug + return Text.itemDescription display + else + return null + getTitle: -> - return @model.item?.name + return unless @model.item? + display = @modPack.findItemDisplay @model.item.slug + return "#{display.itemName} from #{display.modName}" # BaseController Overrides ##################################################################### diff --git a/src/coffee/controllers/mod_page_controller.coffee b/src/coffee/controllers/mod_page_controller.coffee index 7532bfb3a..4e9b7fd4a 100644 --- a/src/coffee/controllers/mod_page_controller.coffee +++ b/src/coffee/controllers/mod_page_controller.coffee @@ -61,6 +61,10 @@ module.exports = class ModPageController extends PageController # PageController Overrides ##################################################################### + getMetaDescription: -> + return unless @model? + return Text.modDescription modName:@model.name + getTitle: -> return @model?.name diff --git a/src/coffee/controllers/page_controller.coffee b/src/coffee/controllers/page_controller.coffee index aae7e42fc..3269e4895 100644 --- a/src/coffee/controllers/page_controller.coffee +++ b/src/coffee/controllers/page_controller.coffee @@ -18,6 +18,10 @@ module.exports = class PageController extends BaseController # Public Methods ############################################################################### + getMetaDescription: -> + # subclasses should override this to return the page-specific text for the meta description tag + return null + getTitle: -> # subclasses should override this to return the page-specific portion of the title return null @@ -25,14 +29,25 @@ module.exports = class PageController extends BaseController # BaseController Overrides ##################################################################### refresh: -> + @_refreshMetaDescription() + @_refreshTitle() + super + + # Private Methods ############################################################################## + + _refreshMetaDescription: -> + description = @getMetaDescription() + description ?= '' + + if description.length > 0 + $('meta[name="description"]').remove() + $('head').append "" + + _refreshTitle: -> title = @getTitle() title = if title? then title.trim() else '' if title.length > 0 - title += " | #{Text.title}" + $('title').html Text.titleWithText text:title else - title = Text.title - - $('title').html title - - super + $('title').html Text.title() diff --git a/src/jade/includes/_header.jade b/src/jade/includes/_header.jade index 9c69845e5..5add36f05 100644 --- a/src/jade/includes/_header.jade +++ b/src/jade/includes/_header.jade @@ -8,7 +8,7 @@ .view__header h1 a.logo(href="/"): img(src="/images/workbench_front.png") - p Crafting Guide for Minecraft + p Minecraft Crafting Guide .addthis_sharing_toolbox .divider.bottom