# frozen_string_literal: true # Se encarga del contenido del artículo y quizás otros campos que # requieran texto largo. class MetadataContent < MetadataTemplate include ActionView::Helpers::SanitizeHelper def default_value '' end def value markdown = ReverseMarkdown.convert(self[:value]).strip markdown = nil if markdown.blank? sanitize(markdown || document.content || default_value, sanitize_options) .tr("\r", '') # eliminar retornos de carro .gsub(/^> /, '> ') # convertir citas de vuelta a citas .gsub(/ \n /, "\n") # eliminar dobles saltos de línea .gsub(/^ $/, '') # eliminar saltos de línea solitarios end def front_matter? false end private # Etiquetas y atributos HTML a permitir # # No queremos permitir mucho más que cosas de las que nos falten en # CommonMark. # # TODO: Permitir una lista de atributos y etiquetas en el Layout # # XXX: Vamos a generar un reproductor de video/audio directamente # desde un plugin de Jekyll def sanitize_options { tags: %w[span], attributes: %w[title class lang] } end end