diff --git a/app/index.js b/app/index.js index ddcd64b..f96ce41 100644 --- a/app/index.js +++ b/app/index.js @@ -2,7 +2,6 @@ var banner = require('../banner'); var path = require('path'); -var util = require('util'); var yeoman = require('yeoman-generator'); var elementNameValidator = require('validate-element-name'); @@ -61,9 +60,9 @@ var ElementGenerator = yeoman.generators.Base.extend({ files: function () { var boilerplateFile = { - 'Polymer' : 'src/_polymer.html', - 'X-Tag' : 'src/_xtag.html', - 'VanillaJS': 'src/_vanillajs.html' + 'Polymer' : '_element-polymer.html', + 'X-Tag' : '_element-xtag.html', + 'VanillaJS': '_element-vanillajs.html' }; this.copy(boilerplateFile[this.boilerplate], this.elementName + '.html'); diff --git a/package.json b/package.json index f4acf33..3833ba2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "generator-element", - "version": "1.0.0", + "version": "1.1.0", "description": "Yeoman generator to create Custom Elements using Polymer, X-Tag or VanillaJS", "author": { "name": "WebComponents.org", diff --git a/repo/index.js b/repo/index.js index 9d8c2c7..b025777 100644 --- a/repo/index.js +++ b/repo/index.js @@ -3,7 +3,6 @@ var banner = require('../banner'); var path = require('path'); var pkgNameValidator = require('pkg-name'); -var util = require('util'); var yeoman = require('yeoman-generator'); var elementNameValidator = require('validate-element-name'); @@ -19,17 +18,12 @@ var RepoGenerator = yeoman.generators.Base.extend({ this.on('end', function () { if (!this.options['skip-install']) { this.bowerInstall(); - - if (this.grunt) { - this.npmInstall(); - } } }); }, askForBoilerplate: function () { var done = this.async(); - var log = this.log; var prompts = [{ type: 'list', @@ -62,7 +56,7 @@ var RepoGenerator = yeoman.generators.Base.extend({ var done = this.async(); pkgNameValidator(answers.githubRepo, function (err, available) { - if (!available.bower) { + if (!available || !available.bower) { done(true); } @@ -99,11 +93,6 @@ var RepoGenerator = yeoman.generators.Base.extend({ name: 'lifecycle', message: 'Do you want to include lifecycle callbacks?', default: true - }, { - type: 'confirm', - name: 'grunt', - message: 'Do you want to include some useful Grunt tasks?', - default: true }]; this.prompt(prompts, function (props) { @@ -125,23 +114,16 @@ var RepoGenerator = yeoman.generators.Base.extend({ this.copy('_index.html', 'index.html'); this.copy('_README.md', 'README.md'); - if (this.grunt) { - this.copy('_package.json', 'package.json'); - this.copy('_Gruntfile.js', 'Gruntfile.js'); - } - this.copy('editorconfig', '.editorconfig'); this.copy('gitignore', '.gitignore'); - this.mkdir('src'); - var boilerplateFile = { - 'Polymer' : 'src/_polymer.html', - 'X-Tag' : 'src/_xtag.html', - 'VanillaJS': 'src/_vanillajs.html' + 'Polymer' : '_element-polymer.html', + 'X-Tag' : '_element-xtag.html', + 'VanillaJS': '_element-vanillajs.html' }; - this.copy(boilerplateFile[this.boilerplate], 'src/' + this.elementName + '.html'); + this.copy(boilerplateFile[this.boilerplate], this.elementName + '.html'); } }); diff --git a/templates/_Gruntfile.js b/templates/_Gruntfile.js deleted file mode 100644 index be88def..0000000 --- a/templates/_Gruntfile.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = function(grunt) { - - grunt.initConfig({ - 'connect': { - demo: { - options: { - open: true, - keepalive: true - } - } - }, - 'gh-pages': { - options: { - clone: 'bower_components/<%= githubRepo %>' - }, - src: [ - 'bower_components/**/*', - '!bower_components/<%= githubRepo %>/**/*', - 'demo/*', 'src/*', 'index.html' - ] - }<% if (boilerplate != 'VanillaJS') { %>, - 'replace': { - example: { - src: ['src/*'], - dest: 'dist/', - replacements: [{ - from: 'bower_components', - to: '..' - }] - } - }<% } %> - }); - - grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.loadNpmTasks('grunt-gh-pages');<% if (boilerplate != 'VanillaJS') { %> - grunt.loadNpmTasks('grunt-text-replace');<% } %> -<% if (boilerplate != 'VanillaJS') { %> - grunt.registerTask('build', ['replace']);<% } %> - grunt.registerTask('deploy', ['gh-pages']); - grunt.registerTask('server', ['connect']); - -}; diff --git a/templates/_README.md b/templates/_README.md index 2231242..6eb2ec0 100644 --- a/templates/_README.md +++ b/templates/_README.md @@ -18,17 +18,16 @@ Or [download as ZIP](https://github.com/<%= githubUser %>/<%= githubRepo %>/arch ## Usage -1. Import Web Components' polyfill: +1. Import polyfill: ```html - + ``` -2. Import Custom Element: +2. Import custom element: - ```html<% if (boilerplate == 'VanillaJS') { %> - <% } else { %> - <% } %> + ```html + ``` 3. Start using it! @@ -55,62 +54,28 @@ Event | Description --- | --- `onsomething` | Triggers when something happens. -## Development<% if (grunt) { %> +## Development In order to run it locally you'll need to fetch some dependencies and a basic server setup. -* Install [Bower](http://bower.io/) & [Grunt](http://gruntjs.com/): +1. Install [bower](http://bower.io/) & [polyserve](https://npmjs.com/polyserve): ```sh - $ [sudo] npm install -g bower grunt-cli + $ npm install -g bower polyserve ``` -* Install local dependencies: +2. Install local dependencies: ```sh - $ bower install && npm install + $ bower install ``` -* To test your project, start the development server and open `http://localhost:8000`. - - ```sh - $ grunt server - ```<% if (boilerplate != 'VanillaJS') { %> - -* To build the distribution files before releasing a new version. - - ```sh - $ grunt build - ```<% } %> - -* To provide a live demo, send everything to `gh-pages` branch. - - ```sh - $ grunt deploy - ```<% } else { %> - -In order to run it locally you'll need to fetch some dependencies. - -* Install [Bower](http://bower.io/): +3. Start development server and open `http://localhost:8080/components/my-repo/`. ```sh - $ [sudo] npm install -g bower + $ polyserve ``` -* Install local dependencies: - - ```sh - $ bower install - ```<% } %> - -## Contributing - -1. Fork it! -2. Create your feature branch: `git checkout -b my-new-feature` -3. Commit your changes: `git commit -m 'Add some feature'` -4. Push to the branch: `git push origin my-new-feature` -5. Submit a pull request :D - ## History For detailed changelog, check [Releases](https://github.com/<%= githubUser %>/<%= githubRepo %>/releases). diff --git a/templates/_bower.json b/templates/_bower.json index d9b0108..18c852b 100644 --- a/templates/_bower.json +++ b/templates/_bower.json @@ -2,9 +2,8 @@ "name": "<%= githubRepo %>", "version": "0.0.0", "description": "<%= elementDescription %>", - "license": "MIT",<% if (boilerplate == 'VanillaJS') { %> - "main": "src/<%= elementName %>.html",<% } else { %> - "main": "dist/<%= elementName %>.html",<% } %> + "license": "MIT", + "main": "<%= elementName %>.html", "keywords": [<% if (boilerplate == 'Polymer') { %> "polymer",<% } %><% if (boilerplate == 'X-Tag') { %> "x-tag",<% } %> @@ -12,13 +11,11 @@ ], "ignore": [ "**/.*", - "node_modules", "bower_components" ], - "dependencies": {<% if (boilerplate == 'Polymer') { %> - "polymer": "Polymer/polymer#^0.5.1"<% } %><% if (boilerplate == 'X-Tag') { %> - "x-tag-core": "^1.0.0", - "webcomponentsjs": "^0.5.1"<% } %><% if (boilerplate == 'VanillaJS') { %> - "webcomponentsjs": "^0.5.1"<% } %> + "dependencies": {<% if (boilerplate == 'VanillaJS') { %> + "webcomponentsjs": "^0.7.2"<% } %><% if (boilerplate == 'Polymer') { %> + "polymer": "Polymer/polymer#^1.0.0"<% } %><% if (boilerplate == 'X-Tag') { %> + "x-tag-core": "^1.1.6"<% } %> } } diff --git a/templates/_element-polymer.html b/templates/_element-polymer.html new file mode 100644 index 0000000..fb238d9 --- /dev/null +++ b/templates/_element-polymer.html @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/templates/src/_vanillajs.html b/templates/_element-vanillajs.html similarity index 95% rename from templates/src/_vanillajs.html rename to templates/_element-vanillajs.html index e053c67..4c4d693 100644 --- a/templates/src/_vanillajs.html +++ b/templates/_element-vanillajs.html @@ -15,6 +15,7 @@ // Fires when an attribute was added, removed, or updated element.attributeChangedCallback = function(attr, oldVal, newVal) {};<% } %> + // Registers custom element document.registerElement('<%= elementName %>', { prototype: element }); diff --git a/templates/src/_xtag.html b/templates/_element-xtag.html similarity index 86% rename from templates/src/_xtag.html rename to templates/_element-xtag.html index 6682e48..91d2d87 100644 --- a/templates/src/_xtag.html +++ b/templates/_element-xtag.html @@ -1,8 +1,9 @@ - - + + + + + + + - - - + <<%= elementName %>>> diff --git a/templates/_package.json b/templates/_package.json deleted file mode 100644 index 00c3bbc..0000000 --- a/templates/_package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "private": true, - "devDependencies": { - "grunt": "~0.4.1", - "grunt-cli": "~0.1.9", - "grunt-contrib-connect": "~0.9.0", - "grunt-gh-pages": "~0.9.1"<% if (boilerplate != 'VanillaJS') { %>, - "grunt-text-replace": "~0.4.0"<% } %> - } -} diff --git a/templates/gitignore b/templates/gitignore index c346b13..fbe05fc 100644 --- a/templates/gitignore +++ b/templates/gitignore @@ -1,2 +1 @@ bower_components/ -node_modules/ diff --git a/templates/src/_polymer.html b/templates/src/_polymer.html deleted file mode 100644 index 62bed1b..0000000 --- a/templates/src/_polymer.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - -