- mdq เป็นเครื่องมือที่ช่วยให้ค้นหาส่วนที่ต้องการในเอกสาร Markdown ได้อย่างง่ายดาย
- มีประโยชน์เมื่อจะตรวจสอบเทมเพลตหรือเช็กลิสต์เฉพาะในเอกสาร Markdown เช่น GitHub PR
- ตัวอย่างเช่น สามารถใช้คำสั่ง
mdq '- [ ]' เพื่อค้นหางานที่ยังทำไม่เสร็จ
การใช้งานพื้นฐาน
- เลือกเซกชันที่มี "usage":
cat example.md | mdq '# usage'
- สามารถเชื่อมต่อฟิลเตอร์เป็นลูกโซ่ได้:
cat example.md | mdq '# usage | -'
- ตรวจสอบว่าได้ค้นหาอิสชูที่มีอยู่แล้วก่อนส่งรายงานบั๊ก:
mdq -q '- [x] I have searched for existing issues'
- ดึงตั๋วอ้างอิง: เมื่อ PR อ้างถึงตั๋ว สามารถดึงลิงก์จาก Markdown เป็น JSON และใช้ jq เพื่อเอา URL ได้
TICKET_URL="$(echo "$PR_TEXT" | mdq --output json '# Ticket | [](^https://tickets.example.com/[A-Z]+-\d+$)' | jq -r '.items[].link.url')"
- ย่อขนาดตารางใหญ่: สามารถกรองตารางเพื่อค้นหาตารางเวร on-call ของวันที่หรือบุคคลที่ต้องการได้
- ค้นหาวันที่ on-call ของ Alice:
cat oncall.md | mdq ':-: /On-Call|Alice/:-: *'
- ค้นหาผู้ที่อยู่เวร on-call ในสัปดาห์ของวันที่ 15 มกราคม 2024:
cat oncall.md | mdq ':-: * :-: 2024-01-15'
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
GitHub PR เป็นเอกสาร Markdown และบางองค์กรใช้เทมเพลตเฉพาะที่มีเช็กลิสต์ซึ่งผู้รีวิวทุกคนต้องทำให้เสร็จ
เหตุผลหนึ่งที่ไฟล์ฟอร์แมตแบบข้อความอย่าง Markdown ได้รับความนิยมก็เพราะสามารถวิเคราะห์ด้วย regular expression และจัดการผ่าน version control ได้
เวิร์กโฟลว์ของฉันคือผ่าน Pandoc JSON AST แล้วค่อยใช้ Jq
ขอบคุณที่แชร์ จะลองดู
หลังจากลองมาหลายอย่างแล้ว "ระบบจดโน้ต" แบบเดียวที่ฉันยังใช้ต่อคือไดเรกทอรีของไฟล์ Markdown ที่จะ commit เข้า git อัตโนมัติเมื่อมีการเปลี่ยนแปลง
ฉันอยากเพิ่มฟีเจอร์ฉลาด ๆ เล็กน้อยเพื่อช่วยติดตามงาน
ฉันอยากปฏิบัติต่อเอกสาร Markdown เหมือนเป็นต้นไม้
MarkdownDB ให้ SQLite backend สำหรับไฟล์ Markdown
.mdไม่ค่อยถูกให้ความสำคัญหรือถูกมองเป็นเป้าหมายของการ serialize ข้อมูลอยู่เสมอขอบคุณที่แชร์ ตอนนี้ยังไม่มี use case ที่ใช้ได้ทันทีสำหรับฉัน แต่ก็ดีที่รู้ว่ามีของแบบนี้อยู่
อยากพูดถึงข้อสังเกตเล็กน้อยเกี่ยวกับ shell call ที่มีการเขียนเอกสารไว้
cat example.md | mdq '# usage'สามารถเปลี่ยนเป็นการ redirect ไฟล์เข้า stdin เพื่อหลีกเลี่ยงการเรียกโปรเซสcatที่ไม่จำเป็นecho "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'ก็สามารถหลีกเลี่ยงโปรเซสechoที่ไม่จำเป็นได้เช่นกันน่าจะดีถ้าเพิ่มตัวอย่างที่สมจริงกว่านี้ใน README
สิ่งที่น่าสนใจอย่างหนึ่งที่ฉันได้เรียนรู้ระหว่างศึกษาทูลและไลบรารีที่มีอยู่คือ หลายทูลจะ serialize Markdown เป็น HTML ก่อน แล้วค่อยทำการดึง/จัดการแบบมีโครงสร้าง
ดูเหมือนว่าฉันจะเจอทูลนี้ในจังหวะที่ต้องการพอดี
ขอบคุณ Yuval ที่แชร์ทูลนี้ และขอบคุณที่ใช้ไลเซนส์แบบยืดหยุ่นจนฉันสามารถนำไปใช้ที่ทำงานได้