PBFastLib

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
Droopy
Enthusiast
Enthusiast
Posts: 658
Joined: Thu Sep 16, 2004 9:50 pm
Location: France
Contact:

PBFastLib

Post by Droopy »

Hello,

PBFastLib help creating Purebasic library.

Regards
prerequisites :
MSHelpCompiler (cf MSHelpCompiler.zip)
Source Code of your library with comments & tags included
Purebasic
Tailbite

PBFastLib will generate and make :

Help file (.chm) including :
Folder for function organization / Tips included
Function documentation
Function Source Code (Syntax Highlighting)
Tips
Pictures
Examples for folders, functions, tips (Syntax Highlighting)
Optional parameters *
Automatic function renaming of functions calling function wich return strings *
Library compiled with TB
7z archive including library & pictures
Library installer

* Functions library calling another function library with optional parameters, must set all optional parameters

===============================================================
TAG LIST TAG LIST TAG LIST TAG LIST TAG LIST TAG LIST TAG LIST
===============================================================

#LIBRARY_VERSION="xxx" Set Library version

-- Emplacement -------------------------------------

;/>GROUP Description

Make a folder in CHM
may used several times for multiline description
This tag set the path of next functions/Tips
Group example can be added if inserted just after this tag

-- TIPS--- -----------------------------------------

;{//TipsName
;}

-- Functions ---------------------------------------

ProcedureDll.type FunctionName(Parametres) ; Description
EndProcedure

* To hide the source code in the chm use the tag ;/NoSource

-- Documentation -----------------------------------

;// xxxxx

Documentation of tips and functions

Picture insertion ;//<CENTER><IMG SRC="Droopy.gif"></CENTER> *

Line break <BR>

Bold <B>Sample :</B>

* Picture must be in the folder 'include'

-- Resident ----------------------------------------

;//Resident

This tag must be added at the end of the line fon constants & structures

-- Example -----------------------------------------

;{/* Description / fin par ;}

The example is added @ the previous group/function/tip

-- Include -----------------------------------------

This folder is included in the temporary path
This folder can include :
Pictures
.nfo : Add this file to the help (The name must be the same as tip/function)
TipName.cod car add external source code to the help (Syntax Highlighted)
Last edited by Droopy on Wed Apr 13, 2011 11:08 am, edited 2 times in total.
User avatar
idle
Always Here
Always Here
Posts: 5094
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: PBFastLib

Post by idle »

Thanks this looks really useful
Windows 11, Manjaro, Raspberry Pi OS
Image
User avatar
Vera
Addict
Addict
Posts: 858
Joined: Tue Aug 11, 2009 1:56 pm
Location: Essen (Germany)

Re: PBFastLib

Post by Vera »

Hi Droopy,

Thanks for sharing :)

but unfortuantely I can't test your PBFastLib because it assigns the wrong paths to PB and Tailbite and one can't set/correct it manually.
As your program already uses an ini-file couldn't you apply these two settings in there as well?

Still I found something going wrong with your Sample.chm.
While opening it I get 3 error messages [XP SP1]:
HTML Help Author Message wrote:The file mk:@MSITStore:D:\....\Sample.chm::/Sample.hhc contains an invalid HTML tag.
I found out that it concerns the three directories (Tips/Functions/Time_Measuring) which are (also) miss-leveled in the Sample.hhc. They are sub-leveled with <ul>... although they are toplevel entries. Only their contents needs to be separately subleveled. The complete index is only enclosed by one single <ul></ul> pair but not each item.

To give you a qick access to the difference I'll post the original and corrected HHCs right here until you grabbed them:

Code: Select all

<!-- Sample-original.hcc -->
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><HTML><HEAD>
<META NAME="GENERATOR" CONTENT="PureHelpMaker"><!-- Sitemap 1.0 -->
</HEAD><BODY><OBJECT TYPE="text/site properties">
<PARAM NAME="Window Styles" VALUE="0x800025"></OBJECT>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Index">
<PARAM NAME="Local" VALUE="Index.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Changelog">
<PARAM NAME="Local" VALUE="Changelog.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Compilation">
<PARAM NAME="Local" VALUE="Compilation.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Tips">
<PARAM NAME="Local" VALUE="Tips.html">
<PARAM NAME="ImageNumber" VALUE="1">
</OBJECT></UL>
<UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MessageRequester">
<PARAM NAME="Local" VALUE="MessageRequester.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="xy">
<PARAM NAME="Local" VALUE="xy.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Include">
<PARAM NAME="Local" VALUE="Include.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
</UL>
</UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Functions">
<PARAM NAME="Local" VALUE="Functions.html">
<PARAM NAME="ImageNumber" VALUE="1">
</OBJECT></UL>
<UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="LibVersion">
<PARAM NAME="Local" VALUE="LibVersion.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="SuperLibVersion">
<PARAM NAME="Local" VALUE="SuperLibVersion.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MsgBox">
<PARAM NAME="Local" VALUE="MsgBox.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="SuperMsgBox">
<PARAM NAME="Local" VALUE="SuperMsgBox.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="ButtonSized">
<PARAM NAME="Local" VALUE="ButtonSized.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
</UL>
</UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Time_Measuring">
<PARAM NAME="Local" VALUE="Time_Measuring.html">
<PARAM NAME="ImageNumber" VALUE="1">
</OBJECT></UL>
<UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MeasureIntervalStart">
<PARAM NAME="Local" VALUE="MeasureIntervalStart.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MeasureIntervalStop">
<PARAM NAME="Local" VALUE="MeasureIntervalStop.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
</UL>
</UL>
</BODY></HTML>

Code: Select all

<!-- Sample-corrected.hcc -->
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><HTML><HEAD>
<META NAME="GENERATOR" CONTENT="PureHelpMaker"><!-- Sitemap 1.0 -->
</HEAD><BODY><OBJECT TYPE="text/site properties">
<PARAM NAME="Window Styles" VALUE="0x800025"></OBJECT>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Index">
<PARAM NAME="Local" VALUE="Index.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Changelog">
<PARAM NAME="Local" VALUE="Changelog.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Compilation">
<PARAM NAME="Local" VALUE="Compilation.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Tips">
<PARAM NAME="Local" VALUE="Tips.html">
<PARAM NAME="ImageNumber" VALUE="1">
</OBJECT>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MessageRequester">
<PARAM NAME="Local" VALUE="MessageRequester.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="xy">
<PARAM NAME="Local" VALUE="xy.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Include">
<PARAM NAME="Local" VALUE="Include.html">
<PARAM NAME="ImageNumber" VALUE="17">
</OBJECT></UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Functions">
<PARAM NAME="Local" VALUE="Functions.html">
<PARAM NAME="ImageNumber" VALUE="1">
</OBJECT>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="LibVersion">
<PARAM NAME="Local" VALUE="LibVersion.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="SuperLibVersion">
<PARAM NAME="Local" VALUE="SuperLibVersion.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MsgBox">
<PARAM NAME="Local" VALUE="MsgBox.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="SuperMsgBox">
<PARAM NAME="Local" VALUE="SuperMsgBox.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="ButtonSized">
<PARAM NAME="Local" VALUE="ButtonSized.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="Time_Measuring">
<PARAM NAME="Local" VALUE="Time_Measuring.html">
<PARAM NAME="ImageNumber" VALUE="1">
</OBJECT>
<UL>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MeasureIntervalStart">
<PARAM NAME="Local" VALUE="MeasureIntervalStart.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT>
<LI> <OBJECT TYPE="text/sitemap">
<PARAM NAME="Name" VALUE="MeasureIntervalStop">
<PARAM NAME="Local" VALUE="MeasureIntervalStop.html">
<PARAM NAME="ImageNumber" VALUE="11">
</OBJECT></UL>
</UL>
</BODY></HTML>
About the MsHelpCompiler.zip - are you sure these 4 files are enough to substitute the installation of MS HTML Help Workshop ? Besides these DLLs are not in WIN\System but in WIN\System32 on my OS.

greetings ~ Vera
User avatar
Droopy
Enthusiast
Enthusiast
Posts: 658
Joined: Thu Sep 16, 2004 9:50 pm
Location: France
Contact:

Re: PBFastLib

Post by Droopy »

Hello,

New version avalaible :
- PBPath can be set (for vera :wink: )
- Removed some </UL> in .hhc (bug)
- PBFastLib.chm added (put in the help folder of Purebasic)
About the MsHelpCompiler.zip - are you sure these 4 files are enough to substitute the installation of MS HTML Help Workshop ? Besides these DLLs are not in WIN\System but in WIN\System32 on my OS.
The dll must be registered.
hhc.exe must be accessible thu path
User avatar
Droopy
Enthusiast
Enthusiast
Posts: 658
Joined: Thu Sep 16, 2004 9:50 pm
Location: France
Contact:

Re: PBFastLib

Post by Droopy »

Version 2.0 avalaible
This version can compile for PureBasic x64
User avatar
Droopy
Enthusiast
Enthusiast
Posts: 658
Joined: Thu Sep 16, 2004 9:50 pm
Location: France
Contact:

Re: PBFastLib

Post by Droopy »

Hello, version 6 avalaible
-- 6 --------------------------------------------

Launch PureBasic only if version <> version associated with .pb
Fixed : Exemples are now indented

-- 5 --------------------------------------------

Title = PBFastLib + version
Button = LAUNCH COMPILATION

-- 4 --------------------------------------------

Installer Request Administrator mode for Windows Vista

-- 3 --------------------------------------------

PureBasic.exe is launched / User is invited to close
--> Just for association of .pb
Post Reply