NAME
Kernel::System::HTMLUtils – creating and modifying html strings
DESCRIPTION
A module for creating and modifying html strings.
PUBLIC INTERFACE
new()
Don't use the constructor directly, use the ObjectManager instead:
my $HTMLUtilsObject = $Kernel::OM->Get('Kernel::System::HTMLUtils');
ToAscii()
convert an HTML string to an ASCII string
my $Ascii = $HTMLUtilsObject->ToAscii( String => $String );
ToHTML()
converts an ASCII string to an HTML string.
my $HTMLString = $HTMLUtilsObject->ToHTML(
String => $String,
MaxLines => $String,
WrapLineAfterCharacters => 0, # optional, gracefully wrap line after a certain amount of characters if needed (defaults to not active)
StripEmptyLines => 0, # optional, strip empty lines (defaults to not active)
KeepSimpleSpaces => 0, # optional, don't mask subsequent spaces with (defaults to not active)
DetectLinks => 0, # optional, call LinkQuote to detect and mark up links
);
DocumentComplete()
check and e. g. add <html> and <body> tags to given html string
my $HTMLDocument = $HTMLUtilsObject->DocumentComplete(
String => $String,
Charset => $Charset,
);
DocumentStrip()
remove html document tags from string
my $HTMLString = $HTMLUtilsObject->DocumentStrip(
String => $String,
);
DocumentCleanup()
perform some sanity checks on HTML content.
- Replace <blockquote> by using
"<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt" type="cite">"
because of cross mail client and browser compatibility.
- If there is no HTML doctype present, inject the HTML5 doctype, because it is compatible with HTML4
and causes the browsers to render the content in standards mode, which is safer.
$HTMLBody = $HTMLUtilsObject->DocumentCleanup(
String => $HTMLBody,
SkipBlockquote => 1, # (optional) Do not replace <blockquote> tags. Default undef.
);
LinkQuote()
detect links in HTML code, add a href
if missing
my $HTMLWithLinks = $HTMLUtilsObject->LinkQuote(
String => $HTMLString,
Target => 'TargetName', # content of target="?", e. g. _blank
TargetAdd => 1, # add target="_blank" to all existing "<a href"
);
also string ref is possible
my $HTMLWithLinksRef = $HTMLUtilsObject->LinkQuote(
String => \$HTMLStringRef,
);
Safety()
To remove/strip active html tags/addons (javascript, applet
s, embed
s and object
s) from html strings.
my %Safe = $HTMLUtilsObject->Safety(
String => $HTMLString,
NoApplet => 1,
NoObject => 1,
NoEmbed => 1,
NoSVG => 1,
NoImg => 1,
NoIntSrcLoad => 0,
NoExtSrcLoad => 1,
NoJavaScript => 1,
ReplacementStr => 'string', # optional, string to show instead of applet, object, embed, svg and img tags
);
also string ref is possible
my %Safe = $HTMLUtilsObject->Safety(
String => \$HTMLStringRef,
NoApplet => 1,
NoObject => 1,
NoEmbed => 1,
NoSVG => 1,
NoImg => 1,
NoIntSrcLoad => 0,
NoExtSrcLoad => 1,
NoJavaScript => 1,
);
returns
my %Safe = (
String => $HTMLString, # modified html string (scalar or ref)
Replace => 1, # info if something got replaced
);
EmbeddedImagesExtract()
extracts embedded images with data-URLs from an HTML document.
$HTMLUtilsObject->EmbeddedImagesExtract(
DocumentRef => \$Body,
AttachmentsRef => \@Attachments,
);
Returns nothing. If embedded images were found, these will be appended to the attachments list, and the image data URL will be replaced with a cid:
URL in the document.