diff --git a/.babelrc b/.babelrc index b0b9a96ef0ecd..9b7d435ad38f2 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,3 @@ { - "stage": 0 + "presets": ["es2015", "stage-0", "react"] } diff --git a/.eslintrc b/.eslintrc index e796f38cf78a0..7855f0cd88922 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,15 +1,33 @@ { + "ecmaFeatures": { + "jsx": true, + "modules": true + }, + "env": { + "browser": true, + "node": true + }, + "parser": "babel-eslint", "extends": "eslint-config-airbnb", "rules": { + "no-loop-func": 0, + "quotes": [2, "single"], + "strict": [2, "never"], + "react/jsx-uses-react": 2, + "react/jsx-uses-vars": 2, + "react/react-in-jsx-scope": 2, "indent": [2, 2, {"SwitchCase": 1}], "no-console": [0], "func-names": [0], "semi": [2, "never"], "no-extra-semi": [2], "space-before-function-paren": [2, "always"], - "no-else-return": [0], + "no-else-return": [0] }, "globals": { - "__PREFIX_LINKS__": true, + "__PREFIX_LINKS__": true }, + "plugins": [ + "react" + ] } diff --git a/.gitignore b/.gitignore index c4703bbeb9ed4..9bf2373d66458 100644 --- a/.gitignore +++ b/.gitignore @@ -24,9 +24,12 @@ build/Release # Dependency directory # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git -node_modules +node_modules/ examples/biz-website/public/ examples/blog/public/ *.un~ -dist +dist/ bin/published.js + +# JetBrains IntelliJ IDEA-based project configuration directory +.idea/ \ No newline at end of file diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000000000..b6b57efddad0f --- /dev/null +++ b/.jshintrc @@ -0,0 +1,6 @@ +{ + "node": true, + "browser": true, + "esnext": true, + "newcap": false +} \ No newline at end of file diff --git a/bin/build.coffee b/bin/build.coffee deleted file mode 100644 index 8da20bef47c15..0000000000000 --- a/bin/build.coffee +++ /dev/null @@ -1,29 +0,0 @@ -program = require 'commander' -path = require 'path' - -packageJson = require '../package.json' - -# Use compiled version of code when installed globally, otherwise use -# babelscript version. -if require './published' - build = require '../dist/utils/build' -else - build = require '../lib/utils/build' - -program - .version(packageJson.version) - .option('--prefix-links', 'Build site with links prefixed (set prefix in your config).') - .parse(process.argv) - -relativeDirectory = program.args[0] -unless relativeDirectory? then relativeDirectory = "." -directory = path.resolve(relativeDirectory) - -program.directory = directory -program.relativeDirectory = relativeDirectory - -build program, (err) -> - if err? - throw err - else - console.log('Done') diff --git a/bin/build.js b/bin/build.js new file mode 100644 index 0000000000000..9f5f1090b91cd --- /dev/null +++ b/bin/build.js @@ -0,0 +1,27 @@ +import program from 'commander' +import path from 'path' + +const packageJson = require('../package.json') + +// Use compiled version of code when installed globally, otherwise use babel script version. +const build = require(('./published.js') ? ('../dist/utils/build') : ('../lib/utils/build')) + +program + .version(packageJson.version) + .option('--prefix-links', 'Build site with links prefixed (set prefix in your config).') + .parse(process.argv) + +let relativeDirectory = program.args[0] +if (!(typeof relativeDirectory !== 'undefined' && relativeDirectory !== null)) { relativeDirectory = '.' } +const directory = path.resolve(relativeDirectory) + +program.directory = directory +program.relativeDirectory = relativeDirectory + +build(program, function (err) { + if ((typeof err !== 'undefined' && err !== null)) { + throw err + } else { + return console.log('Done') + } +}) diff --git a/bin/cli.js b/bin/cli.js index 9645aa5cbe01e..3b5c2086a3b00 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -1,4 +1,3 @@ #!/usr/bin/env node -require('coffee-script/register') require('./index') diff --git a/bin/develop.coffee b/bin/develop.coffee deleted file mode 100644 index 5f73160b2eab6..0000000000000 --- a/bin/develop.coffee +++ /dev/null @@ -1,26 +0,0 @@ -program = require 'commander' -path = require 'path' - -packageJson = require '../package.json' - -# Use compiled version of code when installed globally, otherwise use -# babelscript version. -if require './published' - develop = require '../dist/utils/develop' -else - develop = require '../lib/utils/develop' - -program - .version(packageJson.version) - .option('-h, --host ', 'Set host. Defaults to 0.0.0.0', "0.0.0.0") - .option('-p, --port ', 'Set port. Defaults to 8000', "8000") - .parse(process.argv) - -relativeDirectory = program.args[0] -unless relativeDirectory? then relativeDirectory = "." -directory = path.resolve(relativeDirectory) - -program.directory = directory -program.relativeDirectory = relativeDirectory - -develop(program) diff --git a/bin/develop.js b/bin/develop.js new file mode 100644 index 0000000000000..beb43c2b2879e --- /dev/null +++ b/bin/develop.js @@ -0,0 +1,22 @@ +import program from 'commander' +import path from 'path' + +import packageJson from '../package.json' + +// Use compiled version of code when installed globally, otherwise use babel script version. +const develop = require(('./published.js') ? ('../dist/utils/develop') : ('../lib/utils/develop')) + +program + .version(packageJson.version) + .option('-h, --host ', 'Set host. Defaults to 0.0.0.0', '0.0.0.0') + .option('-p, --port ', 'Set port. Defaults to 8000', '8000') + .parse(process.argv) + +let relativeDirectory = program.args[0] +if (!(typeof relativeDirectory !== 'undefined' && relativeDirectory !== null)) { relativeDirectory = '.' } +const directory = path.resolve(relativeDirectory) + +program.directory = directory +program.relativeDirectory = relativeDirectory + +develop(program) diff --git a/bin/gatsby-build.js b/bin/gatsby-build.js index b02baf0f62397..5d55cc92b2192 100755 --- a/bin/gatsby-build.js +++ b/bin/gatsby-build.js @@ -1,5 +1,4 @@ #!/usr/bin/env node -require('babel/register') -require('coffee-script/register') +require('babel-register') require('./build') diff --git a/bin/gatsby-develop.js b/bin/gatsby-develop.js index d5c0fb1083635..cc5273c9430c7 100755 --- a/bin/gatsby-develop.js +++ b/bin/gatsby-develop.js @@ -1,5 +1,4 @@ #!/usr/bin/env node -require('babel/register') -require('coffee-script/register') +require('babel-register') require('./develop') diff --git a/bin/gatsby-new.js b/bin/gatsby-new.js index ce8a5a72395d9..d93efe2ab44ff 100755 --- a/bin/gatsby-new.js +++ b/bin/gatsby-new.js @@ -1,5 +1,4 @@ #!/usr/bin/env node -require('coffee-script/register') -require('babel/register') +require('babel-register') require('./new') diff --git a/bin/index.coffee b/bin/index.js similarity index 75% rename from bin/index.coffee rename to bin/index.js index f093722c4080b..e0f3d4110d937 100644 --- a/bin/index.coffee +++ b/bin/index.js @@ -1,7 +1,6 @@ -program = require 'commander' -path = require 'path' +const program = require('commander') -packageJson = require '../package.json' +const packageJson = require('../package.json') program .version(packageJson.version) diff --git a/bin/new.coffee b/bin/new.coffee deleted file mode 100644 index 3457a462293b3..0000000000000 --- a/bin/new.coffee +++ /dev/null @@ -1,29 +0,0 @@ -program = require 'commander' -loggy = require 'loggy' - -packageJson = require '../package.json' - -# Use compiled version of code when installed globally, otherwise use -# babelscript version. -if require './published' - initStarter = require '../dist/utils/init-starter' -else - initStarter = require '../lib/utils/init-starter' - -program - .version(packageJson.version) - .parse(process.argv) - -if program.args.length is 1 - rootPath = program.args[0] - starter = "gh:gatsbyjs/gatsby-starter-default" -else - rootPath = program.args[0] - starter = program.args[1] - -initStarter starter, { - rootPath: rootPath - logger: loggy -}, (error) -> - if error - loggy.error error diff --git a/bin/new.js b/bin/new.js new file mode 100644 index 0000000000000..f9b1dffdd119b --- /dev/null +++ b/bin/new.js @@ -0,0 +1,23 @@ +const program = require('commander') +const loggy = require('loggy') + +const packageJson = require('../package.json') + +// Use compiled version of code when installed globally, otherwise use babelscript version. +const initStarter = require(('./published.js') ? ('../dist/utils/init-starter') : ('../lib/utils/init-starter')) + +program + .version(packageJson.version) + .parse(process.argv) + +const rootPath = program.args[0] +const starter = ((program.args.length === 1) ? ('gh:gatsbyjs/gatsby-starter-default') : (program.args[1])) + +initStarter(starter, { + rootPath, + logger: loggy, +}, function (error) { + if (error) { + return loggy.error(error) + } +}) diff --git a/lib/isomorphic/HTML.jsx b/lib/isomorphic/HTML.js similarity index 79% rename from lib/isomorphic/HTML.jsx rename to lib/isomorphic/HTML.js index 5be685137a105..64fe551945a3d 100644 --- a/lib/isomorphic/HTML.jsx +++ b/lib/isomorphic/HTML.js @@ -1,4 +1,6 @@ -import React, {PropTypes} from 'react' +'use strict' + +import React, { PropTypes } from 'react' import Typography from 'typography' const TypographyStyle = new Typography().TypographyStyle @@ -10,14 +12,14 @@ module.exports = React.createClass({ favicon: PropTypes.string, }, - getDefaultProps: function () { + getDefaultProps () { return { title: 'Default title', body: '', } }, - render: function () { + render () { return ( @@ -27,12 +29,12 @@ module.exports = React.createClass({ {this.props.title} - + -