123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- {
- Help program to generate html help index
- This file is part of Free Pascal.
- Copyright (c) 1993-2005 by Florian Klaempfl
- member of the Free Pascal development team
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {$mode objfpc}
- uses
- insthelp,sysutils,dos,objects,WHTMLScn;
- type
- PFPHTMLFileLinkScanner = ^TFPHTMLFileLinkScanner;
- TFPHTMLFileLinkScanner = object(THTMLFileLinkScanner)
- function CheckURL(const URL: string): boolean; virtual;
- function CheckText(const Text: string): boolean; virtual;
- procedure ProcessDoc(Doc: PHTMLLinkScanFile); virtual;
- end;
- const
- HTMLIndexExt = '.htx';
- procedure TFPHTMLFileLinkScanner.ProcessDoc(Doc: PHTMLLinkScanFile);
- begin
- end;
- function TFPHTMLFileLinkScanner.CheckURL(const URL: string): boolean;
- var OK: boolean;
- const HTTPPrefix = 'http:';
- FTPPrefix = 'ftp:';
- begin
- OK:=inherited CheckURL(URL);
- if OK then OK:=DirAndNameOf(URL)<>'';
- if OK then OK:=CompareText(copy(ExtOf(URL),1,4),'.HTM')=0;
- if OK then OK:=CompareText(copy(URL,1,length(HTTPPrefix)),HTTPPrefix)<>0;
- if OK then OK:=CompareText(copy(URL,1,length(FTPPrefix)),FTPPrefix)<>0;
- CheckURL:=OK;
- end;
- function TFPHTMLFileLinkScanner.CheckText(const Text: string): boolean;
- var OK: boolean;
- S: string;
- begin
- S:=Trim(Text);
- OK:=(S<>'') and (copy(S,1,1)<>'[');
- CheckText:=OK;
- end;
- procedure doerror(const s : ansistring);
- begin
- writeln(s);
- writeln;
- writeln('Press ENTER to continue');
- readln;
- end;
- procedure writehlpindex(filename : ansistring);
- var
- LS : PFPHTMLFileLinkScanner;
- BS : PBufStream;
- Re : Word;
- params : array[0..0] of pointer;
- dir : searchrec;
- begin
- writeln('Creating HTML index file, please wait ...');
- New(LS, Init(DirOf(FileName)));
- LS^.ProcessDocument(FileName,[soSubDocsOnly]);
- if LS^.GetDocumentCount=0 then
- doerror(format('Problem creating help index %1, aborting',[filename]))
- else
- begin
- FileName:=DirAndNameOf(FileName)+HTMLIndexExt;
- begin
- New(BS, Init(FileName, stCreate, 4096));
- if not(Assigned(BS)) then
- doerror(format('Error while writing help index! '+
- 'No help index is created',[filename]))
- else
- begin
- LS^.StoreDocuments(BS^);
- if BS^.Status<>stOK then
- doerror(format('Error while writing help index! '+
- 'No help index is created',[filename]));
- Dispose(BS, Done);
- end;
- end;
- end;
- Dispose(LS, Done);
- end;
- begin
- if paramcount<>1 then
- writeln('Usage: writeidx <index name>')
- else
- writehlpindex(paramstr(1));
- end.
|