middlemac 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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`.