# Content Filters URL: /bengal/docs/0.5.0/reference/template-functions/content-filters/ Section: template-functions Tags: reference, filters, html, content -------------------------------------------------------------------------------- Content Filters Functions for HTML and content manipulation. html_escape Escape HTML entities for safe display. {{ user_input | html_escape }} {# "<script>" becomes "&lt;script&gt;" #} html_unescape Convert HTML entities back to characters. {{ escaped_text | html_unescape }} {# "&lt;Hello&gt;" becomes "<Hello>" #} nl2br Convert newlines to HTML <br> tags. {{ text | nl2br | safe }} {# "Line 1\nLine 2" becomes "Line 1<br>\nLine 2" #} smartquotes Convert straight quotes to smart (curly) quotes. {{ text | smartquotes }} {# "Hello" becomes "Hello" #} {# -- becomes – (en-dash) #} {# --- becomes — (em-dash) #} emojify Convert emoji shortcodes to Unicode emoji. {{ text | emojify }} {# "Hello :smile:" becomes "Hello 😊" #} {# "I :heart: Python" becomes "I ❤️ Python" #} Supported shortcodes: :smile: · :grin: · :joy: · :heart: · :star: · :fire: · :rocket: · :check: · :x: · :warning: · :tada: · :thumbsup: · :thumbsdown: · :eyes: · :bulb: · :sparkles: · :zap: · :wave: · :clap: · :raised_hands: · :100: extract_content Extract main content from full rendered HTML page. Useful for embedding page content. {{ page.rendered_html | extract_content | safe }} demote_headings Demote HTML headings by specified levels (h1→h2, h2→h3, etc.). {{ page.content | demote_headings | safe }} {# <h1>Title</h1> becomes <h2>Title</h2> #} {{ page.content | demote_headings(2) | safe }} {# <h1>Title</h1> becomes <h3>Title</h3> #} prefix_heading_ids Prefix heading IDs to ensure uniqueness when embedding multiple pages. {{ page.content | prefix_heading_ids("s1-") | safe }} {# <h2 id="quick-start"> becomes <h2 id="s1-quick-start"> #} {# <a href="#quick-start"> becomes <a href="#s1-quick-start"> #} urlize Convert plain URLs in text to clickable HTML links. {{ "Check out https://example.com for more info" | urlize }} {# "Check out <a href="https://example.com">https://example.com</a>..." #} {{ text | urlize(target='_blank', rel='noopener') }} {# Opens links in new tab with security attributes #} {{ text | urlize(shorten=true, shorten_length=30) }} {# Shortens long URLs in display text #} -------------------------------------------------------------------------------- Metadata: - Author: lbliii - Word Count: 309 - Reading Time: 2 minutes