middlemac 2.0.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|