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
pipejecutando: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_repositorioEs recomendable crear un entorno virtual para mantener las dependencias del proyecto aisladas:
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activateInstala 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.txtSi no tienes un archivo requirements.txt, puedes ejecutar:
pip install python-dotenv notion-client PyGithubEl 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 .envLuego 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_TOKENen tu archivo.env.
- Ve a GitHub Tokens y genera un nuevo token con permisos para
repoyworkflow. - Añade este token como
GITHUB_TOKENen 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.pyDespué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
.gitignoreesté configurado para evitar que el archivo.envsuba al repositorio. - Si decides que el repositorio sea público, evita incluir información sensible en tus commits.
- Puedes añadir un archivo
LICENSEen 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
/examplesy 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)