Class: Markdowndocs::MarkdownRenderer
- Inherits:
-
Object
- Object
- Markdowndocs::MarkdownRenderer
- Defined in:
- app/services/markdowndocs/markdown_renderer.rb
Overview
Service for rendering Markdown content to HTML with syntax highlighting and security measures. Uses commonmarker for GFM (GitHub Flavored Markdown) and Rouge for syntax highlighting.
Class Method Summary collapse
Class Method Details
.render(markdown, cache_key: nil, mode: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/services/markdowndocs/markdown_renderer.rb', line 12 def render(markdown, cache_key: nil, mode: nil) return "" if markdown.blank? filtered_markdown = filter_by_mode(markdown, mode) if cache_key.present? mode_key = mode.present? ? "#{cache_key}:#{mode}" : cache_key Rails.cache.fetch("markdowndocs:#{mode_key}", expires_in: Markdowndocs.config.cache_expiry) do render_markdown(filtered_markdown) end else render_markdown(filtered_markdown) end end |