* Convert build to use a single JavaScript file on the site (instead
of downloading each library separately). This also means that all
global variables (e.g., `$` for JQuery, `_` for Underscore.js) can
be removed.
* Remove unused scripts and/or move them to a more appropriate repo
* Update the `deploy` script to work with CircleCI's automation
* Update markdown display code to allow images to be located with the
markdown data files instead of the pre-rendered index pages
When unparsing an inventory which contains an item whose unqualified
slug appears in multiple mods (e.g., "steel_ingot" appears in both
Railcraft and Mekanism), the `unparse` method would choose the wrong
fully-qualified slug to use in the resulting string.
This introduces the new crafting page design featuring a new vertical
layout and list display of all crafting steps. It also makes it easy
to move items between the have/need sections and even from each step
into your inventory (causing a new crafting plan to be created which
doesn't plan on making that item).
* Convert the `BaseController.hide` and `show` methods to be much
more robust in the use of CSS transitions (using a timer in case a
transition doesn't actually fire).
* Change `hide`/`show` to use events for communicating animation
state instead of callbacks
* Convert several controllers to fire events for communication with
parent controllers instead of accepting functions.
* Rewrite the `CraftPageController`, `CraftPage` model and related
Jade/SCSS files to implement the new design.
* Alter the `InventoryController` and `StackController` to allow a
variety of action buttons, and for the events from those action
buttons to bubble up to parent controllers
* Add the `StepController` and its related model, template, and style
sheet as part of the new craft page.
* Tweak the `ItemSelectorController` and related files to allow for
a variety of styles for the launcher button
Fix a bug in the crafting plan where it would determine the number of
repetitions of the recipe only based upon the primary output even
when the recipe was needed only for a secondary output (e.g., when a
recipe calls for Creosote Oil, which is only produced as a secondary
output).
* Create the SlotController and refactor it into the various places
where a crafting grid or crafting output is displayed
* Update the Recipe model to allow each "input" stack to retain the
count indicated in the data file. This required changing how a few
other classes interact with it in order for them to get the full
stack back again for each input (instead of just getting the item
slug)
* Update the ModVersionParser to allow for full stacks to be given
as input and refactored common code out for handling input/output/
tools stacks
1. All tests have been converted into regular command-line mocha
tests (instead of running in the browser), and the deployment
script has been changed to automatically fail any `--new`
deployment which doesn't pass.
2. Several small class (e.g., `Logger`) have been moved into a common
module, `crafting-guide-common` so that they may be shared between
the client and server.
Any link inside a item detail page's markdown description which does
not have a URL will be assumed to be the name of an item covered by
Crafting Guide and an URL will be added to reference the appropiate
browse page.
When a here-doc contains an empty line, any whitespace it contains
should be ignored for purposes of determining the amount of leading
whitespace to trim from each line.
A pass-through recipe is one which requires an item as input which is
carried through to the output (e.g., using a Golden Railway Ticket to
create a regular Railway Ticket in Railcraft). As these aren't really
recipes, they should not be listed as such in the item detail page.
This fixes a regression where recipes for vanilla Minecraft items
(e.g., Iron Ingot) added by mods (e.g., Pulverized Iron to Iron
Ingot) didn't show up on that item's detail page.
When a visitor arrives at the site for the first time, this will
ensure they have a certain set of mods on/off. Right now, that means
IC2-Classic is off by default, and everything else is on.
* Update build process to *not* copy over prerendered pages during a
regular build (only during a `dist` build)
* Add dependency on npm "markdown" package and include it in the
scripts loaded in the default layout
* Update the Item model to be able to load from a *.cg file
* Add an ItemParser to process the `item.cg` file
* Update the general parser to be able to work with HereDoc-style
text blocks
* Add a markdown-specific stylesheet
* Add a sample of the `item.cg` file format (Advanced Crafting Table)