5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-22 20:26:22 +00:00
panel/app/models/metadata_permalink.rb
f eb7d0679bb normalizar strings sin romperlas
en castellano no nos afectó pero en árabe rompe el significado
2022-04-28 10:34:57 -03:00

28 lines
846 B
Ruby

# frozen_string_literal: true
# Este metadato permite generar rutas manuales.
class MetadataPermalink < MetadataString
# El valor por defecto una vez creado es la URL que le asigne Jekyll,
# de forma que nunca cambia aunque se cambie el título.
def default_value
document.url.sub(%r{\A/}, '') unless post.new?
end
# Los permalinks nunca pueden ser privados
def private?
false
end
private
# Al hacer limpieza, validamos la ruta. Eliminamos / multiplicadas,
# puntos suspensivos, la primera / para que siempre sea relativa y
# agregamos una / al final si la ruta no tiene extensión.
def sanitize(value)
value = value.strip.unicode_normalize.gsub('..', '/').gsub('./', '').squeeze('/')
value = value[1..-1] if value.start_with? '/'
value += '/' if File.extname(value).blank?
value
end
end