* Fixed image support

git-svn-id: trunk@11160 -
This commit is contained in:
michael 2008-06-01 15:38:29 +00:00
parent 6a993fc079
commit c9eba19930
4 changed files with 55 additions and 11 deletions

View File

@ -106,7 +106,8 @@ resourcestring
SHTMLUsageCharset = 'Set the HTML character set';
SHTMLHtmlSearch = 'Add search page with given name to the menu bar';
SHTMLIndexColcount = 'Use N columns in the identifier index pages';
SHTMLImageUrl = 'Prefix image URLs with url';
// CHM usage
SCHMUsageTOC = 'Use [File] as the table of contents. Usually a .hhc file.';
SCHMUsageIndex = 'Use [File] as the index. Usually a .hhk file.';

View File

@ -142,7 +142,7 @@ type
procedure DescrEndItalic; override;
procedure DescrBeginEmph; override;
procedure DescrEndEmph; override;
procedure DescrWriteImageEl(const AFileName, ACaption : DOMString); override;
procedure DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString); override;
procedure DescrWriteFileEl(const AText: DOMString); override;
procedure DescrWriteKeywordEl(const AText: DOMString); override;
procedure DescrWriteVarEl(const AText: DOMString); override;
@ -962,10 +962,10 @@ begin
PopOutputNode;
end;
procedure THTMLWriter.DescrWriteImageEl(const AFileName, ACaption : DOMString);
procedure THTMLWriter.DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString);
Var
Pel,Cel : TDOMNode;
Pel,Cel,Lel : TDOMNode;
El :TDomElement;
D : String;
L : Integer;
@ -978,7 +978,10 @@ begin
begin
Cel:=CreateTable(CurOutputNode);
Pel:=CreateTD(CreateTR(Cel));
AppendText(CreateTD(CreateTR(Cel)),ACaption);
Cel:=CreateTD(CreateTR(Cel));
If (ALinkName<>'') then
Cel:=CreateAnchor(Cel,ALinkName);
AppendText(Cel,ACaption);
end;
// Determine URL for image.
D:=BaseImageURL;
@ -2279,7 +2282,8 @@ Var
I : Integer;
M : TPasModule;
E : TPasElement;
S : String;
begin
L:=TStringList.Create;
try
@ -2291,7 +2295,10 @@ begin
AddModuleIdentifiers(M,L);
end;
AppendMenuBar(IndexSubIndex);
AppendTitle(Format(SDocPackageIndex, [Copy(Package.Name, 2, 256)]));
S:=Package.Name;
If Length(S)>0 then
Delete(S,1,1);
AppendTitle(Format(SDocPackageIndex, [S]));
CreateIndexPage(L);
Finally
L.Free;
@ -3250,6 +3257,8 @@ begin
CharSet := Arg
else if Cmd = '--index-colcount' then
IndexColCount := StrToIntDef(Arg,IndexColCount)
else if Cmd = '--image-url' then
FBaseImageURL := Arg
else if Cmd = '--footer-date' then
begin
FIDF:=True;
@ -3277,6 +3286,8 @@ begin
List.Add(SHTMLHtmlSearch);
List.Add('--index-colcount=N');
List.Add(SHTMLIndexColcount);
List.Add('--image-url=url');
List.Add(SHTMLImageUrl);
end;
// private methods

View File

@ -38,6 +38,7 @@ Type
TLaTeXWriter = class(TLinearWriter)
protected
FLink: String;
FImageDir: String;
FTableCount : Integer;
FInVerbatim : Boolean;
Inlist,
@ -85,6 +86,7 @@ Type
procedure DescrEndItalic; override;
procedure DescrBeginEmph; override;
procedure DescrEndEmph; override;
procedure DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString); override;
procedure DescrWriteFileEl(const AText: DOMString); override;
procedure DescrWriteKeywordEl(const AText: DOMString); override;
procedure DescrWriteVarEl(const AText: DOMString); override;
@ -125,6 +127,7 @@ Type
procedure DescrEndTableCell; override;
// TFPDocWriter class methods
Function InterPretOption(Const Cmd,Arg : String) : boolean; override;
Property ImageDir : String Read FImageDir Write FImageDir;
end;
@ -215,6 +218,29 @@ begin
Write('}');
end;
procedure TLaTeXWriter.DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString);
Var
FN : String;
L : Integer;
begin
Writeln('\begin{figure}[ht]%');
Writeln('\begin{center}');
If (ACaption<>ACaption) then
Writeln(Format('\caption{%s}',[EscapeText(ACaption)]));
If (ALinkName<>'') then
WriteLabel('fig:'+ALinkName);
FN:=ImageDir;
L:=Length(FN);
If (L>0) and (FN[l]<>'/') then
FN:=FN+'/';
FN:=FN+AFileName;
Writeln('\epsfig{file='+FN+'}');
Writeln('\end{center}');
Writeln('\end{figure}');
end;
procedure TLaTeXWriter.DescrWriteFileEl(const AText: DOMString);
begin
Write('\file{');
@ -675,6 +701,8 @@ begin
LatexHighLight:=True
else if Cmd = '--latex-extension' then
TexExtension:=Arg
else if Cmd = '--image-dir' then
ImageDir:=Arg
else
Result:=False;
end;

View File

@ -105,7 +105,7 @@ type
procedure DescrEndItalic; virtual; abstract;
procedure DescrBeginEmph; virtual; abstract;
procedure DescrEndEmph; virtual; abstract;
procedure DescrWriteImageEl(const AFileName, ACaption : DOMString); virtual; abstract;
procedure DescrWriteImageEl(const AFileName, ACaption,ALinkName : DOMString); virtual; abstract;
procedure DescrWriteFileEl(const AText: DOMString); virtual; abstract;
procedure DescrWriteKeywordEl(const AText: DOMString); virtual; abstract;
procedure DescrWriteVarEl(const AText: DOMString); virtual; abstract;
@ -977,7 +977,10 @@ begin
Result := True;
end else if Node.NodeName = 'img' then
begin
begin
ConvertImage(Node as TDomElement);
Result:=True;
end;
end else
Result := False;
end;
@ -985,13 +988,14 @@ end;
Procedure TFPDocWriter.ConvertImage(El : TDomElement);
Var
FN,Cap : DOMString;
FN,Cap,LinkName : DOMString;
begin
FN:=El['file'];
Cap:=El['caption'];
ChangeFileExt(FN,ImageExtension);
DescrWriteImageEl(FN,Cap);
LinkName:=El['name'];
FN:=ChangeFileExt(FN,ImageExtension);
DescrWriteImageEl(FN,Cap,LinkName);
end;