5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-05-19 12:20:48 +00:00
panel/app/models/metadata_path.rb
f ee7d1599e8
All checks were successful
ci/woodpecker/push/woodpecker/1 Pipeline was successful
ci/woodpecker/push/woodpecker/2 Pipeline was successful
fix: limitar el nombre del archivo #14946
2024-01-09 18:27:02 -03:00

58 lines
1.1 KiB
Ruby

# frozen_string_literal: true
# Este campo representa el archivo donde se almacenan los datos
class MetadataPath < MetadataTemplate
# :label en este caso es el idioma/colección
#
# @return [String]
def default_value
File.join(site.path, "_#{lang}", "#{limited_name}#{ext}")
end
# La ruta del archivo según Jekyll
#
# @return [String]
def document_value
document.path
end
def value
self[:value] = default_value
end
alias absolute value
alias to_s value
def relative
Pathname.new(value).relative_path_from(Pathname.new(site.path)).to_s
end
def basename
File.basename(value, ext)
end
# No lo aceptamos en los parámetros
def to_param; end
private
def ext
document.data['ext'].blank? ? '.markdown' : document.data['ext']
end
def slug
post.slug.value
end
def date
post.date.value.strftime('%F')
end
# Limita el nombre de archivo a 255 bytes, de forma que siempre
# podemos guardarlo
#
# @return [String]
def limited_name
"#{date}-#{slug}".mb_chars.limit(255 - ext.length)
end
end