7 पॉइंट द्वारा GN⁺ 2025-02-24 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • mdq एक ऐसा टूल है जो Markdown दस्तावेज़ों में किसी खास हिस्से को आसानी से ढूंढने में मदद करता है
  • GitHub PR जैसे Markdown दस्तावेज़ों में किसी खास टेम्पलेट या चेकलिस्ट की पुष्टि करते समय उपयोगी
    • उदाहरण के लिए, अधूरे काम ढूंढने के लिए mdq '- [ ]' कमांड का इस्तेमाल किया जा सकता है

बुनियादी उपयोग

  • "usage" शामिल करने वाला सेक्शन चुनें: cat example.md | mdq '# usage'
  • फ़िल्टर को chain करके इस्तेमाल किया जा सकता है: cat example.md | mdq '# usage | -'
  • बग रिपोर्ट सबमिट करने से पहले मौजूदा issues खोज लेने की पुष्टि: 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 शेड्यूल ढूंढने के लिए टेबल को फ़िल्टर किया जा सकता है.
    • Alice की on-call तारीखें ढूंढना: cat oncall.md | mdq ':-: /On-Call|Alice/:-: *'
    • 15 जनवरी 2024 वाले सप्ताह के on-call व्यक्ति ढूंढना:cat oncall.md | mdq ':-: * :-: 2024-01-15'

1 टिप्पणियां

 
GN⁺ 2025-02-24
Hacker News टिप्पणियाँ
  • GitHub PR, Markdown दस्तावेज़ होते हैं, और कुछ संगठन ऐसे खास templates का उपयोग करते हैं जिनमें ऐसी checklist शामिल होती है जिन्हें सभी reviewers को पूरा करना होता है

    • ऐसी functionality को enforce करने के लिए complex regular expressions का उपयोग करना पड़ता है, जिन्हें लिखना कठिन है और debug करना उससे भी कठिन
    • GitHub ज़रूरी features विकसित करने के बजाय AI पर ध्यान दे रहा है
    • Bitbucket ऐसा feature देता है जो description box के बाहर checkbox list का उपयोग करके PR को block कर सकता है
    • इस समस्या को हल करने का एक बेहतर तरीका है, और OP के README में पहला example देखा जा सकता है
    • यह एक शानदार project है, और आजकल मैं ज़्यादातर MDX लिखता हूँ, इसलिए उस dialect के लिए support देखना अच्छा होगा
  • Markdown जैसे text-based file formats के लोकप्रिय होने का एक कारण यह था कि उन्हें regular expressions से parse किया जा सकता था और version control के ज़रिए manage किया जा सकता था

  • मेरा workflow Pandoc JSON AST से होकर जाता है, और उसके बाद Jq का उपयोग करता है

    • यह दूसरे input formats पर भी काम करता है
  • इसे साझा करने के लिए धन्यवाद, मैं इसे देखूँगा

    • मुझे कुछ ऐसा ही चाहिए था
  • कई चीज़ें आज़माने के बाद, एकमात्र "note system" जिसे मैं लगातार उपयोग कर रहा हूँ, वह Markdown files की एक directory है जो बदलाव होने पर अपने-आप git में commit हो जाती है

  • मैं इसमें थोड़ी smart functionality जोड़ना चाहता था ताकि काम को track किया जा सके

    • उदाहरण के लिए, पूरे हो चुके कामों को साफ़ करना, अधूरे कामों को अगले दिन की journal में आगे बढ़ाना, और "projects" से कामों को इकट्ठा करना
    • इसके लिए मैंने markdown-rs का उपयोग करके कुछ Rust code लिखना शुरू किया
    • बदलावों के साथ Markdown को round-trip करने के लिए, फ़िलहाल सिर्फ़ उस library के JavaScript version का support है जो GitHub-style Markdown को serialize करती है
    • इसलिए मैंने Rust में Markdown AST को JSON में dump किया और JavaScript में serialize करके एक proof of concept बनाया
    • markdown-rs location information को store करता है, लेकिन source token information को store नहीं करता
    • इसलिए reliable round-trip संभव नहीं है
  • मैं Markdown दस्तावेज़ों को tree की तरह treat करना चाहता था

    • headings के आधार पर sections निकालने के लिए xpath जैसी language का उपयोग करना चाहता था
    • वैसे भी, मैं code देखूँगा, इसे पोस्ट करने के लिए धन्यवाद
  • MarkdownDB, Markdown files के लिए SQLite backend देता है

    • मुझे लगता है कि .md files की संरचना को हमेशा data serialization target के रूप में सम्मान या विचार नहीं किया जाता
  • इसे साझा करने के लिए धन्यवाद, अभी मेरे पास इसका कोई तुरंत उपयोग का मामला नहीं है, लेकिन यह जानना अच्छा है कि ऐसी कोई चीज़ मौजूद है

  • मैं documented shell calls के बारे में एक छोटी-सी बात उठाना चाहता था

    • उदाहरण के लिए, cat example.md | mdq '# usage' को stdin file redirection में बदला जा सकता है ताकि अनावश्यक cat process न चलाना पड़े
    • इसी तरह, echo "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues' में भी अनावश्यक echo process से बचा जा सकता है
  • README में कुछ अधिक यथार्थवादी examples जोड़ना अच्छा होगा

    • इससे उन लोगों को मदद मिलेगी जिन्हें सहज रूप से इसका उपयोग-क्षेत्र समझ में नहीं आता
  • मौजूदा tools और libraries का अध्ययन करते समय मैंने एक दिलचस्प बात सीखी: कई tools structured extraction/manipulation चलाने से पहले Markdown को HTML में serialize कर देते हैं

    • क्योंकि Markdown को HTML में serialize होने के लिए डिज़ाइन किया गया था, इसलिए Markdown document/AST मूल रूप से tree structure नहीं होता
    • इसके बजाय, यह दस्तावेज़ में दिखाई देने वाले क्रम में elements की array होता है
    • सिर्फ़ lists और block quotes ही nesting को support करते हैं
    • उदाहरण के लिए, h1 -> पैराग्राफ -> h2 -> पैराग्राफ nested नहीं है, बल्कि चार क्रमबद्ध elements की array है
    • Cursor या Copilot में HTML का उपयोग करने वाले implementation को test करने पर शायद विकास तेज़ हो सकता है
  • लगता है कि मुझे यह tool ठीक उसी समय मिला जब इसकी ज़रूरत थी

    • यह किसी खास task के लिए बिल्कुल सही रहेगा
  • Yuval के साथ यह tool साझा करने के लिए धन्यवाद, और permissive license इस्तेमाल करने के लिए आभार, जिससे मैं इसे काम पर उपयोग कर सकता हूँ