So, if there are any brave souls out there who want to help me test the procedure for the new way to do it, I'd appreciate it.
Part of the problem is the extreme variance of Python setups and Python knowledge out there, but if we don't start somewhere, it'll never get done, so I want to try outlining a procedure and see how far people can get with it. Your feedback is greatly appreciated. Hope that's OK.
- Starting with a clean Python, install setuptools.
- Once you have setuptools, use easy_install to install Paste, Paste Deply, Paste Script, and Pygments.
EDIT: you also need to easy_install demjson, a JSON parsing library. - Copy the “houdinihelp”, “whoosh”, and “wikiparser” packages from $HFS/houdini/scripts/python/ onto your Python path.
NOTE the version of Genshi included with Houdini is specific version that avoids an issue that was introduced into Genshi that prevents the Houdini help system from working. Using the current version of Genshi from the Genshi website will not work. We are working with the Genshi developers to rectify this. - Copy the “genshi” and “Genshi.egg-info” folders from $HFS/houdini/scripts/pythonlibs/ onto your Python path.
- Make sure you don't have another copy of any of these libraries overriding them on the Python path.
- The Houdini help folder is here: $HFS/houdini/help The search index folder is here: $HFS/houdini/config/Help/index You can copy these folders somewhere central if you want.
- Make a copy of the server configuration file in $HFS/houdini/config/Help/deploy.ini.
- Edit the config file so the “index =” line at the top points to the search index folder.
- Change the “docs =” line underneath to a comma-separated list of directories containing help.
If you list multiple directories, the later ones will overlay the earlier ones. You can use this to keep an original copy of the help in one directory tree and put your own files in other and overlay them.
Do not leave @nodes, @shelf, or @path in the list: they are only meaningful inside a running Houdini. - In a shell with the proper python path set up and the “paster” tool on the shell path (should have been set up with you easy_install'ed the Paste packages), try this: paster serve <config.ini> (where <config.ini> is the path to your edited copy of the configuration file.
Paste lets you set up server options such as the port number in the configuration file (see the "" section) or on the command line, e.g.: paster serve –port 8888 config.ini See the Paste documentation for more information.
To set up a central server that other machines can access, you'll want to change the “host” option from 0.0.0.0 to the domain name of the server. E.g. if you're running the help server on internal.company.com, change the “host =” line in the config file to internal.company.com, or set the option on the command line, e.g.: paster serve –host internal.company.com –port 12345 - Try viewing the help in a browser.
- In Houdini 9.1, open the embedded browser and click the “Settings” tab. In Houdini 9.5 (only works in versions after build 180), open the embedded browser and click the screwdriver (settings) icon at the top. Set the “External help URL” to the URL of the central server.
Big note 1: some things in Houdini that cause the help to open (e.g. pressing F1 in a tooltip) won't respect the external URL setting. This is a bug in Houdini we need to fix. The external URL setting will need to move out of the embedded browser and become a real Houdini preference.
Big note 2: As you create your own documentation, you'll want to index it (this is necessary not only to make it searchable but for lots of other things, including showing up in the table of contents). I'll provide a script you can use to update the index ASAP (just need to clean up the script we use during our build process).
Finally, apologies to everyone who's been interested in doing this and has been frustrated by the lack of progress. A bunch of things changed about how the help works between 9.1 and 9.5 that reset the process, and a bunch of resources were diverted to other things. Hopefully now we can move forward on it.