Esta es una aplicación de Terminal (TUI), ¡solo por diversión… y un poco experimental en esta etapa!
Resumen
Una interfaz de usuario de terminal para navegar y publicar en foros de Discourse con listas de temas, vistas completas de temas, respuestas, “me gusta”, búsqueda y un compositor integrado.
README.md en el repositorio (sección Inicio Rápido)
Patrocinio
Por favor, considere convertirse en un patrocinador continuo de mi trabajo de código abierto (Sponsor @merefield on GitHub Sponsors · GitHub) en un nivel que se adapte a los recursos y necesidades suyos o de su organización para asegurar que este proyecto reciba el mantenimiento que merece y continúe funcionando para su sitio en el futuro.
¿Disfrutando de termcourse? Por favor, póngale una en GitHub
> termcourse es un cliente para Discourse basado en terminal. Se comporta como una sesión de navegador ligera con inicio de sesión basado en cookies (nombre de usuario/correo electrónico + contraseña) y admite TOTP/códigos de respaldo para MFA. También hay una opción de respaldo de clave API para sitios bloqueados o solo con SSO.
Características
Navegar por las listas de temas Más Recientes / Populares / Nuevos / No Leídos / Principales, con ciclo de período para Principales.
Abrir temas mediante las flechas + Enter, o las teclas de acceso rápido numéricas (1-0) para los primeros 10 temas visibles.
Ver temas completos con publicaciones que se pueden desplazar, encabezado/pie de página fijos y una barra de progreso/posición de publicación.
Expandir publicaciones seleccionadas a contenido completo; las publicaciones no seleccionadas muestran extractos compactos.
Responder a temas completos o publicaciones específicas.
Crear nuevos temas con título, selector de categoría y compositor de cuerpo en línea.
Dar/quitar “me gusta” a las publicaciones con estado visual de corazón por publicación.
Buscar publicaciones y saltar directamente al contexto de tema/publicación coincidente.
El compositor en línea admite movimiento del cursor, inserción, nuevas líneas, retroceso y contador de longitud mínima en vivo.
Renderizado consciente de Markdown, incluyendo enlaces envueltos y soporte para vista previa de imágenes en línea (chafa / viu).
Sustituciones de emoji para tokens comunes de :emoji: y emoticonos de estilo :-).
Soporte de credenciales multi-sitio a través de variables de entorno + credentials.yml por host (con solicitud de campos de inicio de sesión faltantes).
Inicio de sesión con nombre de usuario/contraseña de sesión de cookies con soporte MFA (TOTP + código de respaldo), además de respaldo de clave API.
Tematización impulsada por YAML con integradas (predeterminada, pizarra, feria) y anulaciones locales a través de theme.yml.
Redibujado de redimensionamiento reactivo con intervalo de sondeo configurable (TERMCOURSE_TICK_MS).
Registro de depuración opcional para diagnósticos de HTTP/autenticación y renderizado de UI.
Inicio Rápido
Consulte el último README para obtener más información
git clone https://github.com/merefield/termcourse
cd termcourse
bundle install
Necesitas tener instalado viu o chafa, y eso ya puede ser un proyecto en sí mismo
En el modo de alta calidad con chafa o con viu, Windows Terminal es superior a la terminal de MacOS porque soporta muchos más colores (¡gracias Microsoft!)
Notas de la versión: Renderizado de imágenes (¡en la terminal!)
Renderizado de imágenes
Se añadieron previsualizaciones de imágenes posteriores en línea con selección de backend:
intenta chafa primero automáticamente, luego viu.
TERMCOURSE_CHAFA_MODE=stable|quality
stable: salida conservadora para la estabilidad de la terminal.
quality: renderizado de símbolos de mayor detalle/color.
Se añadió control de altura de previsualización:
TERMCOURSE_IMAGE_LINES (predeterminado: 14)
Se aplica a la altura de la línea de previsualización; útil para ajustar la densidad visual.
Comportamiento de aspecto de viu mejorado:
Cambiado a renderizado dirigido por línea (-h) para preservar mejor la relación de aspecto.
Se añadieron controles de filtro de calidad de previsualización:
TERMCOURSE_IMAGE_QUALITY_FILTER=1 filtra las previsualizaciones ruidosas solo de bloques.
Establécelo en 0 para mostrar siempre la salida del renderizador.
Se añadió límite de seguridad de descarga de imágenes:
Una nota: He encontrado un sitio que bloquea el nombre de usuario/contraseña remotos, por lo que este cliente no funcionará en esa situación (¡a menos que sea suyo y pueda configurar una clave de API!) - se aceptan sugerencias, pero actualmente no hay soporte en esas instancias.
No estoy seguro de si usaré esto en el mundo real, no le veo la utilidad para mí, pero lo he probado y es delicioso. Me encanta poder interactuar con una plataforma de foro de próxima generación desde una interfaz primitiva y de metal desnudo.