Existem temas Hugo para diversos fins. No nosso caso interessa-nos um tema que funcione simultaneamente como [[landing page]] e [[blogue]].
O site gethugothemes tem um conjunto de 40 temas gratuitos com páginas de demonstração:
[40+ Best Completely Free Hugo Themes For 2024](https://gethugothemes.com/free-hugo-themes). Nesta lista está incluído o tema o tema [Meghna](https://gethugothemes.com/demo?theme=meghna/) que inclui as funcionalidades pretendidas. Este temas tem uma forma de instalação e configuração diferente que se explica em seguida.
### Tema Meghna
O tema [Meghna](https://github.com/themefisher/meghna-hugo) inclui suporte para [[landing page]] e para [[blogue]]. Existe uma versão de demonstração do tema neste endereço:
[gethugothemes.com/demo?theme=meghna/](https://gethugothemes.com/demo?theme=meghna/)
A documentação deste tema encontra-se aqui:
[Meghna](https://docs.gethugothemes.com/meghna/?ref=github)
Este tema necessita que o computador tenha também instalado o [Nodejs](https://nodejs.org/en/download/) A instalação para os diversos sistemas operativos encontra-se na página da documentação relativa à [instalação](https://docs.gethugothemes.com/meghna/installation/).
Para fazer a sua instalação dentro da pasta `hugo-sites` dá-se a seguinte sequência de comandos:
```
cd hugo-sites
git clone https://github.com/themefisher/meghna-hugo.git
cd meghna-hugo
npm run project-setup
npm run dev
```
O comando `git clone` cria a pasta `meghna-hugo` contendo todos os ficheiros da configuração por omissão do tema. O comando `npm run project-setup` faz a configuração e o comando `npm run dev`inicia o servidor de desenvolvimento. Isto permite ver num browser versão local de desenvolvimento usando o seguinte endereço:
http://localhost:1313/meghna/examplesite/
Em vez de `npm run dev` é também possível usar o comando `hugo server` para ter o mesmo resultado.
O ficheiro de configuração do site `hugo.toml` é muito mais completo do que mostrado anteriormente mas é fácil encontrar as principais variáveis que necessitam de configuração:
```
baseURL = "http://web.tecnico.ulisboa.pt/ist1xxxxxx/meghna-hugo/"
title = "Our Project"
timeZone = "Europe/Lisbon"
disqusShortname = ""
disableLanguages = ["fr"]
```
A última linha desativa a versão em francês.
O comando `hugo` sem argumentos gera o site estático na pasta `public`:
```
hugo
```
Para instalar o site no `sigma`:
```
rsync -av public/
[email protected]:web/meghna-hugo
```
Depois da transferência pode-se ver o site no endereço:
```
http://web.tecnico.ulisboa.pt/ist1xxxxxx/meghna-hugo
```
Os diferentes módulos da página principal são definidos por ficheiros na pasta `data/xx/yyyy.yml`, em que `xx` é a língua (en ou fr) e `yyyy.yml` é o ficheiro de configuração de cada módulo.
Por exemplo, o cabeçalho da página onde se encontra a imagem de rosto usa o ficheiro de configuração `data/en/banner.yml` e tem, originalmente, o seguinte conteúdo:
```
############################### Banner ################################
banner:
enable : true
bg_image_webp : "images/backgrounds/hero-area.webp"
bg_image : "images/backgrounds/hero-area.jpg"
icon : "" # themify icon pack : https://themify.me/themify-icons
title : "Experience the new reality"
content : "Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugit, excepturi. At recusandae sit perferendis autem,iste tempora nostrum numquam sapiente!"
button:
enable : true
label : "Explore Us"
link : "#services"
```
Cada módulo da página principal pode ser desativado mudando `enable : true` para `enable : false`. As restantes configurações são fáceis de compreender.
Para além da landing page, este tema oferece um blogue. As entradas do blogue (posts) podem estar em diferentes línguas e terem autores diferentes. Um posts em língua inglesa é guardado no ficheiro markdown `content/english/blog/simple-blog-post-1.md`. Para criar um novo post basta copiar um anterior e alterar o seu conteúdo. A informação sobre os autores de língua inglesa está em `content/english/author/nome-author.md`.
Depois de configurado o site deve voltar-se a correr o comando `hugo` sem argumentos para colocar a versão final na pasta `public`. O seu conteúdo deverá depois ser copiado para o serviço de alojamento do site como, por exemplo, o [[serviço de alojamento de páginas web do Técnico]].
Existem vários temas Hugo com [[landing page]] e [[blogue]] como é o caso dos temas [Universal](https://themes.gohugo.io/themes/hugo-universal-theme/), [BigSpring Light](https://gethugothemes.com/demo?theme=bigspring-light/), [Hugoplate](https://themes.gohugo.io/themes/hugoplate/), [Hugo Bootstrap](https://themes.gohugo.io/themes/hugo-bootstrap-theme/), [Paige](https://themes.gohugo.io/themes/paige/), entre outros.