# frozen_string_literal: true String.include CoreExtensions::String::StripTags Jekyll::Document.include CoreExtensions::Jekyll::Document::Path # Definir tags de Liquid que provienen de complementos para que siempre # devuelvan contenido vacío. %w[seo feed_meta turbolinks].each do |tag| Liquid::Template.register_tag(tag, Jekyll::Tags::Empty) end Liquid::Template.register_tag('base', Jekyll::Tags::Base) module ActionDispatch # Redefinir el formateo de URLs de Rails para eliminar parámetros # selectivamente module Journey Formatter.class_eval do alias_method :generate_original, :generate # Eliminar el locale a menos que estemos generando la URL para un # Post. Esto es para que las URLs no lleven un ?locale=XX # innecesario y además porque generan conflictos en la subida de # archivos de ActionText. def generate(name, options, path_parameters) options.delete(:locale) unless options[:controller] == 'posts' generate_original(name, options, path_parameters) end end end end # Lazy Loading de Jekyll, deshabilitando la instanciación de elementos # que no necesitamos # # TODO: Aplicar monkey patches en otro lado... module Jekyll Reader.class_eval do def retrieve_posts(_); end def retrieve_dirs(_, _, _); end def retrieve_pages(_, _); end def retrieve_static_files(_, _); end end ThemeAssetsReader.class_eval do def read; end end # Prevenir la lectura del documento Document.class_eval do alias_method :read!, :read def read; end end # https://github.com/jekyll/jekyll/pull/8425 Utils.class_eval do def parse_date(input, msg = 'Input could not be parsed.') @parse_date_cache ||= {} @parse_date_cache[input] ||= Time.parse(input).localtime rescue ArgumentError raise Errors::InvalidDateError, "Invalid date '#{input}': #{msg}" end end end # No aplicar el orden por ranking para poder obtener los artículos en el # orden que tendrían en el sitio final. module PgSearch ScopeOptions.class_eval do def apply(scope) scope = include_table_aliasing_for_rank(scope) rank_table_alias = scope.pg_search_rank_table_alias(include_counter: true) scope.joins(rank_join(rank_table_alias)) end end end