wiki: Fix internal links within chm files if filename contains illegal characters; fix icon of wiki template in chm file.

git-svn-id: trunk@49359 -
This commit is contained in:
wp 2015-06-17 10:26:43 +00:00
parent 3d4af7e38c
commit 2a0abb0f98
2 changed files with 16 additions and 3 deletions

View File

@ -70,6 +70,7 @@ type
procedure WriteIndexToStream(aStream: TStream);
procedure OnWriterLastFileAdded(Sender: TObject);
function GetImageLink(ImgFilename: string): string; override;
function GetInternalImageLink(ImgFilename: String): String; override;
function GetPageLink(Page: TW2XHTMLPage): string; override;
procedure SaveAllPages; override;
public
@ -206,9 +207,15 @@ begin
Result:=CHMImagesDir+ExtractFileName(ImgFilename);
end;
function TWiki2CHMConverter.GetInternalImageLink(ImgFilename: String): String;
begin
Result := CHMImagesDir + 'internal/' + ExtractFilename(ImgFilename);
end;
function TWiki2CHMConverter.GetPageLink(Page: TW2XHTMLPage): string;
begin
Result:=Page.WikiDocumentName+'.html';
// Result:=Page.WikiDocumentName+'.html';
Result :=Page.Filename;
end;
procedure TWiki2CHMConverter.SetCHMFile(AValue: string);

View File

@ -81,6 +81,7 @@ type
procedure OnWikiToken(Token: TWPToken); virtual;
procedure RaiseNodeNotOpen(Token: TWPToken);
function GetImageLink(ImgFilename: string): string; virtual;
function GetInternalImageLink(ImgFilename: string): string; virtual;
function FindImage(const ImgFilename: string): string; virtual;
procedure MarkImageAsUsed(const ImgFilename: string; Page: TW2XHTMLPage); virtual;
function GetPageLink(Page: TW2XHTMLPage): string; virtual;
@ -845,9 +846,9 @@ begin
Node.AppendChild(childnode1);
childnode1.SetAttribute('class', 'icon');
if FUseTemplateIcons then begin
fn := FindImage('internal\'+iconfile);
fn := FindImage('internal/'+iconfile);
if fn <> '' then
fn := GetImageLink(fn);
fn := GetInternalImageLink(fn);
MarkImageAsUsed(fn, Page);
childnode2 := doc.CreateElement('img');
childnode2.SetAttribute('src', fn);
@ -922,6 +923,11 @@ begin
Result:=CreateRelativePath(ImgFilename,OutputDir);
end;
function TWiki2XHTMLConverter.GetInternalImagelink(ImgFilename: String): string;
begin
Result := CreateRelativepath(ImgFilename,OutputDir);
end;
function TWiki2XHTMLConverter.FindImage(const ImgFilename: string): string;
begin
if ImagesDir='' then exit('');