I'm just starting a project to update a help file using Help Builder. I want to have someone help me on this project but am wondering how we can work on separate parts of the help file and then be able to combine them into one project when finished?
Thanks, Chris
I'd highly recommend looking at Rick's new Documentation Monster. It addresses so many of the quirks of WWHB and is much more suitable for collaborative work.
What are you trying to create as output? HTML Help? Then Help Builder is the only option you have.
However i would recommend to skip that in favor of building Web based HTML help, and explicitly linking to HTML content on the Web from the Web site output built by Help Builder or Documentation Monster. HTML Help has a myriad of issues for security and more importantly very limited HTML feature support.
As Richard mentioned, Help Builder is being sunsetted as it's really getting long in the tooth. Documentation Monster is meant to be its replacement and it's getting close to release but is still in pre-release (you can try it however). It does not produce HTML Help however, because HTML Help requires IE 11 rendering (actually IE 8 rendering unless you hack the registry) and that is not supported by the new templates. Output options are a plain, static HTML based Web site, PDF, Self-Contained Windows Viewer and packaged HTML output.
If you're planning on building HTML based output (ie. for Web, PDF or Viewer) then Documentation Monster is the way forward. Since you just bought your licenses recently you can swap out for free, but as I said DM's not quite in full release - there are still a few rough edges to work out (hopefully in the next month or two).
That said I'm using it for all my documentation now, for Markdown Monster, WebSurge, Web Connection and Client Tools plus several .NET libraries. All those docs have been updated to use Documentation Monster now.
If you want to check it out go here:
+++ Rick ---
Hi Rick,
Thanks for that. Ray and I both purchased the help builder (rdodge@crimestar.com). If you can swap the help builder licenses over to Documentation Monster licenses and send them to us that would be much appreciated.
Thank you, Chris
Will do...
But before I do you should take a look whether it will work for you first. Currently the preview version is open to all and it's still a little rough around the edges.
There will also be a theming update in the next week or so, but that will be easy to update to as long as you stick to the stock theming.
+++ Rick ---
Hey Rick,
In the course of finally getting everything moved over to my Win11 machine, I encountered an issue with HelpBuilder.
I'm using v4.6 and one of my help files uses helpbuilder_extension.prg but I have not been able to get it working, presumably, due to C:\Program Files (x86) being read-only.
The installer does not provide a means of installing to a different directory and trying to change the directory permissions does not solve the problem.
I use helpbuilder_extension.prg to build HTML content from the results of Fox queries.
Can this be done with Documentation Monster ?
Thanks,
Carl
Carl,
The problem is that HB compiles the PRG into an FXP file and if that file can't be written to disk then that operation fails. Offhand I can't remember the logic used for this exactly but if I remember right if the FXP exists and is newer than the PRG the FXP is used for execution instead of recompiling and executing.
Giving permissions to the folder should work unless your Anti-Virus is interfering and just outright doesn't allow writing to that folder.
One thing you can try:
- Start Help Builder as Administrator
- Startup run once
That should work and it should create the FXP. I think after that initial run you may not need to run as admin again as the FXP will then be there to be found for execution.
Documentation Monster is a .NET application so there's no support for FoxPro code. At the moment there's no addin support but that will come eventually if there's a decent amount of uptake. But it'll be .NET based obviously.
First I have to actually release it officially 😄 Functionally it's just about ready but docs are not and there are a few loose ends that still need to be cleaned up.
+++ Rick ---
Thanks Rick,
Sorry, but what do you mean by Startup run once ?
Thanks, Carl
Just run as Admin once. That should create the FXP - after that it should run the FXP (read)
Also I just poked around in the source code and another thing that can be done is this:
- Open an Admin terminal
- Go to Help Builder install folder
- Create a
HelpBuilder_Extension.fxpfile:echo > HelpBuilder_Extension.fxp - Run
wwhelp.exe PERMISSIONS
This creates an FXP file and assigns Interactive User permissions. At this point the file should be writable (unless AV interferes).
FWIW, here's the logic used to execute the extension file:
************************************************************************
FUNCTION CompileAndLoadHelpBuilderExtension(lcFile)
***************************************************
LOCAL llError, loException, llNeedToCompile
IF !FILE(lcFile)
RETURN .T. && Nothing to do is not a failure here!
ENDIF
llNeedToCompile = .T.
TRY
*** This catches both fxp file not existing and being out of date
*** Slightly more efficient than checking file, and the dates
llNeedToCompile = FDATE(FORCEEXT(lcFile,"fxp"),1) < FDATE(lcFile,1)
CATCH
llNeedToCompile = .t.
ENDTRY
llError = .f.
IF llNeedToCompile
TRY
*** Should delete first
ERASE (FORCEEXT(lcFile,"fxp"))
CATCH
llError = .t.
ENDTRY
IF llError
RETURN .F.
ENDIF
loException = null
TRY
COMPILE ( lcFile )
CATCH TO loException
llError = .T.
ENDTRY
IF llError
RETURN .F.
ENDIF
ENDIF
TRY
SET PROCEDURE TO (lcFile) ADDITIVE
LOCAL loException as Exception
loException = null
TRY
*** Try to run generic entry point
EVALUATE( "HelpBuilder_Extension_Init()" )
CATCH TO loException
IF loException.ErrorNo # 1 && Not found is not a failure
llError = .t.
ENDIF
ENDTRY
CATCH
llError = .t.
ENDTRY
RETURN !llError
ENDFUNC
as you can see if the FXP once exists it'll not recompile and just use it so you shouldn't need special permissions at that point since the file is just read.
Now it's still possible that there's a problem with AV not allowing FXP files to be read at all in Program Files as it's an executable format... If you can disable AV (if you're using something other than Defender) in the Help Builder directory that might be a good idea as well.
+++ Rick ---