Este é o modelo que desenvolvi para o meu "Jardim Digital" uso ele em meu blog pessoal. A ideia aqui é que você possa utilizar e aprimorar para o seu uso. Tentei criar algo clean, simples e visualmente agradável para que qualquer pessoa possa usar.
Fique à vontade para usá-lo, editar e melhorar. Desculpe pela bagunça no código, um dia irei refatorar 😄.
O blog oferece um layout clean e responsivo, com uma estrutura simplificada para a criação e exibição de posts. Ele é ideal para quem quer um espaço de escrita minimalista, sem distrações.
- Front-end: HTML5, CSS3, JavaScript (Quill para o editor).
- Back-end: Flask, Jinja2, SQLite, Python.
- Integrações: Utteranc para comentários.
- Design simples e responsivo.
- Editor de posts com Quill.
- Paginação de posts.
- Área administrativa com autenticação.
- Sistema de comentários com Utteranc.
git clone https://github.com/Ageursilva/ageublog.git
cd ageublog
python -m venv venv
source venv/bin/activate # No Windows use `venv\Scripts\activate`
pip install -r requirements.txt``
Crie um arquivo .env
ou modifique o arquivo config.py
para incluir a SECRET_KEY
e outras configurações.
Gerando a SECRET_KEY:
import secrets
print(secrets.token_hex(16)) # Gera uma chave secreta`
Adicione a chave no arquivo app.py
:
app.config['SECRET_KEY'] = 'coloque_sua_chave_aqui'
flask db init
flask db migrate
flask db upgrade
flask shell
Dentro do shell do Flask, execute o seguinte código:
from app import app, db, User
with app.app_context():
admin = User(username='admin')
admin.set_password('adminpassword')
db.session.add(admin)
db.session.commit()`
- Acesse o repositório do Utteranc no GitHub e instale ele em seu repositório.
- No arquivo
post.html
, edite o código do Utteranc:
<script src="https://utteranc.es/client.js"
repo="seu-usuario/seu-repositorio"
issue-term="pathname"
theme="github-light"
crossorigin="anonymous"
async>
</script>
Substitua "seu-usuario/seu-repositorio"
pelo caminho do seu repositório GitHub.
Atualmente, o blog ainda não gera automaticamente o RSS feed e o sitemap. Isso significa que, para quem deseja utilizar essas funcionalidades, será necessário criar e atualizar manualmente ambos os arquivos, fiquei olhando algumas formas de fazer isso automaticamente, mas a realidade é que apenas fui atrás disso depois de publicar o site, então, em algum momento devo corrigir essa questão.
Contribuições são bem-vindas! Abra um issue ou envie um pull request.
Este projeto está licenciado sob a Licença Creative Commons BY-NC-SA 4.0.
"Be curious. Read widely. Try new things. I think a lot of what people call intelligence boils down to curiosity." — Aaron Swartz
Ageu Silva |
Vitor Alvim |