Skip to content

Feature: Need to offer Apple style helpbook integration for macOS #47

Description

@Blatman

TinyJS 0.50.1
macOS 27.0 Golden Gate M1

I have found that helpbook use with apps can be done manually but some code changes in the app build would allow the process to be rather seamless and also be integrated prior to signing, etc.

Details:

My helpbook bundle is called 'Example Help' - some changes to cli.js are required and then a rebuild of binaries.

First create a Resources folder in the project root which will be the folder to hold any files/bundles taht the dev wishes to build into the Resources folder of the app bundle.

Source amendments:

cli.js -

L1894 +    await run(['cp', '-R', 'Resources/', APP + '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/Contents/Resources']);  // any file/bundle in Resources of project root will be copied to Resources of app bundle


L1931 +    if (cfg.helpbook) {
             // Inserts 2 keys required for helpbook use
             extraKeys += `
             CFBundleHelpBookFolder   ${escXml(cfg.helpbook)}
             CFBundleHelpBookName   ${escXml(cfg.helpbook)}`;
L1936 +    }


L2075 +    CFBundleShortVersionString         ${escXml(cfg.shortVersion || '0.1')}     // shortversion used for helpbook cache entries

Project folder:

tinyjs.json -

"shortVersion": "7.3",
"helpbook": "Example Help"

Note: addition of L1894 probably means that L1981 ~ 1983 can be removed as Credits.html if being used can also be placed into the project Resources folder. This would also broaden the credits file to Credits.rtf which is also valid for macOS and any other custom files that a dev doesn't want in the app folder can be placed in the Resources folder.

This request means that the menu Help search can be used as intended.

Attached is a sample help folder that should work OK and contains some info about help bundles.

Example Help.zip

BTW Boo is excellent!

Activity

  1. tarwin commented on Oct 9, 2026

    @tarwin
    Owner

    @Blatman can you explain what an Apple Helpbook is? I'm not familiar. Is there documentation etc?

  2. Blatman commented on Oct 10, 2026

    @Blatman
    Author

    Basically a bundle of HTML pages (mini web in a bundle) that is viewed via Apple HelpViewer. Designed to offer offline help within an app.

    The tech is really old (docs last updated c. 2013) but still works and is not difficult to use once familiar with.

    In earlier apps the bundle would appear as a 'helpbookTitle.help' type file but a lot of apps drop the .help suffix and the bundle appears as helpbookTitle folder (appear to work better on newer macOS).

    Many apps don't use it as the docs are rather old and can be difficult to work out but it does actually work OK.

    Typical Help Menu list - (Apple Books in this case)

    Note the Help Topics from the Help bundle.

    Image

    Refs:

    https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/user_help_intro/user_assistance_intro.html

    https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/authoring_help/authoring_help_book.html

    https://marioaguzman.wordpress.com/2020/09/12/auth/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions