middlemac 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile +11 -1
- data/README.md +38 -6
- data/Rakefile +7 -2
- data/documentation_project/.gitignore +1 -1
- data/documentation_project/Contents/Info.plist.erb +1 -1
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/_data/globals.yml +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_data/locale-list.json +318 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern-aside.haml +19 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern.haml +61 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_layouts/layout-blank.haml +11 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_partials/_yard_middlemac_config.erb +276 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_partials/_yard_middlemac_helpers.erb +897 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/_partials/_yard_middlemac_helpers_extended.erb +369 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_pagegroups_resources.erb → SharedGlobalAssets/_partials/_yard_middlemac_resources.erb} +342 -37
- data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_config.erb → SharedGlobalAssets/_partials/_yard_mmtargets_config.erb} +15 -110
- data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_helpers.erb → SharedGlobalAssets/_partials/_yard_mmtargets_helpers.erb} +4 -4
- data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_helpers_extended.erb → SharedGlobalAssets/_partials/_yard_mmtargets_helpers_extended.erb} +6 -2
- data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_instance.erb → SharedGlobalAssets/_partials/_yard_mmtargets_instance.erb} +1 -1
- data/documentation_project/Contents/Resources/{Base.lproj/assets/partials/_yard_targets_resources.erb → SharedGlobalAssets/_partials/_yard_mmtargets_resources.erb} +2 -2
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256@2x.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32@2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/apple.css +3831 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg +1 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets/stylesheets/_github.scss → SharedGlobalAssets/css/middlemac/github.css.scss} +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css.scss +129 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg +19 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg +1 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg +19 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/fonts/_dummy.txt +1 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/all-sample.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/all-sample@2x.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_256x256.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_256x256@2x.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_32x32.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/free-icon_32x32@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo-small.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/free-middlemac-logo@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo-small.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/middlemac-logo@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo-small.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/free-logo@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo-small.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/mm-targets/pro-logo@2x.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_256x256.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_256x256@2x.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_32x32.png +0 -0
- data/documentation_project/Contents/Resources/{shared → SharedGlobalAssets/images}/pro-icon_32x32@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo-small.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/images/pro-middlemac-logo@2x.png +0 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js +6295 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js +20 -0
- data/documentation_project/Contents/Resources/SharedGlobalAssets/js/vendor.js +226 -0
- data/documentation_project/Contents/Resources/en.lproj/010_what_is_middlemac/index.html.md.erb +114 -0
- data/documentation_project/Contents/Resources/en.lproj/020_apple_help_features/index.html.md.erb +241 -0
- 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
- data/documentation_project/Contents/Resources/en.lproj/030_get_started/020_your_first_help_book.html.md.erb +374 -0
- data/documentation_project/Contents/Resources/en.lproj/030_get_started/030_serve_your_help_book.html.md.erb +97 -0
- data/documentation_project/Contents/Resources/en.lproj/030_get_started/040_build_your_help_book.html.md.erb +56 -0
- 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
- 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
- data/documentation_project/Contents/Resources/en.lproj/030_get_started/070_about_ruby.html.md.erb +194 -0
- data/documentation_project/Contents/Resources/en.lproj/030_get_started/aside_frontmatter.html.md.erb +64 -0
- data/documentation_project/Contents/Resources/en.lproj/030_get_started/index.html.md.erb +4 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/010_setup.html.md.erb +204 -0
- 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
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/030_directory_conventions.html.md.erb +206 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/040_groups.html.md.erb +96 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/050_targets_and_features.html.md.erb +220 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/060_frontmatter.html.md.erb +98 -0
- 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
- 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
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/080_helpers/020_markdown_links.html.md.erb +51 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/080_helpers/030_markdown_images.html.md.erb +52 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/080_helpers/index.html.md.erb +4 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/090_partials.html.md.erb +64 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/100_resources.html.md.erb +36 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/110_implement_features.html.md.erb +197 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/120_preview_build.html.md.erb +85 -0
- data/documentation_project/Contents/Resources/en.lproj/040_compose_project/index.html.md.erb +4 -0
- data/documentation_project/Contents/Resources/{Base.lproj/050_structure → en.lproj/040_compose_project}/not_free.html.md.erb +4 -11
- data/documentation_project/Contents/Resources/{Base.lproj/050_structure → en.lproj/040_compose_project}/not_pro.html.md.erb +4 -11
- data/documentation_project/Contents/Resources/en.lproj/100_reference/010_apple_help_books/010_dissect_help_book.html.md.erb +295 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/010_apple_help_books/020_dissect_modern_help.html.md.erb +246 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/010_apple_help_books/index.html.md.erb +4 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/030_backwards_compatibility.html.md.erb +82 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/040_directory_reference.html.md.erb +260 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/050_xcode_integration.html.md.erb +165 -0
- 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
- data/documentation_project/Contents/Resources/en.lproj/100_reference/080_frontmatter_reference.html.md.erb +111 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/120_api_reference/070_config_ref.html.md.erb +31 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/120_api_reference/090_helpers_ref.html.md.erb +20 -0
- 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
- 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
- data/documentation_project/Contents/Resources/en.lproj/100_reference/120_api_reference/index.html.md.erb +4 -0
- data/documentation_project/Contents/Resources/en.lproj/100_reference/index.html.md.erb +4 -0
- data/documentation_project/Contents/Resources/{Base.lproj → en.lproj}/110_acknowledgements/index.html.md.erb +5 -7
- data/documentation_project/Contents/Resources/en.lproj/ExactMatch.plist.erb +15 -0
- data/documentation_project/Contents/Resources/{Base.lproj → en.lproj}/InfoPlist.strings.erb +0 -0
- data/documentation_project/Contents/Resources/en.lproj/asides/aside_description.html.md.erb +21 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_books_folder_reference.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_books_project_membership.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_aside_example.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_chapter_heading.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_copyright_footer.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_landing_links.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_language_chooser.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_navigator.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_see_also.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_title_icons.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/apple_help_features_universal.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/get_started_init_contents.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/get_started_init_english.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_config_sets.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_plist_definitions.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_target_dependencies.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_target_template.png +0 -0
- data/documentation_project/Contents/Resources/en.lproj/assets/images/xcode_integration_tool_configuration.png +0 -0
- data/documentation_project/Contents/Resources/{Base.lproj → en.lproj}/index.html.md.erb +3 -13
- data/documentation_project/Contents/Resources/en.lproj/locale-info.json.erb +16 -0
- data/documentation_project/Contents/Resources/en.lproj/navigation.json.erb +57 -0
- data/documentation_project/Contents/Resources/en.lproj/searchTree.json.erb +1 -0
- data/documentation_project/Contents/Resources/es.lproj/ExactMatch.plist.erb +15 -0
- data/{fixtures/middlemac_app/Contents/Resources/Base.lproj → documentation_project/Contents/Resources/es.lproj}/InfoPlist.strings.erb +0 -0
- data/documentation_project/Contents/Resources/es.lproj/index.html.md.erb +27 -0
- data/documentation_project/Contents/Resources/es.lproj/locale-info.json.erb +16 -0
- data/documentation_project/Contents/Resources/es.lproj/navigation.json.erb +57 -0
- data/documentation_project/Contents/Resources/es.lproj/searchTree.json.erb +1 -0
- data/documentation_project/Contents/Resources/index.html.erb +118 -0
- data/documentation_project/Contents/Resources/locale-list.json.erb +14 -0
- data/documentation_project/Gemfile +4 -17
- data/documentation_project/HelpViewerApp/HelpViewerApp/AppDelegate.h +1 -0
- data/documentation_project/HelpViewerApp/HelpViewerApp/AppDelegate.m +6 -0
- data/documentation_project/HelpViewerApp/HelpViewerApp/Base.lproj/MainMenu.xib +39 -10
- data/documentation_project/HelpViewerApp/HelpViewerApp/Info-free.plist +4 -4
- data/documentation_project/HelpViewerApp/HelpViewerApp/Info-pro.plist +4 -4
- data/documentation_project/HelpViewerApp/HelpViewerApp/versions.xcconfig +8 -0
- data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/project.pbxproj +79 -101
- data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/Help (free).xcscheme +11 -6
- data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/Help (pro).xcscheme +80 -0
- data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/HelpViewerApp (free).xcscheme +1 -1
- data/documentation_project/HelpViewerApp/HelpViewerApp.xcodeproj/xcshareddata/xcschemes/HelpViewerApp (pro).xcscheme +1 -1
- data/documentation_project/HelpViewerApp/README.md +6 -26
- data/documentation_project/{Middlemac (free).help → Middlemac_(free).help}/.gitignore +0 -0
- data/documentation_project/{Middlemac (pro).help → Middlemac_(pro).help}/.gitignore +0 -0
- data/documentation_project/config.rb +68 -100
- data/documentation_project/makefile +93 -0
- data/documentation_project/middlemac.webloc +0 -0
- data/features/helpers_features.feature +59 -0
- data/features/main_features.feature +21 -17
- data/features/support/env.rb +0 -14
- data/fixtures/middlemac_app/.gitignore +0 -1
- data/fixtures/middlemac_app/Contents/Info.plist.erb +1 -1
- data/fixtures/middlemac_app/Contents/Resources/{Base.lproj/assets → SharedGlobalAssets}/_data/globals.yml +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_data/locale-list.json +318 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern-aside.haml +19 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-apple-modern.haml +61 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/_layouts/layout-blank.haml +11 -0
- data/fixtures/middlemac_app/Contents/Resources/{Base.lproj/assets/partials → SharedGlobalAssets/_partials}/_partials_dir_partial.erb +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_256x256@2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/{shared → SharedGlobalAssets/convention}/icon_32x32@2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/apple.css +3831 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/{Base.lproj/assets/stylesheets/_github.scss → SharedGlobalAssets/css/middlemac/github.css.scss} +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css.scss +129 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg +19 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg +19 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/fonts/_dummy.txt +1 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/images/global_thing_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js +6295 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js +20 -0
- data/fixtures/middlemac_app/Contents/Resources/SharedGlobalAssets/js/vendor.js +226 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/10_hello_world_file.html.md.erb +17 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/30_sample_group_number_one/index.html.md.erb +8 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/30_sample_group_number_one/page_one.html.md.erb +108 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/30_sample_group_number_one/page_two.html.md.erb +36 -0
- 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
- 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
- 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
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/40_sample_group_number_two/01_nested_group_example/index.html.md.erb +4 -0
- data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/02_page_two.html.md.erb +0 -5
- data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/40_sample_group_number_two/03_page_three.html.md.erb +0 -5
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/40_sample_group_number_two/index.html.md.erb +4 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/50_testing_world_file.html.md.erb +58 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/60_goodbye_world_file.html.md.erb +203 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/ExactMatch.plist.erb +15 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/InfoPlist.strings.erb +10 -0
- data/fixtures/middlemac_app/Contents/Resources/{Base.lproj → en.lproj}/_new_style_partial.erb +0 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/asides/aside_description.html.md.erb +20 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/_partials/_localized_partials_dir_partial.erb +1 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/all-graphic_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/neat_thing_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/subdirectory/logo_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/assets/images/subdirectory/pro-image_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/copyright.html.md.erb +19 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/index.html.md.erb +20 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/locale-info.json.erb +16 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/navigation.json.erb +57 -0
- data/fixtures/middlemac_app/Contents/Resources/en.lproj/searchTree.json.erb +1 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/10_hola_mundo_file.html.md.erb +15 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/60_goodbye_world_file.html.md.erb +193 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/ExactMatch.plist.erb +15 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/InfoPlist.strings.erb +10 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/all-graphic_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/neat_thing_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/subdirectory/logo_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/assets/images/subdirectory/pro-image_32x32.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/copyright.html.md.erb +19 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/index.html.md.erb +21 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/locale-info.json.erb +16 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/navigation.json.erb +57 -0
- data/fixtures/middlemac_app/Contents/Resources/es.lproj/searchTree.json.erb +1 -0
- data/fixtures/middlemac_app/Contents/Resources/index.html.erb +118 -0
- data/fixtures/middlemac_app/Contents/Resources/locale-list.json.erb +14 -0
- data/fixtures/middlemac_app/Gemfile +4 -17
- data/fixtures/middlemac_app/config.rb +71 -100
- data/fixtures/middlemac_app/makefile +93 -0
- data/fixtures/middlemac_app/middlemac.webloc +0 -0
- data/lib/middlemac/extension.rb +123 -211
- data/lib/middlemac/helpers.rb +470 -0
- data/lib/middlemac/private.rb +494 -0
- data/lib/middlemac/sitemap.rb +516 -0
- data/lib/middlemac/trie.rb +37 -0
- data/lib/middlemac/version.rb +1 -1
- data/lib/middlemac.rb +4 -0
- data/middlemac.gemspec +7 -6
- data/resources/stopwords/ar.plist +206 -0
- data/resources/stopwords/ca.plist +0 -0
- data/resources/stopwords/cs.plist +30 -0
- data/resources/stopwords/da.plist +6 -0
- data/resources/stopwords/de.plist +119 -0
- data/resources/stopwords/el.plist +0 -0
- data/resources/stopwords/en.plist +0 -0
- data/resources/stopwords/es.plist +282 -0
- data/resources/stopwords/es_419.plist +282 -0
- data/resources/stopwords/fi.plist +206 -0
- data/resources/stopwords/fr.plist +132 -0
- data/resources/stopwords/he.plist +0 -0
- data/resources/stopwords/hr.plist +0 -0
- data/resources/stopwords/hu.plist +44 -0
- data/resources/stopwords/id.plist +6 -0
- data/resources/stopwords/it.plist +153 -0
- data/resources/stopwords/ja.plist +6 -0
- data/resources/stopwords/ko.plist +106 -0
- data/resources/stopwords/ms.plist +6 -0
- data/resources/stopwords/nl.plist +198 -0
- data/resources/stopwords/no.plist +207 -0
- data/resources/stopwords/pl.plist +207 -0
- data/resources/stopwords/pt.plist +207 -0
- data/resources/stopwords/pt_PT.plist +207 -0
- data/resources/stopwords/ro.plist +0 -0
- data/resources/stopwords/ru.plist +207 -0
- data/resources/stopwords/sk.plist +0 -0
- data/resources/stopwords/sv.plist +280 -0
- data/resources/stopwords/th.plist +56 -0
- data/resources/stopwords/tr.plist +200 -0
- data/resources/stopwords/uk.plist +764 -0
- data/resources/stopwords/vi.plist +6 -0
- data/resources/stopwords/zh_CN.plist +207 -0
- data/resources/stopwords/zh_TW.plist +207 -0
- data/yard/readme.md +4 -4
- metadata +394 -219
- data/documentation_project/Contents/Resources/Base.lproj/010_what_is_middlemac/index.html.md.erb +0 -126
- data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/20_frontmatter_skill.html.md.erb +0 -54
- data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/40_ruby_skill.html.md.erb +0 -67
- data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/50_ruby_ecosystem.html.md.erb +0 -136
- data/documentation_project/Contents/Resources/Base.lproj/030_skills_refresher/index.html.md.erb +0 -35
- data/documentation_project/Contents/Resources/Base.lproj/040_setup/index.html.md.erb +0 -88
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/010_directories_and_images.html.md.erb +0 -176
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/020_layouts_and_templates.html.md.erb +0 -71
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/025_css.html.md.erb +0 -71
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/030_groups.html.md.erb +0 -83
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/040_breadcrumbs.html.md.erb +0 -43
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/050_navigator.html.md.erb +0 -26
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/060_targets.html.md.erb +0 -63
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/070_features.html.md.erb +0 -122
- data/documentation_project/Contents/Resources/Base.lproj/050_structure/index.html.md.erb +0 -21
- data/documentation_project/Contents/Resources/Base.lproj/060_content/010_frontmatter.html.md.erb +0 -88
- data/documentation_project/Contents/Resources/Base.lproj/060_content/040_partials.html.md.erb +0 -121
- data/documentation_project/Contents/Resources/Base.lproj/060_content/050_resources.html.md.erb +0 -60
- data/documentation_project/Contents/Resources/Base.lproj/060_content/070_including_excluding.html.md.erb +0 -68
- data/documentation_project/Contents/Resources/Base.lproj/060_content/080_markdown_links_images.html.md.erb +0 -93
- data/documentation_project/Contents/Resources/Base.lproj/060_content/090_css_image_sizes.html.md.erb +0 -90
- data/documentation_project/Contents/Resources/Base.lproj/060_content/index.html.md.erb +0 -21
- data/documentation_project/Contents/Resources/Base.lproj/070_preview_build/index.html.md.erb +0 -78
- data/documentation_project/Contents/Resources/Base.lproj/090_build_application/10_apple_help_setup.html.md.erb +0 -110
- data/documentation_project/Contents/Resources/Base.lproj/090_build_application/20_xcode_integration.html.md.erb +0 -64
- data/documentation_project/Contents/Resources/Base.lproj/090_build_application/index.html.md.erb +0 -25
- data/documentation_project/Contents/Resources/Base.lproj/100_reference/20_config_ref.html.md.erb +0 -56
- data/documentation_project/Contents/Resources/Base.lproj/100_reference/40_helpers_ref.html.md.erb +0 -45
- data/documentation_project/Contents/Resources/Base.lproj/100_reference/index.html.md.erb +0 -26
- data/documentation_project/Contents/Resources/Base.lproj/120_backwards_compatibility/index.html.md.erb +0 -88
- data/documentation_project/Contents/Resources/Base.lproj/130_all_help_content/index.html.md.erb +0 -15
- data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/layout-html4.haml +0 -22
- data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/layout-xhtml.haml +0 -28
- data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-large.haml +0 -30
- data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-medium.haml +0 -30
- data/documentation_project/Contents/Resources/Base.lproj/assets/_layouts/template-logo-small.haml +0 -30
- data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/FontAwesome.otf +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.svg +0 -655
- data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras-small.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/middlemac-extras@2x.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras-small.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras-small@2x.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-extras/sub_images/middlemac-extras@2x.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-pagegroups/middleman-pagegroups-small.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/images/mm-pagegroups/middleman-pagegroups.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/javascripts/all.js +0 -1
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs.haml +0 -11
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs_alt.haml +0 -15
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_brethren.haml +0 -18
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_brethren_index.haml +0 -14
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_legitimate_children.haml +0 -16
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_prev_next.haml +0 -21
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_nav_toc_index.haml +0 -21
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_config.erb +0 -200
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_helpers.erb +0 -146
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_extras_helpers_extended.erb +0 -135
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_config.erb +0 -207
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_helpers.erb +0 -297
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_middlemac_helpers_extended.erb +0 -96
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_config.erb +0 -744
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers.erb +0 -710
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers_css.erb +0 -523
- data/documentation_project/Contents/Resources/Base.lproj/assets/partials/_yard_pagegroups_helpers_extended.erb +0 -56
- data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_apple_helpbook.scss +0 -946
- data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/_normalize.scss +0 -374
- data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/breadcrumb-separator-light.png +0 -0
- data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/image_sizes.css.erb +0 -8
- data/documentation_project/Contents/Resources/Base.lproj/assets/stylesheets/style.css.scss +0 -4
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/10_hello_world_file.html.md.erb +0 -22
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/20_goodbye_world_file.html.md.erb +0 -22
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/index.html.md.erb +0 -24
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/page_one.html.md.erb +0 -20
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/30_sample_group_number_one/page_two.html.md.erb +0 -19
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/01_nested_group_example/index.html.md.erb +0 -18
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/40_sample_group_number_two/index.html.md.erb +0 -24
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/45_testing_world_file.html.md.erb +0 -55
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/50_entire_world_file.html.md.erb +0 -15
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/layout-html4.haml +0 -22
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/layout-xhtml.haml +0 -28
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-large.haml +0 -30
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-medium.haml +0 -30
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/_layouts/template-logo-small.haml +0 -30
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/FontAwesome.otf +0 -0
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.svg +0 -655
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/images/_empty_directory.html.md.erb +0 -1
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/javascripts/all.js +0 -1
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs.haml +0 -11
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_breadcrumbs_alt.haml +0 -15
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_brethren.haml +0 -18
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_brethren_index.haml +0 -14
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_legitimate_children.haml +0 -16
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_prev_next.haml +0 -21
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/partials/_nav_toc_index.haml +0 -21
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_apple_helpbook.scss +0 -946
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/_normalize.scss +0 -374
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/breadcrumb-separator-light.png +0 -0
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/image_sizes.css.erb +0 -8
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/assets/stylesheets/style.css.scss +0 -4
- data/fixtures/middlemac_app/Contents/Resources/Base.lproj/index.html.md.erb +0 -17
@@ -1,18 +1,13 @@
|
|
1
1
|
---
|
2
|
-
title:
|
3
|
-
blurb:
|
4
|
-
|
5
|
-
layout: template-logo-small
|
6
|
-
navigator: false
|
2
|
+
title: Invisible On Free
|
3
|
+
blurb: This page is not available for target `:free`, as a demonstration
|
4
|
+
of the use of targets.
|
7
5
|
exclude:
|
8
6
|
- :free
|
9
7
|
---
|
10
8
|
<%= md_links %>
|
11
9
|
<%= md_images %>
|
12
10
|
|
13
|
-
<%= current_page.data.title %>
|
14
|
-
==============================
|
15
|
-
|
16
11
|
<%= current_page.data.blurb %>
|
17
12
|
|
18
13
|
|
@@ -28,8 +23,6 @@ build output.
|
|
28
23
|
title: Invisible On Free
|
29
24
|
blurb: This page is not available for target `:free`, as a demonstration of
|
30
25
|
the use of targets.
|
31
|
-
layout: template-logo-small
|
32
|
-
navigator: false
|
33
26
|
exclude:
|
34
27
|
- :free
|
35
28
|
---
|
@@ -40,4 +33,4 @@ included in the target list will be included in _Middlemac_ navigation.
|
|
40
33
|
Using `exclude` overrides `target`.
|
41
34
|
|
42
35
|
Note that `target` and `exclude` are lists; you can specify multiple targets and
|
43
|
-
|
36
|
+
features (which also can be used).
|
@@ -1,18 +1,13 @@
|
|
1
1
|
---
|
2
|
-
title:
|
3
|
-
blurb:
|
4
|
-
|
5
|
-
layout: template-logo-small
|
6
|
-
navigator: false
|
2
|
+
title: Invisible On Pro
|
3
|
+
blurb: This page is not available for target `:pro`, as a demonstration of
|
4
|
+
the use of targets.
|
7
5
|
exclude:
|
8
6
|
- :pro
|
9
7
|
---
|
10
8
|
<%= md_links %>
|
11
9
|
<%= md_images %>
|
12
10
|
|
13
|
-
<%= current_page.data.title %>
|
14
|
-
==============================
|
15
|
-
|
16
11
|
<%= current_page.data.blurb %>
|
17
12
|
|
18
13
|
|
@@ -28,8 +23,6 @@ build output.
|
|
28
23
|
title: Invisible On Pro
|
29
24
|
blurb: This page is not available for target `:pro`, as a demonstration of
|
30
25
|
the use of targets.
|
31
|
-
layout: template-logo-small
|
32
|
-
navigator: false
|
33
26
|
exclude:
|
34
27
|
- :pro
|
35
28
|
---
|
@@ -40,4 +33,4 @@ included in the target list will be included in _Middlemac_ navigation.
|
|
40
33
|
Using `exclude` overrides `target`.
|
41
34
|
|
42
35
|
Note that `target` and `exclude` are lists; you can specify multiple targets and
|
43
|
-
|
36
|
+
features (which also can be used).
|
@@ -0,0 +1,295 @@
|
|
1
|
+
---
|
2
|
+
title: Apple Help Book Structure
|
3
|
+
blurb: What is an Apple Help Book composed from, anyway? Why are they so hard
|
4
|
+
to write, and why are they such a mystery?
|
5
|
+
---
|
6
|
+
<%= md_links %>
|
7
|
+
<%= md_images %>
|
8
|
+
|
9
|
+
<%= current_page.data.blurb %>
|
10
|
+
|
11
|
+
Apple’s [Authoring Apple Help][1] documentation, while still accurate, is
|
12
|
+
horribly outdated and a little bit misleading at times. There are countless
|
13
|
+
Stack Overflow and Apple Support forum posts requesting help for developing
|
14
|
+
Help Books, and several blog posts with instructions on how to build a working
|
15
|
+
Help Book (and some of this advice doesn’t always work).
|
16
|
+
|
17
|
+
In essence, though, Help Books are just websites put into Apple’s bundle
|
18
|
+
format, and registered with macOS via a Cocoa application’s `Info.plist` file
|
19
|
+
and matching Help Book bundle `Info.plist` file. Help Books also have a help
|
20
|
+
index file so that your Help Book can be searched (even when not running your
|
21
|
+
application).
|
22
|
+
|
23
|
+
In this topic, we’ll examine some of these inconsistencies, and look at the
|
24
|
+
minimum requirements to build a valid Apple Help Book.
|
25
|
+
|
26
|
+
|
27
|
+
Inconsistencies
|
28
|
+
---------------
|
29
|
+
|
30
|
+
Inconsistencies in Apple’s documentation make it burdensome to create Apple
|
31
|
+
Help Books. For example, this [Authoring Help Pages][1] paragraph states:
|
32
|
+
|
33
|
+
> After you have identified the subjects covered in your help book, you need
|
34
|
+
to create HTML files for your help pages. To ensure that your help displays
|
35
|
+
properly in Help Viewer, _your help files should comply with the HTML 4.01
|
36
|
+
specification_.
|
37
|
+
|
38
|
+
And then:
|
39
|
+
|
40
|
+
> _Your main file—which contains the AppleTitle meta tag—should conform to
|
41
|
+
the XHTML 1.0 specification_.
|
42
|
+
|
43
|
+
Later:
|
44
|
+
|
45
|
+
> Most of the metadata recognized by Help Viewer is optional. However, you
|
46
|
+
must include the AppleTitle meta tag on one page in the root of your help
|
47
|
+
book for Help Viewer to properly identify and display your help book.
|
48
|
+
|
49
|
+
These are nonsense! Apple’s own Help Files have been written in HTML5
|
50
|
+
since at least macOS 10.10, and none of them contain some mystical
|
51
|
+
`AppleTitle` meta tag.
|
52
|
+
|
53
|
+
Others have tried to demystify the creation of Help Books, too, but they tend to
|
54
|
+
muddy the waters. Without embarrassing anyone, a highly-ranked blog article
|
55
|
+
states:
|
56
|
+
|
57
|
+
> The second thing to note is that in spite of the documentation implying that
|
58
|
+
you can use your help bundle identifier to refer to your help bundle (which
|
59
|
+
would, admittedly, make sense), you can’t. You need to use the `HPDBookTitle`
|
60
|
+
value.
|
61
|
+
|
62
|
+
The `HPDBookTitle` doesn’t work. Or perhaps it did before macOS 10.10, but on
|
63
|
+
all of my test systems going back to 10.10, the use of the Help Book’s
|
64
|
+
`CFBundleIdentifier` is required to be referenced in your application’s
|
65
|
+
`Info.plist` file.
|
66
|
+
|
67
|
+
The same article goes on to state:
|
68
|
+
|
69
|
+
> The third thing relates to `HPDBookAccessPath`. The file referred to there
|
70
|
+
must be a valid XHTML file. In particular, it cannot be an HTML5 document —
|
71
|
+
that will simply not work, and the error messages you get on the system
|
72
|
+
console are completely uninformative.
|
73
|
+
|
74
|
+
Again, this might have been true in the old days (_Middlemac_ 2.0 and earlier
|
75
|
+
made pains to follow this rule), but this hasn’t been the case since at least
|
76
|
+
macOS 10.10. Apple’s own help ships with HTML5 files at the `HPDAccessPath`.
|
77
|
+
|
78
|
+
|
79
|
+
Working Help Books, Made Simple
|
80
|
+
-------------------------------
|
81
|
+
|
82
|
+
The make a working Help Book for any macOS Cocoa application, you need simply
|
83
|
+
three things:
|
84
|
+
|
85
|
+
<% helpbook_task "help_archi_1", "A valid macOS bundle containing your help contents…" do %>
|
86
|
+
|
87
|
+
|
88
|
+
Bundles in macOS nearly always have the same structure:
|
89
|
+
|
90
|
+
~~~
|
91
|
+
Contents/
|
92
|
+
Info.plist
|
93
|
+
{stuff}
|
94
|
+
~~~
|
95
|
+
|
96
|
+
An application or extension might look like this:
|
97
|
+
|
98
|
+
~~~
|
99
|
+
Contents/
|
100
|
+
Info.plist
|
101
|
+
MacOS/
|
102
|
+
Resources/
|
103
|
+
~~~
|
104
|
+
|
105
|
+
A Help Bundle should look like similar to an application bundle, but given
|
106
|
+
that it has no executable code (in the `MacOS` directory), it will contain
|
107
|
+
only resources:
|
108
|
+
|
109
|
+
~~~
|
110
|
+
Contents/
|
111
|
+
Info.plist
|
112
|
+
Resources/
|
113
|
+
index.html
|
114
|
+
~~~
|
115
|
+
|
116
|
+
If we put an HTML file into `Resources/` and configure the `.plist` files
|
117
|
+
correctly, this will produce a working Help Book. However, bundles can be
|
118
|
+
localized, and support for localized resources is built into the operating
|
119
|
+
system. Thus, a help bundle should look like this:
|
120
|
+
|
121
|
+
~~~
|
122
|
+
Contents/
|
123
|
+
Info.plist
|
124
|
+
Resources/
|
125
|
+
en.lproj/
|
126
|
+
{non-localized resources}
|
127
|
+
~~~
|
128
|
+
|
129
|
+
These “non-localized resources” can be loose files or directories, having any
|
130
|
+
name allowed by the operating system.
|
131
|
+
|
132
|
+
A Help Book consisting of multiple languages might look like this:
|
133
|
+
|
134
|
+
~~~
|
135
|
+
Contents/
|
136
|
+
Info.plist
|
137
|
+
Resources/
|
138
|
+
en.lproj/
|
139
|
+
es.lproj/
|
140
|
+
ru.lrpoj/
|
141
|
+
logo.png
|
142
|
+
shared_resources/
|
143
|
+
~~~
|
144
|
+
|
145
|
+
Now all we have to do is ensure that our valid bundle is truly valid is ensure
|
146
|
+
that its `Info.plist` identifies it as a proper bundle, and points the Apple
|
147
|
+
help system toward the correct resources.
|
148
|
+
|
149
|
+
In contrary to [Apple’s documentation][1], this table only shows keys that are
|
150
|
+
used and relevant today:
|
151
|
+
|
152
|
+
| Raw Key Name | Sample Value (bold values must be as shown) | Comments
|
153
|
+
|-------------------------------|---------------------------------------------|---------
|
154
|
+
| CFBundleDevelopmentRegion | en-us | Note the use of a hyphen, whereas Apple demonstrates an underscore.
|
155
|
+
| CFBundleIdentifier | com.balthisar.middlemac.free.help | To be used in your application’a `CFBundleHelpBookName`.
|
156
|
+
| CFBundleInfoDictionaryVersion | **6.0** | Required as is.
|
157
|
+
| CFBundleName | Middlemac | This name can be localized.
|
158
|
+
| CFBundlePackageType | **BNDL** | Required as is.
|
159
|
+
| CFBundleShortVersionString | 3.0.0 | Short version of your version string.
|
160
|
+
| CFBundleSignature | **hbwr** | Required as is.
|
161
|
+
| CFBundleVersion | 3.0.0 | Long version of your version string.
|
162
|
+
| HPDBookAccessPath | index.html | The file that should be loaded when Apple Help Viewer starts.
|
163
|
+
| HPDBookIconPath | SharedGlobalArt/free-icon_32x32@2x.png | Icon used to represent the Help Book, especially during system-wide searches.
|
164
|
+
| HPDBookIndexPath | Middlemac.helpindex | The name of your index file, relative to your `.lproj` directory.
|
165
|
+
| HPDBookTitle | Middlemac Help | The title of the Help Book, and it can be localized.
|
166
|
+
| HPDBookType | **3** | Required as is.
|
167
|
+
|
168
|
+
|
169
|
+
<% end %>
|
170
|
+
<% helpbook_task "help_archi_2", "Located in the Resources/ directory of your application, and…" do %>
|
171
|
+
|
172
|
+
|
173
|
+
The requirement is satisfied by putting the help bundle into your application
|
174
|
+
here:
|
175
|
+
|
176
|
+
~~~
|
177
|
+
YourApp.app/
|
178
|
+
Contents/
|
179
|
+
Resources/
|
180
|
+
YourHelpFile.help/
|
181
|
+
~~~
|
182
|
+
|
183
|
+
Do _not_ put a help bundle into your localized resources folder in your
|
184
|
+
application, even if it’s a `Base.lproj`. It may look like it works for
|
185
|
+
your development language, but it will break on other Macs operating with
|
186
|
+
different locales:
|
187
|
+
|
188
|
+
~~~
|
189
|
+
YourApp.app/
|
190
|
+
Contents/
|
191
|
+
Resources/
|
192
|
+
Base.lproj/
|
193
|
+
YourHelpFile.help/ <- don't do this!
|
194
|
+
en.lproj/
|
195
|
+
YourHelpFile.help/ <- don't do this!
|
196
|
+
YourHelpFile.help/ <- this is correct
|
197
|
+
Contents/
|
198
|
+
Resources/
|
199
|
+
en.lproj/
|
200
|
+
es.lproj/
|
201
|
+
ru.lrpoj/
|
202
|
+
~~~
|
203
|
+
|
204
|
+
To ensure that your Help Book ends up in the correct directory when you build
|
205
|
+
your application, make sure you import it to your project as a
|
206
|
+
_folder reference_; if it’s shown in the organizer with a disclosure triangle
|
207
|
+
that lets you browse the contents, then you’ve done it wrong, and it will not
|
208
|
+
copy properly during your “Copy Resources” build phase!
|
209
|
+
|
210
|
+
![Import as folder reference][apple_help_books_folder_reference]
|
211
|
+
|
212
|
+
Additionally, make sure that the Help Book has the correct target membership,
|
213
|
+
in order to ensure that it will be copied during the “Copy Resources” build
|
214
|
+
phase, _and_ do _not_ localize this file. It’s already localized internally
|
215
|
+
by virtue of being a localized bundle.
|
216
|
+
|
217
|
+
![Correct project membership][apple_help_books_project_membership]
|
218
|
+
|
219
|
+
|
220
|
+
<% end %>
|
221
|
+
<% helpbook_task "help_archi_3", "Two correct keys in your application’s Info.plist" do %>
|
222
|
+
|
223
|
+
|
224
|
+
This last point is satisfied by ensuring that your application’s `Info.plist`
|
225
|
+
points to the correct help bundle and knows the bundle ID of the bundle.
|
226
|
+
|
227
|
+
`CFBundleHelpBookFolder`
|
228
|
+
|
229
|
+
: What’s the name of your help bundle in the file system? In the examples
|
230
|
+
above, we’ve been showing `YourHelpFile.help`. This is the only value
|
231
|
+
you need to specify in your application. No paths are needed; Cocoa knows
|
232
|
+
how to find resources, such as your help bundle, within its own bundle.
|
233
|
+
|
234
|
+
`CFBundleHelpBookName`
|
235
|
+
|
236
|
+
: What’s the `CFBundleIdentifier` of the bundle that you want to use for
|
237
|
+
your application’s help? This is specified in your help bundle’s
|
238
|
+
`Info.plist` file.
|
239
|
+
|
240
|
+
<% end %>
|
241
|
+
|
242
|
+
|
243
|
+
Special Features
|
244
|
+
----------------
|
245
|
+
|
246
|
+
Although principally a glorified web browser, Apple Help Viewer and Help Books
|
247
|
+
do provide a couple of advantages not enjoyed by standard browser-based systems:
|
248
|
+
|
249
|
+
- Anchor-based navigation using Apple’s `NSHelpManager` methods, as well as
|
250
|
+
special anchor `href` values, if desired.
|
251
|
+
- The ability to search your Help Book within Apple Help Viewer.
|
252
|
+
- The ability for your application’s Help Book to be searched and display
|
253
|
+
results while searching from within another Help Book.
|
254
|
+
|
255
|
+
This is all enabled by including a `.helpindex` file within your Help Book,
|
256
|
+
and can be supplemented by including an `ExactMatch.plist` file to aid in
|
257
|
+
searching.
|
258
|
+
|
259
|
+
The fact is, Apple's `helpd` (Help Data) daemon will create this help index for
|
260
|
+
you automatically if you fail to include one, and it will be kept for handy
|
261
|
+
reference in its caches. However, you have much more fine-grained control over
|
262
|
+
the indexing process if you use `hiutil` yourself in order to create these
|
263
|
+
indexes to your own specifications.
|
264
|
+
{: .note .callout}
|
265
|
+
|
266
|
+
The help index contains, among other things, a list of all of the files and
|
267
|
+
anchors in your Help Book and some word frequency lists that provided weighted
|
268
|
+
results for searching. In addition, this index contains summary information for
|
269
|
+
each of the pages, and some additional metadata. You can use `hiutil` to
|
270
|
+
examine most of the contents of a help index, and use a tool such as
|
271
|
+
[`hiextract`][2] to examine the word frequency lists.
|
272
|
+
|
273
|
+
If you’re using _Middlemac_ on a macOS computer, then `hiutil` will
|
274
|
+
be handled automatically for you, and `ExactMatch.plist` will be created for
|
275
|
+
you, too.
|
276
|
+
{: .tip .callout}
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
Style and Functionality
|
281
|
+
-----------------------
|
282
|
+
|
283
|
+
While these few, simple requirements produce a working Help Book, they won’t
|
284
|
+
produce a very pretty or usable one. Like any complex or simple web site,
|
285
|
+
everything else is typically up to you. Navigation, styles, JavaScripts,
|
286
|
+
correct `<HEAD>` information, and so on. Apple Help Viewer is simply a
|
287
|
+
browser with a couple of added features, after all.
|
288
|
+
|
289
|
+
And certainly you’re interested in using a tool like _Middlemac_ so that you
|
290
|
+
can avoid all of that hassle. If you’re interested in how modern Apple Help
|
291
|
+
Books work, though, continue on to the [next section][dissect_modern_help].
|
292
|
+
|
293
|
+
|
294
|
+
[1]: https://developer.apple.com/library/content/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/authoring_help/authoring_help_book.html
|
295
|
+
[2]: https://github.com/balthisar/hiextract
|
@@ -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
|
+
| $section_id | "section-compose_project-helpers" | Specify a $section_id for this section. Used to build the TOC.
|
110
|
+
| name | "Helpers" | The name of the section as it will appear in the TOC.
|
111
|
+
| children | [Array] | An array of `$topic_id` indicating the pages that constitute this section.
|
112
|
+
| $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
|
+
| $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
|
+
| $topic_id | "topic-asides-aside_description" | Specify a `$topic_id` to represent a particular page.
|
120
|
+
| name | "What is an aside?" | The name of the topic. Will be used in the TOC.
|
121
|
+
| summary | "A short article describing…" | The summary is shown in search results.
|
122
|
+
| href | "asides/aside_description.html" | The lproj-relative path of the file.
|
123
|
+
| 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
|
+
| $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.
|