Help files for HDK nodes

   9313   12   1
User Avatar
Member
71 posts
Joined:
Offline
How do we make help files for custom HDK nodes accessible to the help system?

Apparently logged earlier as 28985.

Oh, and also: how to add my own examples to the help system.

cheers,
-Mark
User Avatar
Member
71 posts
Joined:
Offline
Hello? :-)
User Avatar
Member
85 posts
Joined: July 2005
Offline
Well I dont if it is what you want; Embedded help into the DSO which is being despreciated, I havent yet seen the other way
Usually I embedded into the help of the DSO but there is a node (see below) saying it should be external.
Regarding getting help into the main help (and example) I dont if it is possible but SESI will answer better.


bool OP_FBX_Export_Operator::getHDKHelp(UT_String &help) const
{
help = “<html><body>”;

help = “<h3>FBX Geometry Export SOP</h3>”;
Blabla Help.
help += “</body></html>”;

// Note: HDK developers are discouraged from embedding help
// in their C files and should use external help when possible.

// The getHDKHelp() must return true if it is to be used in place of
// other forms of help (eg. custom, OTL, or Houdini help).
return true;
User Avatar
Member
71 posts
Joined:
Offline
Hey Gerome,

Thanks! Not really what I want though, cause houdini 9 has a REALLY nice system for converting a wiki-type markup language into the pretty help pages we see in the browser (including the cross-referenced examples).

I have a feeling that there is currently no way other than copying the files into the system mozilla subdir (ew). I hope it's rectified soon! I can't be the only developer that wants their users to have documentation. :-)

cheers,
-Mark
User Avatar
Member
85 posts
Joined: July 2005
Offline
I always thought that developers didnt like to do document of their product ;-)
User Avatar
Member
8081 posts
Joined: July 2005
Offline
I think overriding OP_Operator::getHDKHelp() should work if it returns the wiki format.
User Avatar
Member
71 posts
Joined:
Offline
cool, I'll try that.

It would be REALLY great if the old $HOUDINI_PATH/config/Help/opname system worked again, though.

cheers,
-Mark
User Avatar
Member
8081 posts
Joined: July 2005
Offline
Untested code:
bool MyNode::getHDKHelp(UT_String &help) const
{
UT_String full_path;
if (HoudiniFindFile(“config/Help/MyNode.txt”, full_path))
{
FS_Reader reader(full_path);
UT_OStrStream os;
UTcopyStreamToStream(*reader.getStream(), os);
os << ends;
help.harden(os.str());
os.rdbuf()->freeze(false);
return true;
}
return false;
}
User Avatar
Member
71 posts
Joined:
Offline
edward
I think overriding OP_Operator::getHDKHelp() should work if it returns the wiki format.

I added some magic to my build system to generate the getHDKHelp() call automatically from my node.txt help file at build time. It works, sorta.

The tag doesn't seem to work.

It generates a link to http://localhost:48626/nodes/sop/mycustomsop [localhost]

But this doesn't exist. The URI for hdk custom SOPs appears to be dynamically generated and thus can't be linked: example: wyciwyg/5/about:blank

There is no obvious way to include images, since they are referenced from $HFS/mozilla.

Screen shots are the obvious use for putting images in node help.

There's no way to add to the cross-linked example system.

The example system is pretty cool. It would be great if we could add to it.

So at the moment custom HDK SOPs are second-class citizens when it comes to the help system. OTLs as well, unless I'm missing something obvious.

An ideal solution would be a $HOUDINI_HELP_DIR env var we could point at d directory mirroring the structure in $HFS/mozilla.

cheers,
-Mark
User Avatar
Staff
515 posts
Joined: July 2005
Offline
The “old” way of displaying node help in the embedded browser was to use a Mozilla API call to “inject” a string (pulled out of the node's help field) into the browser. That was always problematic, including not being able to link to the content (because it's not “really” in the help).

The “new” way is for the help server to notice requests to “/nodes/X/Y” and pull the help out of assets on the fly using HOM and serve it.

HDK nodes currently use the “old” way of displaying help. I'm not sure if HOM supports getting help from HDK nodes, but if it does, it should be easy for us to switch HDK nodes to the “new” way.

I basically know nothing about the HDK; if anyone wants to postulate their ideal method for associating help with HDK nodes here, go right ahead.
Edited by - March 27, 2008 17:18:32
User Avatar
Staff
515 posts
Joined: July 2005
Offline
Also, putting a wiki-formatted file in HOUDINIPATH/help/nodes/X/Y.txt (e.g. ~/houdini9.1/help/nodes/obj/mynode.txt) should work, including being able to link to it with .

This is somewhat “experimental” in the current version (as in, try it, see if it works, and if not, I'll try to fix it), but we're committed to solidifying it in the next version.
User Avatar
Member
71 posts
Joined:
Offline
mchaput
Also, putting a wiki-formatted file in HOUDINIPATH/help/nodes/X/Y.txt

Sweet! Works exactly as advertised in 9.1.179!
User Avatar
Staff
1471 posts
Joined: July 2005
Offline
in addition you can override OP_Operator::getOpHelpURL() to return true and to fill the URL string (eg, “file//my/help/repo” or "http://my.company.help.url.com [my.company.help.url.com]“) for the help browser to display the web page that contains help for that operator.

EDIT: you can also use env variables in the URL string, which will get expanded by Houdini before they are used in the help browser, eg, getOpHelpURL(”file:$HH/config/Help/sop/my_op")
  • Quick Links