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