10 पॉइंट द्वारा GN⁺ 2025-06-04 | 5 टिप्पणियां | WhatsApp पर शेयर करें
  • मौजूदा Markdown सिंटैक्स का विस्तार करके किताबें, शोधपत्र, स्लाइड्स, प्रेज़ेंटेशन आदि कई प्रकार के दस्तावेज़ आसानी से बनाने वाला एक आधुनिक typography सिस्टम
  • function support, variables, conditional statements/loops, standard library जैसी उन्नत सुविधाएँ सीधे Markdown में शामिल हैं, जिससे पारंपरिक Markdown या LaTeX की तुलना में extensibility और automation में अलग पहचान मिलती है
  • एक ही source file से HTML, PDF, slides (reveal.js), paged book (paged.js) जैसे कई outputs बनाए जा सकते हैं, इसलिए यह code-based content creation के लिए उपयुक्त है
  • scripting features और expressive extended syntax की मदद से जटिल या dynamic content भी स्वतंत्र रूप से बनाया जा सकता है
  • REPL, live preview, fast compilation वातावरण उपलब्ध है, जिससे real-time document editing और debugging संभव है
  • मौजूदा tools की तुलना में scripting features, document control, आसान learning curve जैसे क्षेत्रों में Markdown, LaTeX, Typst, AsciiDoc, MDX पर बढ़त रखता है
  • अलग development environment या जटिल configuration के बिना केवल Java 17 या उससे ऊपर होने पर प्रमुख operating systems पर इस्तेमाल किया जा सकता है

About

  • Quarkdown एक आधुनिक typesetting सिस्टम है, जिसे Markdown की मूल संरचना में functions और extended syntax जोड़कर इस तरह बनाया गया है कि उपयोगकर्ता साधारण text से लेकर किताबें, शोधपत्र, स्लाइड्स जैसे विभिन्न फ़ॉर्मैट में उच्च-गुणवत्ता वाले परिणाम आसानी से बना सकें
  • यह CommonMark और GFM पर आधारित है, और अपना सिंटैक्स, functions, variables, यहाँ तक कि user-defined libraries भी सपोर्ट करता है
    • यह Quarkdown Flavor नाम का अपना स्वतंत्र सिंटैक्स प्रदान करता है
    • Turing-complete function extension syntax के माध्यम से Markdown में functions, conditionals, loops जैसी उन्नत क्षमताएँ जोड़ी जाती हैं
  • .qmd libraries के ज़रिए layout, input/output, mathematics, conditionals, loops जैसी कई सुविधाओं का उपयोग किया जा सकता है
  • जटिल document structures या dynamic content की आवश्यकता होने पर भी extensibility और productivity बढ़ाई जा सकती है

प्रमुख विशेषताएँ और उपयोग

  • HTML, slides, books (Paged), PDF जैसे कई output formats का समर्थन
    • .doctype {slides}, .doctype {paged} जैसी function calls से document type निर्धारित किया जा सकता है
    • reveal.js, paged.js जैसे open source-आधारित engines के साथ एकीकरण
  • scripting और dynamic content
    • functions, variables, conditionals, loops जैसे programming elements शामिल
    • ex) .function {greet} ... .greet {world} from:{iamgio}
  • live preview, fast compilation
    • real-time preview और file change detection (Watch) सुविधा उपलब्ध
    • -p --preview, -w --watch options से काम की दक्षता बढ़ती है
  • अन्य document tools से तुलना
    • LaTeX की तुलना में learning curve कम है, और Markdown की तुलना में feature extensibility बेहतर है
    • Typst, AsciiDoc, MDX आदि की तुलना में भी scripting/expressiveness में मजबूती

समर्थित targets

  • HTML
    • सामान्य output (default)
    • slides (reveal.js का उपयोग)
    • book/research paper format (paged.js का उपयोग, web server आवश्यक)
  • PDF
    • HTML द्वारा समर्थित सभी document types और features को उसी तरह PDF में output किया जा सकता है
    • PDF output के विस्तृत विवरण के लिए wiki दस्तावेज़ देखें
  • .doctype {slides}, .doctype {paged} जैसी function calls से output format नियंत्रित किया जा सकता है

तुलना

Quarkdown Markdown LaTeX Typst AsciiDoc MDX
संक्षिप्तता·पठनीयता
पूरे दस्तावेज़ पर नियंत्रण
scripting सुविधाएँ आंशिक समर्थन
किताब/लेख फ़ॉर्मैट output 3rd party
presentation output 3rd party
learning curve हरा हरा लाल नारंगी हरा हरा
target support HTML, PDF HTML PDF, PostScript PDF HTML, PDF, ePub HTML

5 टिप्पणियां

 
plastic041 2025-06-05

शायद टेबल होने की वजह से मोबाइल लेआउट टूट रहा है।

 
plastic041 2025-06-05

.topic_contents में min-width: 0 देने पर यह ठीक हो जाता है। min-width की वजह से सच में काफी सिरदर्द है...

 
xguru 2025-06-05

अरे, मैंने इसे एक अलग तरीके से हल कर लिया। धन्यवाद!

 
plastic041 2025-06-05

तेज़ फीडबैक के लिए धन्यवाद~

 
GN⁺ 2025-06-04
Hacker News की राय
  • मेरा FOSS टेक्स्ट एडिटर KeenWrite Markdown से XHTML, TeX, और PDF में कन्वर्ट करने के लिए इसी तरह का तरीका इस्तेमाल करता है
    इसका software architecture दिखाता है कि processor chain को कैसे डिज़ाइन किया जा सकता है
    मैंने KeenWrite इसलिए बनाया था ताकि sci-fi उपन्यास लिखते समय पात्रों के नाम या स्थान जैसे variables इस्तेमाल कर सकूँ
    ज़्यादा जानकारी के लिए tutorial देखें
    जो लोग अभी भी pandoc और shell scripts इस्तेमाल करते हैं, उनके लिए Typesetting Markdown series में Markdown को PDF में बदलने के लिए script-based infrastructure बनाने का तरीका समझाया गया है
    KeenWrite के बारे में जानकारी यहाँ मिल सकती है
    architecture diagram यहाँ देखा जा सकता है

  • हाल में काफ़ी ध्यान पाने वाले Typst की इस प्रोजेक्ट से तुलना करना दिलचस्प होगा, लेकिन यह हैरानी की बात है कि feature comparison matrix में Typst का बिल्कुल ज़िक्र नहीं था

    • जब मैंने पहले देखा था, तब Typst HTML में output नहीं कर पाता था
    • अब Typst का ज़िक्र भी है
      कुल मिलाकर दोनों प्रोजेक्ट काफ़ी समान लगते हैं
  • मुझे जानना है कि comparison chart सही है या नहीं – लिंक
    मेरा तो साफ़ मानना है कि LaTeX में पूरा scripting capability है, भले ही उसे इस्तेमाल करना कष्टदायक हो
    मुझे इस दावे पर संदेह है कि Quarkdown का रहस्यमय syntax Typst से ज़्यादा संक्षिप्त और पढ़ने में आसान है
    learning curve भी Typst से आसान नहीं होगी, दोनों लगभग एक जैसे लगते हैं
    मेरा मानना है कि LaTeX भी tex4ht से HTML बना सकता है

    • ईमानदारी से कहें तो ज़्यादातर Markdown Quarkdown में वैसे का वैसा इस्तेमाल किया जा सकता है
      इससे कम entry barrier होना मुश्किल है
      हाँ, learning curve और entry barrier एक ही चीज़ नहीं हैं, लेकिन इनमें काफ़ी overlap है
      और 'learning curve' एक subjective गुण है
      इसे comparison table में डालते ही वह शुरू से ही biased हो जाता है
      साफ़ features ज़्यादा objective होते हैं, लेकिन कभी-कभी product की प्रकृति ऐसी होती है कि कुछ features की ज़रूरत ही नहीं होती
    • ऐसे use case के लिए Pandoc सबसे अच्छा है
    • TikZ और pgf देखकर तुरंत समझा जा सकता है कि LaTeX और TeX की scripting capability कितनी है
      comparison table साफ़ तौर पर inaccurate है
  • sample outputs शानदार लगते हैं
    लेकिन मुझे हमेशा यह बात ज़्यादा पसंद नहीं आती कि template language function calls या complexity से बढ़ती चली जाए
    बेशक इस context में इसका मतलब हो सकता है
    लेकिन अगर इसे किसी दूसरी language के साथ इस्तेमाल करना पड़े, जैसे server-side rendering या data-driven document generation में, तो दो भाषाओं के बीच आना-जाना करने में बहुत समय निकल जाता है
    template languages कभी भी 'real' language जितनी powerful नहीं होतीं
    इसलिए मैं JSX या JavaScript के tagged template literal जैसे तरीकों को पसंद करता हूँ
    अगर किसी असली programming language का इस्तेमाल करते हुए document context समझा जा सके, तो escape handling (जैसे XSS) की चिंता भी कम होती है

  • यह प्रोजेक्ट Quarto से कैसे अलग है, यह जानने की जिज्ञासा है
    नाम भी मिलता-जुलता है, extension भी वही है, और दिशा भी समान लगती है, लेकिन features उल्टा कम दिखते हैं – Quarto

    • Quarto, R Markdown ecosystem का वास्तविक उत्तराधिकारी है
      FAQ के अनुसार इसे वही developers बना रहे हैं
    • मैं भी यही सवाल पूछने वाला था
      कुछ दिन पहले मेरे एक दोस्त ने दिखाया कि वह अपने सारे lecture scripts को Quarto में फिर से लिख रहा है और presentations भी embed कर रहा है, और वह काफ़ी साफ़-सुथरा लगा
      Quarto का R Studio और Jupyter Notebook के साथ अच्छा integration होना बड़ा फ़ायदा है
    • नाम की समानता शायद QuarkXPress के संदर्भ या उससे जुड़ाव से आई होगी
      मुझे लगता है यह convergent evolution जैसा मामला है
  • यह दिलचस्प है कि जो चीज़ "planet" जैसी दिख सकती है, वह दरअसल quark है, ख़ासकर down quark
    project काफ़ी cool है, लेकिन publishing industry के मशहूर brand QuarkXPress की वजह से publishing system के नाम में 'Quark' शब्द इस्तेमाल करना थोड़ा risky है
    संबंधित trademark registration की जानकारी यहाँ, यहाँ मिल सकती है
    (यह भी जानने की जिज्ञासा है कि एक ही शब्द के लिए दो trademarks क्यों registered हैं)

  • इस क्षेत्र की हर discussion thread में हमेशा 70% comments "LaTeX क्यों नहीं इस्तेमाल करते?" जैसे होते हैं, इसलिए मैं पहले ही साफ़ कह दूँ
    मुझे निश्चित रूप से एक modern Markdown-based typesetting system चाहिए
    LaTeX को replace करने की और कोशिशें देखना अच्छा लगेगा
    LaTeX सचमुच असुविधाजनक और पुराना है, और ऐसा system अच्छा होगा जो markup को ज़्यादा स्वतंत्रता से इस्तेमाल करने दे
    अगर feature-rich बनने से syntax लंबा भी हो जाए, तब भी Markdown से थोड़ा अधिक शक्तिशाली क्षेत्र की स्पष्ट ज़रूरत है
    लेकिन मुझे नहीं लगता कि यह project वही है जिसे मैं ढूँढ रहा था
    examples देखकर लगता है कि यह बस plain Markdown से थोड़ा ज़्यादा powerful दिशा में झुका हुआ है, पूरी तरह LaTeX (या Typst) replacement जैसा नहीं
    इस तरह के document systems को इस्तेमाल में 'वाकई बहुत smooth' होना चाहिए, और यह वैसा महसूस नहीं होता

    1. और यह JVM-based है, इसलिए मैं इसे install भी नहीं करना चाहूँगा
      adoption के लिहाज़ से यह अच्छी बात नहीं है
    2. syntax भी मुझे पसंद नहीं आया
      काश यह सामान्य Markdown के साथ जितना हो सके उतना compatible होता, लेकिन अगर function arguments के लिए indentation ज़रूरी है, तो लगता है पूरी document को indent करना पड़ेगा, जबकि Markdown के extension points आम तौर पर code blocks (```plugin-name` जैसे) ज़्यादा स्वाभाविक लगते हैं
      syntax के फ़र्क की वजह से पूरी document structure बदलनी पड़ सकती है
    3. 'better Markdown' का concept मुझे तब ज़्यादा उपयुक्त लगता है जब चीज़ें personal notes से शुरू होकर धीरे-धीरे public documents में बदलती हैं
      अगर document शुरू से publishing purpose के लिए बन रहा है, तो सीधे LaTeX में काम किया जा सकता है
      यह सबसे उपयोगी तब होगा जब note-taking apps में अच्छी तरह integrated हो
      कुछ लोग Emacs या Vim इस्तेमाल करते होंगे, लेकिन मेरे जैसे retro पसंद लोग भी आख़िरकार Obsidian वगैरह पर आ गए हैं, यह मानना पड़ेगा
      अगर note app के भीतर document structure को बेहतर control किया जा सके, या publishing feature से जोड़ने वाला कोई हिस्सा हो, तो वह बेहतर होगा
      अगर यह standalone है, तो इसे क्यों इस्तेमाल किया जाए, यह सवाल बनता है
      कम-से-कम Typst के पास online editor तो है, और सब लोग वही इस्तेमाल करते हैं
    • LaTeX कोई पुराना कचरा नहीं है, बल्कि बेहतरीन software में से एक है
      इसकी असली ख़ासियत यह है कि यह document में बेकार चीज़ें नहीं जोड़ता
  • ऐसे systems (Typst सहित) मूल रूप से papers जैसे लंबे texts की typesetting के लिए बने होते हैं
    मैं चाहता हूँ कि यह HTML का विकल्प बने, लेकिन Typst इस्तेमाल करने पर भी लगता है कि लेखक लगभग सिर्फ़ 'papers या long-form text' पर ही ध्यान देते हैं
    मैं forms, invoices, flyers, business cards जैसी चीज़ें भी बनाना चाहता हूँ, लेकिन ऐसी चीज़ें इनके interest से बाहर लगती हैं
    (असल में मैं Sile के बारे में सोच रहा था, लेकिन Typst भी मिलता-जुलता है)
    Typst commercial है, इसलिए मैंने उसे गहराई से इस्तेमाल नहीं किया

    • मुझे समझ नहीं आता कि आपने जिन forms, invoices वगैरह का ज़िक्र किया, उनमें Typst इस्तेमाल न कर पाने की कोई खास वजह क्या होगी
      ख़ासकर interactive forms पर तो पहले से काम चल रहा है (pdf writer backend में कुछ support पहले से मौजूद है)
      थोड़ा समय बीतने पर Typst में forms feature आ जाना चाहिए – issue देखें
    • मुझे लगता है ऐसा इसलिए है क्योंकि यह क्षेत्र 'typesetting' से ज़्यादा 'graphic design' के क़रीब है
      invoices, विज्ञापन पत्रक, business cards वगैरह में छोटे elements को page के केंद्र या किनारों पर बहुत सटीक ढंग से रखना पड़ता है, और इसके लिए WYSIWYG tools ज़्यादा सुविधाजनक होते हैं
      सिर्फ़ text-based typesetting से trial and error बहुत बढ़ जाता है
      उदाहरण के लिए tabloid में text को rectangle नहीं बल्कि image या cut के अनुसार flow और wrap करना पड़ता है, और यह काम वास्तव में देखे बिना सिर्फ़ coordinates लिखकर करना बहुत मुश्किल है
    • Typst online editor commercial है, लेकिन Typst स्वयं Apache 2.0 license के तहत खुला है
      मैं इसे Rust में cargo के ज़रिए install करके online editor के बिना ही अच्छी तरह इस्तेमाल कर रहा हूँ
    • Typst को local में इस्तेमाल किया जा सकता है और उसके commercial हिस्से को पूरी तरह छोड़ा जा सकता है
      कई तरह के documents बनाने के लिए यह काफ़ी आसान है
      मैं पहले से slides और handouts बनाने में इसे replacement की तरह इस्तेमाल कर रहा हूँ
    • Typst का मेरा पहला 'real-world' उपयोग poster था, और वह LaTeX से कहीं आसान था
      image wrapping या text flow जैसी कुछ features अभी नहीं हैं, लेकिन TeX में भी यह कठिन है और Typst में आगे जोड़ी जाने वाली हैं
      poster example
  • यह लगभग reStructuredText(rST) जैसा ही लगता है
    Quarkdown का function syntax (.somefunction {argument} {argument} body) और rST का function syntax (.. somefunction:: {argument} {argument} body) बहुत मिलते-जुलते हैं

  • Markdown, Quarkdown, Typst वगैरह बहुत ज़्यादा हो गए हैं और कोई standardization नहीं दिखती, इसलिए आख़िरकार मैं HTML+CSS पर लौट आया

    • XML कैसा रहेगा?
      मैंने इसे सीधे इस्तेमाल नहीं किया है, लेकिन काफ़ी गंभीरता से सोच रहा हूँ
      बाकी formats जटिल हैं और उनकी learning curve लिखने के काम में ही बाधा बनती है
      XML में मैं अपने tags मनचाहे तरीके से define कर सकता हूँ, और parser के ज़रिए footnotes अपने-आप बनाना जैसी कई संरचनाएँ तैयार कर सकता हूँ
      जानना चाहता हूँ कि क्या किसी ने ऐसा approach इस्तेमाल किया है
    • Markdown बुनियादी स्तर पर वाकई बहुत efficient है
      समस्या तब शुरू होती है जब बहुत से लोग उसके ऊपर एक पूरा system चढ़ा देते हैं और शुरू से ही 'कुछ और जटिल' हल करने की कोशिश करते हैं
      वे उस system को, जो मूल रूप से सरल उपयोग के लिए बना था, अपनी नज़र में improve करते हैं, लेकिन वास्तव में उसकी सीमाओं को समझे बिना सिर्फ़ अनावश्यक दोहराव और भ्रम बढ़ा देते हैं
      यह feature की कमी का मामला नहीं है, बल्कि design purpose की सीमा से बाहर जाकर इस्तेमाल करने का मामला है
      यहाँ तक कि अगर Windows Notepad में formatting जोड़ दी जाए, तब भी वह मूल रूप से सुधार नहीं कहलाएगा
      क्योंकि Notepad की अपनी मूल भूमिका थी
    • एक mature और reliable Org-mode भी है
      अगर आपको Emacs से परेशानी नहीं है, तो यह अच्छा विकल्प है
    • मुझे भी लगता है कि HTML, CSS, Javascript के साथ web development में DOM manipulation करना ज़्यादा मज़ेदार है
      सैकड़ों frameworks और जटिल syntax याद रखने की ज़रूरत नहीं पड़ती
      AI को markdown to html converter बनाने का command दे दो, इतना काफ़ी है
    • अगर 2005 के text editors का autocomplete आज की तरह tag balancing, indentation, और highlighting को अच्छी तरह support करता, तो शायद JSON, YAML, Markdown जैसे formats इतने लोकप्रिय नहीं हुए होते
      2003 में आई The Art of Unix Programming में भी यह बात कही गई थी कि XML को सीधे edit करना कष्टदायक है, इसलिए तरह-तरह के formats और parsers नए सिरे से बनाने पड़े