5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-16 07:21:41 +00:00

Merge branch 'preview' into rails

This commit is contained in:
f 2023-03-23 19:24:24 -03:00
commit a593ecefdb
3 changed files with 11 additions and 10 deletions

View file

@ -261,7 +261,7 @@ GEM
jekyll (~> 4) jekyll (~> 4)
jekyll-ignore-layouts (0.1.2) jekyll-ignore-layouts (0.1.2)
jekyll (~> 4) jekyll (~> 4)
jekyll-images (0.3.0) jekyll-images (0.3.2)
jekyll (~> 4) jekyll (~> 4)
ruby-filemagic (~> 0.7) ruby-filemagic (~> 0.7)
ruby-vips (~> 2) ruby-vips (~> 2)

View file

@ -29,7 +29,7 @@ class Post
# TODO: Reemplazar cuando leamos el contenido del Document # TODO: Reemplazar cuando leamos el contenido del Document
# a demanda? # a demanda?
def find_layout(path) def find_layout(path)
IO.foreach(path).lazy.grep(/^layout: /).take(1).first&.split(' ')&.last&.tr('\'', '')&.tr('"', '')&.to_sym File.foreach(path).lazy.grep(/^layout: /).take(1).first&.split(' ')&.last&.tr('\'', '')&.tr('"', '')&.to_sym
end end
end end
@ -97,13 +97,14 @@ class Post
# Renderizar lo estrictamente necesario y convertir a HTML para # Renderizar lo estrictamente necesario y convertir a HTML para
# poder reemplazar valores. # poder reemplazar valores.
html = Nokogiri::HTML document.renderer.render_document html = Nokogiri::HTML document.renderer.render_document
# Las imágenes se cargan directamente desde el repositorio, porque # Los archivos se cargan directamente desde el repositorio, porque
# no son públicas hasta que se publica el artículo. # no son públicas hasta que se publica el artículo.
html.css('img').each do |img| html.css('img,audio,video,iframe').each do |element|
next if %r{\Ahttps?://} =~ img.attributes['src'] src = element.attributes['src']
img.attributes['src'].value = Rails.application.routes.url_helpers.site_static_file_url(site, next unless src&.value&.start_with? 'public/'
file: img.attributes['src'].value)
src.value = Rails.application.routes.url_helpers.site_static_file_url(site, file: src.value)
end end
# Notificar a les usuaries que están viendo una previsualización # Notificar a les usuaries que están viendo una previsualización
@ -121,7 +122,7 @@ class Post
# Devuelve una llave para poder guardar el post en una cache # Devuelve una llave para poder guardar el post en una cache
def cache_key def cache_key
'posts/' + uuid.value "posts/#{uuid.value}"
end end
def cache_version def cache_version
@ -131,7 +132,7 @@ class Post
# Agregar el timestamp para saber si cambió, siguiendo el módulo # Agregar el timestamp para saber si cambió, siguiendo el módulo
# ActiveRecord::Integration # ActiveRecord::Integration
def cache_key_with_version def cache_key_with_version
cache_key + '-' + cache_version "#{cache_key}-#{cache_version}"
end end
# TODO: Convertir a UUID? # TODO: Convertir a UUID?

View file

@ -437,7 +437,7 @@ class Site < ApplicationRecord
# El directorio donde se almacenan los sitios # El directorio donde se almacenan los sitios
def self.site_path def self.site_path
@site_path ||= ENV.fetch('SITE_PATH', Rails.root.join('_sites')) @site_path ||= File.realpath(ENV.fetch('SITE_PATH', Rails.root.join('_sites')))
end end
def self.default def self.default