.------------------------------------------------------------------------------.
| .mmMMMMMMMMMMMMMmm. |
| .mMMMMMMMMMMMMMMMMMMMMMMMm. |
| .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm. |
| .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM. |
| .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM. |
| MMMMMMMM' `"MMMMM~~~~~~~MMMM""` 'MMMMMMMM |
| MMMMMMMMM MMMMMMMMM |
| MMMMMMMMMM: :MMMMMMMMMM |
| .MMMMMMMMMM MMMMMMMMMM. |
| MMMMMMMMM" "MMMMMMMMM |
| MMMMMMMMM MMMMMMMMM |
| MMMMMMMMM REPWRITTER MMMMMMMMM |
| MMMMMMMMMM MMMMMMMMMM |
| `MMMMMMMMMM MMMMMMMMMM` |
| MMMMMMMMMMMM. .MMMMMMMMMMMM |
| MMMMMM MMMMMMMMMM MMMMMMMMMMMMMMMMMM |
| MMMMMM 'MMMMMMM MMMMMMMMMMMMMMMM |
| `MMMMMM "MMMMM MMMMMMMMMMMMMM` |
| `MMMMMm MMMMMMMMMMMM` |
| `"MMMMMMMMM MMMMMMMMM"` |
| `"MMMMMM MMMMMM"` |
| `""M M""` |
'------------------------------------------------------------------------------'
RepWritter es una herramienta versátil escrita en Python diseñada para simplificar la creación, edición y publicación de documentación técnica, tutoriales y reportes directamente en GitHub. Ideal para desarrolladores, ingenieros, educadores y profesionales de diversas áreas, este script te permite estructurar contenido de manera profesional con soporte para títulos, imágenes, descripciones detalladas, archivos adjuntos y subida automática a un repositorio GitHub. Ya sea que estés documentando un proyecto de software, creando guías paso a paso o compartiendo análisis técnicos, RepWritter optimiza el proceso para que puedas enfocarte en el contenido.
- Interfaz de Menú Interactiva: Fácil de usar con opciones numeradas y comandos de tecla única.
- Soporte Multimedia: Añade imágenes principales, imágenes en descripciones y archivos adicionales (PDFs, scripts, etc.).
- Gestión de Contenido: Edita cualquier sección en cualquier momento, desde títulos hasta archivos adjuntos.
- Guardado Local: Guarda el progreso en archivos
.jsonpara retomar writeups largos en sesiones posteriores. - Publicación en GitHub: Sube automáticamente el writeup como
README.mden una carpeta con el nombre del título, con imágenes enimg/y archivos adjuntos en la raíz de la carpeta. - Personalización: Incluye referencias con enlaces en las descripciones y un pie de página con redes sociales.
- Python 3.x
- Dependencias:
dotenv(pip install python-dotenv)shutil,subprocess,readline(incluidas en la biblioteca estándar de Python)
- Git instalado y configurado en tu sistema.
- Token de GitHub para autenticación (almacenado en
~/.Gitenv).
-
Clona este repositorio o descarga el script:
git clone https://github.com/imahian/repwritter.git cd repwritter -
Instala las dependencias:
pip install python-dotenv
-
Configura tu token de GitHub:
Ejecuta el script por primera vez; te pedirá el token si no existe ~/.Gitenv. O crea manualmente el archivo ~/.Gitenv con:
GITHUB_TOKEN=tu_token_aqui
- Iniciar el Script:
python repwritter.pyVerás un banner ASCII y el menú principal:
===========================
WRITEUP GENERATOR
===========================
Current Writeup:
[Contenido actual]
Options:
1. Add Title
2. Add Image
3. Add Description with Subtitle, One-liner, and/or Image
4. Add Flag
5. Add File
6. Edit Steps
S. Save Current Writeup
L. Load Writeup
F. Finish and Generate Writeup
Q. Quit without Saving
Select an option:- Opciones del Menú:
1. Add Title: Define el título del writeup (será el nombre de la carpeta en GitHub).
2. Add Image: Añade una imagen principal (se guardará en img/).
3. Add Description...: Crea una sección con subtítulo, descripción multilínea, un one-liner opcional (en formato terminal) y una imagen opcional.
4. Add Flag: Añade un flag con ofuscación automática (mitad visible, mitad asteriscos).
5. Add File: Adjunta archivos adicionales (e.g., PDFs, scripts) que se subirán junto al README.md.
6. Edit Steps: Edita cualquier elemento añadido (título, imágenes, descripciones, flags, archivos).
S. Save Current Writeup: Guarda el progreso en ~/.repwritter/saved_writeups/<nombre>.json.
L. Load Writeup: Carga un writeup guardado o desde un README.md existente en ~/writeups/.
F. Finish and Generate Writeup: Genera el README.md localmente y súbelo a GitHub.
Q. Quit without Saving: Sal sin guardar (con opción de guardar si hay cambios).
- No olvides cambiar las redes sociales a las tuyas en el script