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.