9 changed files with 695 additions and 618 deletions
Split View
Diff Options
-
75tasks/build.js
-
7tasks/clean.js
-
49tasks/config/defaults.js
-
453tasks/config/install/questions.js
-
498tasks/config/project/install.js
-
60tasks/config/project/release.js
-
32tasks/config/project/tasks.js
-
40tasks/config/user.js
-
99tasks/watch.js
@ -1,453 +0,0 @@ |
|||
/******************************* |
|||
Install Questions |
|||
*******************************/ |
|||
|
|||
var defaults, fs, filter, when; |
|||
|
|||
fs = require('fs'); |
|||
defaults = require('./defaults'); |
|||
|
|||
filter = { |
|||
removeTrailingSlash: function(path) { |
|||
return path.replace(/(\/$|\\$)+/mg, ''); |
|||
} |
|||
}; |
|||
|
|||
when = { |
|||
|
|||
// set-up
|
|||
hasConfig: function() { |
|||
return( fs.existsSync('./semantic.json') ); |
|||
}, |
|||
allowOverwrite: function(questions) { |
|||
return (questions.overwrite === undefined || questions.overwrite == 'yes'); |
|||
}, |
|||
notAuto: function(questions) { |
|||
return (questions.install !== 'auto' && (questions.overwrite === undefined || questions.overwrite == 'yes')); |
|||
}, |
|||
custom: function(questions) { |
|||
return (questions.install === 'custom' && (questions.overwrite === undefined || questions.overwrite == 'yes')); |
|||
}, |
|||
express: function(questions) { |
|||
return (questions.install === 'express' && (questions.overwrite === undefined || questions.overwrite == 'yes')); |
|||
}, |
|||
|
|||
// customize
|
|||
customize: function(questions) { |
|||
return (questions.customize === true); |
|||
}, |
|||
primaryColor: function(questions) { |
|||
return (questions.primaryColor); |
|||
}, |
|||
secondaryColor: function(questions) { |
|||
return (questions.secondaryColor); |
|||
} |
|||
}; |
|||
|
|||
module.exports = { |
|||
|
|||
setup: [ |
|||
{ |
|||
type: 'list', |
|||
name: 'overwrite', |
|||
message: 'It looks like you have a semantic.json file already.', |
|||
when: when.hasConfig, |
|||
choices: [ |
|||
{ |
|||
name: 'Yes, extend my current settings.', |
|||
value: 'yes' |
|||
}, |
|||
{ |
|||
name: 'Skip install', |
|||
value: 'no' |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'install', |
|||
message: 'Set-up Semantic UI', |
|||
when: when.allowOverwrite, |
|||
choices: [ |
|||
{ |
|||
name: 'Automatic (Use defaults locations and all components)', |
|||
value: 'auto' |
|||
}, |
|||
{ |
|||
name: 'Express (Set components and output folder)', |
|||
value: 'express' |
|||
}, |
|||
{ |
|||
name: 'Custom (Customize all src/dist values)', |
|||
value: 'custom' |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'checkbox', |
|||
name: 'components', |
|||
message: 'What components should we include in the package?', |
|||
|
|||
// duplicated manually from tasks/defaults.js with additional property
|
|||
choices: [ |
|||
{ name: "reset", checked: true }, |
|||
{ name: "site", checked: true }, |
|||
{ name: "button", checked: true }, |
|||
{ name: "divider", checked: true }, |
|||
{ name: "flag", checked: true }, |
|||
{ name: "header", checked: true }, |
|||
{ name: "icon", checked: true }, |
|||
{ name: "image", checked: true }, |
|||
{ name: "input", checked: true }, |
|||
{ name: "label", checked: true }, |
|||
{ name: "list", checked: true }, |
|||
{ name: "loader", checked: true }, |
|||
{ name: "rail", checked: true }, |
|||
{ name: "reveal", checked: true }, |
|||
{ name: "segment", checked: true }, |
|||
{ name: "step", checked: true }, |
|||
{ name: "breadcrumb", checked: true }, |
|||
{ name: "form", checked: true }, |
|||
{ name: "grid", checked: true }, |
|||
{ name: "menu", checked: true }, |
|||
{ name: "message", checked: true }, |
|||
{ name: "table", checked: true }, |
|||
{ name: "ad", checked: true }, |
|||
{ name: "card", checked: true }, |
|||
{ name: "comment", checked: true }, |
|||
{ name: "feed", checked: true }, |
|||
{ name: "item", checked: true }, |
|||
{ name: "statistic", checked: true }, |
|||
{ name: "accordion", checked: true }, |
|||
{ name: "checkbox", checked: true }, |
|||
{ name: "dimmer", checked: true }, |
|||
{ name: "dropdown", checked: true }, |
|||
{ name: "modal", checked: true }, |
|||
{ name: "nag", checked: true }, |
|||
{ name: "popup", checked: true }, |
|||
{ name: "progress", checked: true }, |
|||
{ name: "rating", checked: true }, |
|||
{ name: "search", checked: true }, |
|||
{ name: "shape", checked: true }, |
|||
{ name: "sidebar", checked: true }, |
|||
{ name: "sticky", checked: true }, |
|||
{ name: "tab", checked: true }, |
|||
{ name: "transition", checked: true }, |
|||
{ name: "video", checked: true }, |
|||
{ name: "api", checked: true }, |
|||
{ name: "form", checked: true }, |
|||
{ name: "state", checked: true }, |
|||
{ name: "visibility", checked: true } |
|||
], |
|||
when: when.notAuto |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'permission', |
|||
message: 'What octal file permission should outputted files receive?', |
|||
default: defaults.permission, |
|||
when: when.notAuto |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'rtl', |
|||
message: 'Do you use a RTL (Right-To-Left) language?', |
|||
when: when.notAuto, |
|||
choices: [ |
|||
{ |
|||
name: 'No', |
|||
value: 'no' |
|||
}, |
|||
{ |
|||
name: 'Yes', |
|||
value: 'yes' |
|||
}, |
|||
] |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'dist', |
|||
message: 'Where should we output Semantic UI?', |
|||
default: defaults.paths.output.packaged, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.express |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'site', |
|||
message: 'Where should we put your site folder?', |
|||
default: defaults.paths.source.site, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'packaged', |
|||
message: 'Where should we output a packaged version?', |
|||
default: defaults.paths.output.packaged, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'compressed', |
|||
message: 'Where should we output compressed components?', |
|||
default: defaults.paths.output.compressed, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'uncompressed', |
|||
message: 'Where should we output uncompressed components?', |
|||
default: defaults.paths.output.uncompressed, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
} |
|||
], |
|||
|
|||
|
|||
cleanup: [ |
|||
{ |
|||
type: 'list', |
|||
name: 'cleanup', |
|||
message: 'Should we remove set-up files?', |
|||
choices: [ |
|||
{ |
|||
name: 'Yes (re-install will require redownloading semantic).', |
|||
value: 'yes' |
|||
}, |
|||
{ |
|||
name: 'No Thanks', |
|||
value: 'no' |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'build', |
|||
message: 'Do you want to build Semantic now?', |
|||
choices: [ |
|||
{ |
|||
name: 'Yes', |
|||
value: 'yes' |
|||
}, |
|||
{ |
|||
name: 'No', |
|||
value: 'no' |
|||
} |
|||
] |
|||
}, |
|||
], |
|||
site: [ |
|||
{ |
|||
type: 'list', |
|||
name: 'customize', |
|||
message: 'You have not yet customized your site, can we help you do that?', |
|||
choices: [ |
|||
{ |
|||
name: 'Yes, ask me a few questions', |
|||
value: true |
|||
}, |
|||
{ |
|||
name: 'No I\'ll do it myself', |
|||
value: false |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'headerFont', |
|||
message: 'Select your header font', |
|||
choices: [ |
|||
{ |
|||
name: 'Helvetica Neue, Arial, sans-serif', |
|||
value: 'Helvetica Neue, Arial, sans-serif;' |
|||
}, |
|||
{ |
|||
name: 'Lato (Google Fonts)', |
|||
value: 'Lato' |
|||
}, |
|||
{ |
|||
name: 'Open Sans (Google Fonts)', |
|||
value: 'Open Sans' |
|||
}, |
|||
{ |
|||
name: 'Source Sans Pro (Google Fonts)', |
|||
value: 'Source Sans Pro' |
|||
}, |
|||
{ |
|||
name: 'Droid (Google Fonts)', |
|||
value: 'Droid' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'pageFont', |
|||
message: 'Select your page font', |
|||
choices: [ |
|||
{ |
|||
name: 'Helvetica Neue, Arial, sans-serif', |
|||
value: 'Helvetica Neue, Arial, sans-serif;' |
|||
}, |
|||
{ |
|||
name: 'Lato (Import from Google Fonts)', |
|||
value: 'Lato' |
|||
}, |
|||
{ |
|||
name: 'Open Sans (Import from Google Fonts)', |
|||
value: 'Open Sans' |
|||
}, |
|||
{ |
|||
name: 'Source Sans Pro (Import from Google Fonts)', |
|||
value: 'Source Sans Pro' |
|||
}, |
|||
{ |
|||
name: 'Droid (Google Fonts)', |
|||
value: 'Droid' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'fontSize', |
|||
message: 'Select your base font size', |
|||
default: '14px', |
|||
choices: [ |
|||
{ |
|||
name: '12px', |
|||
}, |
|||
{ |
|||
name: '13px', |
|||
}, |
|||
{ |
|||
name: '14px (Recommended)', |
|||
value: '14px' |
|||
}, |
|||
{ |
|||
name: '15px', |
|||
}, |
|||
{ |
|||
name: '16px', |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'primaryColor', |
|||
message: 'Select the closest name for your primary brand color', |
|||
default: '14px', |
|||
choices: [ |
|||
{ |
|||
name: 'Blue' |
|||
}, |
|||
{ |
|||
name: 'Green' |
|||
}, |
|||
{ |
|||
name: 'Orange' |
|||
}, |
|||
{ |
|||
name: 'Pink' |
|||
}, |
|||
{ |
|||
name: 'Purple' |
|||
}, |
|||
{ |
|||
name: 'Red' |
|||
}, |
|||
{ |
|||
name: 'Teal' |
|||
}, |
|||
{ |
|||
name: 'Yellow' |
|||
}, |
|||
{ |
|||
name: 'Black' |
|||
}, |
|||
{ |
|||
name: 'None really fit', |
|||
value: 'custom' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'PrimaryHex', |
|||
message: 'Enter a hexcode for your primary brand color', |
|||
when: when.primaryColor |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'secondaryColor', |
|||
message: 'Select the closest name for your secondary brand color', |
|||
default: '14px', |
|||
choices: [ |
|||
{ |
|||
name: 'Blue' |
|||
}, |
|||
{ |
|||
name: 'Green' |
|||
}, |
|||
{ |
|||
name: 'Orange' |
|||
}, |
|||
{ |
|||
name: 'Pink' |
|||
}, |
|||
{ |
|||
name: 'Purple' |
|||
}, |
|||
{ |
|||
name: 'Red' |
|||
}, |
|||
{ |
|||
name: 'Teal' |
|||
}, |
|||
{ |
|||
name: 'Yellow' |
|||
}, |
|||
{ |
|||
name: 'Black' |
|||
}, |
|||
{ |
|||
name: 'None really fit', |
|||
value: 'custom' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'secondaryHex', |
|||
message: 'Enter a hexcode for your secondary brand color', |
|||
when: when.secondaryColor |
|||
} |
|||
] |
|||
|
|||
}; |
@ -0,0 +1,498 @@ |
|||
/******************************* |
|||
Set-up |
|||
*******************************/ |
|||
|
|||
var |
|||
fs = require('fs'), |
|||
defaults = require('../defaults'), |
|||
|
|||
when, |
|||
filter |
|||
; |
|||
|
|||
/******************************* |
|||
When to Ask |
|||
*******************************/ |
|||
|
|||
when = { |
|||
|
|||
// install
|
|||
hasConfig: function() { |
|||
return( fs.existsSync('./semantic.json') ); |
|||
}, |
|||
allowOverwrite: function(questions) { |
|||
return (questions.overwrite === undefined || questions.overwrite == 'yes'); |
|||
}, |
|||
notAuto: function(questions) { |
|||
return (questions.install !== 'auto' && (questions.overwrite === undefined || questions.overwrite == 'yes')); |
|||
}, |
|||
custom: function(questions) { |
|||
return (questions.install === 'custom' && (questions.overwrite === undefined || questions.overwrite == 'yes')); |
|||
}, |
|||
express: function(questions) { |
|||
return (questions.install === 'express' && (questions.overwrite === undefined || questions.overwrite == 'yes')); |
|||
}, |
|||
|
|||
// customize
|
|||
customize: function(questions) { |
|||
return (questions.customize === true); |
|||
}, |
|||
primaryColor: function(questions) { |
|||
return (questions.primaryColor); |
|||
}, |
|||
secondaryColor: function(questions) { |
|||
return (questions.secondaryColor); |
|||
} |
|||
}; |
|||
|
|||
/******************************* |
|||
Response Filters |
|||
*******************************/ |
|||
|
|||
filter = { |
|||
removeTrailingSlash: function(path) { |
|||
return path.replace(/(\/$|\\$)+/mg, ''); |
|||
} |
|||
}; |
|||
|
|||
/******************************* |
|||
Configuration |
|||
*******************************/ |
|||
|
|||
module.exports = { |
|||
|
|||
// check whether install is setup
|
|||
isSetup: function() { |
|||
return true; |
|||
}, |
|||
|
|||
// files cleaned up after install
|
|||
setupFiles: [ |
|||
'./src/theme.config.example', |
|||
'./semantic.json.example', |
|||
'./src/_site' |
|||
], |
|||
|
|||
// modified to create configs
|
|||
templates: { |
|||
config : './semantic.json.example', |
|||
site : './src/_site', |
|||
theme : './src/theme.config.example' |
|||
}, |
|||
|
|||
// folder paths
|
|||
folders: { |
|||
config : './', |
|||
site : './src/site', |
|||
theme : './src/' |
|||
}, |
|||
|
|||
questions: { |
|||
|
|||
setup: [ |
|||
{ |
|||
type: 'list', |
|||
name: 'overwrite', |
|||
message: 'It looks like you have a semantic.json file already.', |
|||
when: when.hasConfig, |
|||
choices: [ |
|||
{ |
|||
name: 'Yes, extend my current settings.', |
|||
value: 'yes' |
|||
}, |
|||
{ |
|||
name: 'Skip install', |
|||
value: 'no' |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'install', |
|||
message: 'Set-up Semantic UI', |
|||
when: when.allowOverwrite, |
|||
choices: [ |
|||
{ |
|||
name: 'Automatic (Use defaults locations and all components)', |
|||
value: 'auto' |
|||
}, |
|||
{ |
|||
name: 'Express (Set components and output folder)', |
|||
value: 'express' |
|||
}, |
|||
{ |
|||
name: 'Custom (Customize all src/dist values)', |
|||
value: 'custom' |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'checkbox', |
|||
name: 'components', |
|||
message: 'What components should we include in the package?', |
|||
|
|||
// duplicated manually from tasks/defaults.js with additional property
|
|||
choices: [ |
|||
{ name: "reset", checked: true }, |
|||
{ name: "site", checked: true }, |
|||
{ name: "button", checked: true }, |
|||
{ name: "divider", checked: true }, |
|||
{ name: "flag", checked: true }, |
|||
{ name: "header", checked: true }, |
|||
{ name: "icon", checked: true }, |
|||
{ name: "image", checked: true }, |
|||
{ name: "input", checked: true }, |
|||
{ name: "label", checked: true }, |
|||
{ name: "list", checked: true }, |
|||
{ name: "loader", checked: true }, |
|||
{ name: "rail", checked: true }, |
|||
{ name: "reveal", checked: true }, |
|||
{ name: "segment", checked: true }, |
|||
{ name: "step", checked: true }, |
|||
{ name: "breadcrumb", checked: true }, |
|||
{ name: "form", checked: true }, |
|||
{ name: "grid", checked: true }, |
|||
{ name: "menu", checked: true }, |
|||
{ name: "message", checked: true }, |
|||
{ name: "table", checked: true }, |
|||
{ name: "ad", checked: true }, |
|||
{ name: "card", checked: true }, |
|||
{ name: "comment", checked: true }, |
|||
{ name: "feed", checked: true }, |
|||
{ name: "item", checked: true }, |
|||
{ name: "statistic", checked: true }, |
|||
{ name: "accordion", checked: true }, |
|||
{ name: "checkbox", checked: true }, |
|||
{ name: "dimmer", checked: true }, |
|||
{ name: "dropdown", checked: true }, |
|||
{ name: "modal", checked: true }, |
|||
{ name: "nag", checked: true }, |
|||
{ name: "popup", checked: true }, |
|||
{ name: "progress", checked: true }, |
|||
{ name: "rating", checked: true }, |
|||
{ name: "search", checked: true }, |
|||
{ name: "shape", checked: true }, |
|||
{ name: "sidebar", checked: true }, |
|||
{ name: "sticky", checked: true }, |
|||
{ name: "tab", checked: true }, |
|||
{ name: "transition", checked: true }, |
|||
{ name: "video", checked: true }, |
|||
{ name: "api", checked: true }, |
|||
{ name: "form", checked: true }, |
|||
{ name: "state", checked: true }, |
|||
{ name: "visibility", checked: true } |
|||
], |
|||
when: when.notAuto |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'permission', |
|||
message: 'What octal file permission should outputted files receive?', |
|||
default: defaults.permission, |
|||
when: when.notAuto |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'rtl', |
|||
message: 'Do you use a RTL (Right-To-Left) language?', |
|||
when: when.notAuto, |
|||
choices: [ |
|||
{ |
|||
name: 'No', |
|||
value: 'no' |
|||
}, |
|||
{ |
|||
name: 'Yes', |
|||
value: 'yes' |
|||
}, |
|||
] |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'dist', |
|||
message: 'Where should we output Semantic UI?', |
|||
default: defaults.paths.output.packaged, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.express |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'site', |
|||
message: 'Where should we put your site folder?', |
|||
default: defaults.paths.source.site, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'packaged', |
|||
message: 'Where should we output a packaged version?', |
|||
default: defaults.paths.output.packaged, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'compressed', |
|||
message: 'Where should we output compressed components?', |
|||
default: defaults.paths.output.compressed, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'uncompressed', |
|||
message: 'Where should we output uncompressed components?', |
|||
default: defaults.paths.output.uncompressed, |
|||
filter: filter.removeTrailingSlash, |
|||
when: when.custom |
|||
} |
|||
], |
|||
|
|||
|
|||
cleanup: [ |
|||
{ |
|||
type: 'list', |
|||
name: 'cleanup', |
|||
message: 'Should we remove set-up files?', |
|||
choices: [ |
|||
{ |
|||
name: 'Yes (re-install will require redownloading semantic).', |
|||
value: 'yes' |
|||
}, |
|||
{ |
|||
name: 'No Thanks', |
|||
value: 'no' |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'build', |
|||
message: 'Do you want to build Semantic now?', |
|||
choices: [ |
|||
{ |
|||
name: 'Yes', |
|||
value: 'yes' |
|||
}, |
|||
{ |
|||
name: 'No', |
|||
value: 'no' |
|||
} |
|||
] |
|||
}, |
|||
], |
|||
site: [ |
|||
{ |
|||
type: 'list', |
|||
name: 'customize', |
|||
message: 'You have not yet customized your site, can we help you do that?', |
|||
choices: [ |
|||
{ |
|||
name: 'Yes, ask me a few questions', |
|||
value: true |
|||
}, |
|||
{ |
|||
name: 'No I\'ll do it myself', |
|||
value: false |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'headerFont', |
|||
message: 'Select your header font', |
|||
choices: [ |
|||
{ |
|||
name: 'Helvetica Neue, Arial, sans-serif', |
|||
value: 'Helvetica Neue, Arial, sans-serif;' |
|||
}, |
|||
{ |
|||
name: 'Lato (Google Fonts)', |
|||
value: 'Lato' |
|||
}, |
|||
{ |
|||
name: 'Open Sans (Google Fonts)', |
|||
value: 'Open Sans' |
|||
}, |
|||
{ |
|||
name: 'Source Sans Pro (Google Fonts)', |
|||
value: 'Source Sans Pro' |
|||
}, |
|||
{ |
|||
name: 'Droid (Google Fonts)', |
|||
value: 'Droid' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'pageFont', |
|||
message: 'Select your page font', |
|||
choices: [ |
|||
{ |
|||
name: 'Helvetica Neue, Arial, sans-serif', |
|||
value: 'Helvetica Neue, Arial, sans-serif;' |
|||
}, |
|||
{ |
|||
name: 'Lato (Import from Google Fonts)', |
|||
value: 'Lato' |
|||
}, |
|||
{ |
|||
name: 'Open Sans (Import from Google Fonts)', |
|||
value: 'Open Sans' |
|||
}, |
|||
{ |
|||
name: 'Source Sans Pro (Import from Google Fonts)', |
|||
value: 'Source Sans Pro' |
|||
}, |
|||
{ |
|||
name: 'Droid (Google Fonts)', |
|||
value: 'Droid' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'fontSize', |
|||
message: 'Select your base font size', |
|||
default: '14px', |
|||
choices: [ |
|||
{ |
|||
name: '12px', |
|||
}, |
|||
{ |
|||
name: '13px', |
|||
}, |
|||
{ |
|||
name: '14px (Recommended)', |
|||
value: '14px' |
|||
}, |
|||
{ |
|||
name: '15px', |
|||
}, |
|||
{ |
|||
name: '16px', |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'primaryColor', |
|||
message: 'Select the closest name for your primary brand color', |
|||
default: '14px', |
|||
choices: [ |
|||
{ |
|||
name: 'Blue' |
|||
}, |
|||
{ |
|||
name: 'Green' |
|||
}, |
|||
{ |
|||
name: 'Orange' |
|||
}, |
|||
{ |
|||
name: 'Pink' |
|||
}, |
|||
{ |
|||
name: 'Purple' |
|||
}, |
|||
{ |
|||
name: 'Red' |
|||
}, |
|||
{ |
|||
name: 'Teal' |
|||
}, |
|||
{ |
|||
name: 'Yellow' |
|||
}, |
|||
{ |
|||
name: 'Black' |
|||
}, |
|||
{ |
|||
name: 'None really fit', |
|||
value: 'custom' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'PrimaryHex', |
|||
message: 'Enter a hexcode for your primary brand color', |
|||
when: when.primaryColor |
|||
}, |
|||
{ |
|||
type: 'list', |
|||
name: 'secondaryColor', |
|||
message: 'Select the closest name for your secondary brand color', |
|||
default: '14px', |
|||
choices: [ |
|||
{ |
|||
name: 'Blue' |
|||
}, |
|||
{ |
|||
name: 'Green' |
|||
}, |
|||
{ |
|||
name: 'Orange' |
|||
}, |
|||
{ |
|||
name: 'Pink' |
|||
}, |
|||
{ |
|||
name: 'Purple' |
|||
}, |
|||
{ |
|||
name: 'Red' |
|||
}, |
|||
{ |
|||
name: 'Teal' |
|||
}, |
|||
{ |
|||
name: 'Yellow' |
|||
}, |
|||
{ |
|||
name: 'Black' |
|||
}, |
|||
{ |
|||
name: 'None really fit', |
|||
value: 'custom' |
|||
}, |
|||
{ |
|||
name: 'I\'ll choose on my own', |
|||
value: false |
|||
} |
|||
], |
|||
when: when.customize |
|||
}, |
|||
{ |
|||
type: 'input', |
|||
name: 'secondaryHex', |
|||
message: 'Enter a hexcode for your secondary brand color', |
|||
when: when.secondaryColor |
|||
} |
|||
] |
|||
|
|||
} |
|||
|
|||
}; |
@ -0,0 +1,60 @@ |
|||
/******************************* |
|||
Set-up |
|||
*******************************/ |
|||
|
|||
var |
|||
requireDotFile = require('require-dot-file'), |
|||
package |
|||
; |
|||
|
|||
|
|||
/******************************* |
|||
Derived Values |
|||
*******************************/ |
|||
|
|||
try { |
|||
// looks for config file across all parent directories
|
|||
package = requireDotFile('package.json'); |
|||
} |
|||
|
|||
catch(error) { |
|||
// generate fake package
|
|||
package = { |
|||
version: 'x.x' |
|||
}; |
|||
} |
|||
|
|||
/******************************* |
|||
Export |
|||
*******************************/ |
|||
|
|||
module.exports = { |
|||
|
|||
title : 'Semantic UI', |
|||
repository : 'https://github.com/Semantic-Org/Semantic-UI', |
|||
url : 'http://www.semantic-ui.com/', |
|||
|
|||
banner: '' |
|||
+ ' /*' + '\n' |
|||
+ ' * # <%= title %> - <%= version %>' + '\n' |
|||
+ ' * <%= repository %>' + '\n' |
|||
+ ' * <%= url %>' + '\n' |
|||
+ ' *' + '\n' |
|||
+ ' * Copyright 2014 Contributors' + '\n' |
|||
+ ' * Released under the MIT license' + '\n' |
|||
+ ' * http://opensource.org/licenses/MIT' + '\n' |
|||
+ ' *' + '\n' |
|||
+ ' */' + '\n', |
|||
|
|||
files: { |
|||
composer : 'composer.json', |
|||
config : 'semantic.json', |
|||
npm : 'package.json', |
|||
meteor : 'package.js', |
|||
site : 'src/site', |
|||
theme : 'src/theme.config' |
|||
}, |
|||
|
|||
version : package.version |
|||
|
|||
}; |
Write
Preview
Loading…
Cancel
Save