abstract class Sanitize::Policy

Overview

A policy defines the rules for transforming an HTML/XML tree.

Direct Known Subclasses

Defined in:

Constant Summary

HTML_BLOCK_ELEMENTS = Set {"address", "article", "aside", "audio", "video", "blockquote", "br", "canvas", "dd", "div", "dl", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "noscript", "ol", "output", "p", "pre", "section", "table", "tfoot", "ul"}

Instance Method Summary

Instance Method Detail

def block_tag?(name) #

def block_whitespace : String #

Defines the string that is added when whitespace is needed when a block tag is stripped.


def block_whitespace=(block_whitespace) #

Defines the string that is added when whitespace is needed when a block tag is stripped.


def process(html : String | XML::Node) : String #

Processes the HTML fragment html with this policy using the default adapter (Adapter::LibXML2).


def process_document(html : String | XML::Node) : String #

Processes the HTML document html with this policy using the default adapter (Adapter::LibXML2).


abstract def transform_tag(name : String, attributes : Hash(String, String)) : String | Processor::CONTINUE | Processor::STOP #

Receives the element name and attributes of an opening tag and returns the transformed element name (usually the same as the input name).

attributes are transformed directly in place.

Special return values:

  • Processor::CONTINUE: Tells the processor to strip the current tag but continue traversing its children.
  • Processor::CONTINUE: Tells the processor to skip the current tag and its children completely and move to the next sibling.

abstract def transform_text(text : String) : String? #

Receives the content of a text node and returns the transformed content.

If the return value is nil, the content is skipped.