Divisor é uma ferramenta baseada em Python que automatiza a criação de um site com tecnologia Jekyll a partir de um repositório Git. Por padrão, usa o repositório de Backup da fonte.wiki.
A ideia central é fornecer uma maneira simples e flexível de gerar um site estático a partir de conteúdos selecionados, sem ter que configurar manualmente um ambiente Jekyll ou gerenciar o processo de conversão de conteúdo. O site resultante será implantado no GitHub Pages por padrão.
Divisor foi criado no âmbito do Lab Mãe D'Água.
Divisor parte do conteúdo do repositório de origem. Em seguida, a ferramenta gera um site Jekyll com base no arquivo de configuração config.yml
. O site gerado é salvo na destination_folder
definida no arquivo de configuração.
O arquivo config.yml
permite que você personalize o site gerado. Você pode definir o título, a descrição, o tema e outras opções do site. Você também pode mapear arquivos e pastas específicos do seu repositório de origem para o site gerado.
O principal arquivo de configuração é o config.yml
. Aqui está um detalhamento das opções disponíveis:
site_metadata:
title: "Meu Site Incrível"
description: "Site criado com fonte.wiki e Divisor"
theme: "minima"
github_repository_url: "https://github.com/seu-usuario-git/seu-repositorio.git" # Recomendado: use o URL HTTPS
github_pages_url: "https://seu-usuario-git.github.io/seu-repositorio/" #edite esta linha
source_repository: "https://github.com/fonte-wiki/Backup-fonte-wiki" #deixe isto para usar o fonte.wiki como o repositório de origem
content_mapping:
home_page_source: "home.md" #edite esta linha para escolher a página inicial do seu site
subpages_folder: "<none>" #opcionalmente, adicione uma pasta do repositório de origem cujo conteúdo será importado como subpáginas
destination_folder: "site_contents"
media_destination_folder: "assets/media"
site_metadata
title
: O título do seu site.description
: Uma breve descrição do seu site.theme
: O tema Jekyll a ser usado. O padrão é "minima". Para uma lista de temas disponíveis, execute python cli.py themes
.github_repository_url
: O endereço do seu repositório.github_pages_url
: O URL do seu site do GitHub Pages.source_repository
URL do repositório Git a ser usado como fonte para o conteúdo do seu site.
content_mapping
home_page_source
: O caminho para o arquivo Markdown a ser usado como página inicial.subpages_folder
: O caminho para a pasta que contém as subpáginas. Para desativar as subpáginas, defina este campo como <none>
.destination_folder
: A pasta onde o site Jekyll gerado será criado.media_destination_folder
: A pasta para onde os arquivos de mídia serão copiados.Existem duas maneiras de usar o Divisor para gerar e implantar seu site:
Esta opção é ideal se você deseja gerar um site estático único a partir do estado atual do seu repositório de origem.
Clone o repositório:
git clone https://github.com/fonte-wiki/divisor.git
cd divisor
Instale as dependências:
pip install -r requirements.txt
Configure o site:
Primeiro, renomeie config.yml.sample
para config.yml
. Em seguida, edite o arquivo config.yml
para personalizar seu site.
Gere o site:
python cli.py generate
Nota: Este comando sempre buscará o conteúdo mais recente do repositório de origem antes de gerar o site.
Visualize o site localmente (Requer Ruby/Jekyll):
Para visualizar seu site localmente, você precisará ter o Ruby e o Bundler instalados. Em seguida, cd
no diretório do seu site gerado e execute:
bundle install
bundle exec jekyll serve
Implante o site (Apenas Manual):
Para implantar o site no GitHub Pages, execute:
python cli.py deploy
Nota: Este comando destina-se apenas a implantações manuais. Se você estiver usando a configuração automatizada do GitHub Actions, não precisará executar este comando.
O repositório de destino é configurado no arquivo config.yml
através do campo github_repository_url
.
Configuração do GitHub Pages:
Se você implantar manualmente seus arquivos de origem Jekyll gerados em um branch gh-pages, precisará configurar o GitHub Pages:
gh-pages
exista:git checkout --orphan gh-pages
git rm -rf . # Remova todos os arquivos do novo branch órfão
git commit --allow-empty -m "Commit inicial do gh-pages"
git push origin gh-pages
git checkout main # Volte para o seu branch principal
Settings > Pages
do seu repositório do GitHub:
gh-pages
e a pasta / (root).Esta opção fornece uma maneira totalmente automatizada de manter seu site sincronizado com o repositório de origem.
https://github.com/fonte-wiki/divisor
) para sua própria conta ou organização do GitHub..github/workflows/generate-website.yml-sample
para .github/workflows/generate-website.yml
.github/workflows/deploy-website.yml-sample
para .github/workflows/deploy-website.yml
Settings > Pages
.gh-pages
e / (root)
.gh-pages
. Você precisa criar este PAT e adicioná-lo como um segredo do repositório.
Settings > Developer settings > Personal access tokens > Tokens (classic)
.Divisor GH Pages Deploy Token
).repo
. Isso concede ao token permissões suficientes para enviar conteúdo para o seu branch gh-pages
.Settings > Secrets and variables > Actions
.GH_PAGES_TOKEN
(este nome deve corresponder exatamente ao que é usado no fluxo de trabalho deploy-website.yml
).config.yml
do Divisor:
config.yml.sample
para config.yml
.config.yml
para personalizar seu site.site_metadata.github_pages_url
esteja definido corretamente para o URL do GitHub Pages do seu repositório forkado. Por exemplo, se o seu repositório forkado for seu-nome-de-usuario/divisor
, github_pages_url deve ser https://seu-nome-de-usuario.github.io/divisor/
._config.yml
(dentro de site_contents
) será derivado disso e deve corresponder ao caminho do seu GitHub Pages (por exemplo, /divisor
)..github/workflows/
deste repositório, mas requerem renomeação conforme descrito na etapa 3.config.yml
(e dos arquivos de fluxo de trabalho renomeados da etapa 3) para o seu repositório forkado. Um evento push
acionará automaticamente o fluxo de trabalho generate-website.yml
, que, após a conclusão, acionará o fluxo de trabalho deploy-website.yml
.Este repositório inclui dois fluxos de trabalho do GitHub Actions que automatizam o processo de geração e implantação do site:
generate-website.yml
:
cron: '0 * * * *'
), pode ser acionado manualmente via workflow_dispatch
ou a cada push
no repositório.python cli.py generate
para buscar o conteúdo e criar os arquivos de origem do Jekyll em site_contents
. Em seguida, ele carrega esses arquivos gerados como um artefato do GitHub Action chamado jekyll-site-source
.deploy-website.yml
:
workflow_run
) assim que o fluxo de trabalho generate-website.yml
for concluído com sucesso.jekyll-site-source
da execução concluída do generate-website.yml
. Em seguida, ele usa a ação peaceiris/actions-gh-pages
para enviar a origem do Jekyll para o seu branch gh-pages
. Crucialmente, a opção disable_nojekyll: true
é usada para garantir que o GitHub Pages processe seu conteúdo como um site Jekyll (em vez de servi-lo como arquivos estáticos simples).O Divisor suporta todos os temas Jekyll que são compatíveis com o GitHub Pages. Para ver uma lista de temas disponíveis, execute o seguinte comando:
python cli.py themes
Isso produzirá uma lista de temas que você pode usar no seu arquivo config.yml
.
Para alterar o tema do seu site, basta atualizar o campo theme
no seu arquivo config.yml
com o nome do tema desejado. Por exemplo:
site_metadata:
title: "Meu Site Incrível"
description: "Site criado com fonte.wiki e Divisor"
theme: "cayman" # Alterado de "minima"
# ...
Depois de alterar o tema, faça o commit das alterações no seu arquivo config.yml
. Se você estiver usando a configuração automatizada, o fluxo de trabalho do GitHub Actions irá regenerar e implantar automaticamente seu site com o novo tema.
Você pode personalizar a aparência do seu site fornecendo seus próprios templates e layouts. Para fazer isso, crie os diretórios _layouts
e _includes
dentro do diretório divisor
.
divisor/_layouts
: Coloque seus layouts personalizados neste diretório.divisor/_includes
: Coloque seus includes personalizados neste diretório.Quando você executa o comando generate
, o Divisor copiará o conteúdo desses diretórios para o site gerado, sobrescrevendo quaisquer arquivos padrão com o mesmo nome. Isso permite que você adicione novos templates ou substitua os padrão fornecidos pelo tema.
Para adicionar seu próprio CSS personalizado, você pode criar um arquivo chamado extended.css
no diretório divisor/assets
. Este arquivo será carregado após o CSS padrão do tema, permitindo que você substitua quaisquer estilos que desejar. Esta é a maneira recomendada de adicionar estilos personalizados para qualquer tema.
Para remover os diretórios source_repo
e site_contents
, você pode usar o comando clean
:
python cli.py clean
setup.py
O arquivo setup.py
é um script Python padrão usado para empacotar e distribuir a ferramenta Divisor. Ele define o nome do pacote, a versão, as dependências e os pontos de entrada. Você não precisa interagir com este arquivo diretamente, a menos que queira modificar o empacotamento da ferramenta.