- mdq é uma ferramenta que ajuda a encontrar facilmente partes específicas em documentos Markdown
- Útil para verificar templates ou checklists específicos em documentos Markdown como PRs do GitHub
- Por exemplo, é possível usar o comando
mdq '- [ ]' para encontrar tarefas não concluídas
Uso básico
- Selecionar a seção que contém "usage":
cat example.md | mdq '# usage'
- É possível encadear filtros:
cat example.md | mdq '# usage | -'
- Confirmar a busca por issues existentes antes de enviar um bug report:
mdq -q '- [x] I have searched for existing issues'
- Extrair ticket de referência: quando um PR menciona um ticket, é possível extrair links do Markdown como JSON e obter a URL com jq.
TICKET_URL="$(echo "$PR_TEXT" | mdq --output json '# Ticket | [](^https://tickets.example.com/[A-Z]+-\d+$)' | jq -r '.items[].link.url')"
- Reduzir tabelas grandes: é possível filtrar a tabela para encontrar a escala de plantão de uma data específica ou de uma pessoa.
- Encontrar as datas de plantão da Alice:
cat oncall.md | mdq ':-: /On-Call|Alice/:-: *'
- Encontrar a pessoa de plantão na semana de 2024-01-15:
cat oncall.md | mdq ':-: * :-: 2024-01-15'
1 comentários
Comentários no Hacker News
Um PR no GitHub é um documento Markdown, e algumas organizações usam templates específicos que incluem checklists que todos os revisores precisam concluir
Um dos motivos pelos quais formatos de arquivo baseados em texto como Markdown ficaram populares foi porque podiam ser analisados com expressões regulares e gerenciados com controle de versão
Meu fluxo de trabalho passa pelo JSON AST do Pandoc e depois usa Jq
Obrigado por compartilhar, vou dar uma olhada
Depois de tentar várias coisas, o único "sistema de notas" que continuo usando é um diretório de arquivos Markdown que faz commit automático no git quando há mudanças
Eu queria adicionar alguns recursos inteligentes para poder acompanhar tarefas
Eu queria tratar documentos Markdown como uma árvore
O MarkdownDB oferece um backend SQLite para arquivos Markdown
Obrigado por compartilhar, no momento não tenho um caso de uso imediato para isso, mas é bom saber que algo assim existe
Queria mencionar uma pequena observação sobre as chamadas de shell documentadas
cat example.md | mdq '# usage'pode ser trocado por redirecionamento de arquivo via stdin para evitar invocar um processocatdesnecessárioecho "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'também pode evitar um processoechodesnecessárioAcho que seria bom adicionar exemplos mais realistas no README
Uma coisa interessante que aprendi ao pesquisar ferramentas e bibliotecas existentes é que muitas delas serializam Markdown para HTML antes de executar extração/manipulação estruturada
Acho que encontrei esta ferramenta exatamente no momento em que precisava dela
Obrigado por compartilhar esta ferramenta com Yuval e por usar uma licença permissiva, o que permite usá-la no trabalho