WIP de crear glosario

This commit is contained in:
f 2018-09-05 17:25:47 -03:00
parent cdfb66791e
commit 3d57b94fe3
No known key found for this signature in database
GPG key ID: F3FDAB97B5F9F7E7
4 changed files with 66 additions and 0 deletions

View file

@ -433,6 +433,7 @@ class Post
update_lang_front_matter!
update_translations!
put_in_order!
create_glossary!
end
# Setea el propio idioma en el front_matter de slugs
@ -549,4 +550,28 @@ class Post
@front_matter['order'] = @site.posts_for(@collection).count
end
# Crea el artículo de glosario para cada categoría o tag
def create_glossary!
return unless site.glossary?
[:tags,:categories].each do |i|
self.send(i).each do |c|
# TODO no hardcodear, hacer _configurable
next if c == 'Glossary'
next if site.posts.find do |p|
p.title == c
end
glossary = Post.new(site: site, lang: lang)
glossary.update_attributes({
title: c,
layout: 'glossary',
categories: 'Glossary'
})
glossary.save!
end
end
end
end

View file

@ -16,6 +16,11 @@ class Site
!translations.empty?
end
# Define si el sitio tiene un glosario
def glossary?
jekyll.config.fetch('glossary', false)
end
# Obtiene la lista de traducciones actuales
def translations
@jekyll.config.dig('i18n') || []

32
doc/glosario.md Normal file
View file

@ -0,0 +1,32 @@
# Glosario
El glosario permite describir categorías y etiquetas y normalizar
sinónimos.
## Creación
Al crear una etiqueta o categoría en el formulario de categorías, se
crea un artículo dentro de la categoría "Glosario" y layout
"glosario".
XXX: En el futuro, cuando Sutty soporte colecciones, se moverán a la
colección `_glosario`.
Estos artículos pueden editarse desde el editor normal de Sutty,
agregando definiciones y comportándose como un artículo más.
## Preguntas
Si el glosario es una colección, cómo se pueden traducir? Van a ser
`_glosario_idioma` o `_idioma_glosario`? Lo mismo para la i18n de otras
colecciones.
## Select2
En el selector de categorías y tags, traer el contenido del glosario y
sinónimos como sugerencias.
TODO hacer todo esto como una clase aparte e incluirla en el modelo
Post, lo mismo para las plantillas y otras features específicas.
Incluso se las puede incluir solo cuando están activadas para el sitio.
Organiza mejor el código.

View file

@ -54,3 +54,7 @@ esto seria mas facil de hacer en un solo lado teniendo un
`_data/post_relations.yml` o algo asi que tenga una sola vez todas las
traducciones de los slugs, pero requiere hacer cambios en themes ya
existentes
## Colecciones
Cómo se van a traducir las colecciones?