middlemac 2.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 (230) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.yardopts +7 -0
  4. data/CHANGELOG.md +43 -0
  5. data/Gemfile +18 -0
  6. data/LICENSE.md +22 -0
  7. data/README.md +225 -0
  8. data/Rakefile +213 -0
  9. data/bin/middlemac +103 -0
  10. data/documentation_project/.gitignore +37 -0
  11. data/documentation_project/Contents/Info.plist.erb +42 -0
  12. data/documentation_project/Contents/Resources/Base.lproj/010_what_is_middlemac/index.html.md.erb +126 -0
  13. data/documentation_project/Contents/Resources/Base.lproj/020_setup_tutorial/index.html.md.erb +168 -0
  14. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/10_markdown_skill.html.md.erb +63 -0
  15. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/20_frontmatter_skill.html.md.erb +54 -0
  16. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/30_middleman_skill.html.md.erb +93 -0
  17. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/40_ruby_skill.html.md.erb +67 -0
  18. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/50_ruby_ecosystem.html.md.erb +136 -0
  19. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/60_filetypes_skill.html.md.erb +165 -0
  20. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/index.html.md.erb +35 -0
  21. data/documentation_project/Contents/Resources/Base.lproj/040_setup/index.html.md.erb +88 -0
  22. data/documentation_project/Contents/Resources/Base.lproj/050_structure/010_directories_and_images.html.md.erb +176 -0
  23. data/documentation_project/Contents/Resources/Base.lproj/050_structure/020_layouts_and_templates.html.md.erb +71 -0
  24. data/documentation_project/Contents/Resources/Base.lproj/050_structure/025_css.html.md.erb +71 -0
  25. data/documentation_project/Contents/Resources/Base.lproj/050_structure/030_groups.html.md.erb +83 -0
  26. data/documentation_project/Contents/Resources/Base.lproj/050_structure/040_breadcrumbs.html.md.erb +43 -0
  27. data/documentation_project/Contents/Resources/Base.lproj/050_structure/050_navigator.html.md.erb +26 -0
  28. data/documentation_project/Contents/Resources/Base.lproj/050_structure/060_targets.html.md.erb +63 -0
  29. data/documentation_project/Contents/Resources/Base.lproj/050_structure/070_features.html.md.erb +122 -0
  30. data/documentation_project/Contents/Resources/Base.lproj/050_structure/index.html.md.erb +21 -0
  31. data/documentation_project/Contents/Resources/Base.lproj/050_structure/not_free.html.md.erb +43 -0
  32. data/documentation_project/Contents/Resources/Base.lproj/050_structure/not_pro.html.md.erb +43 -0
  33. data/documentation_project/Contents/Resources/Base.lproj/060_content/010_frontmatter.html.md.erb +88 -0
  34. data/documentation_project/Contents/Resources/Base.lproj/060_content/030_helpers.html.md.erb +247 -0
  35. data/documentation_project/Contents/Resources/Base.lproj/060_content/040_partials.html.md.erb +121 -0
  36. data/documentation_project/Contents/Resources/Base.lproj/060_content/050_resources.html.md.erb +60 -0
  37. data/documentation_project/Contents/Resources/Base.lproj/060_content/070_including_excluding.html.md.erb +68 -0
  38. data/documentation_project/Contents/Resources/Base.lproj/060_content/080_markdown_links_images.html.md.erb +93 -0
  39. data/documentation_project/Contents/Resources/Base.lproj/060_content/090_css_image_sizes.html.md.erb +90 -0
  40. data/documentation_project/Contents/Resources/Base.lproj/060_content/100_using_local_data.html.md.erb +37 -0
  41. data/documentation_project/Contents/Resources/Base.lproj/060_content/index.html.md.erb +21 -0
  42. data/documentation_project/Contents/Resources/Base.lproj/070_preview_build/index.html.md.erb +78 -0
  43. data/documentation_project/Contents/Resources/Base.lproj/090_build_application/10_apple_help_setup.html.md.erb +110 -0
  44. data/documentation_project/Contents/Resources/Base.lproj/090_build_application/20_xcode_integration.html.md.erb +64 -0
  45. data/documentation_project/Contents/Resources/Base.lproj/090_build_application/index.html.md.erb +25 -0
  46. data/documentation_project/Contents/Resources/Base.lproj/100_reference/10_cli_ref.html.md.erb +72 -0
  47. data/documentation_project/Contents/Resources/Base.lproj/100_reference/20_config_ref.html.md.erb +56 -0
  48. data/documentation_project/Contents/Resources/Base.lproj/100_reference/30_helpers_ext_ref.html.md.erb +51 -0
  49. data/documentation_project/Contents/Resources/Base.lproj/100_reference/40_helpers_ref.html.md.erb +45 -0
  50. data/documentation_project/Contents/Resources/Base.lproj/100_reference/50_resource_ext_ref.html.md.erb +25 -0
  51. data/documentation_project/Contents/Resources/Base.lproj/100_reference/index.html.md.erb +26 -0
  52. data/documentation_project/Contents/Resources/Base.lproj/110_acknowledgements/index.html.md.erb +61 -0
  53. data/documentation_project/Contents/Resources/Base.lproj/120_backwards_compatibility/index.html.md.erb +88 -0
  54. data/documentation_project/Contents/Resources/Base.lproj/130_all_help_content/index.html.md.erb +15 -0
  55. data/documentation_project/Contents/Resources/Base.lproj/InfoPlist.strings.erb +10 -0
  56. data/documentation_project/Contents/Resources/Base.lproj/assets/_data/globals.yml +11 -0
  57. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/layout-html4.haml +22 -0
  58. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/layout-xhtml.haml +28 -0
  59. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-large.haml +30 -0
  60. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-medium.haml +30 -0
  61. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-small.haml +30 -0
  62. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/FontAwesome.otf +0 -0
  63. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  64. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.svg +655 -0
  65. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  66. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  67. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  68. data/documentation_project/Contents/Resources/Base.lproj/assets/images/all-sample.png +0 -0
  69. data/documentation_project/Contents/Resources/Base.lproj/assets/images/all-sample@2x.png +0 -0
  70. data/documentation_project/Contents/Resources/Base.lproj/assets/images/free-middlemac-logo-small.png +0 -0
  71. data/documentation_project/Contents/Resources/Base.lproj/assets/images/free-middlemac-logo-small@2x.png +0 -0
  72. data/documentation_project/Contents/Resources/Base.lproj/assets/images/free-middlemac-logo.png +0 -0
  73. data/documentation_project/Contents/Resources/Base.lproj/assets/images/free-middlemac-logo@2x.png +0 -0
  74. data/documentation_project/Contents/Resources/Base.lproj/assets/images/middlemac-logo-small.png +0 -0
  75. data/documentation_project/Contents/Resources/Base.lproj/assets/images/middlemac-logo-small@2x.png +0 -0
  76. data/documentation_project/Contents/Resources/Base.lproj/assets/images/middlemac-logo.png +0 -0
  77. data/documentation_project/Contents/Resources/Base.lproj/assets/images/middlemac-logo@2x.png +0 -0
  78. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras-small.png +0 -0
  79. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras-small@2x.png +0 -0
  80. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras.png +0 -0
  81. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras@2x.png +0 -0
  82. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras-small.png +0 -0
  83. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras-small@2x.png +0 -0
  84. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras.png +0 -0
  85. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras@2x.png +0 -0
  86. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-pagegroups/middleman-pagegroups-small.png +0 -0
  87. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-pagegroups/middleman-pagegroups.png +0 -0
  88. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/free-logo-small.png +0 -0
  89. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/free-logo-small@2x.png +0 -0
  90. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/free-logo.png +0 -0
  91. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/free-logo@2x.png +0 -0
  92. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/pro-logo-small.png +0 -0
  93. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/pro-logo-small@2x.png +0 -0
  94. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/pro-logo.png +0 -0
  95. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-targets/pro-logo@2x.png +0 -0
  96. data/documentation_project/Contents/Resources/Base.lproj/assets/images/pro-middlemac-logo-small.png +0 -0
  97. data/documentation_project/Contents/Resources/Base.lproj/assets/images/pro-middlemac-logo-small@2x.png +0 -0
  98. data/documentation_project/Contents/Resources/Base.lproj/assets/images/pro-middlemac-logo.png +0 -0
  99. data/documentation_project/Contents/Resources/Base.lproj/assets/images/pro-middlemac-logo@2x.png +0 -0
  100. data/documentation_project/Contents/Resources/Base.lproj/assets/javascripts/all.js +1 -0
  101. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs.haml +11 -0
  102. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs_alt.haml +15 -0
  103. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_brethren.haml +18 -0
  104. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_brethren_index.haml +14 -0
  105. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_legitimate_children.haml +16 -0
  106. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_prev_next.haml +21 -0
  107. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_toc_index.haml +21 -0
  108. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_config.erb +200 -0
  109. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_helpers.erb +146 -0
  110. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_helpers_extended.erb +135 -0
  111. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_config.erb +207 -0
  112. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_helpers.erb +297 -0
  113. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_helpers_extended.erb +96 -0
  114. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_config.erb +744 -0
  115. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers.erb +710 -0
  116. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers_css.erb +523 -0
  117. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers_extended.erb +56 -0
  118. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_resources.erb +540 -0
  119. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_targets_config.erb +402 -0
  120. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_targets_helpers.erb +235 -0
  121. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_targets_helpers_extended.erb +138 -0
  122. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_targets_instance.erb +81 -0
  123. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_targets_resources.erb +109 -0
  124. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_apple_helpbook.scss +946 -0
  125. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_github.scss +61 -0
  126. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_normalize.scss +374 -0
  127. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/breadcrumb-separator-light.png +0 -0
  128. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/image_sizes.css.erb +8 -0
  129. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/style.css.scss +4 -0
  130. data/documentation_project/Contents/Resources/Base.lproj/index.html.md.erb +31 -0
  131. data/documentation_project/Contents/Resources/shared/free-icon_256x256.png +0 -0
  132. data/documentation_project/Contents/Resources/shared/free-icon_256x256@2x.png +0 -0
  133. data/documentation_project/Contents/Resources/shared/free-icon_32x32.png +0 -0
  134. data/documentation_project/Contents/Resources/shared/free-icon_32x32@2x.png +0 -0
  135. data/documentation_project/Contents/Resources/shared/icon_256x256.png +0 -0
  136. data/documentation_project/Contents/Resources/shared/icon_256x256@2x.png +0 -0
  137. data/documentation_project/Contents/Resources/shared/icon_32x32.png +0 -0
  138. data/documentation_project/Contents/Resources/shared/icon_32x32@2x.png +0 -0
  139. data/documentation_project/Contents/Resources/shared/pro-icon_256x256.png +0 -0
  140. data/documentation_project/Contents/Resources/shared/pro-icon_256x256@2x.png +0 -0
  141. data/documentation_project/Contents/Resources/shared/pro-icon_32x32.png +0 -0
  142. data/documentation_project/Contents/Resources/shared/pro-icon_32x32@2x.png +0 -0
  143. data/documentation_project/Gemfile +51 -0
  144. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/project.pbxproj +529 -0
  145. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  146. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/Help (free).xcscheme +80 -0
  147. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/HelpViewerApp (free).xcscheme +91 -0
  148. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/HelpViewerApp (pro).xcscheme +91 -0
  149. data/documentation_project/HelpViewerApp/HelpViewerApp/AppDelegate.h +16 -0
  150. data/documentation_project/HelpViewerApp/HelpViewerApp/AppDelegate.m +45 -0
  151. data/documentation_project/HelpViewerApp/HelpViewerApp/Assets.xcassets/AppIcon.appiconset/Contents.json +58 -0
  152. data/documentation_project/HelpViewerApp/HelpViewerApp/Base.lproj/MainMenu.xib +115 -0
  153. data/documentation_project/HelpViewerApp/HelpViewerApp/Info-free.plist +38 -0
  154. data/documentation_project/HelpViewerApp/HelpViewerApp/Info-pro.plist +38 -0
  155. data/documentation_project/HelpViewerApp/HelpViewerApp/main.m +13 -0
  156. data/documentation_project/HelpViewerApp/README.md +43 -0
  157. data/documentation_project/Middlemac (free).help/.gitignore +3 -0
  158. data/documentation_project/Middlemac (pro).help/.gitignore +3 -0
  159. data/documentation_project/config.rb +309 -0
  160. data/documentation_project/middlemac.webloc +0 -0
  161. data/features/main_features.feature +44 -0
  162. data/features/support/env.rb +20 -0
  163. data/fixtures/middlemac_app/.gitignore +25 -0
  164. data/fixtures/middlemac_app/Contents/Info.plist.erb +42 -0
  165. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/10_hello_world_file.html.md.erb +22 -0
  166. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/20_goodbye_world_file.html.md.erb +22 -0
  167. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/index.html.md.erb +24 -0
  168. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/page_one.html.md.erb +20 -0
  169. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/page_two.html.md.erb +19 -0
  170. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/01_nested_group_example/01_page_one.html.md.erb +18 -0
  171. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/01_nested_group_example/02_pagina_dos.html.md.erb +19 -0
  172. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/01_nested_group_example/03_page_san.html.md.erb +18 -0
  173. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/01_nested_group_example/index.html.md.erb +18 -0
  174. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/02_page_two.html.md.erb +19 -0
  175. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/03_page_three.html.md.erb +19 -0
  176. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/index.html.md.erb +24 -0
  177. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/45_testing_world_file.html.md.erb +55 -0
  178. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/50_entire_world_file.html.md.erb +15 -0
  179. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/InfoPlist.strings.erb +10 -0
  180. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/_new_style_partial.erb +1 -0
  181. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_data/globals.yml +11 -0
  182. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/layout-html4.haml +22 -0
  183. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/layout-xhtml.haml +28 -0
  184. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-large.haml +30 -0
  185. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-medium.haml +30 -0
  186. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-small.haml +30 -0
  187. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/FontAwesome.otf +0 -0
  188. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  189. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.svg +655 -0
  190. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  191. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  192. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  193. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/images/_empty_directory.html.md.erb +1 -0
  194. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/javascripts/all.js +1 -0
  195. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs.haml +11 -0
  196. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs_alt.haml +15 -0
  197. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_brethren.haml +18 -0
  198. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_brethren_index.haml +14 -0
  199. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_legitimate_children.haml +16 -0
  200. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_prev_next.haml +21 -0
  201. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_toc_index.haml +21 -0
  202. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_partials_dir_partial.erb +1 -0
  203. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_apple_helpbook.scss +946 -0
  204. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_github.scss +61 -0
  205. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_normalize.scss +374 -0
  206. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/breadcrumb-separator-light.png +0 -0
  207. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/image_sizes.css.erb +8 -0
  208. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/style.css.scss +4 -0
  209. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/index.html.md.erb +17 -0
  210. data/fixtures/middlemac_app/Contents/Resources/shared/icon_256x256.png +0 -0
  211. data/fixtures/middlemac_app/Contents/Resources/shared/icon_256x256@2x.png +0 -0
  212. data/fixtures/middlemac_app/Contents/Resources/shared/icon_32x32.png +0 -0
  213. data/fixtures/middlemac_app/Contents/Resources/shared/icon_32x32@2x.png +0 -0
  214. data/fixtures/middlemac_app/Gemfile +51 -0
  215. data/fixtures/middlemac_app/config.rb +309 -0
  216. data/fixtures/middlemac_app/middlemac.webloc +0 -0
  217. data/lib/middlemac.rb +6 -0
  218. data/lib/middlemac/extension.rb +274 -0
  219. data/lib/middlemac/version.rb +5 -0
  220. data/middlemac.gemspec +38 -0
  221. data/yard/readme.md +9 -0
  222. data/yard/template-grouped/default/module/html/method_details_list.erb +11 -0
  223. data/yard/template-partials/default/method_details/setup.rb +4 -0
  224. data/yard/template-partials/default/module/html/attribute_details.erb +9 -0
  225. data/yard/template-partials/default/module/html/method_details_list.erb +10 -0
  226. data/yard/template-partials/default/module/setup.rb +6 -0
  227. data/yard/template-partials/default/onefile/html/layout.erb +1 -0
  228. data/yard/template-partials/default/onefile/html/setup.rb +4 -0
  229. data/yard/yard_extensions.rb +109 -0
  230. metadata +454 -0
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ################################################################################
4
+ # middlemac
5
+ # This file constitutes the command line interface for middlemac
6
+ ################################################################################
7
+
8
+ require 'thor'
9
+ require 'fileutils'
10
+ require_relative '../lib/middlemac/version'
11
+
12
+
13
+ module MiddlemacCli
14
+
15
+ class Cli < Thor
16
+
17
+ map %w[--version -v] => :__print_version
18
+
19
+ ############################################################
20
+ # help
21
+ # Override to add additional description.
22
+ ############################################################
23
+ def help(*args)
24
+ if args.count == 0
25
+ puts <<-HEREDOC
26
+
27
+ middlemac version #{Middleman::Middlemac::VERSION}
28
+
29
+ This gem adds functionality to Middleman and is not executable on its own,
30
+ other than for generating the documentation sample project and/or a blank
31
+ starter project. Instead, you must add this gem to your Middleman project's
32
+ `Gemfile` and then activate it in your `config.rb` file.
33
+
34
+ HEREDOC
35
+ end
36
+ super
37
+ end
38
+
39
+
40
+ ############################################################
41
+ # documentation
42
+ ############################################################
43
+ desc 'documentation', 'Install the sample project into your current working directory.'
44
+ long_desc <<-HEREDOC
45
+ `documentation` will produce a sample project named `middlemac-docs/`
46
+ in your current working directory. This sample uses the features of this gem.
47
+ You can then serve this new project to read the documentation by:
48
+
49
+ cd middlemac-docs
50
+ bundle install
51
+ bundle exec middleman server
52
+
53
+ HEREDOC
54
+ def documentation
55
+ source = File.join('..', '..', 'documentation_project', '.')
56
+ source = File.expand_path(source, __FILE__)
57
+ dest = File.expand_path(File.join('.', 'middlemac-docs', '.'))
58
+ FileUtils.cp_r(source, dest)
59
+ puts "middlemac installed the project in\n#{dest}"
60
+ end
61
+
62
+
63
+ ############################################################
64
+ # init
65
+ ############################################################
66
+ desc 'init', 'Install a (mostly) blank project into your current working directory.'
67
+ long_desc <<-HEREDOC
68
+ `init` will produce a nearly blank project named `middlemac-init/` in you
69
+ current working directory. It is a minimal, buildable project that you can
70
+ serve and test by:
71
+
72
+ cd middlemac-init
73
+ bundle install
74
+ bundle exec middleman server
75
+
76
+ HEREDOC
77
+ def init
78
+ source = File.join('..', '..', 'fixtures', 'middlemac_app', '.')
79
+ source = File.expand_path(source, __FILE__)
80
+ dest = File.expand_path(File.join('.', 'middlemac-init', '.'))
81
+ FileUtils.cp_r(source, dest)
82
+ puts "middlemac installed the project in\n#{dest}"
83
+ end
84
+
85
+
86
+ ############################################################
87
+ # __print_version
88
+ ############################################################
89
+ desc '--version, -v', 'print the version'
90
+ def __print_version
91
+ puts "middlemac-extras version #{Middleman::Middlemac::VERSION}"
92
+ end
93
+
94
+ end # class Cli
95
+
96
+ end # module MiddlemacCli
97
+
98
+
99
+ ###########################################################
100
+ # Main
101
+ ###########################################################
102
+
103
+ MiddlemacCli::Cli.start(ARGV)
@@ -0,0 +1,37 @@
1
+ # Rubymine noise
2
+ .idea/
3
+
4
+ # BBedit noise
5
+ *.bbprojectd
6
+
7
+ # Mac OS X noise
8
+ .DS_Store
9
+
10
+ # Ignore bundler lock files
11
+ Gemfile.lock
12
+
13
+ # Ignore pkg folder
14
+ /pkg
15
+
16
+ # Ignore build folders
17
+ .rbenv-*
18
+ .ruby-gemset
19
+ .ruby-version
20
+ .sass-cache
21
+ .sassc
22
+ .tmp
23
+ build*
24
+ Makefile
25
+ tmp
26
+
27
+ # XCode user-specific files
28
+ *.pbxuser
29
+ !default.pbxuser
30
+ *.mode1v3
31
+ !default.mode1v3
32
+ *.mode2v3
33
+ !default.mode2v3
34
+ *.perspectivev3
35
+ !default.perspectivev3
36
+ xcuserdata/
37
+
@@ -0,0 +1,42 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleIdentifier</key>
6
+ <string><%= cfBundleIdentifier %></string>
7
+ <key>CFBundleName</key>
8
+ <string><%= cfBundleName %></string>
9
+ <key>HPDBookAccessPath</key>
10
+ <string>index.html</string>
11
+ <key>HPDBookIndexPath</key>
12
+ <string><%= cfBundleName %>.helpindex</string>
13
+ <key>HPDBookTitle</key>
14
+ <string><%= cfBundleName %> Help</string>
15
+ <key>CFBundleDevelopmentRegion</key>
16
+ <string>en-us</string>
17
+ <key>CFBundleShortVersionString</key>
18
+ <string><%= config[:targets][config[:target]][:CFBundleShortVersionString] || product_version %></string>
19
+ <key>CFBundleVersion</key>
20
+ <string><%= config[:targets][config[:target]][:CFBundleVersion] || product_version %></string>
21
+ <key>HPDBookIconPath</key>
22
+ <string><%= config[:targets][config[:target]][:HPDBookIconPath] || 'shared/icon_32x32@2x.png' %></string>
23
+ <key>HPDBookKBProduct</key>
24
+ <string><%= config[:targets][config[:target]][:HPDBookKBProduct] %></string>
25
+ <key>HPDBookKBURL</key>
26
+ <string><%= config[:targets][config[:target]][:HPDBookKBURL] || product_uri %></string>
27
+ <key>HPDBookRemoteURL</key>
28
+ <string><%= config[:targets][config[:target]][:HPDBookRemoteURL] %></string>
29
+ <key>HPDBookTopicListCSSPath</key>
30
+ <string><%= config[:targets][config[:target]][:HPDBookTopicListCSSPath] %></string>
31
+ <key>HPDBookTopicListTemplatePath</key>
32
+ <string><%= config[:targets][config[:target]][:HPDBookTopicListTemplatePath] %></string>
33
+ <key>CFBundleInfoDictionaryVersion</key>
34
+ <string>6.0</string>
35
+ <key>CFBundlePackageType</key>
36
+ <string>BNDL</string>
37
+ <key>CFBundleSignature</key>
38
+ <string>hbwr</string>
39
+ <key>HPDBookType</key>
40
+ <string>3</string>
41
+ </dict>
42
+ </plist>
@@ -0,0 +1,126 @@
1
+ ---
2
+ title: What is <em>Middlemac</em>?
3
+ blurb: Discover what <em>Middlemac</em> can do for you, why it exists, and
4
+ what it’s made out of.
5
+ layout: template-logo-medium
6
+ ---
7
+ <%= md_links %>
8
+ <%= md_images %>
9
+
10
+
11
+ <%= current_page.data.title %>
12
+ ==============================
13
+
14
+ <%= current_page.data.blurb %>
15
+
16
+ ## What does _Middlemac_ do?
17
+
18
+ _Middlemac_ makes it simple to do this in Terminal…
19
+
20
+ `bundle exec middleman build_all`
21
+
22
+ …and end up with versions of your help books specific to each version of your
23
+ Mac OS X application, with all of the Apple-required files in the Apple-required
24
+ formats in the correct locations of your Xcode source directory. Simply build
25
+ your help target, run your application, and find that it just works.
26
+
27
+ ## Yeah, but what does it _do_?
28
+
29
+ _Middlemac_, using _Middleman_, takes a directory of source files, processes all
30
+ of the contents, and produces a finished Apple Help Book. The source files can
31
+ be standard HTML or Markdown, and _Middlemac_ takes care of nearly all of the
32
+ nitty gritty details for you.
33
+
34
+ - Write your help files with plain text using the
35
+ [Markdown](http://kramdown.gettalong.org/) format.
36
+
37
+ ~~~ markdown
38
+ # Read this headline!
39
+ Markdown makes it easy to write text that’s legible in its text form and that
40
+ renders very easily to HTML.
41
+ ~~~
42
+
43
+ - It decouples your content from your visual design and from HTML document
44
+ formats via the use of [templates][templates]. The templates can be used
45
+ as-is or easily tweaked to suit your needs, and they include a basic,
46
+ Apple-like CSS stylesheet offering a reasonably attractive out-of-the-box
47
+ appearance.
48
+
49
+ - Single or multiple build [targets][targets], e.g., your `pro` target can
50
+ include content specific to the professional version of your application.
51
+ **For example, the current target of this documentation is `<%= target_name
52
+ %>`**.
53
+
54
+ - [Features][features] support for each build target. For example each of your
55
+ build targets can specify whether or not they support specific features, and
56
+ this content will be included or excluded as your needs require. This offers
57
+ highly granular control versus trying to manage complex targets on their own.
58
+
59
+ - A low [learning curve][skills_refresher-index], especially if you’re already a
60
+ developer.
61
+
62
+ - A set of conventions and tools that make automatic tables of contents,
63
+ automatic sections, breadcrumbs, and other automatic navigation behavior
64
+ simple to implement.
65
+
66
+ - [Partials][partials], [helpers][helpers], and [resource methods][resources]
67
+ that make your static help documents appear more dynamic while
68
+ [keeping yourself DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself).
69
+
70
+ - Automatic management of `Info.plist` and `InfoPlist.strings` files make it
71
+ simple to work with Xcode.
72
+
73
+ - Automatic use of Apple’s help indexer tool ensures that the Help Viewer
74
+ is always aware of your content.
75
+
76
+
77
+ ## Why _Middlemac_ exists
78
+
79
+ _Middlemac_ exists to solve these two problems:
80
+
81
+ - **How do I build help files for my Mac OS X applications?** Although
82
+ ostensibly a simple set of HTML files, a Mac OS X help book requires careful
83
+ application of data in order for the help book to interface properly with
84
+ your application. And for historical reasons, some of the pages have to use
85
+ different HTML versions.
86
+
87
+ - **How do I manage help files for multiple versions of my Mac OS X
88
+ applications, each of which has a different feature set?** Although
89
+ _Middlemac_ is great for applications that have a single version, it really
90
+ excels when managing applications that have multiple versions (such as Free
91
+ or Pro). _Middlemac_ makes it simple to produce help documents specific to
92
+ these versions, all using the same source.
93
+
94
+
95
+ ## What is _Middlemac_ made of?
96
+
97
+ _Middlemac_ is a system of Gems that act as an extension to _Middleman_, a
98
+ static site building tool that offers a lot of dynamism to static web sites.
99
+ Without _Middleman_, nothing else in _Middlemac_ would work.
100
+
101
+ _Middlemac_ consists of the gems:
102
+
103
+ `middlemac`
104
+
105
+ : This gem requires all of the other gems in the system and adds several
106
+ helpers to make working with target and feature much more convenient. It’s
107
+ also responsible for providing the basic help book template and managing the
108
+ Apple help indexer.
109
+
110
+ `middlemac-extras`
111
+
112
+ : This gem adds features to _Middleman_ to make working with images and
113
+ Markdown reference style links easier. It’s released as a separate gem
114
+ because it can still be useful for standard _Middleman_ projects.
115
+
116
+ `middleman-pagegroups`
117
+
118
+ : This gem offers all of the automatic navigation features used by
119
+ _Middlemac_. It’s released as a separate gem because it can still be useful
120
+ for standard _Middleman_ projects.
121
+
122
+ `middleman-targets`
123
+
124
+ : This gem gives _Middleman_ the ability to build and serve multiple targets.
125
+ It’s released as a separate gem because it can still be useful for
126
+ standard _Middleman_ projects.
@@ -0,0 +1,168 @@
1
+ ---
2
+ title: Setting up <em>Middlemac</em>
3
+ blurb: Read this article to learn how install <em>Middlemac</em> and see
4
+ that it’s running on your system.
5
+ layout: template-logo-small
6
+ ---
7
+ <%= md_links %>
8
+ <%= md_images %>
9
+
10
+
11
+ <%= current_page.data.title %>
12
+ ==============================
13
+
14
+ Getting Started
15
+ ---------------
16
+
17
+ _Middlemac_’s documentation is included in the starter project (and more than
18
+ likely at [http://www.balthisar.com/manuals](http://www.balthisar.com/manuals)).
19
+ There are multiple ways you could be reading this content now, but for now we
20
+ will assume that you have not yet installed _Middlemac_ and its dependencies.
21
+
22
+ To get started and read the full documentation, make sure that your system has
23
+ [Ruby](https://www.ruby-lang.org/) installed (it comes pre-installed on Mac OS X
24
+ and some Linuxes), and follow these steps below.
25
+
26
+ We now recommend the use of the Ruby Version Manager [(RVM)](https://rvm.io/).
27
+ While installation and setup of RVM is entirely outside the scope of this
28
+ tutorial, it avoids the use of `sudo` and the occasional hassles involved with
29
+ using the built in version of Ruby.
30
+ {:.note}
31
+
32
+ Note that depending on your system’s setup you might have to prefix some of the
33
+ commands below with `sudo`. For example if the instruction is given as
34
+ `gem install bundler` and a permissions error is reported, you may probably
35
+ have to use `sudo gem install bundler` instead.
36
+ {:.note}
37
+
38
+ If you’re behind a proxy and haven’t already setup an `http-proxy` environment
39
+ variable, then that previous clause is a good hint and Google is your friend.
40
+ {:.note}
41
+
42
+
43
+ Quick version, if you don’t want to read details
44
+ ------------------------------------------------
45
+
46
+ In your Terminal, do each of the following:
47
+
48
+ ~~~ bash
49
+ xcode-select --install
50
+ gem install middlemac
51
+ middlemac documentation
52
+ cd middlemac-docs
53
+ gem install bundler
54
+ bundle install
55
+ bundle exec middleman --target free
56
+ open middlemac.webloc
57
+ ~~~
58
+
59
+ Because the penultimate command started the server which keeps control of the
60
+ terminal, you’ll have to open the `.webloc` file in another terminal session,
61
+ or simply double-click it.
62
+
63
+ If you’re on Linux and `open middlemac.webloc` command doesn’t work for you,
64
+ then use your preferred web browser and go to
65
+ [http://localhost:4567/Resources/Base.lproj/](http://localhost:4567/Resources/Base.lproj/).
66
+
67
+ If you’ve setup your own custom domain, you’ll have to specify that instead of
68
+ `localhost`.
69
+
70
+
71
+ Similar to above, with a bit of handholding
72
+ ----------------------------------------
73
+
74
+ ### Install Xcode
75
+
76
+ If you’re on a Mac you’ll have to install Xcode first, or at least the Xcode
77
+ command line tools. You can _try_ just installing the tools first:
78
+
79
+ ~~~ bash
80
+ xcode-select --install
81
+ ~~~
82
+
83
+ If that fails or the rest of the installation fails, then install all of Xcode.
84
+ It’s available in the App Store. It’s free of charge. And you’re using this
85
+ project to develop help for Mac OS X applications that you’re developing using
86
+ Xcode anyway. Install it, already!
87
+
88
+ Dependencies on Linux are left up to you. Most modern Linuxes will prompt you to
89
+ install packages that are missing.
90
+
91
+ _Middlemac_ works quite well on Linux, but keep in mind that Linux doesn’t have
92
+ the help indexing tool that’s required in order to build a proper help book.
93
+ Other than for generating your final help book, Linux makes a fine development
94
+ environment.
95
+ {:.note}
96
+
97
+
98
+ ### Install the `middlemac` gem
99
+
100
+ ~~~ bash
101
+ gem install middlemac
102
+ ~~~
103
+
104
+ This will fetch the gem from `rubygems.org` and install it for you.
105
+
106
+
107
+ ### Install the documentation
108
+
109
+ ~~~ bash
110
+ middlemac documentation
111
+ ~~~
112
+
113
+ This will install Middlemac’s documentation project into a new directory
114
+ `middlemac-docs`.
115
+
116
+
117
+ ### Go into the documentation directory
118
+
119
+ ~~~ bash
120
+ cd middlemac-docs
121
+ ~~~
122
+
123
+
124
+ ### Install bundler (if not already installed)
125
+
126
+ ~~~ bash
127
+ gem install bundler
128
+ ~~~
129
+
130
+ Bundler is the most common Ruby package management system, and it will be used
131
+ to ensure that all of Middlemac’s dependencies are present.
132
+
133
+
134
+ ### Make sure all of the project dependencies are met
135
+
136
+ ~~~ bash
137
+ bundle install
138
+ ~~~
139
+
140
+ This tells bundler to install the remaining gems that _Middlemac_ requires to
141
+ function.
142
+
143
+
144
+ ### Start the _Middleman_ server
145
+
146
+ _Middleman_ comes with its own HTTP server and requires no configuration. It
147
+ simply works, serving your help book as a website.
148
+
149
+ ~~~ bash
150
+ bundle exec middleman --target free
151
+ ~~~
152
+
153
+ This will start the server using our `:free` target.
154
+
155
+
156
+ ### Open the site in your browser
157
+
158
+ Simply open the `middlemac.webloc` file from Finder to view the project results
159
+ in your default browser.
160
+
161
+ Or can open the bookmark file from Terminal with `open middleman.webloc`.
162
+
163
+ Or you prefer to open the help site manually, or if the .webloc file doesn’t
164
+ work on your Linux distro, you can go to
165
+ [http://localhost:4567/Resources/Base.lproj/](http://localhost:4567/Resources/Base.lproj/).
166
+
167
+ If you’ve setup your own custom domain, you’ll have to specify that instead of
168
+ `localhost`.