c165f2f788
Agrega 19 issues técnicas documentando funcionalidades implementadas y pendientes. Issues completadas (movidas a dev/issues/completed/): - 001-conversor-web-markdown.md - 002-accessibility-tree.md - 003-gestion-cookies-perfil.md - 004-gestion-extensiones-chrome.md - 005-eliminar-timeouts-innecesarios.md Issues implementadas: - 006-manejo-tabs-ventanas.md - 016-manejo-iframes.md - 017-actions-api.md - 018-file-uploads.md - 019-expected-conditions-mejoradas.md Issues pendientes (media prioridad): - 007-alert-prompt-confirm-handling.md - 008-screenshot-elementos-especificos.md - 009-pdf-generation.md - 010-device-emulation-completo.md - 011-downloads-handling.md Issues pendientes (baja prioridad / avanzado): - 012-browser-contexts-multi-sesion.md - 013-video-recording.md - 014-network-mocking-avanzado.md - 015-geolocation-permissions.md Incluye también dev/NUEVAS_FUNCIONALIDADES.md con resumen completo. Directorio: dev/
66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# Issue #001: Conversor de página web a markdown
|
|
|
|
**Tipo**: Enhancement
|
|
**Prioridad**: Media
|
|
**Estado**: Pendiente
|
|
|
|
## Descripción
|
|
|
|
Implementar utilidad para convertir el contenido HTML de una página web a formato Markdown.
|
|
|
|
## Funcionalidad deseada
|
|
|
|
- Convertir títulos (h1-h6) a markdown (#, ##, ###, etc.)
|
|
- Convertir enlaces a formato `[texto](url)`
|
|
- Convertir imágenes a formato ``
|
|
- Convertir listas (ol, ul) a markdown
|
|
- Convertir tablas a markdown
|
|
- Mantener estructura de párrafos
|
|
- Extraer texto limpio sin CSS/JS inline
|
|
- Opción para incluir/excluir imágenes
|
|
- Manejar código y bloques de código (pre, code)
|
|
- Preservar énfasis (bold, italic)
|
|
|
|
## Implementación técnica
|
|
|
|
### Archivo sugerido
|
|
`pkg/browser/markdown.go`
|
|
|
|
### API propuesta
|
|
|
|
```go
|
|
// ToMarkdown convierte el contenido de la página actual a Markdown
|
|
func (b *Browser) ToMarkdown(ctx context.Context, opts *MarkdownOptions) (string, error)
|
|
|
|
type MarkdownOptions struct {
|
|
Selector string // Selector CSS opcional para convertir solo una parte
|
|
IncludeImages bool // Incluir imágenes en el output
|
|
IncludeLinks bool // Incluir enlaces
|
|
BaseURL string // URL base para enlaces relativos
|
|
}
|
|
```
|
|
|
|
### Estrategia
|
|
|
|
1. Obtener HTML con `GetHTML()`
|
|
2. Parsear HTML usando `golang.org/x/net/html`
|
|
3. Convertir nodos recursivamente a markdown
|
|
4. Alternativamente, ejecutar JS en el navegador con biblioteca turndown
|
|
|
|
### Librerías potenciales
|
|
|
|
- `github.com/JohannesKaufmann/html-to-markdown` - Conversor Go nativo
|
|
- O ejecutar `turndown.js` vía `Evaluate()` para mayor fidelidad
|
|
|
|
## Casos de uso
|
|
|
|
- Extraer contenido de artículos de blog
|
|
- Scraping de documentación
|
|
- Generar datasets para LLMs
|
|
- Archivar contenido web
|
|
|
|
## Referencias
|
|
|
|
- Turndown: https://github.com/mixmark-io/turndown
|
|
- html-to-markdown Go: https://github.com/JohannesKaufmann/html-to-markdown
|