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,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
+