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_lang_front_matter!
update_translations! update_translations!
put_in_order! put_in_order!
create_glossary!
end end
# Setea el propio idioma en el front_matter de slugs # Setea el propio idioma en el front_matter de slugs
@ -549,4 +550,28 @@ class Post
@front_matter['order'] = @site.posts_for(@collection).count @front_matter['order'] = @site.posts_for(@collection).count
end 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 end

View file

@ -16,6 +16,11 @@ class Site
!translations.empty? !translations.empty?
end end
# Define si el sitio tiene un glosario
def glossary?
jekyll.config.fetch('glossary', false)
end
# Obtiene la lista de traducciones actuales # Obtiene la lista de traducciones actuales
def translations def translations
@jekyll.config.dig('i18n') || [] @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 `_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 traducciones de los slugs, pero requiere hacer cambios en themes ya
existentes existentes
## Colecciones
Cómo se van a traducir las colecciones?