9 changed files with 695 additions and 618 deletions
Unified 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