- mdq ist ein Tool, das dabei hilft, bestimmte Teile in Markdown-Dokumenten leicht zu finden
- Nützlich, wenn man in Markdown-Dokumenten wie GitHub-PRs bestimmte Templates oder Checklisten prüfen möchte
- Zum Beispiel kann man den Befehl
mdq '- [ ]' verwenden, um nicht erledigte Aufgaben zu finden
Grundlegende Verwendung
- Abschnitt auswählen, der „usage“ enthält:
cat example.md | mdq '# usage'
- Filter können verkettet werden:
cat example.md | mdq '# usage | -'
- Vor dem Einreichen eines Bug-Reports prüfen, ob nach bestehenden Issues gesucht wurde:
mdq -q '- [x] I have searched for existing issues'
- Referenz-Ticket extrahieren: Wenn ein PR ein Ticket erwähnt, können Links aus Markdown als JSON extrahiert und mit jq die URL geholt werden.
TICKET_URL="$(echo "$PR_TEXT" | mdq --output json '# Ticket | [](^https://tickets.example.com/[A-Z]+-\\d+$)' | jq -r '.items[].link.url')"
- Große Tabellen eingrenzen: Tabellen können gefiltert werden, um den On-Call-Plan für ein bestimmtes Datum oder eine bestimmte Person zu finden.
- On-Call-Daten von Alice finden:
cat oncall.md | mdq ':-: /On-Call|Alice/:-: *'
- Zuständige On-Call-Person für die Woche vom 15. Januar 2024 finden:
cat oncall.md | mdq ':-: * :-: 2024-01-15'
1 Kommentare
Hacker-News-Kommentare
GitHub-PRs sind Markdown-Dokumente, und einige Organisationen verwenden bestimmte Templates mit Checklisten, die von allen Reviewern abgeschlossen werden müssen
Einer der Gründe, warum textbasierte Dateiformate wie Markdown populär wurden, ist, dass man sie mit regulären Ausdrücken analysieren und per Versionsverwaltung verwalten konnte
Mein Workflow läuft über den Pandoc-JSON-AST und verwendet danach Jq
Danke fürs Teilen, ich werde es mir ansehen
Nachdem ich vieles ausprobiert habe, ist das einzige „Notizsystem“, das ich weiterhin benutze, ein Verzeichnis mit Markdown-Dateien, die bei Änderungen automatisch in git committet werden
Ich wollte ein paar smarte Funktionen hinzufügen, um Arbeit nachverfolgbar zu machen
Ich wollte Markdown-Dokumente wie einen Baum behandeln
MarkdownDB bietet ein SQLite-Backend für Markdown-Dateien
Danke fürs Teilen; ich habe im Moment keinen unmittelbaren Anwendungsfall dafür, aber es ist gut zu wissen, dass es so etwas gibt
Ich wollte einen kleinen Hinweis zu den dokumentierten Shell-Aufrufen geben
cat example.md | mdq '# usage'in eine stdin-Dateiumleitung geändert werden, um den unnötigencat-Prozess zu vermeidenecho "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'den unnötigenecho-Prozess vermeidenEs wäre gut, dem README ein paar realistischere Beispiele hinzuzufügen
Eine interessante Sache, die ich beim Untersuchen bestehender Tools und Bibliotheken gelernt habe, ist, dass viele Tools Markdown erst in HTML serialisieren, bevor sie strukturierte Extraktion oder Manipulation durchführen
Ich glaube, ich habe dieses Tool genau im richtigen Moment entdeckt
Danke, Yuval, dass du dieses Tool geteilt hast, und danke für die freizügige Lizenz, sodass ich es bei der Arbeit verwenden kann