middlemac 2.0.0 → 3.1.2

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 (518) hide show
  1. checksums.yaml +5 -5
  2. data/.gitattributes +5 -0
  3. data/.gitignore +6 -0
  4. data/CHANGELOG.md +44 -10
  5. data/Gemfile +11 -1
  6. data/README.md +38 -6
  7. data/Rakefile +20 -4
  8. data/documentation_project/.gitignore +1 -1
  9. data/documentation_project/Contents/Info.plist.erb +5 -3
  10. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/_data/globals.yml +0 -0
  11. data/documentation_project/Contents/Resources/SharedGlobalAssets/_data/locale-list.json +318 -0
  12. data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern-aside.haml +19 -0
  13. data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern.haml +61 -0
  14. data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-blank.haml +11 -0
  15. data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-hpd.haml +14 -0
  16. data/documentation_project/Contents/Resources/SharedGlobalAssets/_partials/_yard_middlemac_config.erb +366 -0
  17. data/documentation_project/Contents/Resources/SharedGlobalAssets/_partials/_yard_middlemac_helpers.erb +897 -0
  18. data/documentation_project/Contents/Resources/SharedGlobalAssets/_partials/_yard_middlemac_helpers_extended.erb +369 -0
  19. data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_pagegroups_resources.erb → SharedGlobalAssets/_partials/_yard_middlemac_resources.erb} +342 -37
  20. data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_config.erb → SharedGlobalAssets/_partials/_yard_mmtargets_config.erb} +15 -110
  21. data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_helpers.erb → SharedGlobalAssets/_partials/_yard_mmtargets_helpers.erb} +4 -4
  22. data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_helpers_extended.erb → SharedGlobalAssets/_partials/_yard_mmtargets_helpers_extended.erb} +6 -2
  23. data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_instance.erb → SharedGlobalAssets/_partials/_yard_mmtargets_instance.erb} +1 -1
  24. data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_resources.erb → SharedGlobalAssets/_partials/_yard_mmtargets_resources.erb} +2 -2
  25. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png +0 -0
  26. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png +0 -0
  27. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png +0 -0
  28. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png +0 -0
  29. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png +0 -0
  30. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png +0 -0
  31. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png +0 -0
  32. data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png +0 -0
  33. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256.png +0 -0
  34. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256@2x.png +0 -0
  35. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32.png +0 -0
  36. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32@2x.png +0 -0
  37. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/apple.css +3831 -0
  38. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png +0 -0
  39. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png +0 -0
  40. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg +1 -0
  41. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg +1 -0
  42. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg +1 -0
  43. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png +0 -0
  44. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png +0 -0
  45. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png +0 -0
  46. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png +0 -0
  47. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png +0 -0
  48. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png +0 -0
  49. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png +0 -0
  50. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png +0 -0
  51. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png +0 -0
  52. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png +0 -0
  53. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png +0 -0
  54. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png +0 -0
  55. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png +0 -0
  56. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg +1 -0
  57. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg +1 -0
  58. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png +0 -0
  59. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg +1 -0
  60. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png +0 -0
  61. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png +0 -0
  62. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg +1 -0
  63. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg +1 -0
  64. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg +1 -0
  65. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png +0 -0
  66. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png +0 -0
  67. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png +0 -0
  68. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png +0 -0
  69. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png +0 -0
  70. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png +0 -0
  71. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png +0 -0
  72. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png +0 -0
  73. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png +0 -0
  74. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png +0 -0
  75. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png +0 -0
  76. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png +0 -0
  77. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg +1 -0
  78. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png +0 -0
  79. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png +0 -0
  80. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg +1 -0
  81. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg +1 -0
  82. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg +1 -0
  83. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg +1 -0
  84. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg +1 -0
  85. data/documentation_project/Contents/Resources/{Base.lproj/assets/stylesheets/_github.scss → SharedGlobalAssets/css/middlemac/github.css.scss} +0 -0
  86. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css.scss +129 -0
  87. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg +19 -0
  88. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg +1 -0
  89. data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg +19 -0
  90. data/documentation_project/Contents/Resources/SharedGlobalAssets/fonts/_dummy.txt +1 -0
  91. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/all-sample.png +0 -0
  92. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/all-sample@2x.png +0 -0
  93. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_256x256.png +0 -0
  94. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_256x256@2x.png +0 -0
  95. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_32x32.png +0 -0
  96. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_32x32@2x.png +0 -0
  97. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo-small.png +0 -0
  98. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo-small@2x.png +0 -0
  99. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo.png +0 -0
  100. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo@2x.png +0 -0
  101. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo-small.png +0 -0
  102. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo-small@2x.png +0 -0
  103. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo.png +0 -0
  104. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo@2x.png +0 -0
  105. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo-small.png +0 -0
  106. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo-small@2x.png +0 -0
  107. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo.png +0 -0
  108. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo@2x.png +0 -0
  109. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo-small.png +0 -0
  110. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo-small@2x.png +0 -0
  111. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo.png +0 -0
  112. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo@2x.png +0 -0
  113. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_256x256.png +0 -0
  114. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_256x256@2x.png +0 -0
  115. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_32x32.png +0 -0
  116. data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_32x32@2x.png +0 -0
  117. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo-small.png +0 -0
  118. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo-small@2x.png +0 -0
  119. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo.png +0 -0
  120. data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo@2x.png +0 -0
  121. data/documentation_project/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js +6295 -0
  122. data/documentation_project/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js +20 -0
  123. data/documentation_project/Contents/Resources/SharedGlobalAssets/js/vendor.js +226 -0
  124. data/documentation_project/Contents/Resources/en.lproj/010_what_is_middlemac/index.html.md.erb +114 -0
  125. data/documentation_project/Contents/Resources/en.lproj/020_apple_help_features/index.html.md.erb +241 -0
  126. data/documentation_project/Contents/Resources/{Base.lproj/020_setup_tutorial/index.html.md.erb → en.lproj/030_get_started/010_set_up_middlemac.html.md.erb} +33 -37
  127. data/documentation_project/Contents/Resources/en.lproj/030_get_started/020_your_first_help_book.html.md.erb +374 -0
  128. data/documentation_project/Contents/Resources/en.lproj/030_get_started/030_serve_your_help_book.html.md.erb +97 -0
  129. data/documentation_project/Contents/Resources/en.lproj/030_get_started/040_build_your_help_book.html.md.erb +56 -0
  130. data/documentation_project/Contents/Resources/{Base.lproj/030_skills_refresher/10_markdown_skill.html.md.erb → en.lproj/030_get_started/050_about_markdown.html.md.erb} +12 -14
  131. data/documentation_project/Contents/Resources/{Base.lproj/030_skills_refresher/30_middleman_skill.html.md.erb → en.lproj/030_get_started/060_about_middleman.html.md.erb} +10 -14
  132. data/documentation_project/Contents/Resources/en.lproj/030_get_started/070_about_ruby.html.md.erb +194 -0
  133. data/documentation_project/Contents/Resources/en.lproj/030_get_started/aside_frontmatter.html.md.erb +64 -0
  134. data/documentation_project/Contents/Resources/en.lproj/030_get_started/index.html.md.erb +4 -0
  135. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/010_setup.html.md.erb +204 -0
  136. data/documentation_project/Contents/Resources/{Base.lproj/030_skills_refresher/60_filetypes_skill.html.md.erb → en.lproj/040_compose_project/020_filetypes.html.md.erb} +7 -11
  137. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/030_directory_conventions.html.md.erb +206 -0
  138. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/040_groups.html.md.erb +96 -0
  139. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/050_targets_and_features.html.md.erb +220 -0
  140. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/060_frontmatter.html.md.erb +98 -0
  141. data/documentation_project/Contents/Resources/{Base.lproj/060_content/100_using_local_data.html.md.erb → en.lproj/040_compose_project/070_local_data.html.md.erb} +22 -9
  142. data/documentation_project/Contents/Resources/{Base.lproj/060_content/030_helpers.html.md.erb → en.lproj/040_compose_project/080_helpers/010_helpers.html.md.erb} +35 -69
  143. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/080_helpers/020_markdown_links.html.md.erb +51 -0
  144. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/080_helpers/030_markdown_images.html.md.erb +52 -0
  145. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/080_helpers/index.html.md.erb +4 -0
  146. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/090_partials.html.md.erb +64 -0
  147. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/100_resources.html.md.erb +36 -0
  148. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/110_implement_features.html.md.erb +197 -0
  149. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/120_preview_build.html.md.erb +86 -0
  150. data/documentation_project/Contents/Resources/en.lproj/040_compose_project/index.html.md.erb +4 -0
  151. data/documentation_project/Contents/Resources/{Base.lproj/050_structure → en.lproj/040_compose_project}/not_free.html.md.erb +4 -11
  152. data/documentation_project/Contents/Resources/{Base.lproj/050_structure → en.lproj/040_compose_project}/not_pro.html.md.erb +4 -11
  153. data/documentation_project/Contents/Resources/en.lproj/100_reference/010_apple_help_books/010_dissect_help_book.html.md.erb +296 -0
  154. data/documentation_project/Contents/Resources/en.lproj/100_reference/010_apple_help_books/020_dissect_modern_help.html.md.erb +246 -0
  155. data/documentation_project/Contents/Resources/en.lproj/100_reference/010_apple_help_books/index.html.md.erb +4 -0
  156. data/documentation_project/Contents/Resources/en.lproj/100_reference/030_backwards_compatibility.html.md.erb +82 -0
  157. data/documentation_project/Contents/Resources/en.lproj/100_reference/040_directory_reference.html.md.erb +276 -0
  158. data/documentation_project/Contents/Resources/en.lproj/100_reference/050_xcode_integration.html.md.erb +165 -0
  159. data/documentation_project/Contents/Resources/{Base.lproj/100_reference/10_cli_ref.html.md.erb → en.lproj/100_reference/060_cli_ref.html.md.erb} +3 -29
  160. data/documentation_project/Contents/Resources/en.lproj/100_reference/080_frontmatter_reference.html.md.erb +111 -0
  161. data/documentation_project/Contents/Resources/en.lproj/100_reference/120_api_reference/070_config_ref.html.md.erb +31 -0
  162. data/documentation_project/Contents/Resources/en.lproj/100_reference/120_api_reference/090_helpers_ref.html.md.erb +20 -0
  163. data/documentation_project/Contents/Resources/{Base.lproj/100_reference/30_helpers_ext_ref.html.md.erb → en.lproj/100_reference/120_api_reference/091_helpers_ext_ref.html.md.erb} +3 -21
  164. data/documentation_project/Contents/Resources/{Base.lproj/100_reference/50_resource_ext_ref.html.md.erb → en.lproj/100_reference/120_api_reference/100_resource_ext_ref.html.md.erb} +3 -8
  165. data/documentation_project/Contents/Resources/en.lproj/100_reference/120_api_reference/index.html.md.erb +4 -0
  166. data/documentation_project/Contents/Resources/en.lproj/100_reference/index.html.md.erb +4 -0
  167. data/documentation_project/Contents/Resources/{Base.lproj → en.lproj}/110_acknowledgements/index.html.md.erb +5 -7
  168. data/documentation_project/Contents/Resources/en.lproj/ExactMatch.plist.erb +15 -0
  169. data/documentation_project/Contents/Resources/{Base.lproj → en.lproj}/InfoPlist.strings.erb +0 -0
  170. data/documentation_project/Contents/Resources/en.lproj/asides/aside_description.html.md.erb +21 -0
  171. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_books_folder_reference.png +0 -0
  172. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_books_project_membership.png +0 -0
  173. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_aside_example.png +0 -0
  174. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_chapter_heading.png +0 -0
  175. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_copyright_footer.png +0 -0
  176. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_landing_links.png +0 -0
  177. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_language_chooser.png +0 -0
  178. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_navigator.png +0 -0
  179. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_see_also.png +0 -0
  180. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_title_icons.png +0 -0
  181. data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_universal.png +0 -0
  182. data/documentation_project/Contents/Resources/en.lproj/assets/images/get_started_init_contents.png +0 -0
  183. data/documentation_project/Contents/Resources/en.lproj/assets/images/get_started_init_english.png +0 -0
  184. data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_config_sets.png +0 -0
  185. data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_plist_definitions.png +0 -0
  186. data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_target_dependencies.png +0 -0
  187. data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_target_template.png +0 -0
  188. data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_tool_configuration.png +0 -0
  189. data/documentation_project/Contents/Resources/{Base.lproj → en.lproj}/index.html.md.erb +3 -13
  190. data/documentation_project/Contents/Resources/en.lproj/index_hpd.html.md.erb +4 -0
  191. data/documentation_project/Contents/Resources/en.lproj/locale-info.json.erb +16 -0
  192. data/documentation_project/Contents/Resources/en.lproj/navigation.json.erb +57 -0
  193. data/documentation_project/Contents/Resources/en.lproj/searchTree.json.erb +1 -0
  194. data/documentation_project/Contents/Resources/es.lproj/ExactMatch.plist.erb +15 -0
  195. data/{fixtures/middlemac_app/Contents/Resources/Base.lproj → documentation_project/Contents/Resources/es.lproj}/InfoPlist.strings.erb +0 -0
  196. data/documentation_project/Contents/Resources/es.lproj/index.html.md.erb +27 -0
  197. data/documentation_project/Contents/Resources/es.lproj/index_hpd.html.md.erb +4 -0
  198. data/documentation_project/Contents/Resources/es.lproj/locale-info.json.erb +16 -0
  199. data/documentation_project/Contents/Resources/es.lproj/navigation.json.erb +57 -0
  200. data/documentation_project/Contents/Resources/es.lproj/searchTree.json.erb +1 -0
  201. data/documentation_project/Contents/Resources/index.html.erb +118 -0
  202. data/documentation_project/Contents/Resources/locale-list.json.erb +14 -0
  203. data/documentation_project/Gemfile +4 -17
  204. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/project.pbxproj +79 -101
  205. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  206. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/Help (free).xcscheme +11 -6
  207. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/Help (pro).xcscheme +80 -0
  208. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/HelpViewerApp (free).xcscheme +1 -1
  209. data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/HelpViewerApp (pro).xcscheme +1 -1
  210. data/documentation_project/HelpViewerApp/HelpViewerApp/AppDelegate.h +1 -0
  211. data/documentation_project/HelpViewerApp/HelpViewerApp/AppDelegate.m +6 -0
  212. data/documentation_project/HelpViewerApp/HelpViewerApp/Base.lproj/MainMenu.xib +39 -10
  213. data/documentation_project/HelpViewerApp/HelpViewerApp/Info-free.plist +4 -4
  214. data/documentation_project/HelpViewerApp/HelpViewerApp/Info-pro.plist +4 -4
  215. data/documentation_project/HelpViewerApp/HelpViewerApp/versions.xcconfig +8 -0
  216. data/documentation_project/HelpViewerApp/README.md +6 -26
  217. data/documentation_project/{Middlemac (free).help → Middlemac_(free).help}/.gitignore +0 -0
  218. data/documentation_project/{Middlemac (pro).help → Middlemac_(pro).help}/.gitignore +0 -0
  219. data/documentation_project/config.rb +83 -100
  220. data/documentation_project/makefile +93 -0
  221. data/documentation_project/middlemac.webloc +0 -0
  222. data/ext/trie/darray.c +673 -0
  223. data/ext/trie/darray.h +233 -0
  224. data/ext/trie/extconf.rb +23 -0
  225. data/ext/trie/fileutils.c +151 -0
  226. data/ext/trie/fileutils.h +36 -0
  227. data/ext/trie/tail.c +340 -0
  228. data/ext/trie/tail.h +207 -0
  229. data/ext/trie/trie-private.c +299 -0
  230. data/ext/trie/trie-private.h +31 -0
  231. data/ext/trie/trie.c +628 -0
  232. data/ext/trie/trie.h +40 -0
  233. data/ext/trie/triedefs.h +73 -0
  234. data/ext/trie/typedefs.h +117 -0
  235. data/features/helpers_features.feature +58 -0
  236. data/features/main_features.feature +23 -19
  237. data/features/support/env.rb +0 -14
  238. data/fixtures/middlemac_app/.gitignore +0 -1
  239. data/fixtures/middlemac_app/Contents/Info.plist.erb +5 -3
  240. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/_data/globals.yml +0 -0
  241. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_data/locale-list.json +318 -0
  242. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern-aside.haml +19 -0
  243. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern.haml +61 -0
  244. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-blank.haml +11 -0
  245. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-hpd.haml +14 -0
  246. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj/assets/partials → SharedGlobalAssets/_partials}/_partials_dir_partial.erb +0 -0
  247. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png +0 -0
  248. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png +0 -0
  249. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png +0 -0
  250. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png +0 -0
  251. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png +0 -0
  252. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png +0 -0
  253. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png +0 -0
  254. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png +0 -0
  255. data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256.png +0 -0
  256. data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256@2x.png +0 -0
  257. data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32.png +0 -0
  258. data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32@2x.png +0 -0
  259. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/apple.css +3831 -0
  260. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png +0 -0
  261. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png +0 -0
  262. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg +1 -0
  263. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg +1 -0
  264. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg +1 -0
  265. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png +0 -0
  266. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png +0 -0
  267. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png +0 -0
  268. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png +0 -0
  269. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png +0 -0
  270. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png +0 -0
  271. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png +0 -0
  272. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png +0 -0
  273. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png +0 -0
  274. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png +0 -0
  275. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png +0 -0
  276. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png +0 -0
  277. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png +0 -0
  278. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg +1 -0
  279. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg +1 -0
  280. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png +0 -0
  281. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg +1 -0
  282. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png +0 -0
  283. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png +0 -0
  284. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg +1 -0
  285. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg +1 -0
  286. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg +1 -0
  287. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png +0 -0
  288. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png +0 -0
  289. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png +0 -0
  290. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png +0 -0
  291. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png +0 -0
  292. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png +0 -0
  293. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png +0 -0
  294. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png +0 -0
  295. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png +0 -0
  296. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png +0 -0
  297. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png +0 -0
  298. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png +0 -0
  299. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg +1 -0
  300. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png +0 -0
  301. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png +0 -0
  302. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg +1 -0
  303. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg +1 -0
  304. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg +1 -0
  305. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg +1 -0
  306. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg +1 -0
  307. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj/assets/stylesheets/_github.scss → SharedGlobalAssets/css/middlemac/github.css.scss} +0 -0
  308. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css.scss +129 -0
  309. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg +19 -0
  310. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg +1 -0
  311. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg +19 -0
  312. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/fonts/_dummy.txt +1 -0
  313. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/images/global_thing_32x32.png +0 -0
  314. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js +6295 -0
  315. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js +20 -0
  316. data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/js/vendor.js +226 -0
  317. data/fixtures/middlemac_app/Contents/Resources/en.lproj/10_hello_world_file.html.md.erb +17 -0
  318. data/fixtures/middlemac_app/Contents/Resources/en.lproj/30_sample_group_number_one/index.html.md.erb +8 -0
  319. data/fixtures/middlemac_app/Contents/Resources/en.lproj/30_sample_group_number_one/page_one.html.md.erb +108 -0
  320. data/fixtures/middlemac_app/Contents/Resources/en.lproj/30_sample_group_number_one/page_two.html.md.erb +36 -0
  321. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/01_nested_group_example/01_page_one.html.md.erb +0 -5
  322. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/01_nested_group_example/02_pagina_dos.html.md.erb +0 -5
  323. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/01_nested_group_example/03_page_san.html.md.erb +0 -5
  324. data/fixtures/middlemac_app/Contents/Resources/en.lproj/40_sample_group_number_two/01_nested_group_example/index.html.md.erb +4 -0
  325. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/02_page_two.html.md.erb +0 -5
  326. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/03_page_three.html.md.erb +0 -5
  327. data/fixtures/middlemac_app/Contents/Resources/en.lproj/40_sample_group_number_two/index.html.md.erb +4 -0
  328. data/fixtures/middlemac_app/Contents/Resources/en.lproj/50_testing_world_file.html.md.erb +58 -0
  329. data/fixtures/middlemac_app/Contents/Resources/en.lproj/60_goodbye_world_file.html.md.erb +203 -0
  330. data/fixtures/middlemac_app/Contents/Resources/en.lproj/ExactMatch.plist.erb +15 -0
  331. data/fixtures/middlemac_app/Contents/Resources/en.lproj/InfoPlist.strings.erb +10 -0
  332. data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/_new_style_partial.erb +0 -0
  333. data/fixtures/middlemac_app/Contents/Resources/en.lproj/asides/aside_description.html.md.erb +20 -0
  334. data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/_partials/_localized_partials_dir_partial.erb +1 -0
  335. data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/all-graphic_32x32.png +0 -0
  336. data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/neat_thing_32x32.png +0 -0
  337. data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/subdirectory/logo_32x32.png +0 -0
  338. data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/subdirectory/pro-image_32x32.png +0 -0
  339. data/fixtures/middlemac_app/Contents/Resources/en.lproj/copyright.html.md.erb +19 -0
  340. data/fixtures/middlemac_app/Contents/Resources/en.lproj/index.html.md.erb +20 -0
  341. data/fixtures/middlemac_app/Contents/Resources/en.lproj/index_hpd.html.md.erb +4 -0
  342. data/fixtures/middlemac_app/Contents/Resources/en.lproj/locale-info.json.erb +16 -0
  343. data/fixtures/middlemac_app/Contents/Resources/en.lproj/navigation.json.erb +57 -0
  344. data/fixtures/middlemac_app/Contents/Resources/en.lproj/searchTree.json.erb +1 -0
  345. data/fixtures/middlemac_app/Contents/Resources/es.lproj/10_hola_mundo_file.html.md.erb +15 -0
  346. data/fixtures/middlemac_app/Contents/Resources/es.lproj/60_goodbye_world_file.html.md.erb +193 -0
  347. data/fixtures/middlemac_app/Contents/Resources/es.lproj/ExactMatch.plist.erb +15 -0
  348. data/fixtures/middlemac_app/Contents/Resources/es.lproj/InfoPlist.strings.erb +10 -0
  349. data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/all-graphic_32x32.png +0 -0
  350. data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/neat_thing_32x32.png +0 -0
  351. data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/subdirectory/logo_32x32.png +0 -0
  352. data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/subdirectory/pro-image_32x32.png +0 -0
  353. data/fixtures/middlemac_app/Contents/Resources/es.lproj/copyright.html.md.erb +19 -0
  354. data/fixtures/middlemac_app/Contents/Resources/es.lproj/index.html.md.erb +21 -0
  355. data/fixtures/middlemac_app/Contents/Resources/es.lproj/index_hpd.html.md.erb +4 -0
  356. data/fixtures/middlemac_app/Contents/Resources/es.lproj/locale-info.json.erb +16 -0
  357. data/fixtures/middlemac_app/Contents/Resources/es.lproj/navigation.json.erb +57 -0
  358. data/fixtures/middlemac_app/Contents/Resources/es.lproj/searchTree.json.erb +1 -0
  359. data/fixtures/middlemac_app/Contents/Resources/index.html.erb +118 -0
  360. data/fixtures/middlemac_app/Contents/Resources/locale-list.json.erb +14 -0
  361. data/fixtures/middlemac_app/Gemfile +4 -17
  362. data/fixtures/middlemac_app/config.rb +82 -99
  363. data/fixtures/middlemac_app/makefile +93 -0
  364. data/fixtures/middlemac_app/middlemac.webloc +0 -0
  365. data/lib/middlemac.rb +4 -0
  366. data/lib/middlemac/extension.rb +152 -211
  367. data/lib/middlemac/helpers.rb +470 -0
  368. data/lib/middlemac/private.rb +497 -0
  369. data/lib/middlemac/sitemap.rb +516 -0
  370. data/lib/middlemac/trie-extension.rb +37 -0
  371. data/lib/middlemac/version.rb +1 -1
  372. data/middlemac.gemspec +25 -6
  373. data/resources/stopwords/ar.plist +206 -0
  374. data/resources/stopwords/ca.plist +0 -0
  375. data/resources/stopwords/cs.plist +30 -0
  376. data/resources/stopwords/da.plist +6 -0
  377. data/resources/stopwords/de.plist +119 -0
  378. data/resources/stopwords/el.plist +0 -0
  379. data/resources/stopwords/en.plist +0 -0
  380. data/resources/stopwords/es.plist +282 -0
  381. data/resources/stopwords/es_419.plist +282 -0
  382. data/resources/stopwords/fi.plist +206 -0
  383. data/resources/stopwords/fr.plist +132 -0
  384. data/resources/stopwords/he.plist +0 -0
  385. data/resources/stopwords/hr.plist +0 -0
  386. data/resources/stopwords/hu.plist +44 -0
  387. data/resources/stopwords/id.plist +6 -0
  388. data/resources/stopwords/it.plist +153 -0
  389. data/resources/stopwords/ja.plist +6 -0
  390. data/resources/stopwords/ko.plist +106 -0
  391. data/resources/stopwords/ms.plist +6 -0
  392. data/resources/stopwords/nl.plist +198 -0
  393. data/resources/stopwords/no.plist +207 -0
  394. data/resources/stopwords/pl.plist +207 -0
  395. data/resources/stopwords/pt.plist +207 -0
  396. data/resources/stopwords/pt_PT.plist +207 -0
  397. data/resources/stopwords/ro.plist +0 -0
  398. data/resources/stopwords/ru.plist +207 -0
  399. data/resources/stopwords/sk.plist +0 -0
  400. data/resources/stopwords/sv.plist +280 -0
  401. data/resources/stopwords/th.plist +56 -0
  402. data/resources/stopwords/tr.plist +200 -0
  403. data/resources/stopwords/uk.plist +764 -0
  404. data/resources/stopwords/vi.plist +6 -0
  405. data/resources/stopwords/zh_CN.plist +207 -0
  406. data/resources/stopwords/zh_TW.plist +207 -0
  407. data/yard/readme.md +4 -4
  408. metadata +423 -225
  409. data/documentation_project/Contents/Resources/Base.lproj/010_what_is_middlemac/index.html.md.erb +0 -126
  410. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/20_frontmatter_skill.html.md.erb +0 -54
  411. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/40_ruby_skill.html.md.erb +0 -67
  412. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/50_ruby_ecosystem.html.md.erb +0 -136
  413. data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/index.html.md.erb +0 -35
  414. data/documentation_project/Contents/Resources/Base.lproj/040_setup/index.html.md.erb +0 -88
  415. data/documentation_project/Contents/Resources/Base.lproj/050_structure/010_directories_and_images.html.md.erb +0 -176
  416. data/documentation_project/Contents/Resources/Base.lproj/050_structure/020_layouts_and_templates.html.md.erb +0 -71
  417. data/documentation_project/Contents/Resources/Base.lproj/050_structure/025_css.html.md.erb +0 -71
  418. data/documentation_project/Contents/Resources/Base.lproj/050_structure/030_groups.html.md.erb +0 -83
  419. data/documentation_project/Contents/Resources/Base.lproj/050_structure/040_breadcrumbs.html.md.erb +0 -43
  420. data/documentation_project/Contents/Resources/Base.lproj/050_structure/050_navigator.html.md.erb +0 -26
  421. data/documentation_project/Contents/Resources/Base.lproj/050_structure/060_targets.html.md.erb +0 -63
  422. data/documentation_project/Contents/Resources/Base.lproj/050_structure/070_features.html.md.erb +0 -122
  423. data/documentation_project/Contents/Resources/Base.lproj/050_structure/index.html.md.erb +0 -21
  424. data/documentation_project/Contents/Resources/Base.lproj/060_content/010_frontmatter.html.md.erb +0 -88
  425. data/documentation_project/Contents/Resources/Base.lproj/060_content/040_partials.html.md.erb +0 -121
  426. data/documentation_project/Contents/Resources/Base.lproj/060_content/050_resources.html.md.erb +0 -60
  427. data/documentation_project/Contents/Resources/Base.lproj/060_content/070_including_excluding.html.md.erb +0 -68
  428. data/documentation_project/Contents/Resources/Base.lproj/060_content/080_markdown_links_images.html.md.erb +0 -93
  429. data/documentation_project/Contents/Resources/Base.lproj/060_content/090_css_image_sizes.html.md.erb +0 -90
  430. data/documentation_project/Contents/Resources/Base.lproj/060_content/index.html.md.erb +0 -21
  431. data/documentation_project/Contents/Resources/Base.lproj/070_preview_build/index.html.md.erb +0 -78
  432. data/documentation_project/Contents/Resources/Base.lproj/090_build_application/10_apple_help_setup.html.md.erb +0 -110
  433. data/documentation_project/Contents/Resources/Base.lproj/090_build_application/20_xcode_integration.html.md.erb +0 -64
  434. data/documentation_project/Contents/Resources/Base.lproj/090_build_application/index.html.md.erb +0 -25
  435. data/documentation_project/Contents/Resources/Base.lproj/100_reference/20_config_ref.html.md.erb +0 -56
  436. data/documentation_project/Contents/Resources/Base.lproj/100_reference/40_helpers_ref.html.md.erb +0 -45
  437. data/documentation_project/Contents/Resources/Base.lproj/100_reference/index.html.md.erb +0 -26
  438. data/documentation_project/Contents/Resources/Base.lproj/120_backwards_compatibility/index.html.md.erb +0 -88
  439. data/documentation_project/Contents/Resources/Base.lproj/130_all_help_content/index.html.md.erb +0 -15
  440. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/layout-html4.haml +0 -22
  441. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/layout-xhtml.haml +0 -28
  442. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-large.haml +0 -30
  443. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-medium.haml +0 -30
  444. data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-small.haml +0 -30
  445. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/FontAwesome.otf +0 -0
  446. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  447. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.svg +0 -655
  448. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  449. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  450. data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  451. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras-small.png +0 -0
  452. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras-small@2x.png +0 -0
  453. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras.png +0 -0
  454. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras@2x.png +0 -0
  455. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras-small.png +0 -0
  456. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras-small@2x.png +0 -0
  457. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras.png +0 -0
  458. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras@2x.png +0 -0
  459. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-pagegroups/middleman-pagegroups-small.png +0 -0
  460. data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-pagegroups/middleman-pagegroups.png +0 -0
  461. data/documentation_project/Contents/Resources/Base.lproj/assets/javascripts/all.js +0 -1
  462. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs.haml +0 -11
  463. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs_alt.haml +0 -15
  464. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_brethren.haml +0 -18
  465. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_brethren_index.haml +0 -14
  466. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_legitimate_children.haml +0 -16
  467. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_prev_next.haml +0 -21
  468. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_toc_index.haml +0 -21
  469. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_config.erb +0 -200
  470. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_helpers.erb +0 -146
  471. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_helpers_extended.erb +0 -135
  472. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_config.erb +0 -207
  473. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_helpers.erb +0 -297
  474. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_helpers_extended.erb +0 -96
  475. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_config.erb +0 -744
  476. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers.erb +0 -710
  477. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers_css.erb +0 -523
  478. data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers_extended.erb +0 -56
  479. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_apple_helpbook.scss +0 -946
  480. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_normalize.scss +0 -374
  481. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/breadcrumb-separator-light.png +0 -0
  482. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/image_sizes.css.erb +0 -8
  483. data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/style.css.scss +0 -4
  484. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/10_hello_world_file.html.md.erb +0 -22
  485. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/20_goodbye_world_file.html.md.erb +0 -22
  486. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/index.html.md.erb +0 -24
  487. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/page_one.html.md.erb +0 -20
  488. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/page_two.html.md.erb +0 -19
  489. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/01_nested_group_example/index.html.md.erb +0 -18
  490. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/index.html.md.erb +0 -24
  491. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/45_testing_world_file.html.md.erb +0 -55
  492. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/50_entire_world_file.html.md.erb +0 -15
  493. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/layout-html4.haml +0 -22
  494. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/layout-xhtml.haml +0 -28
  495. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-large.haml +0 -30
  496. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-medium.haml +0 -30
  497. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-small.haml +0 -30
  498. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/FontAwesome.otf +0 -0
  499. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  500. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.svg +0 -655
  501. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  502. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  503. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  504. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/images/_empty_directory.html.md.erb +0 -1
  505. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/javascripts/all.js +0 -1
  506. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs.haml +0 -11
  507. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs_alt.haml +0 -15
  508. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_brethren.haml +0 -18
  509. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_brethren_index.haml +0 -14
  510. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_legitimate_children.haml +0 -16
  511. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_prev_next.haml +0 -21
  512. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_toc_index.haml +0 -21
  513. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_apple_helpbook.scss +0 -946
  514. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_normalize.scss +0 -374
  515. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/breadcrumb-separator-light.png +0 -0
  516. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/image_sizes.css.erb +0 -8
  517. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/style.css.scss +0 -4
  518. data/fixtures/middlemac_app/Contents/Resources/Base.lproj/index.html.md.erb +0 -17
@@ -0,0 +1,246 @@
1
+ ---
2
+ title: Modern Apple Help Books
3
+ blurb: Apple doesn’t showcase it, but it provides the tools to build their
4
+ Help Books with every shipping version of macOS.
5
+ ---
6
+ <%= md_links %>
7
+ <%= md_images %>
8
+
9
+ <%= current_page.data.blurb %>
10
+
11
+ Since macOS 10.10 (“Yosemite”), Apple has been using a JavaScript-based
12
+ Help Book engine named “Eagle,” and has been gradually updating most of their
13
+ application and macOS documentation to take advantage of it. You can find
14
+ all of this engine located in `/Library/Documentation/Resources/Eagle/` on
15
+ macOS 10.10 through macOS 10.13 (macOS 10.14 doesn’t seem to include it).
16
+
17
+ This engine provides a common look, feel, and experience across all of Apple’s
18
+ Help Books, and by taking advantage of Eagle, _Middlemac_ ensures that your
19
+ own Help Books enjoy this same consistency.
20
+
21
+
22
+ “Modern” Help
23
+ -----------
24
+
25
+ Modern Help Books are the Help Books you’ve seen on macOS Help, built-in
26
+ application Help, and Apple software Help since macOS 10.10 was released. The
27
+ term “modern” is only as valid as the term “next gen,” in that something newer
28
+ always comes along.
29
+
30
+ So it is with Apple, in that starting with macOS 10.13, some of the built in
31
+ applications have been shipping with Help Books using their new “Harrier”
32
+ Help Book development system. It’s likely that over time, shipping applications
33
+ will be migrated toward this new look, too.
34
+
35
+ _Middlemac_ will try to keep up with Apple Help technologies, and in the
36
+ meantime, version 3.0 produces Help Books meeting the same standards as current,
37
+ shipping Apple Products.
38
+
39
+
40
+ Modern Help Universal Deployment
41
+ --------------------------------
42
+
43
+ With Eagle, Apple has strived towards universal deployment of its Help Books,
44
+ meaning that they are just as functional when served to a browser as they are
45
+ when used in Apple Help Viewer. This also means that Apple strives to provide
46
+ visual and functional consistency from Help Book to Help Book. This means that
47
+ when served to a browser:
48
+
49
+ - You have the same navigation menu that you would have in Apple Help Viewer.
50
+ - You have the ability to search your Help Book within the browser environment,
51
+ just as you do within Apple Help Viewer.
52
+ - The pages have the same appearance and behavior in the browser as they do in
53
+ Apple Help Viewer.
54
+ - Certain features are automatic if the right conditions exist for them to
55
+ exist, such as Copyright Pages, navigation, Copyright Notices, and so on.
56
+ - A single Help Book can provide its content in multiple languages, just as it
57
+ would in the browser.
58
+
59
+ In short, an Eagle Help Book (or a Help Book produced by _Middlemac_) will work
60
+ equally well when used in Apple Help Viewer as it does in a browser. And I mean
61
+ the same Help Book; there’s no need to generate separate “Help Viewer” and
62
+ “browser” versions.
63
+
64
+
65
+ Eagle’s Heart
66
+ -------------
67
+
68
+ A modern Help Book is operated completely from a single HTML file within the
69
+ Help Book. The `Resources/index.html` file uses JavaScript to load the content
70
+ from your HTML files (in any localized directory) and presents them to the
71
+ viewer. It also handles loading of all styles, operates special features such
72
+ as tasks, performs searching, generates the navigation sidebar, and enables
73
+ Copyright Pages, loads asides, and so on.
74
+
75
+ All of these functions fall into three broad categories:
76
+
77
+ <% helpbook_task "help_modern_1", "Navigation" do %>
78
+
79
+ “Navigation” encompasses things such a providing a nested menu structure for the
80
+ Table of Contents, and enabling links to Copyright pages, if provided. The
81
+ structure, depth, and relationships between Help Book pages which is required to
82
+ provide this functionality is defined in the `navigation.json` file, which
83
+ _Middlemac_ builds for you automatically based on your sitemap and the data that
84
+ you provide in frontmatter.
85
+
86
+ Using this Help Book’s `free` target `navigation.json` as an example (with much
87
+ of the content stripped away for brevity), we can examine how Eagle constructs
88
+ its navigation.
89
+
90
+ | Key | Sample Value (bold values static) | Comments
91
+ |----------------------------------------------------|-------------------------------------|----------
92
+ | birdseed_version | **5** | Probably an internal Apple framework version.
93
+ | build_id | "3.0.0" | Doesn’t affect Help Book.
94
+ | build_date | "2018.06.09-16:00:31" | Doesn’t affect Help Book.
95
+ | collect_feedback | **false** | Probably refers to Apple’s "Was this page helpful?" feature. Unused by _Middlemac_.
96
+ | copyright | "topic-en.lproj/-acknowledgements" | This is the `$topic_id` of the page to be used as the Copyright Page.
97
+ | copyright_text | "© 2018 Jim Derry." | Displayed on every page when viewed in browser, or when Help Viewer prints output.
98
+ | css | **""** | Unknown. Seems to have no effect on Help Book.
99
+ | enable_tracking | **false** | Probably an Apple tracking system. Unused by _Middlemac_.
100
+ | framework | "middlemac-3.0.0" | Probably an internal Apple framework reference.
101
+ | icon | "SharedGlobalArt/icon_32x32@2x.png" | Icon for the book. Unsure why this is different than the .plist’s HPDBookIconPath.
102
+ | landing | "topic-Resources-en.lproj/" | This is the `$topic_id` of the page to be used as the Landing Page.
103
+ | locale | "en" | The locale of the JSON file.
104
+ | platform | **"mac"** | Probably because iTunes also supports Windows.
105
+ | printable_page | **""** | Unknown.
106
+ | product | "Middlemac" | Seems to be inactive.
107
+ | quick_links | **[]** | Unknown.
108
+ | sections | [Array] | Sections appear in the TOC with their given childen. Child order is important, but order of the sections in this array is not.
109
+ | &nbsp;&nbsp;$section_id | "section-compose_project-helpers" | Specify a $section_id for this section. Used to build the TOC.
110
+ | &nbsp;&nbsp;&nbsp;&nbsp;name | "Helpers" | The name of the section as it will appear in the TOC.
111
+ | &nbsp;&nbsp;&nbsp;&nbsp;children | [Array] | An array of `$topic_id` indicating the pages that constitute this section.
112
+ | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$topic_id | "topic-helpers-helpers" | An element of the `$topic_id` list.
113
+ | show_previous_next | false | When set to true, enables previous and next page navigators.
114
+ | source_schema | **"apd-schema"** | Unknown.
115
+ | title | "Middlemac Help" | This will be used as the `<title>` of your landing page, reguardless of the `<title>` you set in the HTML document. Of course, it’s also used in the Help Viewer title bar and browser title banner.
116
+ | toc | [Array] | This array of `$topic_id` or `$section_id` defines the table of contents used in the sidebar.
117
+ | &nbsp;&nbsp;$topic_id -or- $section_id | "section-en.lproj/-reference" | An element of the list.
118
+ | topics | [Array] | An array of `$topic_id`, as defined below.
119
+ | &nbsp;&nbsp;$topic_id | "topic-asides-aside_description" | Specify a `$topic_id` to represent a particular page.
120
+ | &nbsp;&nbsp;&nbsp;&nbsp;name | "What is an aside?" | The name of the topic. Will be used in the TOC.
121
+ | &nbsp;&nbsp;&nbsp;&nbsp;summary | "A short article describing…" | The summary is shown in search results.
122
+ | &nbsp;&nbsp;&nbsp;&nbsp;href | "asides/aside_description.html" | The lproj-relative path of the file.
123
+ | &nbsp;&nbsp;&nbsp;&nbsp;categories | [Array] | An array of `$category_name`; these will be applied as body classes when the document it loaded. Some categories have special purposes in Eagle, such a `aside` and `copyright`.
124
+ | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$category_name | "aside" | An element of the list.
125
+ | urls | **{}** | Unknown.
126
+ | version | "3.0.0" | Probably the application version, but it’s not known where this is used in the Help Book.
127
+
128
+
129
+ _Middlemac_ build this file for you automatically based on the `.lproj/` language,
130
+ settings from your `config.rb` file, and page data including the overall site
131
+ map as well as data from the pages’ frontmatter. If you feel like
132
+ reverse-engineering Apple’s feedback and tracking mechanisms, then feel free
133
+ to modify this file to your liking.
134
+
135
+
136
+ <% end %>
137
+ <% helpbook_task "help_modern_2", "Search" do %>
138
+
139
+ When viewing a Help Book in Apple Help Viewer, the `.helpindex` file generated
140
+ by `hiutil` is used. However this is a file produced by the old, deprecated
141
+ `NSArchiver`, and is a binary format that JavaScript cannot parse or
142
+ understand. Thus Eagle Help Books when viewed in the web browser refer to a
143
+ different file in order to provide search results: `searchTree.json`.
144
+
145
+ This file is a trie in JSON format, which is a very efficient structure for
146
+ searching words.
147
+
148
+ Apple _probably_ builds this file from the word frequency information gathered
149
+ by `hiutil`, but because unarchiving the `.helpindex` requires the use of
150
+ private Apple API’s, _Middlemac_ will generate this file from the contents of
151
+ your pages itself. Thus there's the possibility that if Apple were to generate
152
+ this file for you, there might be differences; however Apple is unlikely to
153
+ perform this service for you.
154
+
155
+ Words encountered as frontmatter `keywords` are given extra weight, and words
156
+ encountered as frontmatter `exactmatch` are given a _lot_ of extra weight. The
157
+ same list of stopwords (words ignored for searches) is used to build this file
158
+ as to build the `.helpindex`.
159
+
160
+ ##### Search Redirects
161
+
162
+ Both Apple’s `hiutil` and _Middlemac_’s `searchTree.json` indexer index
163
+ individual pages. Search results link to those individual pages. However, recall
164
+ that an Eagle Help Book never displays those pages directly; every page is
165
+ loaded via JSON by the main `index.html` file, which is the only real “page”
166
+ ever displayed.
167
+
168
+ This means that when a page is listed as a search result, the link will
169
+ attempt to deliver that specific page to you. That specific page is not
170
+ `index.html`, and so there’s no loaded JavaScript or CSS. That’s not a good
171
+ experience for users, and so _Middlemac_ addresses this issue by adding
172
+ JavaScript to each of these individual pages which directs to the main
173
+ `index.html`, including the correct URL query to load the desired page. By
174
+ placing this redirect in the `<head>`, it’s usually fast enough to prevent
175
+ loading the entire page into Apple Help Viewer, thus avoiding temporarily
176
+ displaying unstyled pages.
177
+
178
+ Apple’s JavaScript, of course, strips everything from the `<head>`, so when
179
+ the file is ultimately AJAX-loaded into `index.html`, no circular refresh
180
+ loops occur.
181
+
182
+
183
+ <% end %>
184
+ <% helpbook_task "help_modern_3", "Localization" do %>
185
+
186
+ Eagle also provides localization features for browser-served pages that are
187
+ handled automatically by Apple Help Viewer. For example, Apple Help Viewer
188
+ knows that the OS is configured for Spanish, and will use the `Spanish.lproj/`
189
+ or `es.lproj/` directory contents automatically. Apple Help Viewer will also
190
+ fall back to `Base.lproj/` or `en.lproj/` if the localized directories are not
191
+ part of the Help Book.
192
+
193
+ Browsers, while they can provide the locale, aren’t nearly so smart about
194
+ selecting paths properly, so Apple’s JavaScripts assume this role. The only
195
+ caveat is that these JavaScripts don’t honor any type of `Base.lproj/`
196
+ directory and `CFBundleDevelopmentRegion`. And because the browser is unable
197
+ to select a proper `.lproj/` on its own, we have to provide some data that
198
+ allows the JavaScript to select the proper folder.
199
+
200
+ Additionally, because the locale determined by the browser is potentially not
201
+ accurate for a variety of reasons, Apple’s JavaScripts present a language
202
+ switcher on your Help Book’s landing page, if your project is multilingual.
203
+
204
+ Thus, to make multilingual Help Books work in Apple Help Viewer, simply place a
205
+ localized `.lproj/` for each language you support into the Help Book. To make
206
+ multilingual Help Books work in the browser, though, we need to specify some
207
+ additional metadata files: `Resources/locale-info.json` and
208
+ `*.lproj/locale-list.json`.
209
+
210
+ Of course, _Middlemac_ handles these two files for you, as long as you use the
211
+ correct `.lproj/` directory name per
212
+ `SharedGlobalAssets/_data/locale-list.json`, which is Apple’s standard locale
213
+ list file. The [Directory Conventions][directory_conventions] topic shows which
214
+ locales are supported out of the box.
215
+ {: .tip .callout}
216
+
217
+ Each `.lproj/` directory must contain a `locale-info.json`, which simply
218
+ indicates some basic data about the locale present in that particular directory.
219
+
220
+ More importantly, the site root must contain a `locale-list.json` which
221
+ indicates all of the locales in the present Help Book, and, importantly, which
222
+ `.lproj/` directory the contents can be found.
223
+
224
+ The `_data/locale-list.json` serves as a master list of all of the possible
225
+ localizations. It may not be all inclusive, so feel free to add additional
226
+ localizations if not already covered by this file. The
227
+ `Resources/locale-list.json`, generated by _Middlemac_, contains _only_ the
228
+ locales used in the current project.
229
+ {: .tip .callout}
230
+
231
+
232
+ <% end %>
233
+
234
+
235
+ ## Middlemac and Eagle
236
+
237
+ _Middlemac_ builds Eagle Help Books. Apple’s JavaScript has been modified
238
+ slightly to provide support for non-flat file structures, and support for
239
+ `<image>` tag `srcset` attributes.
240
+
241
+ Some of Apple’s CSS has been overridden with more specificity to provide
242
+ improvements to things such as `<dl>` that Apple doesn’t use often, but are
243
+ critical for certain workflows.
244
+
245
+ When you use _Middlemac_, you are building a real, true, Eagle Help Book, and
246
+ not a copy, clone, or simulation.
@@ -0,0 +1,4 @@
1
+ ---
2
+ title: Apple Help Books
3
+ layout: layout-blank
4
+ ---
@@ -0,0 +1,82 @@
1
+ ---
2
+ title: Backwards Compatibility
3
+ blurb: Notes about Backwards Compatibility with earlier versions of Middlemac.
4
+ ---
5
+ <%= md_links %>
6
+ <%= md_images %>
7
+
8
+ _Middlemac_ version 3.0.0 is a **major** update. It’s an API-breaking update
9
+ and projects using _Middlemac_ version 1._x_ or version 2._x_ will _not_ build
10
+ without some changes to your project.
11
+
12
+ This version of _Middlemac_ is a complete rewrite, and this was done in an
13
+ effort to let Apple’s Help Book tools do their job and make modern Apple Help
14
+ books. If you prefer full, manual control and custom styles that deviate from
15
+ Apple’s look and feel, it’s suggested that you stick with _Middlemac_ version
16
+ 2.0.
17
+
18
+ Middlemac 3.0 compared to older versions
19
+ ----------------------------------------
20
+
21
+ _Middlemac_ versions prior to 3.0 were intended to provided tools giving you
22
+ maximum control over page appearance while providing tools to allow automatic
23
+ navigation within groups/sections. Although it shipped with layout templates
24
+ and CSS to emulate the look of Apple’s Help Books for versions prior to
25
+ macOS 10.10 (i.e., “Mavericks” and earlier), you were always encouraged to
26
+ customize.
27
+
28
+ _Middlemac_ 3.0, however, does away with _all of that_ in favor of building
29
+ Apple Help Books that follow Apple’s own examples, standards, and practices.
30
+ _Middlemac_ no longer builds Help Books that emulate a style, rather, Apple’s
31
+ own tools provide the style and functionality. This necessarily represents a
32
+ departure from the previous model of doing things.
33
+
34
+
35
+ Project Upgrade Tips
36
+ --------------------
37
+
38
+ No automated method of upgrading a project is provided, but the steps for
39
+ achieving an upgrade are fairly simple.
40
+
41
+ The _vast_ majority of your source files will continue to work as they did in
42
+ the past, although you may wish to reorganize them to align nicely with the way
43
+ that modern Apple Help Books work. Here are some tips to help you migrate
44
+ faster:
45
+
46
+ - Begin by _reading_ this documentation and having a close look at the sample
47
+ project.
48
+
49
+ - Take a look at the [Directory and File Reference][directory_reference],
50
+ to have a good understanding of what all of the new files do, and what their
51
+ functions are.
52
+
53
+ - **It’s probably easiest to move your old source HTML files into the new sample
54
+ project.**
55
+
56
+ - Some Markdown reference style links may have their references changed. Keep a
57
+ lookout for this.
58
+
59
+ - There’s a new option called `show_debug` in the new `config.rb` file. Set this
60
+ to `true` to see all of the `md_links` and `md_images` values at the bottom
61
+ of each Help Book page. This setting will also highlight non-working Markdown
62
+ reference style links.
63
+
64
+ - `Base.lproj` is not supported by modern Apple Help Books. Ensure that this
65
+ directory is named `en.lproj`, or some other locale name supported by Apple’s
66
+ Help Book system.
67
+
68
+ - Group landing pages are no longer supported, because modern Apple Help Books
69
+ do no use them. Instead, group landing pages are now used solely as metadata
70
+ containers to provide the name of the group. If you absolutely require a
71
+ landing page, you can create a topic page in the group.
72
+
73
+ - In Apple parlance, “groups” are now called “sections,” although in order to
74
+ preserve as much backwards compatibility as possible, functions relating to
75
+ groups, if you use them, refer to groups.
76
+
77
+ - Most of the group navigation features and all of the helpers are no longer
78
+ included, nor are breadcrumbs. Modern Apple Help Books do not use them, and
79
+ handle all navigation via their JavaScript, so this support was dropped. If
80
+ you wish to go against Apple’s style, you can re-introduce these partials from
81
+ an older version of _Middleman_ yourself, as all of the internal logic is
82
+ still present.
@@ -0,0 +1,276 @@
1
+ ---
2
+ title: Directory and File Reference
3
+ blurb: Let us examine all of the files and folders in a standard
4
+ <em>Middlemac</em> project folder.
5
+ ---
6
+ <%= md_links %>
7
+ <%= md_images %>
8
+
9
+ <%= current_page.data.blurb %>
10
+
11
+
12
+ `your_project/`
13
+
14
+ : This is the self-contained directory containing everything that you need to
15
+ configure and build your project.
16
+
17
+ `your_project/config.rb`
18
+
19
+ : This file contains most of your project settings for configuring
20
+ _Middlemac_, _Middleman_, and other _Middleman_ extensions you might add
21
+ in the future.
22
+
23
+ `your_project/Gemfile`
24
+
25
+ : This file keeps track of the Ruby dependencies that are required for
26
+ _Middleman_ to work. You can edit this file to add additional _Middleman_
27
+ extensions, should you wish _Middlemac_/_Middleman_ do something more.
28
+
29
+ `your_project/Gemfile.lock`
30
+
31
+ : This is the bundler-generated file specifying the _exact_ dependency
32
+ configuration used. As Ruby Gems are updated on your system, this file will
33
+ ensure that updated versions are _not_ used, so that your configuration
34
+ stays frozen and steady. You can `bundle update` when you are ready to use
35
+ the newest version of Gems; doing so regenerates this file.
36
+
37
+ `your_project/middlemac.webloc`
38
+
39
+ : This is a convenient shortcut that, when used, will open your Help Book
40
+ in the default browser to the main `index.html` file.
41
+
42
+ `your_project/Contents/`
43
+
44
+ : Contains everything in your help project that will be compiled into or
45
+ contribute to the final `.help` project.
46
+
47
+
48
+ `your_project/Contents/Info.plist.erb`
49
+
50
+ : The `Info.plist.erb` file is the file that _Middlemac_ will process into the
51
+ final `Info.plist` that your macOS application needs in order to work with
52
+ your Help Book. For a basic project you shouldn’t have to modify anything in
53
+ this file, but if you want or need to have other key-value pairs in the
54
+ final `Info.plist`, then add them here.
55
+
56
+
57
+ `your_project/Contents/Resources/index.html`
58
+
59
+ : This file is the heart of your entire modern Help Book. When the Help Book
60
+ is open in Apple Help Viewer or being served to your web browser, it is the
61
+ only page that you will ever truly see. The entire rest of your Help Book,
62
+ in any language, is loaded by this file for display via AJAX. Consequently,
63
+ it strips out most of the `<head>` information from your own files, loads
64
+ all of the JavaScripts and styles, and manages language selection, TOC, and
65
+ everything else in your Help Book.
66
+
67
+ The data that appear in your generated HTML documents’ `<head>` is still
68
+ critical to the Apple Help Indexer. Don’t try to simplify things by removing
69
+ these items from the layout templates.
70
+
71
+ You generally should never have to edit this file, unless you want to
72
+ include some CSS or JavaScript that is not provided by _Middlemac_.
73
+
74
+
75
+ `your_project/Contents/Resources/locale-list.json.erb`
76
+
77
+ : When served to a web browser, Apple’s JavaScript will refer to this file
78
+ to determine which languages are available. This file is managed
79
+ automatically by _Middlemac_ based on the actual `language.lproj` files
80
+ that are present in your project.
81
+
82
+
83
+ `your_project/Contents/Resources/SharedGlobalAssets/`
84
+
85
+ : This directory contains assets that are common between all of your
86
+ different help language projects, as well as assets that _Middlemac_
87
+ requires by convention, such as Apple’s CSS and JavaScripts, certain image
88
+ files, data files, layouts, and so on.
89
+
90
+
91
+ `your_project/Contents/Resources/SharedGlobalAssets/_data/`
92
+
93
+ : This directory contains data files that you can use to supply data for
94
+ [using local data][local_data]. This directory will not be
95
+ output in the final build.
96
+
97
+
98
+ `your_project/Contents/Resources/SharedGlobalAssets/_data/locale-list.json`
99
+
100
+ : This file contains all of the source information for the locales that
101
+ _Middlemac_ supports “out of the box,” and is the same that Apple
102
+ generally provides for most of its applications. You should consult this
103
+ file to determine the correct `language.lproj` directory name to use for
104
+ developing help for locales other then the default `en.lproj`.
105
+
106
+
107
+ `your_project/Contents/Resources/SharedGlobalAssets/_layouts/`
108
+
109
+ : All layouts and templates should go here. This directory will not be
110
+ output in the final build.
111
+
112
+
113
+ `your_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern-aside.haml`
114
+
115
+ : This is the layout use for “aside” files. Your asides should set their
116
+ `layout` frontmatter key to this layout.
117
+
118
+
119
+ `your_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern.haml`
120
+
121
+ : This is the layout for all content files, and is used by default when
122
+ the frontmatter does not override it with a different `layout` key.
123
+
124
+
125
+ `your_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-blank.haml`
126
+
127
+ : This is a layout that generates no content, and should be used for group
128
+ metadata `index.html` files.
129
+
130
+
131
+ `your_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-hpd.haml`
132
+
133
+ : This is a layout used by `index_hpd.html` files at the root level of each of
134
+ your languages, and simply causes a redirect to the proper `index.html` file
135
+ in that directory.
136
+
137
+
138
+ `your_project/Contents/Resources/SharedGlobalAssets/_partials/`
139
+
140
+ : Partials can go here, and should be prefaced with an underscore so that
141
+ they will not generate build output. Partial files can also be included
142
+ in any other directory, too. This is for organizational convenience of
143
+ common partials that may be used anywhere.
144
+
145
+
146
+ `your_project/Contents/Resources/SharedGlobalAssets/convention/`
147
+
148
+ : Images that the Apple Help Book and _Middlemac_ require by convention go
149
+ here. This is separate from the `images/` directory simply to make
150
+ directory management simpler by avoiding the mixing of required and
151
+ non-required files.
152
+
153
+
154
+ `your_project/Contents/Resources/SharedGlobalAssets/css/`
155
+
156
+ : Your `.css` and `.scss` files should go here.
157
+
158
+
159
+ `your_project/Contents/Resources/SharedGlobalAssets/css/apple/`
160
+
161
+ : Apple’s CSS and CSS related files exist in this directory.
162
+
163
+
164
+ `your_project/Contents/Resources/SharedGlobalAssets/css/middlemac/`
165
+
166
+ : _Middlemac_’s CSS and CSS related files exist in this directory.
167
+
168
+
169
+ `your_project/Contents/Resources/SharedGlobalAssets/fonts/`
170
+
171
+ : Any fonts that you wish to include should go here. In general if you are
172
+ building an Apple Help Book, additional fonts should not be needed.
173
+
174
+
175
+ `your_project/Contents/Resources/SharedGlobalAssets/images/`
176
+
177
+ : All images should go here. _Middleman_ will find them automatically if
178
+ you use the helpers.
179
+
180
+
181
+ `your_project/Contents/Resources/SharedGlobalAssets/js/`
182
+
183
+ : Javascripts, if any, should go here. They will not be included
184
+ automatically in your project unless you modify the main `index.html`
185
+ file to include them.
186
+
187
+
188
+ `your_project/Contents/Resources/SharedGlobalAssets/js/app.5.1.xx.js`
189
+ `your_project/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js`
190
+ `your_project/Contents/Resources/SharedGlobalAssets/js/vendor.js`
191
+
192
+ : These are the Apple and _Middlemac_ JavaScript files that operate the
193
+ modern Apple Help Book. Note that the `app.5.1.xx.js` file is as Apple
194
+ originally provides it, with some minor editing to work with `<img>` tag
195
+ `srcset` attributes.
196
+
197
+ You should add any JavaScripts that your HelpBook requires here, and then
198
+ modify the main `index.html` file to include them.
199
+
200
+
201
+ `your_project/Contents/Resources/en.lproj`
202
+
203
+ : This directory serves as your base [group][groups] for the English version
204
+ of your Help Book, and it contains all of your Help Book’s content,
205
+ including locale-specific versions of your resources.
206
+
207
+ Any other files that result in `.html` in this directory level, except for
208
+ `index.html` constitute part of the `en.lproj` group. At this level you
209
+ should start adding directories to contain your other groups.
210
+
211
+ Certainly, you’re not required to develop in English, and _Middlemac_
212
+ supports multiple languages simultaneously. Out of the box, you can use
213
+ any language supported by `SharedGlobalAssets/_data/locale-list.json`.
214
+
215
+ `your_project/Contents/Resources/en.lproj/ExactMatch.plist.erb`
216
+
217
+ : This file supplements the `.helpindex` file when the Help Book is viewed in
218
+ Apple Help Viewer by providing exact word matching. _Middlemac_ generates
219
+ the finished version of this file based on the `exactmatch` keys in your
220
+ pages’ frontmatter. See [Apple’s documentation][1] for details.
221
+
222
+
223
+ `your_project/Contents/Resources/en.lproj/index_hpd.html.md.erb`
224
+
225
+ : This is the file pointed to by the `Info.plist` key `HPDBookAccessPath`,
226
+ and simply redirects to the language’s actual `index.html` file in the built
227
+ project. This is required to avoid conflicts with recent versions of macOS
228
+ wherein **Help Viewer** gets confused when there are multiple `index.html`
229
+ files in both the language level and the `/Resources` directory.
230
+
231
+
232
+ `your_project/Contents/Resources/en.lproj/InfoPlist.strings`
233
+
234
+ : The `InfoPlist.strings` file is the file that _Middlemac_ will process into
235
+ the final `InfoPlist.strings`, which contains the localized version of your
236
+ applications’ human-readable `Info.plist` data (specifically, `CFBundleName`
237
+ and `HPDBookTitle`).
238
+
239
+
240
+ `your_project/Contents/Resources/en.lproj/locale-info.json.erb`
241
+
242
+ : This file contains metadata used by Apple’s JavaScript to understand the
243
+ locale details for this locale’s directory. It is managed automatically by
244
+ _Middlemac_.
245
+
246
+
247
+ `your_project/Contents/Resources/en.lproj/navigation.json.erb`
248
+
249
+ : _Middlemac_ builds the output version of this file from your Help Book’s
250
+ sitemap. It is used by Apple’s JavaScript to make all of the navigation
251
+ features possible.
252
+
253
+
254
+ `your_project/Contents/Resources/en.lproj/searchTree.json..erb`
255
+
256
+ : This file contains the search index used when your Help Book is viewed in
257
+ a browser. _Middlemac_ generates the final version of this file when it
258
+ indexes your Help Book.
259
+
260
+
261
+ `your_project/Contents/Resources/en.lproj/asides/`
262
+
263
+ : This optional folder can be used to hold your aside files. Besides being a
264
+ convenient organizational location, it has the magic property of not
265
+ requiring the `aside` category in their frontmatter.
266
+
267
+ `your_project/Contents/Resources/en.lproj/assets/`
268
+
269
+ : This directory contains all of the localized assets used in your Help Book.
270
+ In order for _Middlemac_’s asset helpers such as `image_tag` and `partial`
271
+ to find localized resources, any subdirectories of `assets/` must mirror
272
+ the subdirectories of `SharedGlobalAssets/`, e.g., `assets/images/`.
273
+ {: .nontabular}
274
+
275
+
276
+ [1]: https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/authoring_help/authoring_help_book.html#//apple_ref/doc/uid/TP30000903-CH206-SW5