Este repositorio contiene un script Python que permite sincronizar contenido de una página de Notion con un repositorio de GitHub en formato Markdown. El script es altamente configurable y permite ajustar el contenido a tus necesidades, utilizando variables de entorno para mayor seguridad.
Antes de comenzar, asegúrate de tener los siguientes requisitos instalados en tu máquina:
- Python 3.x: Asegúrate de tener instalada una versión reciente de Python. Puedes descargarla desde aquí.
- pip: Si no lo tienes instalado, puedes instalar
pip
ejecutando:python -m ensurepip --upgrade
Primero, clona este repositorio en tu máquina local:
git clone https://github.com/tu_usuario/tu_repositorio.git
cd tu_repositorio
Es recomendable crear un entorno virtual para mantener las dependencias del proyecto aisladas:
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
Instala las dependencias necesarias utilizando pip
. Estas incluyen las bibliotecas para interactuar con la API de Notion y GitHub, además de dotenv
para manejar las variables de entorno.
pip install -r requirements.txt
Si no tienes un archivo requirements.txt
, puedes ejecutar:
pip install python-dotenv notion-client PyGithub
El script utiliza un archivo .env
para cargar las credenciales necesarias sin exponerlas directamente en el código.
Copia el archivo .env.example
para crear tu archivo .env
:
cp .env.example .env
Luego abre el archivo .env
y añade tus tokens de Notion y GitHub, así como el ID de la página raíz de Notion y el nombre de tu repositorio de GitHub. El archivo .env
debe verse así:
# NOTION
NOTION_TOKEN=tu_notion_token
NOTION_ROOT_ID=tu_notion_root_id
# GITHUB
GITHUB_TOKEN=tu_github_token
USER_REPO_NAME=tu_usuario_github/tu_nombre_repositorio
- Ve a Notion Integrations y crea una nueva integración.
- Copia el Internal Integration Token que te proporcionan.
- Añade este token como
NOTION_TOKEN
en tu archivo.env
.
- Ve a GitHub Tokens y genera un nuevo token con permisos para
repo
yworkflow
. - Añade este token como
GITHUB_TOKEN
en tu archivo.env
.
- Abre tu página principal de Notion.
- Copia el ID de la página desde la URL del navegador (es una secuencia de números y letras después de
notion.so/
).
Una vez configurado el archivo .env
, ya puedes ejecutar el script para sincronizar el contenido de Notion con GitHub:
python notion_github.py
Después de ejecutar el script, los archivos de Markdown se crearán en tu repositorio de GitHub en la estructura que refleje las páginas de Notion.
Cada sección de Notion se convertirá en un archivo Markdown que se organizará en carpetas según la estructura de la página.
Puedes modificar el script para ajustar la estructura de carpetas y nombres de archivo. El script ya maneja la conversión de enlaces, encabezados, listas, citas, y más.
Si necesitas personalizar más tipos de bloques, consulta la documentación de la API de Notion.
Si quieres contribuir con mejoras, siente libre de crear un Pull Request o abrir un Issue para discutir nuevas funcionalidades o correcciones.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más información.
- Asegúrate de que el archivo
.gitignore
esté configurado para evitar que el archivo.env
suba al repositorio. - Si decides que el repositorio sea público, evita incluir información sensible en tus commits.
- Puedes añadir un archivo
LICENSE
en tu repositorio para incluir la licencia bajo la cual compartes el código. - Si deseas incluir ejemplos de salidas o archivos de muestra, podrías crear una carpeta
/examples
y documentar el uso del script en más detalle.
Al final, tu estructura de carpetas será algo así:
/tu_repositorio
- .gitignore
- .env
- notion_github.py # El script principal
- README.md # Documentación del proyecto
- LICENSE # Licencia del proyecto (si decides incluirla)