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,93 @@
1
+ ---
2
+ title: <code>md_links</code> and <code>md_images</code> helpers
3
+ blurb: Learn to take advantage of helpers that give you a hand using reference
4
+ style links to content and images.
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
+ You’ll notice (as you look at the source files for this help content) that the
17
+ first ERB instructions immediately after the frontmatter are:
18
+
19
+ ~~~ erb
20
+ <%%= md_links %>
21
+ <%%= md_images %>
22
+ ~~~
23
+
24
+ These convenience helpers make it relatively simple to include Markdown links
25
+ and images using the reference format.
26
+
27
+ Links
28
+ -----
29
+
30
+ ~~~ markdown
31
+ [all help content][all_help_content-index]
32
+ ~~~
33
+
34
+ …will generate the following link:
35
+
36
+ [all help content][all_help_content-index]
37
+
38
+ This is especially useful if your page source filenames stay constant.
39
+
40
+ The reference name will always be the base output name of the file. For index
41
+ files, the format will be `groupname-index`, where the groupname is the name of
42
+ the containing directory, as you should already know. The top-level index file
43
+ will conveniently, simply be `index`.
44
+
45
+ You should strive to use unique filenames if you use this feature, as this will
46
+ ensure that your references remain unique. In the event of reference name
47
+ collisions, the reference name will be prepended with its nesting groups as many
48
+ levels as necessary to become unique. For convenience items that are higher in
49
+ your directory hierarchy are prioritized against prepending.
50
+
51
+ Here’s the complete result of this helper for this help book:
52
+
53
+ ~~~ markdown
54
+ <%= md_links %>
55
+ ~~~
56
+
57
+ Pretty neat how it includes the titles, right? Try hovering your mouse over the
58
+ example [all help content][all_help_content-incex] link. Including titles isn’t
59
+ possible in Markdown without using reference links.
60
+ {:.note}
61
+
62
+
63
+ Images
64
+ ------
65
+
66
+ Markdown also supports a reference format for images. It looks like this:
67
+
68
+ ~~~ markdown
69
+ ![this is alt tag content][middlemac-logo-small]
70
+ ~~~
71
+
72
+ And will generate this:
73
+
74
+ ![this is alt tag content][middlemac-logo-small]
75
+
76
+
77
+ Here’s the complete result of this helper for this help book:
78
+
79
+ ~~~ markdown
80
+ <%= md_images %>
81
+ ~~~
82
+
83
+ Note that using reference style Markdown images is performed by the Markdown
84
+ processor directly. Using magic prefixes for automatic target-based images
85
+ won’t work. However they will work with standard Markdown, non-reference
86
+ images. Note how this next example includes the target-specific logo:
87
+ {:.note}
88
+
89
+ ~~~ markdown
90
+ ![target specific logo](all-middlemac-logo-small)
91
+ ~~~
92
+
93
+ ![target specific logo](all-middlemac-logo-small)
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Automatic CSS Image Maximum Sizes
3
+ blurb: Ensure that your image sizes aren’t unexpectedly distorted by using this
4
+ special helper.
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
+ This helper provides CSS code for each of your images, specifying a `max-width`
17
+ and `max-height` for each image used in your Middleman project (except for SVG
18
+ files, which don’t have dimensions).
19
+
20
+ ## Example
21
+
22
+ When called like this:
23
+
24
+ ~~~ erb
25
+ <%%= css_image_sizes %>
26
+ ~~~
27
+
28
+ …the result is this:
29
+
30
+ ~~~ scss
31
+ <%= css_image_sizes %>
32
+ ~~~
33
+
34
+ ## Use
35
+
36
+ You could use this in an HTML `<style>` element on each of your pages, or better
37
+ yet in your layouts. This has the unfortunate effect of including it in every
38
+ one of your pages, however, and so this sample project uses it like this:
39
+
40
+ Contents of `stylesheets/css_image_sizes.css.erb`:
41
+
42
+ ~~~ erb
43
+ <%%= css_image_sizes %>
44
+ ~~~
45
+
46
+ This will create `stylesheets/css_image_sizes.css` in your build output, and
47
+ this file is included in the project layout file:
48
+
49
+ ~~~ haml
50
+ = stylesheet_link_tag 'css_image_sizes'
51
+ ~~~
52
+
53
+ You will be tempted to add this helper to your `style.css.scss` file, maybe
54
+ even renaming it to `style.css.scss.erb`, but this will not work due to the
55
+ order that Middleman and SASS build output.
56
+ {:.note}
57
+
58
+
59
+ ## Technical details
60
+
61
+ This CSS will control your image sizes by specifying a maximum width and height
62
+ for each image in the project using the `src` attribute selector and matching
63
+ against the end of that value. For example:
64
+
65
+ ~~~ scss
66
+ img[src$='icon.png'] { max-width: 256px; max-height: 256px; }
67
+ ~~~
68
+
69
+ CSS matches using literal text, and so will not respect relative paths. The
70
+ simple rule above has a high possibility of naming collisions with other files
71
+ named `icon.png`.
72
+
73
+ If you follow Middleman’s best practices and keep most or all of your images in
74
+ the defined `:images_dir` then the possibility of naming collisions will go
75
+ away, as this helper will deliver the `src` attribute selectors starting with
76
+ the final component of your `:images_dir`, for example:
77
+
78
+ ~~~ scss
79
+ img[src$='images/logo-small.png'] { max-width: 128px; max-height: 128px; }
80
+ img[src$='images/blog/logo-small.png'] { max-width: 160px; max-height: 160px; }
81
+ img[src$='icon_32x32.png'] { max-width: 32px; max-height: 32px; }
82
+ ~~~
83
+
84
+ In this example, the last image – `icon_32x32.png` – is not within `:images_dir`
85
+ and so has no directory and is subject to naming collisions.
86
+
87
+ The scheme above will work whether or not Middleman is configured with
88
+ `relative_assets` because both relative and absolute links will always contain
89
+ that last part of the path component. The only way this might break is by
90
+ serving HTML pages from within your `:images_dir`.
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: Using local data
3
+ blurb: You can use a local file as a datasource to generate data-based pages
4
+ automatically. Learn how in this reference section.
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
+ You can use data from external sources with _Middleman_ and _Middlemac_, too.
17
+ In `assets/data/` a sample `globals.yml` contains some sample data in YAML
18
+ format. Let’s see what it contains:
19
+
20
+ <% data.globals.famous_writers.each do |writer| %>
21
+ - A sample work of <%= writer.author %> is _<%= writer.sample_work %>_.
22
+ <% end %>
23
+
24
+ These previous sentences were generated with this ERB code:
25
+
26
+ ~~~ erb
27
+ <%% data.globals.famous_writers.each do |writer| %>
28
+ - A sample work of <%%= writer.author %> is _<%%= writer.sample_work %>_.
29
+ <%% end %>
30
+ ~~~
31
+
32
+
33
+ Accessing data
34
+ --------------
35
+
36
+ This data is available to you via `data.file_name.top_level_key`.
37
+
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: "Workflow: Develop your Help Content"
3
+ blurb: Once you’ve learned of the possibilities when it comes to structuring
4
+ your help, discover all of the conveniences made possible by
5
+ <em>Middlemac</em>’s rich set of content features.
6
+ layout: template-logo-large
7
+ navigate: true
8
+ ---
9
+ <%= md_links %>
10
+ <%= md_images %>
11
+
12
+ <%= current_page.data.title %>
13
+ ==============================
14
+
15
+ <%= current_page.data.blurb %>
16
+
17
+ * * *
18
+
19
+ <%= nav_legitimate_children %>
20
+
21
+ * * *
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: "Workflow: Preview and Build your Help Books"
3
+ blurb: "Your development be quicker by previewing your work with
4
+ <em>Middleman</em>’s preview server before the next step: building your
5
+ help book."
6
+ layout: template-logo-medium
7
+ navigate: true
8
+ ---
9
+ <%= md_links %>
10
+ <%= md_images %>
11
+
12
+ <%= current_page.data.title %>
13
+ ==============================
14
+
15
+ <%= current_page.data.blurb %>
16
+
17
+ Preview in a Web Browser
18
+ ------------------------
19
+
20
+ _Middleman_ has its own web server so that you can preview your work during
21
+ development. From within your project directory, simply do:
22
+
23
+ ~~~ bash
24
+ bundle exec middleman
25
+ ~~~
26
+
27
+ This will start the server with your default target. To specify a specific
28
+ target to serve, simply use the `--target` command line option:
29
+
30
+ ~~~ bash
31
+ bundle exec middleman --target your_target_here
32
+ ~~~
33
+
34
+ In general the server address to connect to in your browser is `localhost:4567`,
35
+ but your environment could be different. The server will always provide one or
36
+ more addresses to try.
37
+
38
+ Note also that if you try to connect to your Help Book project at the server
39
+ root, you will receive a file not found error. Do remember that due to Mac OS X
40
+ help book requirements, the content actually begins at `/Resources/Base.lproj/`.
41
+
42
+
43
+ Build your Help Book(s)
44
+ -----------------------
45
+
46
+ Build your projects is similarly easy:
47
+
48
+ ~~~ bash
49
+ bundle exec middleman build
50
+ ~~~
51
+
52
+ …to build the default target.
53
+
54
+ ~~~ bash
55
+ bundle exec middleman build --target your_target_here
56
+ ~~~
57
+
58
+ …to build the target named `your_target_here`.
59
+
60
+
61
+ ~~~ bash
62
+ bundle exec middleman build_all
63
+ ~~~
64
+
65
+ …to build all of your targets at once.
66
+
67
+
68
+ Opening your Help Books
69
+ -----------------------
70
+
71
+ Mac OS X won't open help books that haven’t been indexed by the operating
72
+ system, so you’ll have to preview them in a real application. Because you’re
73
+ making help books, it’s presumed that you have an application that can fill this
74
+ role. If not, you can modify the included **HelpViewerApp** Xcode project that’s
75
+ in this documentation project’s directory.
76
+
77
+ To view the contents of the `.help` package in **Finder**, simply context-click
78
+ it and choose **Show Package Contents**.
@@ -0,0 +1,110 @@
1
+ ---
2
+ title: Apple .help bundle setup
3
+ blurb: A reference to what <em>Middlemac</em> does to ensure that you build a
4
+ proper, working Apple Help Book.
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
+ CFBundleName and Targets
17
+ ------------------------
18
+
19
+ The first thing we need to do is come up with a `CFBundleName` for our help
20
+ projects, and decide what the targets are going to be. This will help us setup
21
+ Xcode shortly.
22
+
23
+ Xcode doesn’t know or care what the help bundle’s `CFBundleName` is, but
24
+ _Middlemac_ uses it and the target to name the final, built help bundle, and
25
+ Xcode _does_ have to know the name of those.
26
+
27
+ All of your targets will share the same `CFBundleName`, so it should be
28
+ descriptive of all of your targets and related to your product name. If the
29
+ examples on this page, we’ll use `Middlemac`. This project also has the targets
30
+ `pro` and `free`. What this means is _Middlemac_ will build help bundles named
31
+ `Middlemac (pro).help` and `Middlemac (free).help`.
32
+
33
+ Let’s use this information and start to setup Xcode.
34
+
35
+
36
+ Xcode Configuration
37
+ -------------------
38
+
39
+ ### Add Files
40
+
41
+ Let’s first tell your Xcode targets that the help bundle files are available. In
42
+ your Xcode project, create folders named `Middlemac (pro).help` and `Middlemac
43
+ (free).help`. They typically go into your project’s `Resources` folder. Mac OS
44
+ will automatically display them as bundles. For now, these are just proxies for
45
+ the bundles we’ll build later.
46
+
47
+ Next you can add these files to Xcode the usual way (“Add files…”). **Make sure
48
+ you add these by creating folder references. This is critical.** If you are
49
+ able to browse the folder contents in Xcode, then they were not properly added
50
+ and will not properly copy into the final application bundle.
51
+
52
+ Just in case the bold sentence wasn’t reminder enough: make sure you select the
53
+ option to create folder references when adding files.
54
+ {:.note}
55
+
56
+ Assuming you have a Pro and Free target in Xcode, you can use the file inspector
57
+ to make sure the Pro `.help` and the Free `.help` have the appropriate, obvious
58
+ target memberships.
59
+
60
+ ### Configure your applications’ `Info.plist` files
61
+
62
+ If you have multiple Xcode targets, you may be using a different `Info.plist`
63
+ file for each target. If not, then you’ll have to start because they contain
64
+ information unique to each help book.
65
+
66
+ Alternatively you can setup an `Info.plist` pre-processor (this is my preferred
67
+ approach) that generates an `Info.plist` for each target when you build.
68
+ _That’s_ beyond the scope of this document, though. You can begin by looking at
69
+ your Xcode targets’ **Build Settings -> Packaging**.
70
+ {:.note}
71
+
72
+ In each of your `Info.plist` files, find or create the following keys:
73
+
74
+ `Help Book directory name` (Xcode name)
75
+ `CFBundleHelpBookFolder` (raw key name)
76
+
77
+ : Ensure you use the appropriate `Middlemac (pro).help` or
78
+ `Middlemac (free).help`, depending on which target’s `.plist` this is.
79
+
80
+ `Help Book identifier` (Xcode name)
81
+ `CFBundleHelpBookName` (raw key name)
82
+
83
+ : This must match the unique `CFBundleID` that you set for each of your
84
+ help targets in the help project’s `config.rb` file. If you’ve not setup
85
+ the `config.rb` yet, now is a good time to decide on the keys that you will
86
+ use.
87
+
88
+ This sample project uses `com.balthisar.middlemac.free.help` and
89
+ `com.balthisar.middlemac.pro.help`.
90
+
91
+
92
+ Setup `config.rb` and especially `options.Help_Output_Location`
93
+ -------------------------------------------------------------------
94
+
95
+ Next make sure you setup `config.rb` with matching values from above.
96
+
97
+ We setup empty proxy `.help` bundles for Xcode above. Make sure that you set
98
+ your `config.rb`’s `options.Help_Output_Location` to the directory that you
99
+ created the proxy files. Then, any time you build your help projects with
100
+ _Middlemac_, they will be ready to go in Xcode automatically, the next time you
101
+ build your Xcode project.
102
+
103
+
104
+ _Middlemac_ takes care of everything else
105
+ -----------------------------------------
106
+
107
+ Once your `config.rb` is setup, _Middlemac_ takes care of setting all of the
108
+ required keys and data in all of the help bundle `.plist`, `.strings`, and
109
+ main `index.html` file, managing them for each target.
110
+
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: Optional Xcode Integration
3
+ blurb: Learn some tips and techniques for getting Xcode to cooperate with
4
+ <em>Middlemac</em> projects.
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
+ In the [previous section][apple_help_setup] you learned how simple it is to make
17
+ Xcode include your built help projects in your application, but with a little
18
+ bit of extra work you can even have Xcode build your help projects for you.
19
+
20
+ **HelpViewerApp**
21
+ -----------------
22
+
23
+ Included the the source directory for this documentation project is a directory
24
+ named `HelpViewerApp` that includes a simple Xcode project. Aside from the
25
+ ability to display this project’s built help files in Help Viewer (instead of
26
+ a web browser), it demonstrates one technique for having Xcode build your help
27
+ books for you.
28
+
29
+ It consists of the following four targets:
30
+
31
+ `Help (free)`
32
+
33
+ : This is an external build system target that uses **Middlemac** to generate
34
+ the help files for the `HelpViewerApp (free)` target.
35
+
36
+ `Help (pro)`
37
+
38
+ : This is an external build system target that uses **Middlemac** to generate
39
+ the help files for the `HelpViewerApp (pro)` target.
40
+
41
+ `HelpViewerApp (free)`
42
+
43
+ : The “free” version of this application will display the `:free` target in
44
+ the Help Viewer. It uses the target `Help (free)` as a build dependency.
45
+
46
+ `HelpViewerApp (pro)`
47
+
48
+ : The “pro” version of this application will display the `:pro` target in the
49
+ Help Viewer. It uses the target `Help (pro)` as a build dependency.
50
+
51
+
52
+ ## The Help file “build system”
53
+
54
+ The build system is a bash script that executes the default version of
55
+ **Middleman** on your system. In order to prevent re-building the help file
56
+ every time you run the HelpViewerApp it tries to remember that it was already
57
+ built using a marker file in the Xcode build directory.
58
+
59
+ It's a simple script and doesn’t try at all to know whether or not you’ve made
60
+ changes to the source. If you want to rebuild the help files using the build
61
+ command in Xcode, then perform **Clean**, which will remove this marker file.
62
+
63
+ Xcode’s **Clean** will _not_ remove the built help book using this script; you
64
+ are free to make the script do so if you want, however.