- mdq es una herramienta que ayuda a encontrar fácilmente partes específicas dentro de documentos Markdown
- Es útil para revisar plantillas o checklists en documentos Markdown como los PR de GitHub
- Por ejemplo, se puede usar el comando
mdq '- [ ]' para encontrar tareas no completadas
Uso básico
- Seleccionar la sección que contiene "usage":
cat example.md | mdq '# usage'
- Se pueden encadenar filtros:
cat example.md | mdq '# usage | -'
- Verificar que se hayan buscado issues existentes antes de enviar un reporte de bug:
mdq -q '- [x] I have searched for existing issues'
- Extraer tickets de referencia: cuando un PR menciona un ticket, se pueden extraer los enlaces del Markdown como JSON y obtener la URL con jq.
TICKET_URL="$(echo "$PR_TEXT" | mdq --output json '# Ticket | [](^https://tickets.example.com/[A-Z]+-\d+$)' | jq -r '.items[].link.url')"
- Reducir tablas grandes: se pueden filtrar tablas para encontrar el calendario de guardias de una fecha o persona específica.
- Encontrar las fechas de guardia de Alice:
cat oncall.md | mdq ':-: /On-Call|Alice/:-: *'
- Encontrar quién está de guardia en la semana del 15 de enero de 2024:
cat oncall.md | mdq ':-: * :-: 2024-01-15'
1 comentarios
Comentarios de Hacker News
Los PR de GitHub son documentos Markdown, y algunas organizaciones usan plantillas específicas que incluyen listas de verificación que todos los revisores deben completar
Una de las razones por las que los formatos de archivo basados en texto como Markdown se hicieron populares fue que se podían analizar con expresiones regulares y gestionar con control de versiones
Mi flujo de trabajo pasa por el JSON AST de Pandoc y luego usa Jq
Gracias por compartirlo, le echaré un vistazo
Después de probar varias cosas, el único "sistema de notas" que sigo usando es un directorio de archivos Markdown que se hacen commit automáticamente a git cuando cambian
Quería agregar algunas funciones inteligentes para poder dar seguimiento al trabajo
Quería tratar los documentos Markdown como árboles
MarkdownDB ofrece un backend de SQLite para archivos Markdown
.mdno siempre se respeta ni se considera como objetivo de serialización de datosGracias por compartirlo; por ahora no tengo un caso de uso inmediato, pero está bueno saber que existe algo así
Quería mencionar una pequeña observación sobre las llamadas de shell documentadas
cat example.md | mdq '# usage'podría cambiarse por redirección de archivo a stdin para evitar invocar el proceso innecesario decatecho "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'también puede evitar el proceso innecesario deechoEstaría bien agregar ejemplos más realistas al README
Algo interesante que aprendí investigando herramientas y librerías existentes es que muchas serializan Markdown a HTML antes de ejecutar extracción o manipulación estructurada
Siento que encontré esta herramienta justo en el momento en que la necesitaba
Gracias a Yuval por compartir esta herramienta y por usar una licencia permisiva, lo que permite usarla en el trabajo