# frozen_string_literal: true # Contenido con el editor de Markdown # # @todo Deprecar class MetadataMarkdownContent < MetadataText include Metadata::ContentConcern # Renderizar a HTML y sanitizar def to_s sanitize CommonMarker.render_doc(value, %i[FOOTNOTES SMART], %i[table strikethrough autolink]).to_html end # @return [String] def value self[:value] || document_value || default_value end # Obtener el contenido desde el documento # # @return [String] def document_value document.content end private # XXX: No sanitizamos acá porque se escapan varios símbolos de # markdown y se eliminan autolinks. Mejor es deshabilitar la # generación SAFE de CommonMark en la configuración del sitio. # # @param :string [String] # @return [String] def sanitize(string) string.tr("\r", '').unicode_normalize end end