5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-05-19 00:30:48 +00:00

normalizar strings sin romperlas

en castellano no nos afectó pero en árabe rompe el significado
This commit is contained in:
f 2022-04-28 10:34:57 -03:00
parent 4d6a26d671
commit eb7d0679bb
7 changed files with 7 additions and 7 deletions

View file

@ -19,7 +19,7 @@ module ActiveStorage
# stack. # stack.
def blob_args def blob_args
params.require(:blob).permit(:filename, :byte_size, :checksum, :content_type, metadata: {}).to_h.symbolize_keys.tap do |ba| params.require(:blob).permit(:filename, :byte_size, :checksum, :content_type, metadata: {}).to_h.symbolize_keys.tap do |ba|
ba[:filename] = ba[:filename].unicode_normalize(:nfkc) ba[:filename] = ba[:filename].unicode_normalize
end end
end end
end end

View file

@ -11,7 +11,7 @@ module ActionDispatch
# Devolver el nombre de archivo con caracteres unicode # Devolver el nombre de archivo con caracteres unicode
# normalizados # normalizados
def original_filename def original_filename
@original_filename.unicode_normalize(:nfkc) @original_filename.unicode_normalize
end end
end end
end end

View file

@ -12,6 +12,6 @@ class MetadataMarkdown < MetadataText
# markdown y se eliminan autolinks. Mejor es habilitar la generación # markdown y se eliminan autolinks. Mejor es habilitar la generación
# SAFE de CommonMark en la configuración del sitio. # SAFE de CommonMark en la configuración del sitio.
def sanitize(string) def sanitize(string)
string.unicode_normalize(:nfkc) string.unicode_normalize
end end
end end

View file

@ -25,6 +25,6 @@ class MetadataMarkdownContent < MetadataText
# markdown y se eliminan autolinks. Mejor es deshabilitar la # markdown y se eliminan autolinks. Mejor es deshabilitar la
# generación SAFE de CommonMark en la configuración del sitio. # generación SAFE de CommonMark en la configuración del sitio.
def sanitize(string) def sanitize(string)
string.tr("\r", '').unicode_normalize(:nfkc) string.tr("\r", '').unicode_normalize
end end
end end

View file

@ -19,7 +19,7 @@ class MetadataPermalink < MetadataString
# puntos suspensivos, la primera / para que siempre sea relativa y # puntos suspensivos, la primera / para que siempre sea relativa y
# agregamos una / al final si la ruta no tiene extensión. # agregamos una / al final si la ruta no tiene extensión.
def sanitize(value) def sanitize(value)
value = value.strip.unicode_normalize(:nfkc).gsub('..', '/').gsub('./', '').squeeze('/') value = value.strip.unicode_normalize.gsub('..', '/').gsub('./', '').squeeze('/')
value = value[1..-1] if value.start_with? '/' value = value[1..-1] if value.start_with? '/'
value += '/' if File.extname(value).blank? value += '/' if File.extname(value).blank?

View file

@ -17,7 +17,7 @@ class MetadataString < MetadataTemplate
def sanitize(string) def sanitize(string)
return '' if string.blank? return '' if string.blank?
sanitizer.sanitize(string.strip.unicode_normalize(:nfkc), sanitizer.sanitize(string.strip.unicode_normalize,
tags: [], tags: [],
attributes: []).strip.html_safe attributes: []).strip.html_safe
end end

View file

@ -185,7 +185,7 @@ MetadataTemplate = Struct.new(:site, :document, :name, :label, :type,
return string unless string.is_a? String return string unless string.is_a? String
sanitizer sanitizer
.sanitize(string.tr("\r", '').unicode_normalize(:nfkc), .sanitize(string.tr("\r", '').unicode_normalize,
tags: allowed_tags, tags: allowed_tags,
attributes: allowed_attributes) attributes: allowed_attributes)
.strip .strip