- mdq là công cụ giúp dễ dàng tìm các phần cụ thể trong tài liệu Markdown
- Hữu ích khi kiểm tra các mẫu hoặc checklist cụ thể trong tài liệu Markdown như GitHub PR
- Ví dụ, có thể dùng lệnh
mdq '- [ ]' để tìm các công việc chưa hoàn thành
Cách sử dụng cơ bản
- Chọn section chứa "usage":
cat example.md | mdq '# usage'
- Có thể nối chuỗi các bộ lọc để sử dụng:
cat example.md | mdq '# usage | -'
- Xác nhận đã tìm kiếm các issue hiện có trước khi gửi báo cáo lỗi:
mdq -q '- [x] I have searched for existing issues'
- Trích xuất ticket tham chiếu: khi PR nhắc tới ticket, có thể trích xuất link từ Markdown sang JSON rồi dùng jq để lấy URL.
TICKET_URL="$(echo "$PR_TEXT" | mdq --output json '# Ticket | [](^https://tickets.example.com/[A-Z]+-\d+$)' | jq -r '.items[].link.url')"
- Thu gọn bảng lớn: có thể lọc bảng để tìm lịch trực on-call của một ngày cụ thể hoặc một người cụ thể.
- Tìm ngày trực on-call của Alice:
cat oncall.md | mdq ':-: /On-Call|Alice/:-: *'
- Tìm người trực on-call trong tuần của ngày 2024-01-15:
cat oncall.md | mdq ':-: * :-: 2024-01-15'
1 bình luận
Ý kiến Hacker News
GitHub PR là tài liệu Markdown, và một số tổ chức dùng các mẫu cụ thể có chứa checklist mà mọi reviewer đều phải hoàn thành
Một trong những lý do các định dạng tệp dựa trên văn bản như Markdown trở nên phổ biến là vì chúng có thể được phân tích bằng biểu thức chính quy và quản lý thông qua kiểm soát phiên bản
Quy trình làm việc của tôi là đi qua Pandoc JSON AST rồi dùng Jq
Cảm ơn vì đã chia sẻ, tôi sẽ thử xem
Sau khi thử nhiều thứ khác nhau, "hệ thống ghi chú" duy nhất mà tôi vẫn tiếp tục dùng là một thư mục các tệp Markdown được tự động commit vào git khi có thay đổi
Tôi muốn thêm một chút tính năng thông minh để có thể theo dõi công việc
Tôi muốn coi tài liệu Markdown như một cây
MarkdownDB cung cấp backend SQLite cho các tệp Markdown
Cảm ơn vì đã chia sẻ, hiện tại tôi chưa có trường hợp sử dụng ngay nhưng thật tốt khi biết có thứ như thế này tồn tại
Tôi muốn nêu một góp ý nhỏ về các lệnh shell được ghi lại trong tài liệu
cat example.md | mdq '# usage'có thể đổi sang chuyển hướng tệp stdin để tránh gọi tiến trìnhcatkhông cần thiếtecho "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'cũng có thể tránh được tiến trìnhechokhông cần thiếtCó lẽ nên thêm các ví dụ thực tế hơn vào README
Một điều thú vị tôi học được khi nghiên cứu các công cụ và thư viện hiện có là nhiều công cụ serialize Markdown sang HTML trước khi thực hiện việc trích xuất/thao tác có cấu trúc
Có vẻ tôi đã tìm thấy công cụ này đúng vào lúc cần nó nhất
Cảm ơn Yuval đã chia sẻ công cụ này, và cảm ơn vì dùng giấy phép permissive để tôi có thể dùng nó ở chỗ làm