Neste segundo artigo, vou desglosar un pouco a estrutura de carpetas e arquivos de Jekyll. De xeito que sexa mais doado movernos polas distintas partes da aplicación e da configuración.

Agora mesmo non teño experiencia traballando con esta apliación de Jekyll, polo que seguramente me quedará alguna cousa fora. Pero a idea é ir engadindo as cousas que vaia descubrindo en próximos artigos. Así que comecemos.

Estructura

Jekyll divide o proxecto nunha serie de carpetas e arquivos. Por exemplo o que vaiamos publicar irá na carpeta _post, mentres que aquilo no que estemos traballando e non queiramos que se vexa irá en _draf, por exemplo.

Aquí podemos ver a estrutura actual que teño eu, con tan só o artigo anterior publicado.

.
├── 404.html
├── about.markdown
├── _config.yml
├── _drafts
│   └── jekyll.md
├── Gemfile
├── Gemfile.lock
├── index.markdown
├── _posts
│   ├── 2023-04-09-montar-jekyll-con-docker.md
│   └── 2023-04-16-jekyll-estrutura-de-carpetas.md
└── _site
    ├── 404.html
    ├── about
    │   └── index.html
    ├── assets
    │   ├── main.css
    │   ├── main.css.map
    │   └── minima-social-icons.svg
    ├── feed.xml
    ├── index.html
    └── jekyll
        └── docker
            └── 2023
                └── 04
                    └── 09
                        └── montar-jekyll-con-docker.html

Imos comezar pois polas carpetas e despóis xa pasamos aos ficheiros.

Carpetas

  • _drafts: esta carpeta como dixen antes é a nosa carpeta de bosquexos. Nesta carpeta podemos ter os arquivos sen un nome ou estrutura concretos, xa que non se van a amosar no noso sitio. Así pois ese arquivo jekyll.md que voi o arquivo no que estiven a tomar as notas mentres instalaba Jekyll en docker e facía as primeiras probas, non vai aparecer cando erga o sitio.

  • _post: aquí si que irán os nosos artigos xa listos para publicar. E cunha nomenclatura específica. Como se pode observar o nome ten que comezar polo ano, mes, día e título. Todo sen espazos, separado por guións medios. Podemos redactar os artigos tando en linguaxe markdown, coma HTML. Que cando publiquemos xa se encargará Jekyll de deixalo maquetado.

  • _site: esta é a carpeta na que irán parar os arquivos fináis listos para publicar nun hosting. Podemos ver claramente a web final, co seu arquivo 404.html para cando alguén poña unha ruta incorrecta, a carpeta about que terá o contido do about.markdown, os assests onde inr’an as imaxes, css ou javascripts. A carpeta da categoría jekyll onde colga o arquivo publicado anteriormente. Unha cousa interesante a notar nesta carpeta é o arquivo feed.xml e é que Jekyll xa nos monta o noso propio feed para que a xente se suscriba.

Ficheiros

  • 404.html: cando algunha persoa acceda a un recurso erróneo na nosa web, o contido deste arquivo será o que visualice. Co cal, no caso de que queiramos mudar a mensaxe, para que non se amose a que viña ca instalación, aquí será onde teñamos que tocar.

  • about.markdown: aparece arriba a dereita na nosa web, salvo que mudasemos a plantilla. O acceso ao about. Se queremos mudar a información da páxina ou mesmo eliminala faríamolo con este arquivo, modificando o contido ou eliminandoo. Podemos engadir outros accesos nese área engadindo outros arquivos ao mesmo nivel ca este, por exemplo se quixésemos engadir un arquivo sobre nós, ou algunha outra sección que consideremos o bastante importanto como para aparece aí en toda-las vistas.

  • index.markdown: é o arquivo que teremos que configurar para personalizar a nosa web. Xa que o propio Jekyll o convertirá na nosa páxina principal.

  • _config.yml: escrito en linguaxe YAML, neste arquivo temos a configuración base do sitio. Aquí teremos cousas como o título do sitio, a url do hosting (necesaria para o correcto funcionamento da xeración da páxina), configuración por defecto de certos parámetros, etc.

  • Gemfile e Gemfile.lock: estes son os arquivos de onde bundler colle as dependencias a instalar e, por tanto, onde as engadiremos. O .lock será onde o bundler escribe as dependencias xa instaladas.

Publicando un artigo

Cando queiramos publicar un artigo o mais importante é o nome deste arquivo, que tal é como dixemos antes ten que ser tal que ano-mes-día-título.extensión. As extensións poen ser .html, .md, .markdown, .md ou .textfile.

Xa dentro do arquivo teremos os atributos que definirán entre outras cousas a presentación do mesmo. Este contido irá encadrado entre dúas liñas con tres guións ---. Algúns destes atributos son os seguintes:

  • layout: o tipo de prantilla para aplicar ao artigo. Co template básico que trae o Jekyll cando se instala, pode ser ou ben post ou ben page. Conforme vaia usando Jekyll irei engadindo mais información sobre isto e sobre outras opcións.

  • title: este será o título que se vai amosar na páxina, no índice, tamén no propio artigo e na barra do navegador.

  • date: esta será a data de publicación do arquivo.

  • categories: son as categorías nas que queremos encaixar o artigo. Se non personalizamos o link de publicación estas categoríás serán as que se amosen na URL como ruta. Calquer cousa que poñamos aquí separada por un espazo, pasará a ser unha categoría do noso sitio.

  • permalink: dito o anterior, se modificamos as categorías dun artigo ou a data, a URL do texto vai mudar. Polo que se alguén a tivese nos seus marcadores e tentase acceder a ela, non a atoparía. Para evitar isto, con este atributo podemos dicirlle a un artigo cal vai ser a sua ruta fixa. Este link pode ser un texto fixo ou podemos utilizar uns comodíns para que se compoña en base a algúns atributos. Por exemplo, /:categories/:year/:month/:title, montará unha url cas categorías do arquivo separadas por /` seguida polo ano, mes e o título. NOTA: cabe salientar que neste caso o título non o quita do atributo, se non do nome do ficheiro.

Calquer texto que non sexa un comodín será interpretado literalmente. se por exemplo ao final engadísemos un .html a ruta tería esta extensión.

  • author: no caso de que fósemos varias persoas a publicar na web, poderíamos indicar quen escribiu o artigo.

Configurando atributos por defecto

Certo é que ter que engadir en cada arquivo estes atributos pode ser algo pesado. Polo que temos a opción de facer que os que queiramos collan valores por defecto. Así no caso de non engadilos collerían ese valor e no caso de querer cambialo simplemente o engadiríamos no arquivo.

Para configurar valores por defecto temos que ir ao arquivo _config.yml_ e, se non a temos, engadimos unha sección de defaults, que podería quedar tal como:

defaults:
    -
     scope:
        path: "projects"
        type: "post"
    values:
        layout: "post"
        author: "Código Morrazo"
        permalink: "/:categories/:year/:month/:title"

Con esta estrutura estaremos a dicirlle ao proxecto que queremos ese valores de layout, author e permalink. Aplicados a todo-los arquivos da carpeta projects. Se queremos aplicalos indiscriminadamente, non só a projects, o que faremos será deixar esa cadea baleira "". Co type, dicimos que todo-los ficheiros de tipo post, que serán os da carpeta _post, serán os afectados. Polo que aqueles de tipo page por exemplo, non se verán afectados.

E con isto chega a fin do artigo. No próximo explicarei como mudar o aspecto do sitio para darlle algo de personalidade.