Skip to content
Joniel R. de Oliveira edited this page Nov 24, 2023 · 38 revisions

Bem-vindo(a) ao JonielOliveira.github.io wiki!

Passos / Requisitos do Projeto:

1. Configuração do Repositório:

Crie um novo repositório no GitHub para o seu Wiki e clone-o para o seu ambiente de desenvolvimento local.

O repositório criado para este projeto é o: {Repositório}. Além do repositório principal existe um fork do repositório dentro da organização {Fork} cria pelos membros do grupo. Membros:


2. Estrutura Básica:

Configure a estrutura básica do projeto, incluindo a pasta de templates e recursos estáticos.

A estrutura básica aplicada ao projeto está apresentada na imagem abaixo:

Estrutura do Projeto

A estrutura apresentada é a visualizada na Branch "develop". Na raiz do projeto estão os seguintes arquivos/diretórios:

  • [Diretório] .github/workflows: diretório contendo o workflow "deploy.ml".

    • [Arquivo] deploy.ml: arquivo responsável por realizar o deploy da site no GitHub Pages. Toda vez que um commit é realizado na branch "develop" o fluxo de trabalho é executado para atualizar os arquivos na branch "main". Portanto, ao atualizar um arquivo Markdown (conteúdo da página) e realizar o commit na "develop", automaticamente a branch "main" será atualizada com o novo conteúdo, permitindo a atualização do site.
  • [Diretório] development: principal diretório onde os arquivos de de desenvolvimento do blog estão armazenados.

    • [Diretório] build: diretório com o conteúdo gerado pelo Frask-Frozen. O Flask-Frozen é utilizado para criar as páginas estáticas a partir dos modelos (templates) do Flask. Nesses projeto é construído as páginas estáticas com os conteúdos dos diretórios "markdown" e "templates". "markdown" + "templates" -> "build"
  • [Diretório] wiki: diretório onde os arquivos desta wiki estão armazenados.

  • [Arquivo] .gitignore: utilizado para definir quais arquivos/diretórios serão ignorados ao realizar a atualização do conteúdo para o repositório remoto. Nesse projeto o ".gitignore" está configurado para ignorar arquivos/diretórios criados para ambientes virtuais (venv) das máquinas locais.

  • [Arquivo] README.md: utilizado para uma descrição do projeto, informando para outras pessoas por que seu projeto é útil, o que elas podem fazer com o projeto e como elas podem usá-lo etc.

  • [Arquivo] requirements.txt: utilizado para armazenar as informações ralativas as dependências necessárias para a instalação de um determinado módulo. Nesse projeto foi necessário a instalação de 3 módulos: Flask, Markdown2 e Frozen-Flask.


3. Criação de Postagens:

Crie um arquivo JSON para armazenar as informações gerais como titulo, descrição e autor.


4. Geração de Páginas:

Use a linguagem Python para ler os dados de um arquivo markdown e gerar páginas HTML estáticas para cada postagem do blog.


5. Integração do Gitflow:

Configure um fluxo de trabalho com o Gitflow, que envolve a criação de branches para desenvolvimento, features e releases, para melhor organização e colaboração.


6. Personalização e Estilo:

Personalize o estilo do blog usando CSS, criando uma aparência agradável (Isso fica a critério).


7. Teste Local:

Teste o blog localmente para verificar se as postagens são geradas corretamente e se o estilo está de acordo com o esperado.


8. Publicação no GitHub Pages:

Faça o push do projeto para o repositório no GitHub e habilite o GitHub Pages nas configurações do repositório. Isso permitirá que o blog seja publicado online.


9. Documentar como foi feito o procedimento:

O primeiro post no Wiki/blog deve ser uma documentação de como você pensou e quais os principais procedimentos que realizou para concluir essa atividade.


10. Automatização do Processo:

Implemente automações usando scripts Python para atualizar automaticamente o blog quando novas postagens forem adicionadas (Opcional).


Arquivo – Requirements.txt: Utilizado para armazenar as informações ralativas as dependências necessárias para a instalação de um determinado módulo. Nesse projeto foi necessário a instalação de 3 módulos: Flask, Markdown2 e Frozen-Flask. Para a instalação desses módulos pode-se utilizar os seguintes comandos:

pip install Flask

pip install markdown2

pip install Frozen-Flask

Após a instalação desses módulos as dependências podem ser armazenadas no arquivo "requirements.txt" utilizando o seguinte comando:

pip freeze > requirements.txt

Deste modo, pode-se fazer a mesma instalação futuramente dos 3 módulos apenas usando o arquivo "requirements.txt". Isso é muito útil para criar o processo de deploy. O comando para a instalação por meio do arquivo "requirements.txt" é o seguinte:

pip install -r requirements.txt

O arquivo "requirements.txt" do projeto ficou da seguinte forma:

blinker==1.7.0 #Flask

click==8.1.7 #Flask

colorama==0.4.6 #Flask

flask==3.0.0 #Flask

frozen-flask==1.0.1 #Frozen-Flask

importlib-metadata==6.8.0 #Flask

itsdangerous==2.1.2 #Flask

Jinja2==3.1.2 #Flask

markdown2==2.4.10 #Markdown2

MarkupSafe==2.1.3 #Flask

werkzeug==3.0.1 #Flask

zipp==3.17.0 #Flask


Clone this wiki locally