├── .gitignore
├── tangerine
├── src
│ ├── partials
│ │ ├── footer.jade
│ │ └── header.jade
│ ├── includes
│ │ ├── analytics.html
│ │ └── head-metas.jade
│ ├── assets
│ │ ├── styles
│ │ │ ├── variables.css
│ │ │ └── style.css
│ │ └── scripts
│ │ │ └── index.js
│ ├── index.jade
│ └── layouts
│ │ └── default.jade
├── _gitignore
├── README.md
├── _jshintrc
├── config.json
├── tests
│ └── unit
│ │ └── indexSpec.js
├── _editorconfig
├── package.json
├── karma.conf.js
└── gulpfile.js
├── logo.png
├── CONTRIBUTING.md
├── package.json
├── LICENSE.md
├── slushfile.js
├── DOCS.md
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 |
--------------------------------------------------------------------------------
/tangerine/src/partials/footer.jade:
--------------------------------------------------------------------------------
1 | footer footer
--------------------------------------------------------------------------------
/tangerine/src/partials/header.jade:
--------------------------------------------------------------------------------
1 | header header
2 |
--------------------------------------------------------------------------------
/tangerine/_gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | out/
4 |
--------------------------------------------------------------------------------
/tangerine/src/includes/analytics.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tangerine/README.md:
--------------------------------------------------------------------------------
1 | # <%= appNameSlug %>
2 |
3 | > <%= appDescription %>
4 |
--------------------------------------------------------------------------------
/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afonsopacifer/slush-tangerine/HEAD/logo.png
--------------------------------------------------------------------------------
/tangerine/src/assets/styles/variables.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --bgColor: #000;
3 | --mainBg: #ccc;
4 | }
5 |
--------------------------------------------------------------------------------
/tangerine/_jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "undef": true,
3 | "unused": true,
4 | "eqeqeq": true,
5 | "indent": 2,
6 | "newcap": true,
7 | "curly": true
8 | }
9 |
--------------------------------------------------------------------------------
/tangerine/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "site_url":"",
3 | "share_img_url":"",
4 | "twitter_card_type":"summary_large_image",
5 | "open_graph_type":"website"
6 | }
--------------------------------------------------------------------------------
/tangerine/src/assets/scripts/index.js:
--------------------------------------------------------------------------------
1 | /* jshint esversion: 6 */
2 |
3 | "use strict";
4 |
5 | let show = text => console.log(text)
6 |
7 | show("OK")
8 |
--------------------------------------------------------------------------------
/tangerine/tests/unit/indexSpec.js:
--------------------------------------------------------------------------------
1 | describe("Fun", function() {
2 |
3 | it("should be return a smile", function() {
4 | var result = smile();
5 | expect(result).toEqual(":)");
6 | });
7 |
8 | });
9 |
--------------------------------------------------------------------------------
/tangerine/src/index.jade:
--------------------------------------------------------------------------------
1 | extends ./layouts/default.jade
2 |
3 | block page_infos
4 | -var title = "Slush Tangerine"
5 | -var description = ""
6 | -var keywords = ""
7 |
8 | block content
9 | main main
10 |
--------------------------------------------------------------------------------
/tangerine/_editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # http://editorconfig.org
4 |
5 | root = true
6 |
7 | [*]
8 | indent_style = space
9 | indent_size = 2
10 | end_of_line = lf
11 | charset = utf-8
12 | trim_trailing_whitespace = true
13 | insert_final_newline = true
14 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ##Contributing
2 |
3 | *1 - Fork it!*
4 |
5 | *2 - Clone*
6 |
7 | *3 - Create your feature branch:*
8 | ```sh
9 | $ git checkout -b my-new-feature
10 | ```
11 | *4 - Commit your changes:*
12 | ```sh
13 | $ git commit -m 'Add some feature'
14 | ```
15 | *5 - Push to the branch:*
16 | ```sh
17 | $ git push origin my-new-feature
18 | ```
19 | *6 - Submit a pull request*
20 |
--------------------------------------------------------------------------------
/tangerine/src/assets/styles/style.css:
--------------------------------------------------------------------------------
1 | @import "variables.css";
2 |
3 | html {
4 | height: 100%;
5 | }
6 |
7 | body {
8 | height: 100%;
9 | display: flex;
10 | flex-direction: column;
11 | }
12 |
13 | header,footer {
14 | background-color: var(--bgColor);
15 | color: #fff;
16 | padding: 20px 0;
17 | text-align: center;
18 | }
19 |
20 | main {
21 | background-color: var(--mainBg);
22 | flex: 1;
23 | display: flex;
24 | justify-content: center;
25 | align-items: center;
26 | }
27 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "slush-tangerine",
3 | "version": "1.0.0",
4 | "description": "Front-End boilerplate generator with tangerine flavor.",
5 | "main": "slushfile.js",
6 | "keywords": [
7 | "slushgenerator"
8 | ],
9 | "dependencies": {
10 | "gulp": "~3.5.6",
11 | "gulp-template": "~0.1.1",
12 | "gulp-install": "~0.1.1",
13 | "gulp-conflict": "~0.1.1",
14 | "gulp-rename": "~1.2.0",
15 | "underscore.string": "~2.3.3",
16 | "inquirer": "~0.4.1"
17 | },
18 | "author": {
19 | "name": "Afonso Pacifer",
20 | "email": "afonsopacifer@live.com",
21 | "url": "http://afonsopacifer.com"
22 | },
23 | "license": "MIT"
24 | }
25 |
--------------------------------------------------------------------------------
/tangerine/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "<%= appNameSlug %>",
3 | "description": "<%= appDescription %>",
4 | "version": "<%= appVersion %>",
5 | "author": {
6 | "name": "<%= appAuthor %>",
7 | "email": "<%= appEmail %>"
8 | },
9 | "devDependencies": {
10 | "babel-preset-es2015": "^6.3.13",
11 | "gulp": "^3.9.0",
12 | "gulp-babel": "^6.1.1",
13 | "gulp-connect": "^2.3.1",
14 | "gulp-cssnext": "^1.0.1",
15 | "gulp-data": "^1.2.1",
16 | "gulp-gh-pages": "^0.5.4",
17 | "gulp-imagemin": "^2.4.0",
18 | "gulp-jade": "^1.1.0",
19 | "gulp-jshint": "^2.0.0",
20 | "jasmine-core": "^2.4.1",
21 | "jshint": "^2.8.0",
22 | "karma": "^0.13.19",
23 | "karma-chrome-launcher": "^0.2.2",
24 | "karma-cli": "^0.1.2",
25 | "karma-jasmine": "^0.3.6",
26 | "karma-phantomjs-launcher": "^0.2.3",
27 | "phantomjs": "^1.9.19",
28 | "postcss": "^5.0.13"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/tangerine/src/layouts/default.jade:
--------------------------------------------------------------------------------
1 | doctype html
2 | html(lang="en" prefix="og: http://ogp.me/ns#")
3 |
4 | head
5 |
6 | //- head metas
7 | //- ===========================================
8 | include ./../includes/head-metas.jade
9 |
10 | //- head requests
11 | //- ===========================================
12 | link(rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.3/normalize.min.css")
13 | link(rel="stylesheet" href="assets/styles/style.css")
14 |
15 | body
16 |
17 | //- header
18 | //- ===========================================
19 | include ./../partials/header.jade
20 |
21 | //- main
22 | //- ===========================================
23 | block content
24 |
25 | //- footer
26 | //- ===========================================
27 | include ./../partials/footer.jade
28 |
29 | //- bottom requests
30 | //- ===========================================
31 | include ./../includes/analytics.html
32 | script(type="text/javascript" src="assets/scripts/index.js")
33 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016 Afonso Pacifer, [afonsopacifer.com](http://afonsopacifer.com/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/tangerine/src/includes/head-metas.jade:
--------------------------------------------------------------------------------
1 | //- meta
2 | meta(name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0")
3 | meta(charset="utf-8")
4 |
5 | //- favicons
6 | //- link(rel="icon" href="assets/img/favicons/favicon-16.png" sizes="16x16")
7 | //- link(rel="icon" href="assets/img/favicons/favicon-32.png" sizes="32x32")
8 | //- link(rel="apple-touch-icon" href="assets/img/favicons/apple-touch-icon-144x144.png" sizes="144x144")
9 | //- link(rel="apple-touch-icon" href="assets/img/favicons/apple-touch-icon-114x114.png" sizes="114x114")
10 | //- link(rel="apple-touch-icon" href="assets/img/favicons/apple-touch-icon-72x72.png" sizes="72x72")
11 | //- link(rel="apple-touch-icon" href="assets/img/favicons/apple-touch-icon.png")
12 |
13 | //- page_infos
14 | block page_infos
15 |
16 | //- SEO
17 | meta(name="keywords" content=keywords)
18 | meta(name="description" content=description)
19 | meta(name="robots" content="index,follow")
20 | title=title
21 |
22 | //- Open Graph
23 | meta(property="og:type" content=open_graph_type)
24 | meta(property="og:title" content=title)
25 | meta(property="og:description" content=description)
26 | meta(property="og:url" content=site_url)
27 | meta(property="og:image" content=share_img_url)
28 |
29 | //- Twitter Cards
30 | meta(name="twitter:card" content=twitter_card_type)
31 | meta(name="twitter:title" content=title)
32 | meta(name="twitter:description" content=description)
33 | meta(name="twitter:url" content=site_url)
34 | meta(name="twitter:image" content=share_img_url)
35 |
--------------------------------------------------------------------------------
/slushfile.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var gulp = require('gulp'),
4 | install = require('gulp-install'),
5 | conflict = require('gulp-conflict'),
6 | template = require('gulp-template'),
7 | rename = require('gulp-rename'),
8 | _ = require('underscore.string'),
9 | inquirer = require('inquirer');
10 |
11 | gulp.task('default', function(done) {
12 |
13 | //Answers
14 | var prompts = [{
15 | name: 'appName',
16 | message: 'What the name of project?'
17 | }, {
18 | name: 'appDescription',
19 | message: 'What the description?'
20 | }, {
21 | name: 'appVersion',
22 | message: 'What the version?',
23 | default: '0.1.0'
24 | }, {
25 | name: 'appAuthor',
26 | message: 'Name of author?'
27 | }, {
28 | name: 'appEmail',
29 | message: 'Author e-mail?'
30 | }];
31 |
32 | //Ask
33 | inquirer.prompt(prompts,
34 | function(answers) {
35 | if (!answers.appName) {
36 | return done();
37 | }
38 | answers.appNameSlug = _.slugify(answers.appName)
39 | answers.appAuthorSlug = _.slugify(answers.appAuthor)
40 | gulp.src(__dirname + '/tangerine/**')
41 | .pipe(template(answers))
42 | .pipe(rename(function(file) {
43 | if (file.basename[0] === '_') {
44 | file.basename = '.' + file.basename.slice(1);
45 | }
46 | }))
47 | .pipe(conflict('./'))
48 | .pipe(gulp.dest('./'))
49 | .pipe(install())
50 | .on('end', function() {
51 | done();
52 | });
53 | });
54 | });
55 |
--------------------------------------------------------------------------------
/DOCS.md:
--------------------------------------------------------------------------------
1 | # Getting Started
2 |
3 | ## 1 - Install
4 | *install the basics dependencies*
5 |
6 | - [NodeJS](https://nodejs.org/en/)
7 | - [GulpJS](http://gulpjs.com/)
8 | - [Slush](http://slushjs.github.io/)
9 |
10 | *install and use the generator*
11 |
12 | ```sh
13 | $ [sudo] npm install -g slush-tangerine
14 | $ slush tangerine
15 | ```
16 |
17 | ## 2 - Set the global configs
18 |
19 | *Open the `config.json` file and add your global information and preferences:*
20 |
21 | ```json
22 | {
23 | "site_url":"https://example.com/",
24 | "share_img_url":"https://example.com/logo.jpg",
25 | "twitter_card_type":"summary_large_image",
26 | "open_graph_type":"website"
27 | }
28 | ```
29 |
30 | - `site_url`: Will be used for social sharing meta tags.
31 | - `share_img_url`: Will be used for social sharing meta tags.
32 | - `twitter_card_type`: More Info on [Twitte Cards Types](https://dev.twitter.com/cards/types).
33 | - `open_graph_type`: More Info on [Open Graph Reference](https://developers.facebook.com/docs/reference/opengraph/).
34 |
35 |