LazUtils: Improve THTML2TextRenderer. Add property TitleMark. Don't use Unicode eyes for links, didn't look good.

git-svn-id: trunk@55329 -
This commit is contained in:
juha 2017-06-12 09:37:54 +00:00
parent 210554adb1
commit 9ff73f8e2d

View File

@ -31,7 +31,8 @@ type
private private
fHTML, fOutput: string; fHTML, fOutput: string;
fMaxLines: integer; fMaxLines: integer;
fLineEndMark: String; fLineEndMark: String; // End of line, by default std. "LineEnding".
fTitleMark: String; // Text at start and end of title text, by default Unicode graph.
fInHeader, fInDivTitle: Boolean; fInHeader, fInDivTitle: Boolean;
fPendingSpace: Boolean; fPendingSpace: Boolean;
fPendingNewLineCnt: Integer; fPendingNewLineCnt: Integer;
@ -51,6 +52,7 @@ type
function Render(aMaxLines: integer = MaxInt): string; function Render(aMaxLines: integer = MaxInt): string;
public public
property LineEndMark: String read fLineEndMark write fLineEndMark; property LineEndMark: String read fLineEndMark write fLineEndMark;
property TitleMark: String read fTitleMark write fTitleMark;
end; end;
implementation implementation
@ -63,7 +65,9 @@ begin
// remove UTF8 BOM // remove UTF8 BOM
if copy(fHTML,1,3)=UTF8BOM then if copy(fHTML,1,3)=UTF8BOM then
delete(fHTML,1,3); delete(fHTML,1,3);
fLineEndMark:=LineEnding; // Can be changed by user later. // These can be changed by user later.
fLineEndMark:=LineEnding;
fTitleMark:='🔹';
end; end;
constructor THTML2TextRenderer.Create(const Stream: TStream); constructor THTML2TextRenderer.Create(const Stream: TStream);
@ -186,7 +190,7 @@ begin
if fInDivTitle then if fInDivTitle then
begin begin
AddNewLine; AddNewLine;
Result:=AddOutput('🔹'); Result:=AddOutput(fTitleMark);
end end
else else
AddOneNewLine; AddOneNewLine;
@ -196,7 +200,7 @@ begin
begin begin
if fInDivTitle then if fInDivTitle then
begin begin
Result:=AddOutput('🔹'); Result:=AddOutput(fTitleMark);
fInDivTitle:=False; fInDivTitle:=False;
end; end;
AddOneNewLine; AddOneNewLine;
@ -212,13 +216,13 @@ begin
'/LI': '/LI':
Dec(fIndent); Dec(fIndent);
'A': // Link 'A': // Link
Result:=AddOutput(' 👀'); Result:=AddOutput(' _');
'/A': '/A':
Result:=AddOutput('👀 '); Result:=AddOutput('_ ');
'HR': 'HR':
begin begin
AddOneNewLine; AddOneNewLine;
Result:=AddOutput('----------'); Result:=AddOutput('——————————————————');
//AddOneNewLine; //AddOneNewLine;
end; end;
end; end;