diff --git a/.gitignore b/.gitignore index 74b9996..36f858d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ node_modules .DS_Store _site +_preview +_sample .sass-cache sassdoc *.map diff --git a/Jakefile b/Jakefile new file mode 100644 index 0000000..87c7543 --- /dev/null +++ b/Jakefile @@ -0,0 +1,11 @@ +// Register Babel ES6 module loader. +require('babel-core/register') +require('babel-polyfill') + +// Require `.jake` files as `.js`. +require.extensions['.jake'] = require.extensions['.js'] + +// Show help by default. +task('default', ['help']) + +// See `jakelib/*.jake` for included files. diff --git a/Makefile b/Makefile index 7550a02..513c059 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,7 @@ -$(MAKECMDGOALS): force - npm run make $@ +all: + @node_modules/.bin/jake -force: +$(MAKECMDGOALS): + @node_modules/.bin/jake $@ + +.PHONY: $(MAKECMDGOALS) diff --git a/_themes/package.json b/_themes/package.json new file mode 100644 index 0000000..6aea336 --- /dev/null +++ b/_themes/package.json @@ -0,0 +1,9 @@ +{ + "devDependencies": { + "sassdoc-theme-default": "^2.0.0", + "sassdoc-theme-flippant": "^0.1.0", + "sassdoc-theme-neat": "^0.0.2", + "sassdoc-theme-rest": "^1.0.2", + "sassdoc-theme-vulcan": "^0.2.0" + } +} diff --git a/annotations/index.md b/annotations/index.md index 4df1aaa..4a338f1 100644 --- a/annotations/index.md +++ b/annotations/index.md @@ -63,15 +63,16 @@ Describes the documented item. ## @access -| Attribute | Value | -|-------------|------------------------------------------------------------| -| Description | Defines the access of the documented item | -| Multiple | false | -| Default | `public` | -| Aliases | — | -| Autofilled | false | -| Allowed on | functions, mixins, placeholders, variables | -| Extra notes | Either `public` or `private`. | +| Attribute | Value | +|-----------------|--------------------------------------------------------| +| Description | Defines the access of the documented item | +| Multiple | false | +| Default | `public` | +| Aliases | — | +| Autofilled | false | +| OverwritePoster | true | +| Allowed on | functions, mixins, placeholders, variables | +| Extra notes | Either `public` or `private`. |

Example

@@ -101,15 +102,16 @@ Describes the documented item. ## @author -| Attribute | Value | -|-------------|------------------------------------------------------------| -| Description | Describes the author of the documented item | -| Multiple | true | -| Default | — | -| Aliases | — | -| Autofilled | false | -| Allowed on | functions, mixins, placeholders, variables | -| Extra notes | Parsed as Markdown.* | +| Attribute | Value | +|-----------------|--------------------------------------------------------| +| Description | Describes the author of the documented item | +| Multiple | true | +| Default | — | +| Aliases | — | +| Autofilled | false | +| OverwritePoster | true | +| Allowed on | functions, mixins, placeholders, variables | +| Extra notes | Parsed as Markdown.* |

Example

diff --git a/configuration/index.md b/configuration/index.md index 94d65da..b127aa8 100644 --- a/configuration/index.md +++ b/configuration/index.md @@ -38,6 +38,7 @@ Here are the available configuration options that does not depend on the theme w | `no-update-notifier` | Boolean | `false` | | `verbose` | Boolean | `false` | | `strict` | Boolean | `false` | +| `debug` | Boolean | `false` | ## Destination diff --git a/extending-sassdoc/index.md b/extending-sassdoc/index.md index f27429f..4573c72 100644 --- a/extending-sassdoc/index.md +++ b/extending-sassdoc/index.md @@ -27,8 +27,8 @@ module.exports.annotations = []; ## Schema Each annotation is an object with a `name` property, a `parse` -method, and optionnally `resolve`, `default` and `autofill` -methods and well as an `alias` array and a `multiple` boolean. +method, and optionally `resolve`, `default` and `autofill` +methods and well as an `alias` array, a `multiple` and an `overwritePoster` boolean. | Key | Type | Description | |-----|------|-------------| @@ -38,6 +38,7 @@ methods and well as an `alias` array and a `multiple` boolean. | `default` | function | Returns a default value when — if ever — the annotation is not present. | | `autofill` | function | Takes a parsed annotation object. You can modify this object reference as you want while having access to the whole parsed content of the current annotation. | | `multiple` | boolean | Indicates if this annotation is allowed multiple times per item (default is `true`). | +| `overwritePoster` | boolean | Indicates if this annotation is allowed to override a file level instance (default is `false`). | | `alias` | array | Array of aliases for the annotation. | ## Examples diff --git a/file-level-annotations/index.md b/file-level-annotations/index.md index 7f104a5..e43e2e1 100644 --- a/file-level-annotations/index.md +++ b/file-level-annotations/index.md @@ -11,31 +11,78 @@ Usually, the *poster comment* goes on top of the file. In order to be parsed as Feel free to add a description to it, however it won't be parsed in any way. For now, it is nothing but a comment. [At some point](https://github.com/SassDoc/sassdoc/issues/256), it might be useful though. -

Warning: when an item has an annotation that has already been defined on the poster, it overrides it. It is not merged with the one from the poster, it purely replaces it.

-## Example +## Default behavior (extend) + +When an item has an annotation that has already been defined on the poster, it will get merged (extend). So item level values will get added to file level ones. + +This is the case for most of `multiple` enabled annotations. + +#### Example {% highlight scss %} //// /// This is a poster comment. /// It will apply annotations to all items from file. /// @group API +/// @todo use more variables +//// + +/// This item will have: +/// `@group API` and `@todo use more variables` +/// inherited from the poster. +@function dummy-function() { + // ... +} + +/// This item extends the `@group` and `@todo` annotations +/// from the poster; they are merged. +/// @group utils +/// @todo fix it +@mixin dummy-mixin { + // ... +} +// This item will have: +// group: ['API', 'utils'] +// todo: ['use more variables', 'fix it'] +{% endhighlight %} + + +## Override + +However, annotation with the `overwritePoster` flag will have the opposite behaviour; they will override file level values. + +This is the case for: `@author`, `@access` + +#### Example + +{% highlight scss %} +//// +/// This is a poster comment. +/// It will apply annotations to all items from file. +/// @access private /// @author Hugo Giraudel //// /// This item will have: -/// `@group API` and `@author Hugo Giraudel` +/// `@access private` and `@author Hugo Giraudel` /// inherited from the poster. @function dummy-function() { // ... } -/// This item overrides the `@author` annotation -/// from the poster; it's not merged with it. +/// This item overrides the `@access` and `@author` annotations +/// from the poster; they are replaced. +/// @access public /// @author Fabrice Weinberg @mixin dummy-mixin { // ... } +// This item will have: +// access: 'public' +// author: ['Fabrice Weinberg'] {% endhighlight %} + + {% include routes.html %} diff --git a/jakelib/gallery.jake b/jakelib/gallery.jake new file mode 100644 index 0000000..78d28fe --- /dev/null +++ b/jakelib/gallery.jake @@ -0,0 +1,31 @@ +import { im, yaml } from './utils' +import { exec } from 'mz/child_process' +import screenshot from './screenshot' + +const gallery = yaml('_data/gallery.yml') + .map(x => { x.name = x.image.replace(/\..*$/, ''); return x }) + +const galleryDir = 'assets/images/gallery' + +directory(galleryDir) + +gallery.forEach(item => { + const image = `${galleryDir}/${item.image}` + + file(image, [galleryDir, 'screenshot'], async () => { + im`Rendering ${item.url} in ${image}.` + + await screenshot({ + url: item.url, + dest: image, + width: 1440, + height: 900 + }) + + await exec(`mogrify -resize 900x '${image}'`) + }) + + task(`gallery-${item.name}`, [image]) +}) + +task('gallery', gallery.map(x => `gallery-${x.name}`)) diff --git a/jakelib/help.jake b/jakelib/help.jake new file mode 100644 index 0000000..05afdf2 --- /dev/null +++ b/jakelib/help.jake @@ -0,0 +1,46 @@ +import chalk from 'chalk' + +const key = name => + `${chalk.red('*')} ${chalk.green(name)}` + +const title = (text, char='-') => + `${chalk.blue(text)}\n${chalk.yellow(char.repeat(text.length))}` + +const code = text => chalk.green(text) + +task('help', () => { + console.log(` +${title('sassdoc.com build script', '=')} + +Execute ${chalk.green('make ...')} to execute one or multiple tasks. + +${title('General')} + +${key('help')} Show this help. +${key('preview')} Render the preview image ${code('assets/images/preview-image.png')}. +${key('sample')} Fetch some SCSS sample in ${code('_sample')}. +${key('screenshot')} Download the screenshot tool. + +${title('Pages')} + +${key('changelog')} Fetch the changelog from GitHub repository. +${key('upgrading')} Fetch the upgrading page from GitHub repository. + +${title('Themes')} + +${key('themes')} Compile ${code('_data/themes.yml')} (package data for each + theme shown on the website). +${key('theme-')} Download given theme (e.g. ${code('make theme-vulcan')}). + +${title('Gallery')} + +${key('gallery')} Render all gallery images (${code('assets/images/gallery/*')}). +${key('gallery-')} Render a specific gallery image (e.g. ${code('make gallery-sassysort')}). + +${title('Theme gallery')} + +${key('theme-gallery')} Render all the themes and their preview images + in ${code('theme-gallery')}. +${key('theme-gallery-')} Render a specific themes (e.g. ${code('make theme-gallery-neat')}). +`) +}) diff --git a/jakelib/pages.jake b/jakelib/pages.jake new file mode 100644 index 0000000..a15257d --- /dev/null +++ b/jakelib/pages.jake @@ -0,0 +1,51 @@ +import { im } from './utils' +import filter from 'through2-filter' +import fs from 'fs' +import map from 'through2-map' +import promisePipe from 'promisepipe' +import request from 'request' +import split from 'split' + +const repo = 'https://raw.githubusercontent.com/SassDoc/sassdoc/master' + +// Filter stream chunks with a count. +const filterCount = (f, i=0) => + filter(line => f(line, ++i)) + +// Turn GitHub code blocks in Liquide code blocks. +const convertCodeBlocks = line => + line + .replace(/^( *)```([a-z0-9]+)$/, '$1{% highlight $2 %}') + .replace(/^( *)```$/, '$1{% endhighlight %}') + +function page(name, remote, header) { + task(name, async () => { + const local = `${name}/index.md` + const url = `${repo}/${remote}` + const output = fs.createWriteStream(local) + + im`Retrieving ${remote} from main repository to ${local}.` + + output.write(header) + + await promisePipe( + request(url), + split(/(\n)/), + filterCount((line, i) => i > 4), + map({ wantStrings: true }, convertCodeBlocks), + output + ) + }) +} + +page( + 'changelog', + 'CHANGELOG.md', + '---\nlayout: default\ntitle: "Changelog"\n---\n\n' +) + +page( + 'upgrading', + 'UPGRADE-2.0.md', + '---\nlayout: default\ntitle: "Upgrade from 1.0 to 2.0"\n---\n\n' +) diff --git a/jakelib/preview.jake b/jakelib/preview.jake new file mode 100644 index 0000000..427491a --- /dev/null +++ b/jakelib/preview.jake @@ -0,0 +1,35 @@ +import { im, furl } from './utils' +import { themes } from './themes' +import { sampleDir } from './sample' +import fse from 'fs-extra-promise' +import sassdoc from 'sassdoc' +import screenshot from './screenshot' + +const defaultTheme = themes.find(x => x.shortName === 'default') +const preview = 'assets/images/preview-image.png' + +file('_preview', [sampleDir, defaultTheme.package], async () => { + im`Compiling ${'default'} theme in ${'_preview'}.` + console.log() + + await sassdoc(sampleDir, { + dest: '_preview', + package: defaultTheme.package, + verbose: true, + }) + + console.log() +}) + +file(preview, ['_preview', 'screenshot'], async () => { + im`Taking a screenshot in ${preview}.` + + await screenshot({ + url: furl('_preview/index.html'), + dest: preview, + width: 1200, + height: 675 + }) +}) + +task('preview', [preview]) diff --git a/jakelib/sample.jake b/jakelib/sample.jake new file mode 100644 index 0000000..5227265 --- /dev/null +++ b/jakelib/sample.jake @@ -0,0 +1,19 @@ +import { im, asyncTask } from './utils' +import { themes } from './themes' +import exec from 'mz/child_process' +import fs from 'mz/fs' +import fse from 'fs-extra-promise' + +const defaultTheme = 'https://github.com/SassDoc/sassdoc-theme-default' +export const sampleDir = `_sample` + +file(sampleDir, async () => { + im`Cloning ${defaultTheme}.` + await exec(`git clone '${defaultTheme}' '${sampleDir}-git'`) + + im`Copying ${'scss/utils'} from theme to ${sampleDir}.` + await fs.rename(`${sampleDir}-git/scss/utils`, sampleDir) + await fse.remove(`${sampleDir}-git`) +}) + +task('sample', [sampleDir]) diff --git a/jakelib/screenshot.jake b/jakelib/screenshot.jake new file mode 100644 index 0000000..bb068cd --- /dev/null +++ b/jakelib/screenshot.jake @@ -0,0 +1,6 @@ +import { exec } from 'mz/child_process' + +const name = 'electron-screenshot-service' + +file(`node_modules/${name}`, () => exec(`npm install ${name}`)) +task('screenshot', [`node_modules/${name}`]) diff --git a/jakelib/screenshot.js b/jakelib/screenshot.js new file mode 100644 index 0000000..6562155 --- /dev/null +++ b/jakelib/screenshot.js @@ -0,0 +1,11 @@ +import denodeify from 'es6-denodeify' +import screenshot from 'electron-screenshot-service' +import fs from 'fs' + +const writeFile = denodeify(Promise)(fs.writeFile) + +jake.addListener('complete', () => screenshot.close()) + +export default opts => + screenshot(opts) + .then(img => writeFile(opts.dest, img.data)) diff --git a/jakelib/theme-gallery.jake b/jakelib/theme-gallery.jake new file mode 100644 index 0000000..aebab3b --- /dev/null +++ b/jakelib/theme-gallery.jake @@ -0,0 +1,48 @@ +import { im, furl } from './utils' +import { themes } from './themes' +import { sampleDir } from './sample' +import { exec } from 'mz/child_process' +import sassdoc from 'sassdoc' +import screenshot from './screenshot' + +const previewDir = 'theme-gallery/preview' +const thumbDir = 'theme-gallery/thumbs' + +directory(previewDir) +directory(thumbDir) + +themes.forEach(theme => { + const preview = `${previewDir}/${theme.shortName}` + const thumb = `${thumbDir}/${theme.shortName}.png` + + task(preview, [sampleDir, theme.dir, previewDir], async () => { + im`Compiling ${theme.shortName} theme in ${preview}.` + console.log() + + await sassdoc(sampleDir, { + dest: preview, + package: theme.package, + theme: theme.dir, + verbose: true, + }) + + console.log() + }) + + task(thumb, [preview, thumbDir, 'screenshot'], async () => { + im`Taking a screenshot of ${preview} in ${thumb}.` + + await screenshot({ + url: furl(`${preview}/index.html`), + dest: thumb, + width: 1024, + height: 768 + }) + + await exec(`mogrify -resize 256x192 '${thumb}'`) + }) + + task(`theme-gallery-${theme.shortName}`, [preview, thumb]) +}) + +task('theme-gallery', themes.map(x => `theme-gallery-${x.shortName}`)) diff --git a/jakelib/themes.jake b/jakelib/themes.jake new file mode 100644 index 0000000..2a1a5e8 --- /dev/null +++ b/jakelib/themes.jake @@ -0,0 +1,42 @@ +import { im } from './utils' +import CombinedStream from 'combined-stream' +import { exec } from 'mz/child_process' +import fs from 'fs' +import promisePipe from 'promisepipe' +import themesPackage from '../_themes/package' + +export const themes = Object.keys(themesPackage.devDependencies) + .map(name => ({ + shortName: name.replace(/^sassdoc-theme-/, ''), + name, + dir: `_themes/node_modules/${name}`, + package: `_themes/node_modules/${name}/package.json`, + version: themesPackage.devDependencies[name], + })) + +themes.forEach(theme => { + file(theme.dir, async () => { + im`Installing ${theme.name}.` + await exec(`cd _themes && npm install '${theme.name}@${theme.version}'`) + }) + + file(theme.package, [theme.dir], () => {}) + task(`theme-${theme.shortName}`, [theme.dir]) +}) + +file('_data/themes.yml', themes.map(x => x.package), async () => { + const file = '_data/themes.yml' + const output = fs.createWriteStream(file) + const combined = CombinedStream.create() + + im`Generating ${file}.` + + themes.forEach(theme => { + combined.append(`${theme.shortName}: `) + combined.append(fs.createReadStream(theme.package)) + }) + + await promisePipe(combined, output) +}) + +task('themes', ['_data/themes.yml']) diff --git a/jakelib/utils.js b/jakelib/utils.js new file mode 100644 index 0000000..cf9758a --- /dev/null +++ b/jakelib/utils.js @@ -0,0 +1,27 @@ +import chalk from 'chalk' +import fs from 'mz/fs' +import path from 'path' +import jsYaml from 'js-yaml' + +const chevron = '»' + +export const zip = (...arrays) => + arrays[0].map((_, i) => + arrays.map(array => array[i]) + ) + +const decorateValues = values => + values.map(x => chalk.green(x)) + +// Say what I'm doing (template string). +export function im(strings, ...values) { + const [xs, x] = [strings.slice(0, -1), strings.slice(-1)] + const parts = [].concat(...zip(xs, decorateValues(values)), x) + console.log(chalk.green(chevron), parts.join('')) +} + +// Convert a file to absolute `file://` URL. +export const furl = file => `file://${path.resolve(file)}` + +export const yaml = file => + jsYaml.safeLoad(fs.readFileSync(file)) diff --git a/make.js b/make.js deleted file mode 100644 index ca2a0fc..0000000 --- a/make.js +++ /dev/null @@ -1,289 +0,0 @@ -// Dependencies {{{ -// ================ - -const CombinedStream = require('combined-stream') -const es = require('event-stream') -const exec = require('mz/child_process').exec -const filter = require('through2-filter') -const fs = require('mz/fs') -const fse = require('fs-extra-promise') -const map = require('through2-map') -const path = require('path') -const promisePipe = require('promisepipe') -const readline = require('readline') -const request = require('request') -const sassdoc = require('sassdoc') -const screenshot = require('atom-screenshot') -const split = require('split') -const yaml = require('js-yaml') -const zip = require('array-zip') - -// }}} - -// Helpers {{{ -// =========== - -const repoUrl = 'https://raw.githubusercontent.com/SassDoc/sassdoc/master' - -// Say what I'm doing. -function im(...args) { - console.log() - console.log(...args) - console.log() -} - -// Get a file as URL. -const furl = file => `file://${path.resolve(file)}` - -// Return a callback to write given file. -const writeFile = (file, options) => - buffer => fs.writeFile(file, buffer, options) - -// Filter stream chunks with a count. -const filterCount = (f, i=0) => - filter(line => f(line, ++i)) - -// Read a YAML file. -const yamlf = async file => - yaml.safeLoad(await fs.readFile(file)) - -const shot = options => - screenshot({ - ...options, - css: '::-webkit-scrollbar { display: none; }', - }) - -// Tasks container. -const t = {} - -// }}} - -// Pages {{{ -// ========= - -// Turn GitHub code blocks in Liquide code blocks. -const convertCodeBlocks = line => - line - .replace(/^( *)```([a-z0-9]+)$/, '$1{% highlight $2 %}') - .replace(/^( *)```$/, '$1{% endhighlight %}') - -async function page(local, remote, header) { - im(`Retrieving \`${remote}\` from main repository to \`${local}\`.`) - - const url = `${repoUrl}/${remote}` - const output = fs.createWriteStream(local) - - output.write(header) - - await promisePipe( - request(url), - split(/(\n)/), - filterCount((line, i) => i > 4), - map({ wantStrings: true }, convertCodeBlocks), - output - ) -} - -t.changelog = () => - page( - 'changelog/index.md', - 'CHANGELOG.md', - '---\nlayout: default\ntitle: "Changelog"\n---\n\n' - ) - -t.upgrading = () => - page( - 'upgrading/index.md', - 'UPGRADE-2.0.md', - '---\nlayout: default\ntitle: "Upgrade from 1.0 to 2.0"\n---\n\n' - ) - -// }}} - -// Themes {{{ -// ========== - -const themes = ['default', 'vulcan', 'neat', 'flippant' /*, 'rest' */] -const themeDirs = themes.map(x => `node_modules/sassdoc-theme-${x}`) -const themePackages = themeDirs.map(x => `${x}/package.json`) - -const themeGallery = 'theme-gallery' -const sampleDir = `${themeGallery}/sample` -const defaultTheme = 'https://github.com/SassDoc/sassdoc-theme-default' - -// Sample {{{ -// ---------- - -t.sample = async () => { - if (!await fs.exists(sampleDir)) { - im('Cloning default theme to get sample SCSS files.') - await exec(`git clone '${defaultTheme}' '${sampleDir}-git'`) - await fs.rename(`${sampleDir}-git/scss/utils`, sampleDir) - await fse.remove(`${sampleDir}-git`) - } -} - -// }}} - -// Gallery {{{ -// ----------- - -t['theme-gallery'] = async () => { - // Ensure sample directory exists. - await t.sample() - - const previewDir = `${themeGallery}/preview` - const thumbDir = `${themeGallery}/thumbs` - - await Promise.all([previewDir, thumbDir].map(x => fse.mkdirs(x))) - - for (let theme of process.env.THEME ? [process.env.THEME] : themes) { - const themePackage = themePackages[themes.indexOf(theme)] - const preview = `${previewDir}/${theme}` - const thumb = `${thumbDir}/${theme}.png` - - im(`Compiling \`${theme}\` theme in \`${preview}\`.`) - - await sassdoc(sampleDir, { - dest: preview, - package: themePackage, - theme, - verbose: true, - }) - - im(`Taking a screenshot of \`${theme}\` theme in \`${thumb}\`.`) - - await shot({ - url: furl(`${preview}/index.html`), - width: 1024, - height: 768, - }) - .then(writeFile(thumb)) - - await exec(`mogrify -resize 256x192 '${thumb}'`) - } -} - -// }}} - -t.themes = async () => { - const file = '_data/themes.yml' - const output = fs.createWriteStream(file) - const combined = CombinedStream.create() - - im(`Generating \`${file}\`.`) - - for (let [theme, themePackage] of zip(themes, themePackages)) { - combined.append(`${theme}: `) - combined.append(fs.createReadStream(themePackage)) - } - - await promisePipe(combined, output) -} - -// }}} - -// Preview {{{ -// =========== - -t.preview = async () => { - // Ensure sample directory exists. - await t.sample() - - const preview = 'assets/images/preview-image.png' - - im('Compiling `default` theme in `.preview`.') - - await sassdoc(sampleDir, { - dest: '.preview', - package: `node_modules/sassdoc-theme-default/package.json`, - verbose: true, - }) - - im(`Taking a screenshot in \`${preview}\`.`) - - await shot({ - url: furl('.preview/index.html'), - width: 1200, - height: 675, - }) - .then(writeFile(preview)) - - await fse.remove('.preview') -} - -// }}} - -// Gallery {{{ -// =========== - -t.gallery = async () => { - const gallery = await yamlf('_data/gallery.yml') - const galleryDir = 'assets/images/gallery' - - const images = gallery - .map(x => x.image) - .map(x => `${galleryDir}/${x}`) - - // Ensure directory exists. - await fse.mkdirs(galleryDir) - - const filter = !process.env.SITE - ? () => true - : x => x.image === `${process.env.SITE}.png` - - await Promise.all( - gallery - .filter(filter) - .map(async x => { - const file = `${galleryDir}/${x.image}` - - await shot({ - url: x.url, - width: 1440, - height: 900, - }) - .then(writeFile(file)) - - await exec(`mogrify -resize 900x '${file}'`) - }) - ) -} - -// }}} - -// Execution {{{ -// ============= - -async () => { - const targets = process.argv.slice(2) - - // Show existing targets. - if (!targets.length) { - console.error('Please specify a target. Available targets:') - Object.keys(t).map(x => ` ${x}`).forEach(console.error) - process.exit(1) - } - - // Show unknown targets and exit if any. - targets - .filter(target => !(target in t)) - .map(target => console.error(`Unknown target \`${target}\`.`)) - .forEach(() => process.exit(1)) - - const throwNextTick = err => - setImmediate(() => { throw err }) - - // Call all targets, wait promises. - await Promise.all( - targets - .map(target => t[target]()) - .filter(p => p instanceof Promise) - .map(p => p.catch(throwNextTick)) - ) - - // Close screenshot service if needed. - screenshot.close() -}() - -// }}} diff --git a/package.json b/package.json index 5d71d4e..8d86a17 100644 --- a/package.json +++ b/package.json @@ -1,26 +1,27 @@ { - "dependencies": { - "array-zip": "^1.0.0", - "atom-screenshot": "^0.4.3", - "babel": "^4.4.0", - "combined-stream": "0.0.7", - "event-stream": "^3.2.1", - "fs-extra-promise": "^0.1.0", + "devDependencies": { + "babel-core": "^6.3.15", + "babel-polyfill": "^6.3.14", + "babel-preset-es2015": "^6.3.13", + "babel-preset-stage-0": "^6.3.13", + "chalk": "^1.1.1", + "combined-stream": "^1.0.5", + "es6-denodeify": "^0.1.1", + "fs-extra-promise": "^0.3.1", + "jake": "^8.0.10", "js-yaml": "^3.2.5", - "mz": "^1.2.1", + "mz": "^2.1.0", "promisepipe": "^1.0.1", "request": "^2.51.0", "sassdoc": "^2.1.0", - "sassdoc-theme-default": "^2.3.0", - "sassdoc-theme-flippant": "^0.1.0", - "sassdoc-theme-neat": "0.0.2", - "sassdoc-theme-rest": "^1.0.2", - "sassdoc-theme-vulcan": "^0.2.0", - "split": "^0.3.2", - "through2-filter": "^1.4.0", - "through2-map": "^1.4.0" + "split": "^1.0.0", + "through2-filter": "^2.0.0", + "through2-map": "^2.0.0" }, - "scripts": { - "make": "babel-node --experimental make" + "babel": { + "presets": [ + "es2015", + "stage-0" + ] } }