ghost-manager 0.0.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +1 -1
- data/bin/ghost +133 -22
- data/ghost-manager.gemspec +10 -4
- data/ghostfile.json +4 -0
- data/lib/ghost/manager/file_monitor.rb +77 -0
- data/lib/ghost/manager/ghost_file.rb +63 -0
- data/lib/ghost/manager/installer.rb +86 -0
- data/lib/ghost/manager/theme_generator.rb +39 -0
- data/lib/ghost/manager/version.rb +1 -1
- data/lib/ghost/manager.rb +5 -56
- data/lib/ghost/templates/ghostfile.json.erb +3 -0
- data/magneto/.bowerrc +3 -0
- data/magneto/.gitignore +3 -0
- data/magneto/bower.json +11 -0
- data/magneto/build/assets/javascripts/application.min.js +0 -0
- data/magneto/build/assets/stylesheets/application.min.css +1 -0
- data/magneto/build/author.hbs +41 -0
- data/magneto/build/default.hbs +46 -0
- data/magneto/build/index.hbs +27 -0
- data/magneto/build/page.hbs +31 -0
- data/magneto/build/partials/loop.hbs +25 -0
- data/magneto/build/partials/navigation.hbs +13 -0
- data/magneto/build/post.hbs +99 -0
- data/magneto/build/tag.hbs +32 -0
- data/magneto/gulpfile.js +99 -0
- data/magneto/package.json +25 -0
- data/magneto/source/assets/bower_components/.gitkeep +0 -0
- data/magneto/source/assets/bower_components/compass-mixins/.bower.json +34 -0
- data/magneto/source/assets/bower_components/compass-mixins/LICENSE.markdown +29 -0
- data/magneto/source/assets/bower_components/compass-mixins/README.markdown +17 -0
- data/magneto/source/assets/bower_components/compass-mixins/bower.json +24 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/_animate.scss +1 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/_compass.scss +4 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/_lemonade.scss +38 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/_animate.scss +31 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/_core.scss +127 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/_shared.scss +22 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_attention-seekers.scss +152 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_bouncing.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_classes.scss +21 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_fading.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_flippers.scss +87 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_lightspeed.scss +24 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_rotating.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_specials.scss +42 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/bouncing/_bouncing-entrances.scss +68 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/bouncing/_bouncing-exits.scss +60 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/fading/_fading-entrances.scss +86 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/fading/_fading-exits.scss +86 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/rotating/_rotating-entrances.scss +58 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/rotating/_rotating-exits.scss +58 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_css3.scss +19 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_functions.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_layout.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_reset-legacy.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_reset.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_support.scss +40 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_typography.scss +4 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_utilities.scss +9 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_animation.scss +2 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_appearance.scss +16 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_background-clip.scss +43 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_background-origin.scss +42 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_background-size.scss +26 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_border-radius.scss +130 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_box-shadow.scss +76 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_box-sizing.scss +13 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_box.scss +111 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_columns.scss +148 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_filter.scss +23 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_font-face.scss +48 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_hyphenation.scss +77 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_images.scss +132 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_inline-block.scss +22 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_opacity.scss +19 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_pie.scss +73 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_regions.scss +22 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_shared.scss +38 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_text-shadow.scss +87 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_transform-legacy.scss +87 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_transform.scss +598 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_transition.scss +221 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_user-interface.scss +17 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/functions/_constants.scss +18 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/functions/_display.scss +36 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/functions/_lists.scss +53 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/layout/_grid-background.scss +178 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/layout/_sticky-footer.scss +23 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/layout/_stretching.scss +24 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/reset/_utilities-legacy.scss +135 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/reset/_utilities.scss +142 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_links.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_lists.scss +4 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_text.scss +4 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_vertical_rhythm.scss +221 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/links/_hover-link.scss +5 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/links/_link-colors.scss +28 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/links/_unstyled-link.scss +7 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_bullets.scss +34 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_horizontal-list.scss +61 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_inline-block-list.scss +50 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_inline-list.scss +44 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_ellipsis.scss +25 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_force-wrap.scss +12 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_nowrap.scss +2 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_replacement.scss +68 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_color.scss +1 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_general.scss +6 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_links.scss +5 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_lists.scss +6 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_print.scss +17 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_sprites.scss +2 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_tables.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_text.scss +5 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/color/_contrast.scss +28 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_clearfix.scss +44 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_float.scss +30 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_hacks.scss +46 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_min.scss +16 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_reset.scss +2 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_tabs.scss +1 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_tag-cloud.scss +18 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/links/_hover-link.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/links/_link-colors.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/links/_unstyled-link.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_bullets.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_horizontal-list.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_inline-block-list.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_inline-list.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/sprites/_base.scss +66 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/sprites/_sprite-img.scss +79 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/tables/_borders.scss +33 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/tables/_scaffolding.scss +9 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/text/_ellipsis.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/text/_nowrap.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/text/_replacement.scss +3 -0
- data/magneto/source/assets/bower_components/compass-mixins/package.json +41 -0
- data/magneto/source/assets/bower_components/font-awesome/.bower.json +36 -0
- data/magneto/source/assets/bower_components/font-awesome/.gitignore +33 -0
- data/magneto/source/assets/bower_components/font-awesome/.npmignore +42 -0
- data/magneto/source/assets/bower_components/font-awesome/HELP-US-OUT.txt +7 -0
- data/magneto/source/assets/bower_components/font-awesome/bower.json +22 -0
- data/magneto/source/assets/bower_components/font-awesome/css/font-awesome.css +2026 -0
- data/magneto/source/assets/bower_components/font-awesome/css/font-awesome.css.map +7 -0
- data/magneto/source/assets/bower_components/font-awesome/css/font-awesome.min.css +4 -0
- data/magneto/source/assets/bower_components/font-awesome/fonts/FontAwesome.otf +0 -0
- data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.eot +0 -0
- data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.svg +640 -0
- data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.woff +0 -0
- data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/magneto/source/assets/bower_components/font-awesome/less/animated.less +34 -0
- data/magneto/source/assets/bower_components/font-awesome/less/bordered-pulled.less +25 -0
- data/magneto/source/assets/bower_components/font-awesome/less/core.less +12 -0
- data/magneto/source/assets/bower_components/font-awesome/less/fixed-width.less +6 -0
- data/magneto/source/assets/bower_components/font-awesome/less/font-awesome.less +17 -0
- data/magneto/source/assets/bower_components/font-awesome/less/icons.less +677 -0
- data/magneto/source/assets/bower_components/font-awesome/less/larger.less +13 -0
- data/magneto/source/assets/bower_components/font-awesome/less/list.less +19 -0
- data/magneto/source/assets/bower_components/font-awesome/less/mixins.less +26 -0
- data/magneto/source/assets/bower_components/font-awesome/less/path.less +15 -0
- data/magneto/source/assets/bower_components/font-awesome/less/rotated-flipped.less +20 -0
- data/magneto/source/assets/bower_components/font-awesome/less/stacked.less +20 -0
- data/magneto/source/assets/bower_components/font-awesome/less/variables.less +688 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_animated.scss +34 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_bordered-pulled.scss +25 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_core.scss +12 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_fixed-width.scss +6 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_icons.scss +677 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_larger.scss +13 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_list.scss +19 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_mixins.scss +26 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_path.scss +15 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_rotated-flipped.scss +20 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_stacked.scss +20 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/_variables.scss +688 -0
- data/magneto/source/assets/bower_components/font-awesome/scss/font-awesome.scss +17 -0
- data/magneto/source/assets/bower_components/modular-scale/.bower.json +22 -0
- data/magneto/source/assets/bower_components/modular-scale/.gitignore +7 -0
- data/magneto/source/assets/bower_components/modular-scale/.ruby-gemset +1 -0
- data/magneto/source/assets/bower_components/modular-scale/Gemfile +3 -0
- data/magneto/source/assets/bower_components/modular-scale/bower.json +12 -0
- data/magneto/source/assets/bower_components/modular-scale/changelog.md +24 -0
- data/magneto/source/assets/bower_components/modular-scale/eyeglass-exports.js +7 -0
- data/magneto/source/assets/bower_components/modular-scale/license.md +9 -0
- data/magneto/source/assets/bower_components/modular-scale/modular-scale.gemspec +25 -0
- data/magneto/source/assets/bower_components/modular-scale/package.json +30 -0
- data/magneto/source/assets/bower_components/modular-scale/readme.md +183 -0
- data/magneto/source/assets/bower_components/modular-scale/sache.json +5 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/_modular-scale-tests.scss +74 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/_modular-scale.scss +18 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_calc.scss +17 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_function-list.scss +68 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_function.scss +55 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_generate-list.scss +103 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_pow.scss +40 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_ratios.scss +20 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_respond.scss +49 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_round-px.scss +6 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_sort-list.scss +93 -0
- data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_tests.scss +22 -0
- data/magneto/source/assets/bower_components/normalize-css/.bower.json +23 -0
- data/magneto/source/assets/bower_components/normalize-css/LICENSE.md +19 -0
- data/magneto/source/assets/bower_components/normalize-css/README.md +90 -0
- data/magneto/source/assets/bower_components/normalize-css/bower.json +13 -0
- data/magneto/source/assets/bower_components/normalize-css/normalize.css +424 -0
- data/magneto/source/assets/bower_components/susy/.bower.json +39 -0
- data/magneto/source/assets/bower_components/susy/CONTRIBUTING.md +116 -0
- data/magneto/source/assets/bower_components/susy/Gemfile +3 -0
- data/magneto/source/assets/bower_components/susy/LICENSE.txt +28 -0
- data/magneto/source/assets/bower_components/susy/README.md +26 -0
- data/magneto/source/assets/bower_components/susy/VERSION +1 -0
- data/magneto/source/assets/bower_components/susy/bower.json +29 -0
- data/magneto/source/assets/bower_components/susy/eyeglass-exports.js +7 -0
- data/magneto/source/assets/bower_components/susy/lib/compass-susy.rb +1 -0
- data/magneto/source/assets/bower_components/susy/lib/susy.rb +14 -0
- data/magneto/source/assets/bower_components/susy/sass/_su.scss +4 -0
- data/magneto/source/assets/bower_components/susy/sass/_susy.scss +4 -0
- data/magneto/source/assets/bower_components/susy/sass/_susyone.scss +4 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/_su.scss +7 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/_susy.scss +24 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/_susyone.scss +13 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_background.scss +385 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_bleed.scss +200 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_box-sizing.scss +47 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_breakpoint-plugin.scss +185 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_container.scss +81 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_context.scss +36 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_gallery.scss +94 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_grids.scss +64 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_gutters.scss +154 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_isolate.scss +77 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_margins.scss +94 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_padding.scss +74 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_rows.scss +138 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_settings.scss +216 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_span.scss +163 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_validation.scss +16 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_background.scss +18 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_functions.scss +377 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_grid.scss +290 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_isolation.scss +51 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_margin.scss +93 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_media.scss +105 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_padding.scss +92 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_settings.scss +56 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/_float.scss +9 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/_shared.scss +15 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/_support.scss +9 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_container.scss +16 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_end.scss +40 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_isolate.scss +22 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_span.scss +35 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_background.scss +26 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_container.scss +21 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_direction.scss +42 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_inspect.scss +22 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_margins.scss +23 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_output.scss +14 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_padding.scss +23 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_background.scss +58 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_box-sizing.scss +19 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_clearfix.scss +18 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_prefix.scss +19 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_rem.scss +22 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_support.scss +85 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/su/_grid.scss +103 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/su/_settings.scss +73 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/su/_utilities.scss +111 -0
- data/magneto/source/assets/bower_components/susy/sass/susy/su/_validation.scss +57 -0
- data/magneto/source/assets/bower_components/susy/templates/project/_grids.scss +9 -0
- data/magneto/source/assets/bower_components/susy/templates/project/manifest.rb +15 -0
- data/magneto/source/assets/bower_components/susy/templates/project/style.scss +4 -0
- data/magneto/source/assets/images/favicon_maker.rb +34 -0
- data/magneto/source/assets/javascripts/application.js.coffee +0 -0
- data/magneto/source/assets/stylesheets/application.css.sass +1 -0
- data/magneto/source/assets/stylesheets/interface/_base.scss +20 -0
- data/magneto/source/assets/stylesheets/interface/_buttons.scss +25 -0
- data/magneto/source/assets/stylesheets/interface/_dropdowns.scss +56 -0
- data/magneto/source/assets/stylesheets/interface/_flashes.scss +29 -0
- data/magneto/source/assets/stylesheets/interface/_footers.scss +79 -0
- data/magneto/source/assets/stylesheets/interface/_forms.scss +72 -0
- data/magneto/source/assets/stylesheets/interface/_functions.scss +42 -0
- data/magneto/source/assets/stylesheets/interface/_grid.scss +31 -0
- data/magneto/source/assets/stylesheets/interface/_icons.scss +12 -0
- data/magneto/source/assets/stylesheets/interface/_lists.scss +37 -0
- data/magneto/source/assets/stylesheets/interface/_mixins.scss +19 -0
- data/magneto/source/assets/stylesheets/interface/_plans.scss +52 -0
- data/magneto/source/assets/stylesheets/interface/_states.scss +24 -0
- data/magneto/source/assets/stylesheets/interface/_tables.scss +33 -0
- data/magneto/source/assets/stylesheets/interface/_typography.scss +117 -0
- data/magneto/source/assets/stylesheets/interface/_variables.scss +156 -0
- data/magneto/source/assets/stylesheets/interface/navigations/_navigations.scss +16 -0
- data/magneto/source/assets/stylesheets/interface/navigations/_sidebar.scss +53 -0
- data/magneto/source/assets/stylesheets/interface/navigations/_thin_sidebar.scss +50 -0
- data/magneto/source/assets/stylesheets/interface/navigations/_top_bar.scss +60 -0
- data/magneto/source/author.hbs +41 -0
- data/magneto/source/default.hbs +46 -0
- data/magneto/source/index.hbs +27 -0
- data/magneto/source/page.hbs +31 -0
- data/magneto/source/partials/loop.hbs +25 -0
- data/magneto/source/partials/navigation.hbs +13 -0
- data/magneto/source/post.hbs +99 -0
- data/magneto/source/tag.hbs +32 -0
- metadata +375 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2af715b70b981a000fcb734a59204c42ac672a88
|
4
|
+
data.tar.gz: 0fb6b78e1e7d7e47fd673bf996c330dd7901ff48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f6a815ad6e954e1ed2d76e4c4c375e5d1b688a89f9d2b37da0249ba1ef2567f01f0d42cc340262ed312df9d947143df48bcb84e4e7dffe70163ad827e315ab6
|
7
|
+
data.tar.gz: a401b130eb170218661968e2a98be915a225e4b6851782a5d185d6e80209a77f845d6a21f791a06072bcaa62a0d2f8d9379d975c162e33c6c624af7c54c86148
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Ghost Manager
|
2
2
|
|
3
|
-
Ghost Manager is a Ruby command line gem created to
|
3
|
+
Ghost Manager is a Ruby command line gem created to simplify the process of installing, updating, and theming Ghost, a popular blogging platform. https://ghost.org
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
data/bin/ghost
CHANGED
@@ -3,34 +3,145 @@
|
|
3
3
|
require 'string'
|
4
4
|
require 'ghost/manager'
|
5
5
|
require 'highline/import'
|
6
|
+
require 'slop'
|
6
7
|
|
8
|
+
COMMANDS = {
|
9
|
+
'init' => Proc.new{
|
10
|
+
ghost_dir = ''
|
11
|
+
ghost_dir = File.expand_path ARGV[1] if ARGV.length > 1
|
12
|
+
ghost_dir = ask "Where do you want to install Ghost? (Default: #{File.join Dir.pwd, "Ghost"})" if ghost_dir.blank?
|
13
|
+
ghost_dir = File.join(Dir.pwd, "Ghost") if ghost_dir.blank?
|
14
|
+
|
15
|
+
installer = Ghost::Manager::Installer.new ghost_dir
|
16
|
+
installer.install
|
17
|
+
|
18
|
+
Ghost::Manager::GhostFile.create ghost_dir
|
19
|
+
|
20
|
+
theme_name = ''
|
21
|
+
theme_name = ARGV[2] if ARGV.length > 2
|
22
|
+
theme_name = ask "What do you want the theme to be called? " if theme_name.blank?
|
23
|
+
generator = Ghost::Manager::ThemeGenerator.new
|
24
|
+
generator.generate theme_name
|
25
|
+
},
|
7
26
|
|
8
|
-
puts ""
|
9
|
-
say "<%= color('Welcome to Ghost Manager, created by Create the Bridge', :green, :bold) %>"
|
10
|
-
puts ""
|
11
27
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
28
|
+
'install' => Proc.new{
|
29
|
+
ghost_dir = ''
|
30
|
+
ghost_dir = File.expand_path ARGV[1] if ARGV.length > 1
|
31
|
+
ghost_dir = ask "Where do you want to install Ghost? (Default: #{File.join Dir.pwd, "Ghost"})" if ghost_dir.blank?
|
32
|
+
ghost_dir = File.join(Dir.pwd, "Ghost") if ghost_dir.blank?
|
33
|
+
|
34
|
+
installer = Ghost::Manager::Installer.new ghost_dir
|
18
35
|
installer.install
|
19
|
-
}
|
20
36
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
37
|
+
Ghost::Manager::GhostFile.create ghost_dir
|
38
|
+
},
|
39
|
+
|
40
|
+
|
41
|
+
'update' => Proc.new{
|
42
|
+
ghost_dir = ''
|
43
|
+
ghost_dir = ARGV[1] if ARGV.length > 1
|
44
|
+
@ghost_file = Ghost::Manager::GhostFile.new
|
45
|
+
|
46
|
+
if ghost_dir.blank? and @ghost_file.exists?
|
47
|
+
ghost_dir = @ghost_file.ghost_path
|
48
|
+
else
|
49
|
+
ghost_dir = ask "Where is the ghost installation? "
|
50
|
+
end
|
51
|
+
|
52
|
+
installer = Ghost::Manager::Installer.new ghost_dir
|
25
53
|
installer.update_install
|
26
|
-
}
|
54
|
+
},
|
55
|
+
|
56
|
+
'theme' => Proc.new{
|
57
|
+
theme_name = ''
|
58
|
+
theme_name = ARGV[1] if ARGV.length > 1
|
59
|
+
theme_name = ask "What do you want the theme to be called? " if theme_name.blank?
|
60
|
+
generator = Ghost::Manager::ThemeGenerator.new
|
61
|
+
generator.generate theme_name
|
62
|
+
},
|
63
|
+
|
64
|
+
'dev' => Proc.new{
|
65
|
+
@ghost_file = Ghost::Manager::GhostFile.new
|
66
|
+
unless @ghost_file.exists?
|
67
|
+
say "<%= color('Unable to find ghostfile', :red, :bold) %>"
|
68
|
+
raise Exception.new "Missing ghostfile"
|
69
|
+
end
|
70
|
+
|
71
|
+
theme_path = File.join Dir.pwd, @ghost_file.ghost_theme
|
72
|
+
remote_theme_path = File.join @ghost_file.ghost_path, "content", "themes", @ghost_file.ghost_theme
|
73
|
+
|
74
|
+
# Open Atom
|
75
|
+
say "<%= color('Starting Github Atom editor', :light_blue, :bold) %>"
|
76
|
+
system "atom #{theme_path}"
|
27
77
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
78
|
+
# Start server
|
79
|
+
COMMANDS['server'].call
|
80
|
+
},
|
81
|
+
|
82
|
+
'server' => Proc.new{
|
83
|
+
@ghost_file = Ghost::Manager::GhostFile.new
|
84
|
+
|
85
|
+
unless @ghost_file.exists?
|
86
|
+
say "<%= color('Unable to find ghostfile', :red, :bold) %>"
|
87
|
+
raise Exception.new "Missing ghostfile"
|
88
|
+
end
|
89
|
+
|
90
|
+
if @ghost_file.theme_installed?
|
91
|
+
theme_path = File.join Dir.pwd, @ghost_file.ghost_theme
|
92
|
+
|
93
|
+
# Start gulp server
|
94
|
+
system "cd #{theme_path}; gulp server --ghost #{@ghost_file.ghost_path} --path #{File.join @ghost_file.ghost_path, "content", "themes", @ghost_file.ghost_theme}"
|
95
|
+
else
|
96
|
+
# Just start the npm server, no theme installed to check out
|
97
|
+
system "cd #{@ghost_file.ghost_path}; npm start"
|
98
|
+
end
|
35
99
|
}
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
def handle_no_arguments
|
104
|
+
puts ""
|
105
|
+
say "<%= color('Welcome to Ghost Manager, created by Create the Bridge', :green, :bold) %>"
|
106
|
+
puts ""
|
107
|
+
|
108
|
+
choose do |menu|
|
109
|
+
menu.prompt = "What do you want to do? "
|
110
|
+
|
111
|
+
menu.choice('Initialize a new Ghost project') do
|
112
|
+
COMMANDS['init'].call
|
113
|
+
end
|
114
|
+
|
115
|
+
menu.choice('Create Ghost install') do
|
116
|
+
COMMANDS['install'].call
|
117
|
+
end
|
118
|
+
|
119
|
+
menu.choice('Update Ghost') do
|
120
|
+
COMMANDS['update'].call
|
121
|
+
end
|
122
|
+
|
123
|
+
menu.choice('Create Ghost theme') do
|
124
|
+
COMMANDS['theme'].call
|
125
|
+
end
|
126
|
+
|
127
|
+
menu.choice('Run Ghost server') do
|
128
|
+
COMMANDS['server'].call
|
129
|
+
end
|
130
|
+
|
131
|
+
menu.choice('Launch dev suite') do
|
132
|
+
COMMANDS['dev'].call
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
if ARGV.length < 1
|
138
|
+
handle_no_arguments
|
139
|
+
else
|
140
|
+
cmd = ARGV[0]
|
141
|
+
if COMMANDS[cmd].nil?
|
142
|
+
say "<%= color('#{cmd} is not valid command.', :red, :bold) %>"
|
143
|
+
handle_no_arguments
|
144
|
+
else
|
145
|
+
COMMANDS[cmd].call
|
146
|
+
end
|
36
147
|
end
|
data/ghost-manager.gemspec
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
4
5
|
require 'ghost/manager/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
@@ -15,10 +16,15 @@ Gem::Specification.new do |spec|
|
|
15
16
|
spec.license = "MIT"
|
16
17
|
|
17
18
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.executables = ["ghost"]
|
19
|
+
spec.executables = ["ghost", "console"]
|
19
20
|
spec.require_paths = ["lib"]
|
20
21
|
|
21
|
-
spec.add_development_dependency "bundler",
|
22
|
-
spec.add_development_dependency "rake",
|
23
|
-
spec.add_development_dependency "highline", "
|
22
|
+
spec.add_development_dependency "bundler", '~> 1.10'
|
23
|
+
spec.add_development_dependency "rake", '~> 10.0'
|
24
|
+
spec.add_development_dependency "highline", ">= 1.7.3"
|
25
|
+
spec.add_development_dependency "slop", '>= 4.2.0'
|
26
|
+
spec.add_development_dependency "fssm", ">= 0.2.10"
|
27
|
+
spec.add_development_dependency "erubis", ">= 2.7.0"
|
28
|
+
spec.add_development_dependency "json", ">= 1.8.3"
|
29
|
+
spec.add_development_dependency "rsync", "~> 1.0.9"
|
24
30
|
end
|
data/ghostfile.json
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'fssm'
|
2
|
+
require 'rsync'
|
3
|
+
require 'highline/import'
|
4
|
+
require 'ghost/manager/ghost_file'
|
5
|
+
|
6
|
+
module Ghost
|
7
|
+
module Manager
|
8
|
+
|
9
|
+
class FileMonitor
|
10
|
+
|
11
|
+
def self.start
|
12
|
+
instance = self.new
|
13
|
+
instance.start_monitoring
|
14
|
+
instance
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@ghost_file = Ghost::Manager::GhostFile.new
|
19
|
+
|
20
|
+
unless @ghost_file.exists?
|
21
|
+
say "<%= color('Unable to find ghostfile', :red, :bold) %>"
|
22
|
+
raise Exception.new "Missing ghostfile"
|
23
|
+
end
|
24
|
+
|
25
|
+
sync_files
|
26
|
+
end
|
27
|
+
|
28
|
+
def monitor
|
29
|
+
theme_dir = File.join Dir.pwd, @ghost_file.ghost_theme
|
30
|
+
FSSM.monitor theme_dir, "**/*", directories: true do
|
31
|
+
update do |b, r, t|
|
32
|
+
sync_files
|
33
|
+
end
|
34
|
+
|
35
|
+
create do |b, r, t|
|
36
|
+
sync_files
|
37
|
+
end
|
38
|
+
|
39
|
+
delete do |b, r, t|
|
40
|
+
sync_files
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def start_monitoring
|
46
|
+
theme_dir = File.join Dir.pwd, @ghost_file.ghost_theme
|
47
|
+
|
48
|
+
Thread.new {
|
49
|
+
FSSM.monitor theme_dir do
|
50
|
+
update{ sync_files }
|
51
|
+
delete{ sync_files }
|
52
|
+
create{ sync_files }
|
53
|
+
end
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
def sync_files
|
58
|
+
say "<%= color('Theme changed, syncing files...', :light_blue, :bold) %>"
|
59
|
+
|
60
|
+
theme_dir = File.join Dir.pwd, @ghost_file.ghost_theme
|
61
|
+
ghost_theme_dir = File.join @ghost_file.ghost_path, "content", "themes", @ghost_file.ghost_theme
|
62
|
+
|
63
|
+
Rsync.run theme_dir, ghost_theme_dir do |result|
|
64
|
+
if result.success?
|
65
|
+
result.changes.each do |change|
|
66
|
+
say " <%= color('#{change.filename}', :yellow) %> <%= color('#{change.summary}', :green) %>"
|
67
|
+
end
|
68
|
+
else
|
69
|
+
say "<%= color('Failed to sync changes: #{result.error}', :red, :bold) %>"
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'json'
|
3
|
+
require 'highline/import'
|
4
|
+
|
5
|
+
module Ghost
|
6
|
+
module Manager
|
7
|
+
|
8
|
+
class GhostFile
|
9
|
+
attr_accessor :path, :content
|
10
|
+
|
11
|
+
def self.create dir
|
12
|
+
@ghost_directory = dir
|
13
|
+
@template = File.read "#{Dir.pwd}/lib/ghost/templates/ghostfile.json.erb"
|
14
|
+
erb = ERB.new(@template).result binding
|
15
|
+
File.write File.join(Dir.pwd, "ghostfile.json"), erb
|
16
|
+
self.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
self.path = "#{Dir.pwd}/ghostfile.json"
|
21
|
+
load_content
|
22
|
+
end
|
23
|
+
|
24
|
+
def exists?
|
25
|
+
File.exists? path
|
26
|
+
end
|
27
|
+
|
28
|
+
def theme_installed?
|
29
|
+
!content["ghost-theme"].nil?
|
30
|
+
end
|
31
|
+
|
32
|
+
def load_content
|
33
|
+
unless !exists?
|
34
|
+
self.content = JSON.parse File.read(path)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def ghost_path
|
39
|
+
content["ghost-installation"]
|
40
|
+
end
|
41
|
+
|
42
|
+
def ghost_theme
|
43
|
+
content["ghost-theme"]
|
44
|
+
end
|
45
|
+
|
46
|
+
def set_default_theme theme
|
47
|
+
unless content.nil?
|
48
|
+
content["ghost-theme"] = theme
|
49
|
+
save
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def save
|
54
|
+
unless content.nil?
|
55
|
+
json = JSON.pretty_generate(content)
|
56
|
+
File.write path, json
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require "highline/import"
|
2
|
+
|
3
|
+
module Ghost
|
4
|
+
module Manager
|
5
|
+
|
6
|
+
class Installer
|
7
|
+
attr_accessor :install_directory
|
8
|
+
|
9
|
+
|
10
|
+
def initialize install_path
|
11
|
+
self.install_directory = File.expand_path install_path
|
12
|
+
end
|
13
|
+
|
14
|
+
def install
|
15
|
+
# Directory exists and is not empty
|
16
|
+
if Dir.exists? install_directory and Dir.entries(install_directory).select{|x| ![".", ".."].include? x}.any?
|
17
|
+
say "<%= color('Directory already exists and is not empty', :yellow, :bold) %>"
|
18
|
+
result = ask "<%= color('Do you want to replace it? (y/n)') %>"
|
19
|
+
|
20
|
+
if result == "y"
|
21
|
+
system 'rm', '-rf', install_directory
|
22
|
+
system 'mkdir', '-p', install_directory
|
23
|
+
else
|
24
|
+
return
|
25
|
+
end
|
26
|
+
else
|
27
|
+
# Create the directory
|
28
|
+
system 'mkdir', '-p', install_directory
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
say "<%= color('Cloning latest ghost version', :bold, :light_blue) %>"
|
33
|
+
puts ""
|
34
|
+
|
35
|
+
# Clone the latest version of ghost from github
|
36
|
+
system "cd #{install_directory} && git clone https://github.com/TryGhost/Ghost.git ."
|
37
|
+
|
38
|
+
puts ""
|
39
|
+
say "<%= color('Installing node modules', :bold, :light_blue) %>"
|
40
|
+
puts ""
|
41
|
+
# Install packages
|
42
|
+
system "cd #{install_directory} && npm install"
|
43
|
+
|
44
|
+
# Build ember stuff
|
45
|
+
puts ""
|
46
|
+
say "<%= color('Building ember componenets...', :bold, :light_blue) %>"
|
47
|
+
puts ""
|
48
|
+
|
49
|
+
system "cd #{install_directory} && grunt init"
|
50
|
+
end
|
51
|
+
|
52
|
+
def update_install
|
53
|
+
say "<%= color('Updating ghost install...', :light_blue, :bold) %>"
|
54
|
+
puts ""
|
55
|
+
|
56
|
+
system "cd #{install_directory} && git stash && git pull && git stash pop"
|
57
|
+
|
58
|
+
puts ""
|
59
|
+
say "<%= color('Installing new node modules...', :light_blue, :bold) %>"
|
60
|
+
puts ""
|
61
|
+
|
62
|
+
system "cd #{install_directory} && npm install"
|
63
|
+
|
64
|
+
# Build ember stuff
|
65
|
+
puts ""
|
66
|
+
say "<%= color('Building ember componenets...', :bold, :light_blue) %>"
|
67
|
+
puts ""
|
68
|
+
|
69
|
+
system "cd #{install_directory} && grunt init"
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
def generate_theme
|
74
|
+
# say "<%= color('Sorry, this does not quite work yet', :red, :bold) %>"
|
75
|
+
# Make sure Yeoman is ready to roll
|
76
|
+
# say "<%= color('Installing Yeoman...', :light_blue, :bold) %>"
|
77
|
+
# system "npm install -g yo bower grunt-cli gulp"
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'ghost/manager/ghost_file'
|
3
|
+
|
4
|
+
module Ghost
|
5
|
+
module Manager
|
6
|
+
|
7
|
+
class ThemeGenerator
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@ghost_file = Ghost::Manager::GhostFile.new
|
11
|
+
|
12
|
+
unless @ghost_file.exists?
|
13
|
+
say "<%= color('Unable to find ghostfile', :red, :bold) %>"
|
14
|
+
raise Exception.new "Missing ghostfile"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def generate theme = nil
|
19
|
+
theme_name = theme
|
20
|
+
theme_name = ask "What do you want your theme to be called? " if theme_name.nil?
|
21
|
+
temp = File.join Dir.pwd, theme_name
|
22
|
+
|
23
|
+
# Install yeoman
|
24
|
+
puts ""
|
25
|
+
say "<%= color('Installing Yeoman dependencies...', :light_blue, :bold) %>"
|
26
|
+
system "npm install -g yo bower grunt-cli gulp"
|
27
|
+
|
28
|
+
# Run generator
|
29
|
+
puts ""
|
30
|
+
say "<%= color('Running yeoman generator ghost-interface...', :light_blue, :bold) %>"
|
31
|
+
system "yo ghost-interface #{theme_name}"
|
32
|
+
|
33
|
+
@ghost_file.set_default_theme theme_name
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/lib/ghost/manager.rb
CHANGED
@@ -1,65 +1,14 @@
|
|
1
1
|
require "ghost/manager/version"
|
2
|
-
require "
|
2
|
+
require "ghost/manager/installer"
|
3
|
+
require "ghost/manager/file_monitor"
|
4
|
+
require "ghost/manager/ghost_file"
|
5
|
+
require "ghost/manager/theme_generator"
|
6
|
+
|
3
7
|
|
4
8
|
module Ghost
|
5
9
|
module Manager
|
6
10
|
|
7
|
-
class Installer
|
8
|
-
attr_accessor :install_directory
|
9
|
-
|
10
|
-
|
11
|
-
def initialize install_path
|
12
|
-
self.install_directory = File.expand_path install_path
|
13
|
-
end
|
14
|
-
|
15
|
-
def install
|
16
|
-
# Make sure directory exists
|
17
|
-
if Dir.exists? install_directory
|
18
|
-
say "<%= color('Directory exists, removing directory and recreating...', :bold, :yellow) %>"
|
19
|
-
system 'rm', '-rf', install_directory
|
20
|
-
end
|
21
|
-
|
22
|
-
# Create the directory
|
23
|
-
system 'mkdir', '-p', install_directory
|
24
|
-
|
25
|
-
say "<%= color('Cloning latest ghost version', :bold, :light_blue) %>"
|
26
|
-
puts ""
|
27
|
-
|
28
|
-
# Clone the latest version of ghost from github
|
29
|
-
system "cd #{install_directory} && git clone https://github.com/TryGhost/Ghost.git ."
|
30
|
-
|
31
|
-
puts ""
|
32
|
-
say "<%= color('Installing node modules', :bold, :light_blue) %>"
|
33
|
-
puts ""
|
34
|
-
# Install packages
|
35
|
-
system "cd #{install_directory} && npm install"
|
36
|
-
end
|
37
|
-
|
38
|
-
def update_install
|
39
|
-
say "<%= color('Updating ghost install...', :light_blue, :bold) %>"
|
40
|
-
puts ""
|
41
|
-
|
42
|
-
system "cd #{install_directory} && git stash && git pull && git stash pop"
|
43
|
-
|
44
|
-
puts ""
|
45
|
-
say "<%= color('Installing new node modules...', :light_blue, :bold) %>"
|
46
|
-
puts ""
|
47
|
-
|
48
|
-
system "cd #{install_directory} && npm install"
|
49
|
-
end
|
50
|
-
|
51
|
-
|
52
|
-
def generate_theme
|
53
|
-
# say "<%= color('Sorry, this does not quite work yet', :red, :bold) %>"
|
54
|
-
# Make sure Yeoman is ready to roll
|
55
|
-
# say "<%= color('Installing Yeoman...', :light_blue, :bold) %>"
|
56
|
-
# system "npm install -g yo bower grunt-cli gulp"
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
11
|
|
62
|
-
end
|
63
12
|
|
64
13
|
end
|
65
14
|
end
|
data/magneto/.bowerrc
ADDED
data/magneto/.gitignore
ADDED
data/magneto/bower.json
ADDED
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}main{overflow:hidden}.button,.index-container .button,.plan .button,input[type=submit]{padding:.9em 2em;display:inline-block;font-size:.875rem;font-weight:400;color:#fff;background-color:#2ab292;border:none;border-radius:.3125rem;transition:background-color 300ms ease-out;user-select:none;cursor:pointer;outline:0}.button:hover,input[type=submit]:hover{color:#fff;background-color:#228e75;border:none}html{font-size:100%}body{line-height:1.5rem}a{font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-weight:700;color:#3598dc;text-decoration:none}a:hover{color:#207bba}a.active{color:#22313F}body{font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-weight:400;color:#666;background-color:#fff}h1,h2,h3,h4,h5,h6{margin:0;font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-weight:400;color:#333}p{margin:1.5rem 0;font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-weight:400;color:#666}hr{border-bottom:1px solid #2ab292;border-left:none;border-right:none;border-top:none}blockquote{margin:1em 0;padding:.5em 0 .5em 1em;color:#7d7d7d;border-left:3px solid #2ab292}cite{font-style:italic;color:#949494}cite:before{content:'\2014 \00A0'}h1{font-size:4em;line-height:1.125em}@media only screen and (max-width:1024px){h1{font-size:2.4375em;line-height:1.23077em}}h2{font-size:2.8125em;line-height:1.6em}@media only screen and (max-width:1024px){h2{font-size:1.9375em;line-height:1.54839em}}h3{font-size:2em;line-height:1.5em}@media only screen and (max-width:1024px){h3{font-size:1.5625em;line-height:1.92em}}h4{font-size:1.4375em;line-height:2.08696em}@media only screen and (max-width:1024px){h4{font-size:1.25em;line-height:1.2em}}h5{font-size:1em;line-height:1.5em}@media only screen and (max-width:1024px){h5{font-size:1em;line-height:1.5em}}h6{font-size:.6875em;line-height:2.18182em}@media only screen and (max-width:1024px){h6{font-size:.6875em;line-height:2.18182em}}p{font-size:1em;line-height:1.5em}@media only screen and (max-width:1024px){p{font-size:.9375em;line-height:1.6em}}.drop-down,.hover-menu{display:inline-block;position:relative}.drop-down:hover,.hover-menu:hover{color:#ccc}.drop-down-list,.hover-menu-list{display:none;position:absolute;top:50%}.drop-down-list>*,.hover-menu-list>*{padding:.25em;width:10rem;color:#fff;background-color:#22313F;text-align:center}.drop-down-list>:hover,.hover-menu-list>:hover{color:#ccc;background-color:#293b4c}.drop-down-list :first-of-type,.hover-menu-list :first-of-type{border-radius:.3125rem .3125rem 0 0}.drop-down-list :last-of-type,.hover-menu-list :last-of-type{border-radius:0 0 .3125rem .3125rem}.drop-down:hover .drop-down-list{padding-top:1em;display:block;z-index:100}dl,ol,ul{margin:0;padding:0;list-style-type:none;outline:0}li{display:block}dl dt{font-weight:700}dl dd{margin:0}.index-container .list-item{padding:1em 0;background-color:#fff}.index-container .list-item:nth-child(even){background-color:#f7f7f7}.index-container .button{margin-right:1em}input[type=text],input[type=password],input[type=date],input[type=datetime],input[type=datetime-local],input[type=month],input[type=week],input[type=email],input[type=tel],input[type=time],input[type=url],input[type=color],input[type=number],input[type=search],select,textarea{margin:.425em 0;padding:.45em;display:block;color:#666;background-color:#fff;border:1px solid #ccc;box-shadow:none;border-radius:.3125rem;outline:0}input[type=text]:hover,input[type=password]:hover,input[type=date]:hover,input[type=datetime]:hover,input[type=datetime-local]:hover,input[type=month]:hover,input[type=week]:hover,input[type=email]:hover,input[type=tel]:hover,input[type=time]:hover,input[type=url]:hover,input[type=color]:hover,input[type=number]:hover,input[type=search]:hover,select:hover,textarea:hover{border:1px solid #a3a3a3}input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=month]:focus,input[type=week]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=color]:focus,input[type=number]:focus,input[type=search]:focus,select:focus,textarea:focus{box-shadow:none;background-color:#f1f1f1}input[type=text]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=date]::-webkit-input-placeholder,input[type=datetime]::-webkit-input-placeholder,input[type=datetime-local]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type=email]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,input[type=color]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,select::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}input[type=text]:-moz-placeholder,input[type=password]:-moz-placeholder,input[type=date]:-moz-placeholder,input[type=datetime]:-moz-placeholder,input[type=datetime-local]:-moz-placeholder,input[type=month]:-moz-placeholder,input[type=week]:-moz-placeholder,input[type=email]:-moz-placeholder,input[type=tel]:-moz-placeholder,input[type=time]:-moz-placeholder,input[type=url]:-moz-placeholder,input[type=color]:-moz-placeholder,input[type=number]:-moz-placeholder,input[type=search]:-moz-placeholder,select:-moz-placeholder,textarea:-moz-placeholder{color:#999}input[type=text]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=date]::-moz-placeholder,input[type=datetime]::-moz-placeholder,input[type=datetime-local]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type=email]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=url]::-moz-placeholder,input[type=color]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=search]::-moz-placeholder,select::-moz-placeholder,textarea::-moz-placeholder{color:#999}input[type=text]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=date]:-ms-input-placeholder,input[type=datetime]:-ms-input-placeholder,input[type=datetime-local]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type=email]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,input[type=color]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,select:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input[type=checkbox],input[type=radio]{margin-right:1em}label{display:block;font-weight:200;font-size:.9375rem;color:#333}label abbr{display:none}i{font-family:FontAwesome;font-weight:400;font-style:normal;font-size:1rem;color:#ccc}i:hover{color:#a3a3a3}.plan ul{background-color:#22313F;color:#fff;text-align:center;border-radius:.3125rem}.plan .title{padding:1rem 0;background-color:#22313F;font-size:23px;border-radius:.3125rem}.plan .price{padding:1.5rem 0;font-size:64px;background-color:#293b4c}.plan .price span{font-size:1.25rem;font-weight:100}.plan .price span.money-symbol{position:relative;top:-1.7em;right:-.8em}.plan .price span.month-text{position:relative;left:-.8em}.plan .feature{padding:.75em 0}.plan .button{margin:1.2em 0 1.6em}.plan{width:20em}.alert-box{margin-bottom:0;display:none}.alert-box.alert{background-color:#D24D57;border:1px solid #D24D57}.alert-box.success{background-color:#3FC380;border:1px solid #3FC380}.alert-box.warning{background-color:#f08a24;border:1px solid #f08a24}.alert-box .alert-box-content{opacity:0}.alert-box .close-button{color:#fff;opacity:.6}li.state-green,li.state-red,li.state-yellow{width:10em;padding:.5em 0;font-weighT:600;font-size:.875em;color:#fff;border-radius:.3125rem;text-align:center}li.state-green{background-color:#3FC380}li.state-yellow{background:#f1c205}li.state-red{background:#D24D57}table{width:100%;table-layout:fixed}th{padding:.7em 3em;color:#333;border-bottom:2px solid #ccc;text-align:left;font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-weight:600}td{padding:1.5em 3em;color:#666;text-align:left}tr:nth-child(odd){background-color:#fff}tr:nth-child(even){background-color:#999}.sidebar{position:fixed;top:0;left:0;bottom:0;width:16.25rem;background:#22313F;overflow-y:auto;z-index:100}@media only screen and (max-width:1024px){nav.sidebar-container{display:none}}.sidebar li{font-size:16px;font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-weight:400;color:#666}.sidebar li.active,.sidebar li:hover{background-color:#263747}.sidebar li a{margin:0;padding:1.5em;display:block;color:#fff}.sidebar li a:hover{color:#ccc}.sidebar li a.active{color:#b3b3b3}.thin-sidebar{position:fixed;top:0;left:0;bottom:0;width:5rem;background:#22313F;overflow-y:auto;z-index:100}@media only screen and (max-width:1024px){nav.thin-sidebar-container{display:none}}.thin-sidebar li.active,.thin-sidebar li:hover{background-color:#293b4c}.thin-sidebar li i{padding:1.2em 1em;display:block;font-size:1.3125rem;color:#fff;text-align:center}.thin-sidebar li i:hover{color:#ccc}.thin-sidebar li i.active{color:#b3b3b3}nav.top-bar-container{padding:1.5em;color:#fff;background-color:#22313F}nav.top-bar-container .top-bar{display:inline-block;position:relative;overflow:visible;cursor:pointer;float:right;z-index:100}.hover-menu i{padding:0 .5em;color:#fff}.hover-menu:hover i{color:#ccc}.hover-menu:hover .hover-menu-list{padding-top:2em;display:block;top:1.25em;right:0}.hover-menu li{width:14rem;color:#fff;background-color:#22313F}.hover-menu li:hover{color:#ccc;background-color:#293b4c}.hover-menu-list a{padding:.5em;display:block;color:#fff}@media only screen and (min-width:1024px){main{padding-left:5rem}}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
{{!< default}}
|
2
|
+
{{! The tag above means - insert everything in this file into the {body} of the default.hbs template }}
|
3
|
+
|
4
|
+
{{! The big featured header }}
|
5
|
+
|
6
|
+
{{! Everything inside the #author tags pulls data from the author }}
|
7
|
+
{{#author}}
|
8
|
+
<header class="main-header author-head {{#if cover}}" style="background-image: url({{cover}}){{else}}no-cover{{/if}}">
|
9
|
+
<nav class="main-nav overlay clearfix">
|
10
|
+
{{#if @blog.logo}}<a class="blog-logo" href="{{@blog.url}}"><img src="{{@blog.logo}}" alt="{{@blog.title}}" /></a>{{/if}}
|
11
|
+
{{#if @blog.navigation}}
|
12
|
+
<a class="menu-button icon-menu" href="#"><span class="word">Menu</span></a>
|
13
|
+
{{/if}}
|
14
|
+
</nav>
|
15
|
+
</header>
|
16
|
+
|
17
|
+
<section class="author-profile inner">
|
18
|
+
{{#if image}}
|
19
|
+
<figure class="author-image">
|
20
|
+
<div class="img" style="background-image: url({{image}})"><span class="hidden">{{name}}'s Picture</span></div>
|
21
|
+
</figure>
|
22
|
+
{{/if}}
|
23
|
+
<h1 class="author-title">{{name}}</h1>
|
24
|
+
{{#if bio}}
|
25
|
+
<h2 class="author-bio">{{bio}}</h2>
|
26
|
+
{{/if}}
|
27
|
+
<div class="author-meta">
|
28
|
+
{{#if location}}<span class="author-location icon-location">{{location}}</span>{{/if}}
|
29
|
+
{{#if website}}<span class="author-link icon-link"><a href="{{website}}">{{website}}</a></span>{{/if}}
|
30
|
+
<span class="author-stats"><i class="icon-stats"></i> {{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}}</span>
|
31
|
+
</div>
|
32
|
+
</section>
|
33
|
+
{{/author}}
|
34
|
+
|
35
|
+
{{! The main content area on the homepage }}
|
36
|
+
<main class="content" role="main">
|
37
|
+
|
38
|
+
{{! The tag below includes the post loop - partials/loop.hbs }}
|
39
|
+
{{> "loop"}}
|
40
|
+
|
41
|
+
</main>
|