Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

f54da

macrumors 6502a
Original poster
Dec 22, 2021
602
219
Funny thing, clicking on "help" documentation for most system apps (e.g. textedit, syspreferences) no longer works. Clearly a bug on apple side since the actual help documentation is all online and still works for 10.8

but the 10.9 version fails with some javascript error. Trying to use the version of the JS framework from the 10.8 doesn't work. It's probably possible to muck around and get it working, but 10.9 and 10.8 are close enough.

You can get the url for help documentation from the info.plist of underlying help bundle btw. Maybe someone can write simbl plugin to automatically redirect 10.9 to 10.8 version. Or if you're already using some system-wide proxy just rewrite the url there.
 
Maybe someone can write simbl plugin to automatically redirect 10.9 to 10.8 version.
What I'd really like to do is redirect it to a local copy since it _will_ presumably all go down some day. IIRC I actually had trouble figuring out how to download the site, I don't understand what is going on with the hash links.
 
  • Like
Reactions: Nermal
>redirect it to a local copy since it _will_ presumably all go down some day

That's a good point yeah, I'd like a local copy too and it presumably is just a bunch of text so shouldn't take up that much space.

>pull a copy of

I did try that, taking the js contents and then manually pasting it in devtools to see if it did anything. Maybe doing it in that order doesn't work though.
 
In my case, I went a tedious way by manually editing relevant entries in each book's Info.plist and HelpViewer preference plist holding corresponding bookmark entries, for the Help Viewer to accept a new URL. It can and should be automated rather easily by way of a small shell one-liner, but I haven't gotten around to doing it. Luckily, the pattern is uniform and therefore straightforward, but to arrive at the precise URL, one has to plod through a time-consuming task of going over every variant of a meaningful segment in the linked path. The final Help URLs are the next or previous closest neighbours of the last app version compatible with Mavericks, that is, they're Mountain Lion- or Yosemite-compatible. Surprisingly, the Lion and Mountain Lion Help pages load. I know this since I still run Lion (10.7).


Examples of active links (getting the main help book remote URL and bookmarked help pages. Those act as anchors which are preserved from the old form):

Bash:
$ PlistBuddy -c 'Print HPDBookRemoteURL' /Applications/Final\ Cut\ Pro.app/Contents/Resources/FinalCutPro10.help/Contents/Info.plist 
--->https://help.apple.com/finalcutpro/mac/10.2/


$ PlistBuddy -c 'Print Bookmarks:com.apple.FinalCutPro10.help:0:BookmarkPath' /Users/home/Library/Preferences/com.apple.helpviewer.plist
--->https://help.apple.com/finalcutpro/mac/10.2/index.html?localePath=en.lproj#ver4e32ca5


$ PlistBuddy -c 'Print HPDBookRemoteURL' /Applications/iTunes.app/Contents/Resources/iTunes.help/Contents/Info.plist
--->https://help.apple.com/itunes/mac/12/

 
$ PlistBuddy -c 'Print Bookmarks:com.apple.iTunes.help:0:BookmarkPath' /Users/home/Library/Preferences/com.apple.helpviewer.plist
--->https://help.apple.com/itunes/mac/12/index.html?localePath=en.lproj#itns2937
 
But does it work with the page? When I tried copy pasting the JS into devtools it didn't do anything.
 
What I'd really like to do is redirect it to a local copy since it _will_ presumably all go down some day. IIRC I actually had trouble figuring out how to download the site, I don't understand what is going on with the hash links.
this is unrelated but i swear i see you at almost every corner of this website its crazy
 
But does it work with the page? When I tried copy pasting the JS into devtools it didn't do anything.
...well, something is working.

I downloaded https://help.apple.com/textedit/help/10.9/help/index.html?lang=en with sitesucker (which I think is just a frontend for wget). By itself, this downloaded copy won't display anything (white screen) due to the missing flamingo.js. If I add in flamingo.js from the internet archive, I can see a page that says "Help is currently unavailable." in many different languages.

But I don't know how to make the downloaded copy actually show the help pages.
 
Since you have a proxy set up why not proxy the flamingo.js url to a working copy (this can also be done with a chrome extension).

This should still be morally equivalent to just copy pasting the JS into the page after the fact (via devtools) but that didn't work when I tried

> how to make the downloaded copy actually show the help pages.
The flamingo.js triggers Ajax requests to additional content. Really the best way would be to basically record the whole web interaction, using something like https://github.com/webrecorder/pywb
 
Last edited:
Since you have a proxy set up why not proxy the flamingo.js url to a working copy (this can also be done with a chrome extension).

This should still be morally equivalent to just copy pasting the JS into the page after the fact (via devtools) but that didn't work when I tried
Squid is set up in such a way that it's pretty annoying to modify. However, I did a local override of the library URL in Chrome devtools (https://developer.chrome.com/docs/devtools/overrides#override-headers), and after putting in the JS from the internet archive and changing the content type in response headers to "application/javascript", the page loaded.

I'm currently trying to figure out how to use pywb... Edit: and it's not going very well, especially since I need to override that flamingo.js URL.
 

Attachments

  • Screen Shot 2024-10-19 at 11.13.05 AM.png
    Screen Shot 2024-10-19 at 11.13.05 AM.png
    82.6 KB · Views: 60
Last edited:
> local override
Woah I did not know that was possible

>pywb
Maybe pywb is overcomplicating it. Can you just look at the additional XHR requests that are made and then include those in your sitesucker copy?
 
is the "main menu" help page stored not on the web? that one still loads fine. im talking about the one that says os x mavericks and essentials and other yap.
 
my solution for this problem is to manually replace all the info.plist files with 10.8 urls or other version urls. it is for each individual app but it is effective. after modifying the files i use this software called onyx to "reset" the help center. after the reset the articles will show up. safari does not appear to have an older working url so i dont know how to fix safari help yet.
 
there's probably a better way to solve it without touching individual info.plist (and messing with app signature) by SIMBL injecting into help viewer and dynamically replacing the URL
 
yeah, unfortunately, some apps such as aperture, imovie, and safari dont have working urls. they dont use the 10.9 url, but they use the 7.0 or 10.0 etc urls, which are their own app versions. garageband has the same format but 6.0.5 is a working url. weirdly enough, i was able to find a working url for iphoto (default 9.5, changed to 9.4). 9.4 works fine through the web browser. however, if you use that url from the help viewer, the page and articles are in chinese. i changed it to 9.3, another working one, and its still in chinese. chromium displays it in english though. after changing it back to 9.4, it was in korean this time. very weird.
 
i figured out more stuff. for ilife apps, just use the 2011 editions as those have proper help. the 2013 (mavericks) ones say "help is currently unavailable" after changing url. for the apps that use their own unique versions or apps such as maps and ibooks that didnt exist in ml, just change the url to the version after the current one, but remove "/help" at the end, or for maps/ibooks, use 10.10, and remove the last "/help" page or else it will not be able to find it.
 
so i used charles proxy to set up a rewrite rule to redirect flamingo.js requests to the one on the internet archive. it seems to be working for the 10.9 urls now. i just changed the urls in the .help plist files back and used onyx to reset the help center to apply the changes. this seems to be the most reliable method for me right now.
 

Attachments

  • Screen Shot 2025-04-07 at 23.53.53.png
    Screen Shot 2025-04-07 at 23.53.53.png
    655 KB · Views: 28
  • Screen Shot 2025-04-08 at 0.04.09.png
    Screen Shot 2025-04-08 at 0.04.09.png
    628.1 KB · Views: 24
so i used charles proxy to set up a rewrite rule to redirect flamingo.js requests to the one on the internet archive. it seems to be working for the 10.9 urls now. i just changed the urls in the .help plist files back and used onyx to reset the help center to apply the changes. this seems to be the most reliable method for me right now.
on a side note, if anyone uses bluesky, you can add your account to mavericks through twitter integration. set up a rewrite rule from https://api.twitter.com -> https://twitterbridge.loganserver.net. make sure to enable ssl proxying for https://api.twitter.com. sign in using your full handle, xxx.bsky.social and your normal password (app password works too).
 
  • Love
Reactions: Wowfunhappy
This (AI written) Python script will download local copies of help books: https://gist.github.com/Wowfunhappy/f0a563688948e1076f171b48486cc61d. I grabbed all of the stock apps and uploaded them to the Internet Archive for posterity: https://archive.org/details/mac-os-x-10.9-mavericks-online-helpbooks (as of this writing it's still uploading, if you're reading this right after I posted check back in a couple of hours). I think I got everything but feel free to confirm. Also, somebody else should probably archive the help books for other operating systems too.

Now, I would like for this all to work in the Help Viewer app. The ideal would be a SIMBL plugin that tells Help Viewer to read from a local directory. It's completely stupid that this documentation isn't available offline to begin with. What was Apple thinking?

However, the more I look into things, the more I realize I don't quite understand how help books work. Firstly, the URLs that help center actually requests look like this:

https://help.apple.com/dictionary/mac/10.9/help/en.lproj/search.helpindex

WTF is this? It's not a plist, I checked!

Code:
$ file search.helpindex 
search.helpindex: NeXT/Apple typedstream data, little endian, version 4, system 1000

What?

Google has some resources:
But this is not a rabbit hole I have time for right now. I did make sure the above download script grabs these .helpindex files, even though they're never accessed when testing from a standard web browser.
 
how does that work, I thought flamingo.js couldn't be downloaded?
 
how does that work, I thought flamingo.js couldn't be downloaded?
...sorry, I don't understand the question. Flamingo.js can be downloaded from the Internet Archive, no problem! I even attached it in post #6.
 
helpindex is probably some mapping from keywords to articles, similar to dictionary index. That's why it's not used with browser, it's only needed for search functionality.

Edit: Maybe that's not the case... maybe it's some sort of directory listing equivalent? Seems you can unpack it with NSUnarchiver though
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.