JSPM

auto-publisher

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q24184F
  • License MIT

Publicador automático de artículos para múltiples plataformas de blogging

Package Exports

  • auto-publisher
  • auto-publisher/src/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (auto-publisher) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

📝 Auto Publisher - Publicador Automático Multi-Plataforma

npm version License: MIT Node.js CI PRs Welcome

Publica automáticamente tus artículos en múltiples plataformas de blogging con una sola acción.

✨ Características

  • 🚀 Publicación simultánea en múltiples plataformas
  • 📄 Soporte para archivos Markdown con frontmatter
  • 📚 Publicación masiva desde carpetas
  • 🎨 Interfaz de línea de comandos interactiva
  • 🔒 Gestión segura de API keys mediante variables de entorno

📊 Plataformas Soportadas

Plataforma API Plan Gratuito Límites
DEV.to ✅ REST Completo 10 req/30s
Hashnode ✅ GraphQL Completo 20k queries/min
WordPress.com ✅ REST Sin límites específicos
Ghost ✅ REST Self-hosted gratis Sin límites
GitHub Gist ✅ REST Completo 5000 req/hora
Blogger ✅ REST Completo 100 req/100s
Tumblr ✅ REST Completo 300 req/hora

⚠️ Plataformas con Limitaciones

  • Medium: API sin mantenimiento, prohíbe contenido automatizado
  • Substack: No tiene API pública
  • HackMD: API limitada, requiere configuración especial
  • Stack Overflow: Solo para Q&A, requiere monitoreo activo
  • Vercel: Para deploy de sitios estáticos, no blogging directo

🛠️ Instalación

# Clonar el repositorio o crear la carpeta
cd auto-publisher

# Instalar dependencias
npm install

# Copiar archivo de configuración
cp .env.example .env

# Configurar tus API keys en el archivo .env

🔑 Configuración

1. Obtener API Keys

DEV.to

  1. Ve a https://dev.to/settings/extensions
  2. Genera una nueva API Key
  3. Copia la key en DEVTO_API_KEY

Hashnode

  1. Ve a https://hashnode.com/settings/developer
  2. Genera un Personal Access Token
  3. Copia el token en HASHNODE_TOKEN
  4. Obtén tu Publication ID desde tu dashboard

WordPress.com

  1. Ve a https://developer.wordpress.com/apps/
  2. Crea una nueva aplicación
  3. Configura OAuth2 y obtén tu token
  4. Agrega WORDPRESS_TOKEN y WORDPRESS_SITE_ID

GitHub Gist

  1. Ve a https://github.com/settings/tokens
  2. Genera un Personal Access Token con scope gist
  3. Copia el token en GITHUB_GIST_TOKEN

Blogger

  1. Ve a https://console.cloud.google.com/apis/credentials
  2. Crea un proyecto y habilita la Blogger API v3
  3. Genera una API Key o configura OAuth2
  4. Obtén tu Blog ID desde tu dashboard de Blogger
  5. Agrega BLOGGER_API_KEY y BLOGGER_BLOG_ID

Tumblr

  1. Ve a https://www.tumblr.com/oauth/apps
  2. Registra una nueva aplicación
  3. Obtén Consumer Key y Consumer Secret
  4. Genera Access Token y Access Token Secret
  5. Agrega todas las credenciales y el nombre de tu blog

2. Archivo .env

# DEV.to
DEVTO_API_KEY=tu_api_key_aqui

# Hashnode
HASHNODE_TOKEN=tu_token_aqui
HASHNODE_PUBLICATION_ID=tu_publication_id

# WordPress
WORDPRESS_TOKEN=tu_token_aqui
WORDPRESS_SITE_ID=tu_site_id

# GitHub Gist
GITHUB_GIST_TOKEN=tu_token_aqui

# Ghost (opcional)
GHOST_URL=https://tu-sitio-ghost.com
GHOST_ADMIN_KEY=tu_admin_key

# Blogger
BLOGGER_API_KEY=tu_api_key_aqui
BLOGGER_BLOG_ID=tu_blog_id_aqui

# Tumblr
TUMBLR_CONSUMER_KEY=tu_consumer_key
TUMBLR_CONSUMER_SECRET=tu_consumer_secret
TUMBLR_TOKEN=tu_token
TUMBLR_TOKEN_SECRET=tu_token_secret
TUMBLR_BLOG_NAME=tu-blog-name

🚀 Uso

Ejecutar la aplicación

npm run dev

Opciones del menú

  1. 📄 Publicar nuevo artículo: Crea y publica un artículo desde cero
  2. 📁 Publicar desde archivo Markdown: Publica un archivo .md existente
  3. 📚 Publicación masiva: Publica todos los archivos .md de una carpeta

Formato de archivos Markdown

Con frontmatter (recomendado)

---
title: Mi Artículo Increíble
description: Una descripción breve del artículo
tags: javascript, nodejs, api
published: true
---

# Contenido del artículo

Tu contenido aquí...

Sin frontmatter

# Mi Artículo Increíble

Tu contenido aquí...

📁 Estructura del Proyecto

auto-publisher/
├── src/
│   ├── config/
│   │   └── platforms.js      # Configuración de plataformas
│   ├── publishers/
│   │   ├── devto.js          # Publisher para DEV.to
│   │   ├── hashnode.js       # Publisher para Hashnode
│   │   ├── wordpress.js      # Publisher para WordPress
│   │   ├── github-gist.js    # Publisher para GitHub Gist
│   │   ├── blogger.js        # Publisher para Blogger
│   │   ├── tumblr.js         # Publisher para Tumblr
│   │   └── index.js          # Orquestador de publishers
│   ├── cli.js                # Interfaz de línea de comandos
│   └── index.js              # Punto de entrada
├── .env.example              # Plantilla de configuración
├── package.json              # Dependencias y scripts
└── README.md                 # Este archivo

🤝 Contribuir

Las contribuciones son bienvenidas. Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📝 Notas Importantes

  • Rate Limiting: Respeta los límites de cada plataforma
  • Contenido: Asegúrate de que tu contenido cumple con las políticas de cada plataforma
  • Autenticación: Mantén tus API keys seguras y nunca las subas a repositorios públicos
  • Markdown: El contenido debe estar en formato Markdown

🐛 Solución de Problemas

Las plataformas no aparecen disponibles

  • Verifica que hayas configurado las API keys en el archivo .env
  • Asegúrate de que el archivo .env esté en la raíz del proyecto

Error de autenticación

  • Verifica que tus API keys sean válidas
  • Revisa que tengas los permisos necesarios en cada plataforma

Error al publicar

  • Verifica los límites de rate limiting
  • Asegúrate de que el formato del contenido sea válido
  • Revisa los logs de error para más detalles

📄 Licencia

MIT

🙏 Agradecimientos

Creado para facilitar la publicación de contenido técnico en múltiples plataformas de manera eficiente.