# frozen_string_literal: true require 'kramdown' require_relative 'sanitize_html' module Html2rss module AttributePostProcessors ## # Generates HTML from Markdown. # # It's particularly useful in conjunction with the Template post processor # to generate a description from other selectors. # # YAML usage example: # # selectors: # description: # selector: section # post_process: # - name: template # string: | # # %s # # Price: %s # methods: # - self # - price # - name: markdown_to_html # # Would e.g. return: # #
Price: 12.34
class MarkdownToHtml ## # @param value [String] Markdown content to convert to HTML # @param env [Item::Context] Context object providing additional environment details def initialize(value, env) @value = value @env = env end ## # Converts Markdown to sanitized HTML. # # @return [String] Sanitized HTML content def get html_content = Kramdown::Document.new(@value).to_html SanitizeHtml.new(html_content, @env).get end end end end