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,35 @@
1
+ ---
2
+ title: Skills Refresher
3
+ blurb: If you don’t know a thing about Ruby or <em>Middleman</em>, don’t
4
+ worry; there’s enough information in this section to get you started.
5
+ layout: template-logo-large
6
+ navigate: true
7
+ ---
8
+ <%= md_links %>
9
+ <%= md_images %>
10
+
11
+ <%= current_page.data.title %>
12
+ ==============================
13
+
14
+ <%= current_page.data.blurb %>
15
+
16
+ _Middlemac_ uses tools you may already know. Or not.
17
+
18
+ - [Markdown](http://kramdown.gettalong.org/) is the text-based, human-readable,
19
+ easy to use format that will make writing your documentation a real pleasure.
20
+ This file is written using Markdown.
21
+ - [_Middleman_](http://middlemanapp.com) is a static HTML site generator, and is
22
+ the heart of _Middlemac_’s abilities, as well as an inspiration for the name.
23
+ - [Ruby](https://www.ruby-lang.org/en/) is the language that _Middlemac_,
24
+ _Middleman_, and many of the others tools are written with. You do not have
25
+ to learn Ruby to take advantage of _Middlemac_, although some ability to work
26
+ with it will be invaluable to you.
27
+ - HTML is the markup language that Apple requires for help books. But
28
+ _Middlemac_ promises to make things easy for you, and so…
29
+
30
+
31
+ * * *
32
+
33
+ <%= nav_legitimate_children %>
34
+
35
+ * * *
@@ -0,0 +1,88 @@
1
+ ---
2
+ title: "Workflow: Set up your Help Project"
3
+ blurb: Setting up your help project is the first step in <em>Middlemac</em>’s
4
+ workflow. Understand how to do this setup in this article.
5
+ layout: template-logo-medium
6
+ ---
7
+ <%= md_links %>
8
+ <%= md_images %>
9
+
10
+ <%= current_page.data.title %>
11
+ ==============================
12
+
13
+ <%= current_page.data.blurb %>
14
+
15
+ The file `config.rb` has settings which both affect how _Middleman_ operates as
16
+ well as how _Middlemac_ builds your help books. **If you follow the _Middlemac_
17
+ conventions, there should be no reason to change the _Middleman_ settings.**
18
+
19
+ When you open `config.rb` in your text editor, at the top you will readily
20
+ identify the start of the _Middlemac_ configuration section, which is delimited
21
+ by this block at the beginning:
22
+
23
+ ~~~ ruby
24
+ ################################################################################
25
+ # config.rb
26
+ # Configure Middleman to generate Apple HelpBook containers for multiple
27
+ # targets.
28
+ ################################################################################
29
+ ~~~
30
+
31
+ And terminated by this block at the end:
32
+
33
+ ~~~ ruby
34
+ ################################################################
35
+ # STOP! There's nothing below here that you should have to
36
+ # change. Just follow the conventions and framework provided.
37
+ ################################################################
38
+ ~~~
39
+
40
+ ## Sections
41
+
42
+ Because _Middlemac_ is made from several components, its key configuration
43
+ is performed in several different blocks. The file is also very well commented,
44
+ and the [API Reference][config_ref] contains specific documentation for each
45
+ setting.
46
+
47
+ However the `targets` hash bears explaining.
48
+
49
+ ## The `targets` hash explained
50
+
51
+ At first the `targets` option looks complicated in that it consists of nested
52
+ hashes, but the format is quite simple to get used to. Each root level item
53
+ in `targets` consists of the following items, which are unique for each target.
54
+
55
+ `:CFBundleID`
56
+ : Each help target must have a unique `CFBundleID` that matches a unique
57
+ `CFBundleHelpBookName` in your applications’ `Info.plist` files. This
58
+ pairing is the mechanism by which Mac OS X knows which help bundle belongs
59
+ to which application. If they are not unique, Mac OS X _will_ become
60
+ confused, and your end-users, if they have multiple versions of your product
61
+ installed, will not be very satisfied.
62
+
63
+ `:HPDBookIconPath`
64
+ : If specified a target-specific icon will be used as the help book icon by
65
+ Apple’s help viewer. This path must be relative to the location of the
66
+ `Info.plist` file per Apple’s specification. If `nil` (or not present) then
67
+ the default `shared/icon_32x32@2x.png` will be used.
68
+
69
+ `:CFBundleName`
70
+ : This value will be used for correct `.plists` and `.strings` setup, and will
71
+ determine final `.help` directory name. All targets should use the same
72
+ `:CFBundleName`. Built targets will be named `CFBundleName (target).help`.
73
+ This is *not* intended to be a product name, which is defined below.
74
+
75
+ `:ProductName`, `ProductVersion`, and `ProductURI`
76
+ : The default templates use these in a prominent way, and they’re also
77
+ available to you using _Middlemac_’s helpers.
78
+
79
+ `:Features`
80
+ : Aside from **targets** the use of **features** can give you fine-grained
81
+ control over what content appears in each target. It’s considered a
82
+ best-practice to include all of the same features in the hash for each
83
+ target, and specify a boolean (true/false) value for each key, as
84
+ appropriate for your target. _Middlemac_ documentation has four features
85
+ defined.
86
+
87
+
88
+
@@ -0,0 +1,176 @@
1
+ ---
2
+ title: Directories, filenames, images, and paths
3
+ blurb: Learn about proper structure for your directory hierarchy, filenames,
4
+ and image locations, and discover some best practices related to paths.
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
+ Directory conventions
17
+ ---------------------
18
+
19
+ You will have noticed by now that your content root appears to be two levels
20
+ below the actual project root. This is a result of the Apple Help directory
21
+ structure. Remember, _Middleman_ depends on building an output project that
22
+ mirrors the input project. In order for links, images, and other content to
23
+ be accessed properly, _Middlemac_ uses Apple’s convention.
24
+
25
+ Fortunately once inside the `Base.lproj` directory, we -- as help book
26
+ developers -- are free to organize files as we see fit, despite the examples
27
+ you may have seen in Apple’s documentation. _Middlemac_, though, has setup a
28
+ hierarchy that “just works,” and the explanation follows. Starting at the top,
29
+ let’s look at a _Middleman_ project layout. Also don’t forget to have a look
30
+ later at [Apple Help setup][apple_help_setup].
31
+
32
+ Note the many of the file names below are written with destination, _built_
33
+ file extensions, and not the complete extension as it might appear in the source
34
+ directory. For example, the top level source file for `index.html` could have
35
+ the name `index.html.md.erb` or `index.html.haml`, as you see fit.
36
+ {:.note}
37
+
38
+ `Contents/`
39
+
40
+ : Contains everything in your help project that will be compiled into or
41
+ contribute to the final `.help` project.
42
+
43
+ `Contents/Info.plist`
44
+
45
+ : The `Info.plist` file is the file that _Middlemac_ will process into the
46
+ final `Info.plist` that your Mac OS X application needs in order to work with
47
+ your help book. For a basic project you shouldn’t have to modify anything in
48
+ this file, but if you want or need to have other key-value pairs in the final
49
+ `Info.plist`, then add them here.
50
+
51
+ `Contents/Resources/shared`
52
+
53
+ : This directory contains assets that are common between all of your different
54
+ help language projects. Although _Middlemac_ is not a multilingual solution
55
+ _per se_, this is maintained because you can simply have a different
56
+ _Middlemac_ project per language, and then merge in the other language
57
+ `.lproj` directories into your final help book, sharing assets in this
58
+ directory.
59
+
60
+ `Contents/Resources/Base.lproj`
61
+
62
+ : This directory serves as your base [group][groups] and contains all of your
63
+ help book’s content as well as pieces that will contribute to your content
64
+ (such as templates).
65
+
66
+ Any other files that result in `.html` in this directory level, except for
67
+ `index.html` constitute part of the `Base.lproj` group. At this level you
68
+ should start adding directories to contain your other groups.
69
+
70
+ `Contents/Resources/Base.lproj/index.html`
71
+
72
+ : This is the top level file in your entire project, and is also the Apple
73
+ Help System main landing page.
74
+
75
+ `Contents/Resources/Base.lproj/InfoPlist.strings`
76
+
77
+ : The `InfoPlist.strings` file is the file that _Middlemac_ will process into
78
+ the final `InfoPlist.strings`, which contains the localized version of your
79
+ applications’ human-readable `Info.plist` data (specifically, `CFBundleName`
80
+ and `HPDBookTitle`).
81
+
82
+ _Middlemac_ is a multi-target solution for a single language, and not a
83
+ multi-language solution _per se_, and so the `CFBundleName` in your
84
+ `config.rb` will be used, whether it’s English or German or Chinese. This is
85
+ one of the strengths of `Base.lproj`: it’s agnostic.
86
+
87
+ `Contents/Resources/Base.lproj/assets/`
88
+
89
+ : This directory contains all of the non-content assets used in your help book
90
+ such as stylesheets, images, etc., as well as data source files, templates,
91
+ layouts and partials.
92
+
93
+ You will notice that some of these classes of items are in unconventional
94
+ locations compared to a default _Middleman_ project. This was done on your
95
+ behalf for the sake of portability and for having a non-distracting directory
96
+ environment.
97
+
98
+ `_data/`
99
+ : This directory contains data files that you can use to supply data for
100
+ [using local data][using_local_data]. This directory will not be
101
+ output in the final build.
102
+
103
+ `_layouts/`
104
+ : All layouts and templates should go here. This directory will not be
105
+ output in the final build.
106
+
107
+ `images/`
108
+ : All images should go here. _Middleman_ will find them automatically if
109
+ you use the helpers.
110
+
111
+ `javascripts/`
112
+ : Javascripts, if any, should go here. You should prefix each script with
113
+ an underscore so that they will _not_ be included. The already-present
114
+ file `all.js` will bundle them into a single file -- `all.js` -- and
115
+ _that’s_ the file loaded by the _Middlemac_ layouts.
116
+
117
+ `partials/`
118
+ : Partials can go here, and should be prefaced with an underscore so that
119
+ they will not generate build output. Partial files can also be included
120
+ in any other directory, too. This is for organizational convenience of
121
+ common partials that may be used anywhere.
122
+
123
+ `stylesheets/`
124
+ : Your `.css` and `.scss` files should go here. Read more about _Middlemac_
125
+ CSS organization [here][css].
126
+
127
+
128
+ Images
129
+ ------
130
+
131
+ Most images, of course, should go into the `images` directory of the `assets`
132
+ directory.
133
+
134
+ However _Middlemac_ also depends on some magic images being placed in
135
+ `Contents/Resources/shared/`:
136
+
137
+ `icon_32x32.png` and `icon_32x32@2x.png`
138
+
139
+ : These files are your help file icon at 32 × 32 pixels and @2x, and will be
140
+ used by the included templates automatically. More importantly, however, your
141
+ main landing page is linked to this icon so that Apple Help Viewer knows what
142
+ the help icon is.
143
+
144
+ `icon_256x256.png` and `icon_256x256@2x.png`
145
+
146
+ : The same as above, but at 256 × 256 pixels and @2x.
147
+
148
+ You will also notice that there are target-specific versions of these images
149
+ located here, too. This documentation project takes advantage of them, and you
150
+ can do the same. Note that the non-target specific versions are still required
151
+ so that the Help Viewer knows to find them!
152
+
153
+
154
+ Images Organization
155
+ -------------------
156
+
157
+ When your content images are located in the `assets/images/` directory,
158
+ _Middleman_’s [helpers][middleman_helpers] can find them automatically
159
+ without any worry about relative or absolute file paths.
160
+
161
+
162
+ “Absolute” Paths
163
+ ----------------
164
+
165
+ When using _Middleman_’s [helpers][middleman_helpers], absolute paths will be
166
+ converted to relative paths during the build. Absolute paths are relative to the
167
+ `Contents` directory and _not_ the filesystem root.
168
+
169
+ In general it’s _not_ recommended to use absolute paths unless you need assets
170
+ outside of _Middlemac_’s configuration. _Middleman_ will automatically build the
171
+ correct path using only the asset name when you use its helpers, if the assets
172
+ are in the correct directories (e.g., images in `images/`).
173
+
174
+ However you will use absolute paths to refer to items in the `shared/` directory
175
+ since this it outside of _Middlemac_’s normal search scope. The view templates
176
+ use this approach, for example.
@@ -0,0 +1,71 @@
1
+ ---
2
+ title: Layouts and Templates
3
+ blurb: Learn the details about how templates and layouts work with each other
4
+ as well as some best practices for their use.
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
+ _Middlemac_ decouples your help _content_ from the display and final document
17
+ structure by taking advantage of layouts and templates. In general both layouts
18
+ and templates do the same thing; they wrap your content into the structure
19
+ required of an HTML file.
20
+
21
+ In practice, though, _Middlemac_ distinguishes between them in the manner: a
22
+ _layout_ defines the formal HTML structure of the end document, and a template
23
+ defines the superficial appearance of a particular page. For example a page
24
+ might be wrapped in the `template-logo-medium` template to define its overall
25
+ look, and then further wrapped in `layout-html4` to ensure that it has the
26
+ required structure for an Apple help book.
27
+
28
+
29
+ Templates
30
+ ---------
31
+
32
+ _Middlemac_ comes with three templates inspired by recent Mac OS X help files.
33
+ Although you can certainly use any of the templates you desire (or create your
34
+ own), the included templates were designed with specific purposes in mind.
35
+
36
+ `template-logo-large`
37
+ : This template features your help icon in a large size with your target’s
38
+ `ProductName` and `ProductURI` below it, in a left frame-like area. Your
39
+ content is in the right frame-like area. This template was designed to be
40
+ suited for the main landing page and for main section landing pages
41
+ consisting primarily of links and descriptions of other pages.
42
+
43
+ `template-logo-medium`
44
+ : This template places a smaller logo in a frame-like area to the right,
45
+ followed by automatically placed “related links” to other pages in the same
46
+ group. Your content will occupy the large, left side of the window. This
47
+ template is idea for multiple, related pages within a group.
48
+
49
+ `template-logo-small`
50
+ : The template places a very small logo at the top of your page. Related links
51
+ will appear at the bottom of the page after your content. This template is
52
+ most suited for topics that stand somewhat alone.
53
+
54
+ Each of these templates will wrap a layout around them. By default they will
55
+ always use `layout-html4`, although you can force _Middlemac_ to use the
56
+ `layout-xhtml` template with the `:xhtml` frontmatter key. You should never do
57
+ this, though, as Apple requires your content -- except the top level landing
58
+ page -- to be HTML4.
59
+
60
+
61
+ Layouts
62
+ -------
63
+
64
+ `layout-html4`
65
+ : This is just an HTML 4.01 wrapper template and if you follow all of the
66
+ conventions there's nothing you should have to change here.
67
+
68
+ `layout-xhtml`
69
+ : Apple's help landing page (the main page) is supposed to be an XHTML 1.0
70
+ Strict document. If you follow all of the conventions there's nothing you
71
+ should have to change here.
@@ -0,0 +1,71 @@
1
+ ---
2
+ title: CSS and Fonts
3
+ blurb: Have a brief look at the included CSS so that you can decide how to best
4
+ use it or easily change it to suit your own needs.
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
+
17
+ The included CSS and fonts are critical for ensuring that the templates work,
18
+ but they also serve to provide a recent Apple-like look and feel to your help
19
+ books.
20
+
21
+ ## The `assets/fonts/` directory
22
+
23
+ `font-awesome/*` (directory)
24
+ : The files here provide you the ability to use the icons in the font provided
25
+ by the [font-awesome](http://fortawesome.github.io/Font-Awesome/) project.
26
+ You can review their documentation if you’d like to include these easy to
27
+ use images in your project. This documentation uses icons in the navigator
28
+ buttons.
29
+
30
+ ## The `assets/stylesheets/` directory
31
+
32
+ `_apple_helpbook.scss`
33
+ : This file contains all of the real styling for _Middlemac_ help books. This
34
+ should be the first place you check for making desired changes.
35
+
36
+ Note that this `.scss` file will be processed but not output to the build
37
+ directory because it starts with an underscore.
38
+
39
+ `_github.scss`
40
+ : This file contains the styling used for Markdown `<code>` blocks for syntax
41
+ highlighting, and provides highlighting similar to Github’s style.
42
+
43
+ Note that this `.scss` file will not output to the build directory because it
44
+ starts with an underscore.
45
+
46
+ `_normalize.scss`
47
+ : Although _Middlemac_ is intended to build Apple Help Books, its content can
48
+ be viewed in web browsers, too. Therefore for convenience, this standard
49
+ normalize file will help ensure that your content looks nearly the same in
50
+ any modern, popular browser.
51
+
52
+ Note that this `.scss` file will be processed but not output to the build
53
+ directory because it starts with an underscore.
54
+
55
+ `breadcrumb-separator-light.png`
56
+ : This image is used by CSS to provide a separator between breadcrumb items.
57
+ It’s not out of place being in a stylesheets directory.
58
+
59
+ `images_sizes.css.erb`
60
+ : This `.erb` file is processed into a stylesheet (via the `css_image_sizes`
61
+ helper) containing the maximum width and height of every image asset in your
62
+ project. This will ensure that strange scaling doesn’t occur, and can save
63
+ time by not having to specify fixed image widths and heights for images you
64
+ may want to use.
65
+
66
+ This file will be copied to the build project and must be included in your
67
+ layouts if you wish to use it.
68
+
69
+ `style.css.scss`
70
+ : _This_ file, when compiled to CSS, `@include`’s the pertinent files above
71
+ and bundles them into a single file that is included in the default layouts.
@@ -0,0 +1,83 @@
1
+ ---
2
+ title: Groups
3
+ blurb: Groups are the fundamental organizational technique that enable
4
+ automatic page management, navigation, and tables of contents simple to
5
+ implement, and they help you stay organized.
6
+ layout: template-logo-medium
7
+ ---
8
+ <%= md_links %>
9
+ <%= md_images %>
10
+
11
+
12
+ <%= current_page.data.title %>
13
+ ==============================
14
+
15
+ <%= current_page.data.blurb %>
16
+
17
+ What are groups?
18
+ ----------------
19
+
20
+ A Group is one of more files in a single level of directory, and also any
21
+ `index.html` file of immediate subdirectories of the group.
22
+
23
+ Group directories require one file that will compile into `index.html` file in
24
+ that directory, e.g., `index.html.md.erb`. This file _is not part of the group_;
25
+ it serves as the _parent_ to the group. The files in the group are all
26
+ _children_ of the `index.html` file. Each file in the group is a _sibling_ of
27
+ the other files in the group.
28
+
29
+ Groups are named based on their containing directory. The highest level group is
30
+ `Base.lproj` and cannot be changed. Group names are generally not user-facing,
31
+ and the Apple Help system requires this directory name, so don’t worry about it.
32
+
33
+ Example:
34
+
35
+ ~~~
36
+ Base.lproj/
37
+ index.html
38
+ introduction.html
39
+ basics/
40
+ index.html
41
+ counters.html
42
+ ~~~
43
+
44
+ The `Base.lproj` consists of two pages: `introduction.html`, and
45
+ `basics/index.html`. The highest-level `index.html` is the parent of this
46
+ group.
47
+
48
+ Groups can be nested to arbitrary levals.
49
+
50
+
51
+ Page order in groups
52
+ --------------------
53
+
54
+ Using the included [helpers][helpers], you can designate tables of contents,
55
+ related pages, indices, etc., for groups with a single line of code. In addition
56
+ _Middlemac_ includes built-in navigation widgets for groups, should you like to
57
+ use them.
58
+
59
+ A group member’s sort/navigation order is determined two ways.
60
+
61
+ - Files in the group can have an `:order` key in the frontmatter, or
62
+ - File names can be prefixed with an integer sort order followed by an
63
+ underscore, .e.g, `40_hello.html.md.erb` or `12345_big_numbers.html.md.erb`.
64
+
65
+ Some important aspects about order numbers in groups are:
66
+
67
+ - If both a prefix and `:order` key are present, then the `:order` key takes
68
+ precedence.
69
+ - If any pages in the same group end up with the same sort order, then the
70
+ actual behavior is undefined.
71
+ - Parent `index.html` files cannot be prefixed, and so must include an `:order`
72
+ key in their frontmatter, or prefix the containing directory name instead.
73
+ - Pages without a sort order are _not_ present in any of the automatic
74
+ navigation or contents partials or helpers. This is by design. You can still
75
+ link to them, though.
76
+ - Prefixing file names can be convenient so that source files are sorted in your
77
+ file system the same way they will be displayed in your help system. Keep in
78
+ mind, though, that if you’re using the automatic markdown links from the
79
+ `md_links` helper and name collisions occur, then it’s possible that some of your
80
+ links will become invalid.
81
+ - Finally, page orders do not have to be sequential. It may be helpful to space
82
+ them apart so that later insertions can be simplified.
83
+