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.
Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +1 -1
  4. data/bin/ghost +133 -22
  5. data/ghost-manager.gemspec +10 -4
  6. data/ghostfile.json +4 -0
  7. data/lib/ghost/manager/file_monitor.rb +77 -0
  8. data/lib/ghost/manager/ghost_file.rb +63 -0
  9. data/lib/ghost/manager/installer.rb +86 -0
  10. data/lib/ghost/manager/theme_generator.rb +39 -0
  11. data/lib/ghost/manager/version.rb +1 -1
  12. data/lib/ghost/manager.rb +5 -56
  13. data/lib/ghost/templates/ghostfile.json.erb +3 -0
  14. data/magneto/.bowerrc +3 -0
  15. data/magneto/.gitignore +3 -0
  16. data/magneto/bower.json +11 -0
  17. data/magneto/build/assets/javascripts/application.min.js +0 -0
  18. data/magneto/build/assets/stylesheets/application.min.css +1 -0
  19. data/magneto/build/author.hbs +41 -0
  20. data/magneto/build/default.hbs +46 -0
  21. data/magneto/build/index.hbs +27 -0
  22. data/magneto/build/page.hbs +31 -0
  23. data/magneto/build/partials/loop.hbs +25 -0
  24. data/magneto/build/partials/navigation.hbs +13 -0
  25. data/magneto/build/post.hbs +99 -0
  26. data/magneto/build/tag.hbs +32 -0
  27. data/magneto/gulpfile.js +99 -0
  28. data/magneto/package.json +25 -0
  29. data/magneto/source/assets/bower_components/.gitkeep +0 -0
  30. data/magneto/source/assets/bower_components/compass-mixins/.bower.json +34 -0
  31. data/magneto/source/assets/bower_components/compass-mixins/LICENSE.markdown +29 -0
  32. data/magneto/source/assets/bower_components/compass-mixins/README.markdown +17 -0
  33. data/magneto/source/assets/bower_components/compass-mixins/bower.json +24 -0
  34. data/magneto/source/assets/bower_components/compass-mixins/lib/_animate.scss +1 -0
  35. data/magneto/source/assets/bower_components/compass-mixins/lib/_compass.scss +4 -0
  36. data/magneto/source/assets/bower_components/compass-mixins/lib/_lemonade.scss +38 -0
  37. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/_animate.scss +31 -0
  38. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/_core.scss +127 -0
  39. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/_shared.scss +22 -0
  40. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_attention-seekers.scss +152 -0
  41. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_bouncing.scss +3 -0
  42. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_classes.scss +21 -0
  43. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_fading.scss +3 -0
  44. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_flippers.scss +87 -0
  45. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_lightspeed.scss +24 -0
  46. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_rotating.scss +3 -0
  47. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/_specials.scss +42 -0
  48. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/bouncing/_bouncing-entrances.scss +68 -0
  49. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/bouncing/_bouncing-exits.scss +60 -0
  50. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/fading/_fading-entrances.scss +86 -0
  51. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/fading/_fading-exits.scss +86 -0
  52. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/rotating/_rotating-entrances.scss +58 -0
  53. data/magneto/source/assets/bower_components/compass-mixins/lib/animation/animate/rotating/_rotating-exits.scss +58 -0
  54. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_css3.scss +19 -0
  55. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_functions.scss +3 -0
  56. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_layout.scss +3 -0
  57. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_reset-legacy.scss +3 -0
  58. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_reset.scss +3 -0
  59. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_support.scss +40 -0
  60. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_typography.scss +4 -0
  61. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/_utilities.scss +9 -0
  62. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_animation.scss +2 -0
  63. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_appearance.scss +16 -0
  64. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_background-clip.scss +43 -0
  65. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_background-origin.scss +42 -0
  66. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_background-size.scss +26 -0
  67. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_border-radius.scss +130 -0
  68. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_box-shadow.scss +76 -0
  69. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_box-sizing.scss +13 -0
  70. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_box.scss +111 -0
  71. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_columns.scss +148 -0
  72. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_filter.scss +23 -0
  73. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_font-face.scss +48 -0
  74. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_hyphenation.scss +77 -0
  75. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_images.scss +132 -0
  76. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_inline-block.scss +22 -0
  77. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_opacity.scss +19 -0
  78. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_pie.scss +73 -0
  79. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_regions.scss +22 -0
  80. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_shared.scss +38 -0
  81. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_text-shadow.scss +87 -0
  82. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_transform-legacy.scss +87 -0
  83. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_transform.scss +598 -0
  84. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_transition.scss +221 -0
  85. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/css3/_user-interface.scss +17 -0
  86. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/functions/_constants.scss +18 -0
  87. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/functions/_display.scss +36 -0
  88. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/functions/_lists.scss +53 -0
  89. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/layout/_grid-background.scss +178 -0
  90. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/layout/_sticky-footer.scss +23 -0
  91. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/layout/_stretching.scss +24 -0
  92. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/reset/_utilities-legacy.scss +135 -0
  93. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/reset/_utilities.scss +142 -0
  94. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_links.scss +3 -0
  95. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_lists.scss +4 -0
  96. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_text.scss +4 -0
  97. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/_vertical_rhythm.scss +221 -0
  98. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/links/_hover-link.scss +5 -0
  99. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/links/_link-colors.scss +28 -0
  100. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/links/_unstyled-link.scss +7 -0
  101. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_bullets.scss +34 -0
  102. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_horizontal-list.scss +61 -0
  103. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_inline-block-list.scss +50 -0
  104. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/lists/_inline-list.scss +44 -0
  105. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_ellipsis.scss +25 -0
  106. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_force-wrap.scss +12 -0
  107. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_nowrap.scss +2 -0
  108. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/typography/text/_replacement.scss +68 -0
  109. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_color.scss +1 -0
  110. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_general.scss +6 -0
  111. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_links.scss +5 -0
  112. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_lists.scss +6 -0
  113. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_print.scss +17 -0
  114. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_sprites.scss +2 -0
  115. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_tables.scss +3 -0
  116. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/_text.scss +5 -0
  117. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/color/_contrast.scss +28 -0
  118. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_clearfix.scss +44 -0
  119. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_float.scss +30 -0
  120. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_hacks.scss +46 -0
  121. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_min.scss +16 -0
  122. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_reset.scss +2 -0
  123. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_tabs.scss +1 -0
  124. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/general/_tag-cloud.scss +18 -0
  125. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/links/_hover-link.scss +3 -0
  126. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/links/_link-colors.scss +3 -0
  127. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/links/_unstyled-link.scss +3 -0
  128. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_bullets.scss +3 -0
  129. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_horizontal-list.scss +3 -0
  130. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_inline-block-list.scss +3 -0
  131. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/lists/_inline-list.scss +3 -0
  132. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/sprites/_base.scss +66 -0
  133. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/sprites/_sprite-img.scss +79 -0
  134. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -0
  135. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/tables/_borders.scss +33 -0
  136. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/tables/_scaffolding.scss +9 -0
  137. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/text/_ellipsis.scss +3 -0
  138. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/text/_nowrap.scss +3 -0
  139. data/magneto/source/assets/bower_components/compass-mixins/lib/compass/utilities/text/_replacement.scss +3 -0
  140. data/magneto/source/assets/bower_components/compass-mixins/package.json +41 -0
  141. data/magneto/source/assets/bower_components/font-awesome/.bower.json +36 -0
  142. data/magneto/source/assets/bower_components/font-awesome/.gitignore +33 -0
  143. data/magneto/source/assets/bower_components/font-awesome/.npmignore +42 -0
  144. data/magneto/source/assets/bower_components/font-awesome/HELP-US-OUT.txt +7 -0
  145. data/magneto/source/assets/bower_components/font-awesome/bower.json +22 -0
  146. data/magneto/source/assets/bower_components/font-awesome/css/font-awesome.css +2026 -0
  147. data/magneto/source/assets/bower_components/font-awesome/css/font-awesome.css.map +7 -0
  148. data/magneto/source/assets/bower_components/font-awesome/css/font-awesome.min.css +4 -0
  149. data/magneto/source/assets/bower_components/font-awesome/fonts/FontAwesome.otf +0 -0
  150. data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  151. data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.svg +640 -0
  152. data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  153. data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  154. data/magneto/source/assets/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  155. data/magneto/source/assets/bower_components/font-awesome/less/animated.less +34 -0
  156. data/magneto/source/assets/bower_components/font-awesome/less/bordered-pulled.less +25 -0
  157. data/magneto/source/assets/bower_components/font-awesome/less/core.less +12 -0
  158. data/magneto/source/assets/bower_components/font-awesome/less/fixed-width.less +6 -0
  159. data/magneto/source/assets/bower_components/font-awesome/less/font-awesome.less +17 -0
  160. data/magneto/source/assets/bower_components/font-awesome/less/icons.less +677 -0
  161. data/magneto/source/assets/bower_components/font-awesome/less/larger.less +13 -0
  162. data/magneto/source/assets/bower_components/font-awesome/less/list.less +19 -0
  163. data/magneto/source/assets/bower_components/font-awesome/less/mixins.less +26 -0
  164. data/magneto/source/assets/bower_components/font-awesome/less/path.less +15 -0
  165. data/magneto/source/assets/bower_components/font-awesome/less/rotated-flipped.less +20 -0
  166. data/magneto/source/assets/bower_components/font-awesome/less/stacked.less +20 -0
  167. data/magneto/source/assets/bower_components/font-awesome/less/variables.less +688 -0
  168. data/magneto/source/assets/bower_components/font-awesome/scss/_animated.scss +34 -0
  169. data/magneto/source/assets/bower_components/font-awesome/scss/_bordered-pulled.scss +25 -0
  170. data/magneto/source/assets/bower_components/font-awesome/scss/_core.scss +12 -0
  171. data/magneto/source/assets/bower_components/font-awesome/scss/_fixed-width.scss +6 -0
  172. data/magneto/source/assets/bower_components/font-awesome/scss/_icons.scss +677 -0
  173. data/magneto/source/assets/bower_components/font-awesome/scss/_larger.scss +13 -0
  174. data/magneto/source/assets/bower_components/font-awesome/scss/_list.scss +19 -0
  175. data/magneto/source/assets/bower_components/font-awesome/scss/_mixins.scss +26 -0
  176. data/magneto/source/assets/bower_components/font-awesome/scss/_path.scss +15 -0
  177. data/magneto/source/assets/bower_components/font-awesome/scss/_rotated-flipped.scss +20 -0
  178. data/magneto/source/assets/bower_components/font-awesome/scss/_stacked.scss +20 -0
  179. data/magneto/source/assets/bower_components/font-awesome/scss/_variables.scss +688 -0
  180. data/magneto/source/assets/bower_components/font-awesome/scss/font-awesome.scss +17 -0
  181. data/magneto/source/assets/bower_components/modular-scale/.bower.json +22 -0
  182. data/magneto/source/assets/bower_components/modular-scale/.gitignore +7 -0
  183. data/magneto/source/assets/bower_components/modular-scale/.ruby-gemset +1 -0
  184. data/magneto/source/assets/bower_components/modular-scale/Gemfile +3 -0
  185. data/magneto/source/assets/bower_components/modular-scale/bower.json +12 -0
  186. data/magneto/source/assets/bower_components/modular-scale/changelog.md +24 -0
  187. data/magneto/source/assets/bower_components/modular-scale/eyeglass-exports.js +7 -0
  188. data/magneto/source/assets/bower_components/modular-scale/license.md +9 -0
  189. data/magneto/source/assets/bower_components/modular-scale/modular-scale.gemspec +25 -0
  190. data/magneto/source/assets/bower_components/modular-scale/package.json +30 -0
  191. data/magneto/source/assets/bower_components/modular-scale/readme.md +183 -0
  192. data/magneto/source/assets/bower_components/modular-scale/sache.json +5 -0
  193. data/magneto/source/assets/bower_components/modular-scale/stylesheets/_modular-scale-tests.scss +74 -0
  194. data/magneto/source/assets/bower_components/modular-scale/stylesheets/_modular-scale.scss +18 -0
  195. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_calc.scss +17 -0
  196. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_function-list.scss +68 -0
  197. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_function.scss +55 -0
  198. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_generate-list.scss +103 -0
  199. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_pow.scss +40 -0
  200. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_ratios.scss +20 -0
  201. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_respond.scss +49 -0
  202. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_round-px.scss +6 -0
  203. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_sort-list.scss +93 -0
  204. data/magneto/source/assets/bower_components/modular-scale/stylesheets/modular-scale/_tests.scss +22 -0
  205. data/magneto/source/assets/bower_components/normalize-css/.bower.json +23 -0
  206. data/magneto/source/assets/bower_components/normalize-css/LICENSE.md +19 -0
  207. data/magneto/source/assets/bower_components/normalize-css/README.md +90 -0
  208. data/magneto/source/assets/bower_components/normalize-css/bower.json +13 -0
  209. data/magneto/source/assets/bower_components/normalize-css/normalize.css +424 -0
  210. data/magneto/source/assets/bower_components/susy/.bower.json +39 -0
  211. data/magneto/source/assets/bower_components/susy/CONTRIBUTING.md +116 -0
  212. data/magneto/source/assets/bower_components/susy/Gemfile +3 -0
  213. data/magneto/source/assets/bower_components/susy/LICENSE.txt +28 -0
  214. data/magneto/source/assets/bower_components/susy/README.md +26 -0
  215. data/magneto/source/assets/bower_components/susy/VERSION +1 -0
  216. data/magneto/source/assets/bower_components/susy/bower.json +29 -0
  217. data/magneto/source/assets/bower_components/susy/eyeglass-exports.js +7 -0
  218. data/magneto/source/assets/bower_components/susy/lib/compass-susy.rb +1 -0
  219. data/magneto/source/assets/bower_components/susy/lib/susy.rb +14 -0
  220. data/magneto/source/assets/bower_components/susy/sass/_su.scss +4 -0
  221. data/magneto/source/assets/bower_components/susy/sass/_susy.scss +4 -0
  222. data/magneto/source/assets/bower_components/susy/sass/_susyone.scss +4 -0
  223. data/magneto/source/assets/bower_components/susy/sass/susy/_su.scss +7 -0
  224. data/magneto/source/assets/bower_components/susy/sass/susy/language/_susy.scss +24 -0
  225. data/magneto/source/assets/bower_components/susy/sass/susy/language/_susyone.scss +13 -0
  226. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_background.scss +385 -0
  227. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_bleed.scss +200 -0
  228. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_box-sizing.scss +47 -0
  229. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_breakpoint-plugin.scss +185 -0
  230. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_container.scss +81 -0
  231. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_context.scss +36 -0
  232. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_gallery.scss +94 -0
  233. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_grids.scss +64 -0
  234. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_gutters.scss +154 -0
  235. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_isolate.scss +77 -0
  236. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_margins.scss +94 -0
  237. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_padding.scss +74 -0
  238. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_rows.scss +138 -0
  239. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_settings.scss +216 -0
  240. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_span.scss +163 -0
  241. data/magneto/source/assets/bower_components/susy/sass/susy/language/susy/_validation.scss +16 -0
  242. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_background.scss +18 -0
  243. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_functions.scss +377 -0
  244. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_grid.scss +290 -0
  245. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_isolation.scss +51 -0
  246. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_margin.scss +93 -0
  247. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_media.scss +105 -0
  248. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_padding.scss +92 -0
  249. data/magneto/source/assets/bower_components/susy/sass/susy/language/susyone/_settings.scss +56 -0
  250. data/magneto/source/assets/bower_components/susy/sass/susy/output/_float.scss +9 -0
  251. data/magneto/source/assets/bower_components/susy/sass/susy/output/_shared.scss +15 -0
  252. data/magneto/source/assets/bower_components/susy/sass/susy/output/_support.scss +9 -0
  253. data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_container.scss +16 -0
  254. data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_end.scss +40 -0
  255. data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_isolate.scss +22 -0
  256. data/magneto/source/assets/bower_components/susy/sass/susy/output/float/_span.scss +35 -0
  257. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_background.scss +26 -0
  258. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_container.scss +21 -0
  259. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_direction.scss +42 -0
  260. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_inspect.scss +22 -0
  261. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_margins.scss +23 -0
  262. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_output.scss +14 -0
  263. data/magneto/source/assets/bower_components/susy/sass/susy/output/shared/_padding.scss +23 -0
  264. data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_background.scss +58 -0
  265. data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_box-sizing.scss +19 -0
  266. data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_clearfix.scss +18 -0
  267. data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_prefix.scss +19 -0
  268. data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_rem.scss +22 -0
  269. data/magneto/source/assets/bower_components/susy/sass/susy/output/support/_support.scss +85 -0
  270. data/magneto/source/assets/bower_components/susy/sass/susy/su/_grid.scss +103 -0
  271. data/magneto/source/assets/bower_components/susy/sass/susy/su/_settings.scss +73 -0
  272. data/magneto/source/assets/bower_components/susy/sass/susy/su/_utilities.scss +111 -0
  273. data/magneto/source/assets/bower_components/susy/sass/susy/su/_validation.scss +57 -0
  274. data/magneto/source/assets/bower_components/susy/templates/project/_grids.scss +9 -0
  275. data/magneto/source/assets/bower_components/susy/templates/project/manifest.rb +15 -0
  276. data/magneto/source/assets/bower_components/susy/templates/project/style.scss +4 -0
  277. data/magneto/source/assets/images/favicon_maker.rb +34 -0
  278. data/magneto/source/assets/javascripts/application.js.coffee +0 -0
  279. data/magneto/source/assets/stylesheets/application.css.sass +1 -0
  280. data/magneto/source/assets/stylesheets/interface/_base.scss +20 -0
  281. data/magneto/source/assets/stylesheets/interface/_buttons.scss +25 -0
  282. data/magneto/source/assets/stylesheets/interface/_dropdowns.scss +56 -0
  283. data/magneto/source/assets/stylesheets/interface/_flashes.scss +29 -0
  284. data/magneto/source/assets/stylesheets/interface/_footers.scss +79 -0
  285. data/magneto/source/assets/stylesheets/interface/_forms.scss +72 -0
  286. data/magneto/source/assets/stylesheets/interface/_functions.scss +42 -0
  287. data/magneto/source/assets/stylesheets/interface/_grid.scss +31 -0
  288. data/magneto/source/assets/stylesheets/interface/_icons.scss +12 -0
  289. data/magneto/source/assets/stylesheets/interface/_lists.scss +37 -0
  290. data/magneto/source/assets/stylesheets/interface/_mixins.scss +19 -0
  291. data/magneto/source/assets/stylesheets/interface/_plans.scss +52 -0
  292. data/magneto/source/assets/stylesheets/interface/_states.scss +24 -0
  293. data/magneto/source/assets/stylesheets/interface/_tables.scss +33 -0
  294. data/magneto/source/assets/stylesheets/interface/_typography.scss +117 -0
  295. data/magneto/source/assets/stylesheets/interface/_variables.scss +156 -0
  296. data/magneto/source/assets/stylesheets/interface/navigations/_navigations.scss +16 -0
  297. data/magneto/source/assets/stylesheets/interface/navigations/_sidebar.scss +53 -0
  298. data/magneto/source/assets/stylesheets/interface/navigations/_thin_sidebar.scss +50 -0
  299. data/magneto/source/assets/stylesheets/interface/navigations/_top_bar.scss +60 -0
  300. data/magneto/source/author.hbs +41 -0
  301. data/magneto/source/default.hbs +46 -0
  302. data/magneto/source/index.hbs +27 -0
  303. data/magneto/source/page.hbs +31 -0
  304. data/magneto/source/partials/loop.hbs +25 -0
  305. data/magneto/source/partials/navigation.hbs +13 -0
  306. data/magneto/source/post.hbs +99 -0
  307. data/magneto/source/tag.hbs +32 -0
  308. metadata +375 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 096796bd5a2c1a9f4b543e3e00e790248bf3f02a
4
- data.tar.gz: a19cbc4b5e017adf093d735ed40ad7850951bbe7
3
+ metadata.gz: 2af715b70b981a000fcb734a59204c42ac672a88
4
+ data.tar.gz: 0fb6b78e1e7d7e47fd673bf996c330dd7901ff48
5
5
  SHA512:
6
- metadata.gz: e6de91fd33ef1342fcf2c1229ec02b757ff08881e55bddbd66fee5f5034eccead3b4f41fa4805436f70fad3f51257a9b1538fe5dd72539cc4024ebffa511fc57
7
- data.tar.gz: a9d7ac27989e7a4846899bcc1bd8a8461d5baa86024aaad4dc5f210679c2fff6dd8986520043d9de89470a8be31b32372c5e036a5a37c92039f5530b2446b412
6
+ metadata.gz: 9f6a815ad6e954e1ed2d76e4c4c375e5d1b688a89f9d2b37da0249ba1ef2567f01f0d42cc340262ed312df9d947143df48bcb84e4e7dffe70163ad827e315ab6
7
+ data.tar.gz: a401b130eb170218661968e2a98be915a225e4b6851782a5d185d6e80209a77f845d6a21f791a06072bcaa62a0d2f8d9379d975c162e33c6c624af7c54c86148
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ *.gem
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 simply the process of installing, updating, and theming Ghost, a popular blogging platform. https://ghost.org
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
- choose do |menu|
13
- menu.prompt = "What do you want to do? "
14
- menu.choice('Install Ghost') {
15
- dir = ask "Where would you like to install Ghost? (default #{Dir.home}/Applications/Ghost)"
16
- dir = "#{Dir.home}/Applications/Ghost" if dir.blank?
17
- installer = Ghost::Manager::Installer.new dir
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
- menu.choice('Update Ghost Install') {
22
- ghost_install = ask "Please enter the path to your ghost installation: (default #{Dir.home}/Applications/Ghost) "
23
- ghost_install = "#{Dir.home}/Applications/Ghost" if ghost_install.blank?
24
- installer = Ghost::Manager::Installer.new ghost_install
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
- menu.choice('Generate Theme') {
29
- puts ""
30
- say "<%= color('Sorry theme generation is not yet supported. We will add support for this option when our Yeoman generator has been released.', :red, :bold) %>"
31
- # ghost_install = ask "Please enter the path to your ghost installation: (default #{Dir.home}/Applications/Ghost) "
32
- # ghost_install = "#{Dir.home}/Applications/Ghost" if ghost_install.blank?
33
- # installer = Ghost::Manager::Installer.new ghost_install
34
- # installer.generate_theme
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
@@ -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", "~> 1.10"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "highline", "~> 1.7.3"
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,4 @@
1
+ {
2
+ "ghost-installation": "/Users/joshuat/Github/ghost-manager/Ghost",
3
+ "ghost-theme": "magneto"
4
+ }
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Ghost
2
2
  module Manager
3
- VERSION = "0.0.1"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
data/lib/ghost/manager.rb CHANGED
@@ -1,65 +1,14 @@
1
1
  require "ghost/manager/version"
2
- require "highline/import"
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
@@ -0,0 +1,3 @@
1
+ {
2
+ "ghost-installation": "<%= @ghost_directory %>"
3
+ }
data/magneto/.bowerrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "directory" : "source/assets/bower_components"
3
+ }
@@ -0,0 +1,3 @@
1
+ *.DS_Store
2
+ *.sass-cache
3
+ /node_modules/*
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "magneto",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "compass-mixins": "~1.0.2",
6
+ "font-awesome": "FortAwesome/Font-Awesome",
7
+ "modular-scale": "~2.1.1",
8
+ "normalize-css": "normalize.css#~3.0.3",
9
+ "susy": "~2.2.6"
10
+ }
11
+ }
@@ -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>