ब्लॉग पोस्ट को Linux manual page के रूप में उपलब्ध कराना

  • Linux कंप्यूटरों में खास commands के उपयोग को समझाने वाले manual pages पहले से इंस्टॉल होते हैं.
  • टर्मिनल में man <command> टाइप करके manual page पढ़ा जा सकता है.
  • इंस्टॉल किए जाने वाले command-line software भी कभी-कभी manual pages जोड़ते हैं.
  • Linux manual pages को roff syntax का उपयोग करके format किया जाता है.
  • roff Unix के लिए शुरुआती typesetting command-line software था, जिसे Bell Labs ने विकसित किया था.
  • ब्लॉग पोस्ट को Linux manual page के रूप में उपलब्ध कराने के विचार की पड़ताल की गई है.

सिस्टम की रूपरेखा: content negotiation

  • उद्देश्य यह है कि उपयोगकर्ता HTTP content negotiation के ज़रिए ब्लॉग पोस्ट का roff version request कर सकें.
  • content negotiation HTTP का वह हिस्सा है जिसमें file format निर्दिष्ट करके request की जा सकती है.
  • इसमें ऐसे HTTP headers का उपयोग होता है जिनसे सर्वर से किसी खास format में content मांगा जा सकता है.
  • Accept header भेजने वाले user requests को route किया जा सकता है.
  • यदि text/roff document request किया जाए, तो ऐसा manual page लौटाया जा सकता है जिसे man command से खोला जा सके.

manual page लिखना

  • क्योंकि manual pages roff syntax का उपयोग करते हैं, इसलिए ब्लॉग पोस्ट को उसी format में रखना ज़रूरी है.
  • साइट को अपडेट करके हर ब्लॉग पोस्ट के लिए man page generate किया गया.
  • manual page बनाने के लिए domain name को header के रूप में सेट किया गया, और title, author, publish date, post content, तथा post URL के पाँच sections बनाए गए.
  • मूल content Markdown format में है, और कभी-कभी manual page में spacing सही तरह से render नहीं हो सकती.
  • Markdown, HTML की तुलना में पढ़ने में आसान है और इसमें जानकारी का नुकसान कम होता है.

manual page request करना

  • नीचे दिए गए command का उपयोग करके ब्लॉग पोस्ट का roff format request किया जा सकता है:
    curl -sL -H "Accept: text/roff" https://jamesg.blog/2024/02/28/programming-projects/ > post.page && man ./post.page
    
  • परिणाम को Linux manual page के रूप में खोला जा सकता है.
  • जहाँ browser page का HTML version request करता है, वहीं curl command text/roff version request करता है.
  • NGINX config में कुछ पंक्तियाँ जोड़कर यह बदला गया कि सर्वर text/roff request मिलने पर कैसे response दे.
  • NGINX config file में एक variable घोषित किया गया जो किसी खास content type की पहचान होने पर flag सेट करता है.
  • साइट की NGINX settings में ऐसा code इस्तेमाल किया गया जो roff page request होने पर request को अलग तरह से handle करता है.
  • अब इस वेबसाइट के ब्लॉग पोस्ट Linux manual pages के रूप में पढ़े जा सकते हैं.
  • यह NGINX में content negotiation के उपयोग और typesetting तकनीक के विकास पर एक पड़ताल है.

GN⁺ की राय

  • यह लेख tech enthusiasts के लिए दिलचस्प हो सकता है, क्योंकि यह Linux manual pages के माध्यम से ब्लॉग content उपलब्ध कराने का एक अनोखा तरीका पेश करता है.
  • NGINX का उपयोग करते हुए content negotiation का व्यावहारिक उदाहरण देकर यह web server administrators और developers के लिए उपयोगी जानकारी देता है.
  • आलोचनात्मक नज़रिये से देखें तो Markdown format हमेशा manual page में अच्छी तरह render नहीं हो सकता, इसलिए इसे बेहतर बनाने के लिए अतिरिक्त काम की ज़रूरत पड़ सकती है.
  • मिलती-जुलती क्षमता देने वाले अन्य projects में pandoc जैसे tools शामिल हैं, जो अलग-अलग document formats के बीच conversion को support करते हैं.
  • इस तकनीक को अपनाते समय users की requirements और compatibility को ध्यान में रखना चाहिए.
  • इस तकनीक का फायदा यह है कि मौजूदा web content को Linux users के लिए परिचित तरीके से उपलब्ध कराया जा सकता है, जबकि नुकसान यह है कि अतिरिक्त maintenance और compatibility issues पैदा हो सकते हैं.

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.