Fireplace is a packaged version of the Firefox Marketplace's front-end.
- Chimney
- A bridge between Flue and the actual Zamboni API
- Damper
- A node.js server that serves a browser-friendly version of Fireplace
- Flue
- A mocked-out version of the Marketplace API.
- Hearth
- The source code for Fireplace.
- Inferno
- A build server which generates a packaged version of the Marketplace.
- Smoke Alarm
- A functional test runner for great justice.
- Yule Log
- A fake version of Fireplace to provide the Gaia team with a package that can be shipped and later upgraded to the real Fireplace.
npm install -dOur dependencies:
nunjucks: For templatesstylus: For stylesheets
If you plan on doing compilation (i.e.: you're Wil Clouser), you'll also need
clean-css: For minifying CSS or whateverrequirejs: For warming up Spaceheateruglify-js: For minifying JS and L10n string extraction
Comprehensive Flue documentation can be found in Flue's README.
brew install nodeAnd make sure that /usr/local/share/npm/bin is in your $PATH, à la: ::
export PATH=/usr/local/share/npm/bin:$PATHFrom the terminal, run the following command
node damper.jsThis will start a local server on 0.0.0.0:8675 by default.
To control the hostname and port you can use the following otions
node damper.js --host 127.0.0.1 --port 8888In addition to an HTTP server, the damper will also run a Stylus watcher (to recompile CSS as it's edited) and a template watcher (to recompile templates as they're edited).
For instructions on running Flue (the mock API server), please see the Flue docs.
To run the compilation process, which compiles templates, CSS, and locale
files, run the damper with the --compile argument:
node damper.js --compileThe damper will not start a local server in this case, but a strings.po file
will be generated.
If you need to compile include files (i.e.: for Space Heater or a less HTTP-
heavy version of the project), run make includes. This will generate two files:
hearth/media/include.js
hearth/media/css/include.css
The CSS in include.css is generated in the order in which CSS files are
included in hearth/index.html.
include.js uses a lightweight AMD loader (rather than require.js). This keeps
file size down and also makes it possible to name-mangle internal keywords which
otherwise wouldn't be minifiable. Note that the only safe globals are require
and define---using any other non-browser globals will result in errors. I.e.:
accessing _ without requiring 'underscore' will cause the code to fail. Also
note that all modules must include a name as the first parameter.
Note that you need the dev dependencies to run this compilation. You can get
them by running npm install -d.
A detailed guide to extracting strings and creating JS language packs can be found on the wiki.
- If new templates or
.stylfiles are added, they will not be recognized until the damper is restarted. Deleted files may also cause problems.
Install casper
brew install casperjsLoad http://localhost:8675/tests in your browser.
make testnumberfmtdoesn't work (should probably be integrated with L10n pluralization)
