<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Neovim on kenji.blog</title><link>http://kenji.blog/hi/tags/neovim/</link><description>Recent content in Neovim on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>hi</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 12 Sep 2026 12:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/hi/tags/neovim/index.xml" rel="self" type="application/rss+xml"/><item><title>मार्कडाउन के साथ तकनीकी ब्लॉग लिखना: संपादक सेटिंग्स जो आपकी लेखन गति को दोगुना कर देंगी</title><link>http://kenji.blog/hi/p/markdown-editor-setup-for-tech-blogs/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/hi/p/markdown-editor-setup-for-tech-blogs/</guid><description>&lt;img src="http://kenji.blog/p/markdown-editor-setup-for-tech-blogs/img/eyecatch.jpg" alt="Featured image of post मार्कडाउन के साथ तकनीकी ब्लॉग लिखना: संपादक सेटिंग्स जो आपकी लेखन गति को दोगुना कर देंगी" />&lt;p>तकनीकी ब्लॉग लिखना जारी रखने के लिए, लेखन वातावरण का अनुकूलन आवश्यक है। इस लेख में, हम मार्कडाउन का उपयोग करके तकनीकी ब्लॉगों की लेखन गति को नाटकीय रूप से बेहतर बनाने के लिए उन्नत संपादक सेटिंग्स में गहराई से उतरेंगे। विज़ुअल स्टूडियो कोड (VS Code) और Neovim के अत्यधिक अनुकूलन, स्निपेट्स के उपयोग, जापानी व्याकरण जांच उपकरण textlint की शुरुआत से लेकर CI/CD पाइपलाइन में स्वचालन, और GitHub Copilot जैसे LLM का लाभ उठाने वाली अत्याधुनिक लेखन तकनीकों तक, हम व्यापक रूप से सब कुछ कवर करेंगे।&lt;/p>
&lt;h2 id="1-लखन-गत-म-सधर-क-लए-गणतय-मडल">1. लेखन गति में सुधार के लिए गणितीय मॉडल
&lt;/h2>&lt;p>संपादक सेटिंग्स का अनुकूलन लेखन समय को कैसे प्रभावित करता है, आइए पहले इसे एक सरल सूत्र के साथ मॉडल करें। मान लें कि एक ब्लॉग पोस्ट लिखने के लिए कुल इनपुट समय $T_{total}$ है।&lt;/p>
$$
T_{total} = T_{think} + T_{type} + T_{format} + T_{review}
$$&lt;p>यहाँ, $T_{think}$ सोचने का समय है, $T_{type}$ टाइपिंग का समय है, $T_{format}$ मार्कडाउन जैसे प्रारूप समायोजन का समय है, और $T_{review}$ संपादन और प्रूफरीडिंग का समय है।&lt;/p>
&lt;p>संपादक अनुकूलन (जैसे स्निपेट्स और लिंटर सेटिंग्स का परिचय) द्वारा बचाए गए समय $T_{saved}$ को, एक विशिष्ट पैटर्न (उदाहरण के लिए, ह्यूगो (Hugo) शॉर्टकोड या मार्कडाउन टेबल) की घटनाओं की संख्या $N$, मैन्युअल इनपुट के लिए लगने वाले समय $t_{manual}$, और स्निपेट्स आदि के माध्यम से स्वचालन द्वारा लगने वाले समय $t_{snippet}$ का उपयोग करके निम्नानुसार व्यक्त किया जा सकता है:&lt;/p>
$$
T_{saved} = \sum_{i=1}^{k} N_i \times (t_{manual, i} - t_{snippet, i}) + T_{review\_saved}
$$&lt;p>इसके अतिरिक्त, स्वचालित स्वरूपण (auto-formatter) और लिंट टूल पेश करने से, मानवीय दृश्य निरीक्षण समय $T_{review}$ काफी कम हो जाता है। इस $T_{saved}$ को अधिकतम करना इस लेख का उद्देश्य है।&lt;/p>
&lt;h2 id="2-वजअल-सटडय-कड-vs-code-क-सरवशरषठ-सटगस">2. विज़ुअल स्टूडियो कोड (VS Code) की सर्वश्रेष्ठ सेटिंग्स
&lt;/h2>&lt;p>VS Code वर्तमान में सबसे लोकप्रिय संपादकों में से एक है, और इसमें मार्कडाउन लिखने के लिए एक्सटेंशन का एक मजबूत इकोसिस्टम है।&lt;/p>
&lt;h3 id="अनशसत-एकसटशन">अनुशंसित एक्सटेंशन
&lt;/h3>&lt;p>लेखन में तेजी लाने के लिए, निम्नलिखित एक्सटेंशन इंस्टॉल करने की दृढ़ता से अनुशंसा की जाती है।&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Markdown All in One&lt;/strong>: इसमें मार्कडाउन लिखने के लिए आवश्यक सभी बुनियादी सुविधाएँ हैं, जैसे शॉर्टकट कुंजियों के साथ बोल्ड और इटैलिक करना, सूचियों की स्वचालित निरंतरता, और सामग्री की तालिका (TOC) का स्वत: निर्माण।&lt;/li>
&lt;li>&lt;strong>markdownlint&lt;/strong>: यह वास्तविक समय में मार्कडाउन सिंटैक्स त्रुटियों और शैली उल्लंघनों की चेतावनी देता है।&lt;/li>
&lt;li>&lt;strong>vscode-textlint&lt;/strong>: यह जापानी तकनीकी दस्तावेजों के लिए नियमों का एक सेट लागू करता है, जो असंगतताओं और व्याकरणिक त्रुटियों को रोकता है।&lt;/li>
&lt;/ol>
&lt;h3 id="हयग-hugo-क-लए-कसटम-सनपट-सटगस-markdownjson">ह्यूगो (Hugo) के लिए कस्टम स्निपेट सेटिंग्स (&lt;code>markdown.json&lt;/code>)
&lt;/h3>&lt;p>यदि आप तकनीकी ब्लॉग के लिए Hugo या Docusaurus जैसे स्थिर साइट जनरेटर (Static Site Generator) का उपयोग कर रहे हैं, तो आप अक्सर Frontmatter या कस्टम शॉर्टकोड दर्ज करेंगे। VS Code की स्निपेट सुविधा का उपयोग करके, उन्हें पलक झपकते ही विस्तारित किया जा सकता है।&lt;/p>
&lt;p>कमांड पैलेट से &lt;code>Preferences: Configure User Snippets&lt;/code> चुनें, और &lt;code>markdown.json&lt;/code> में निम्नलिखित सेटिंग्स जोड़ें।&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;Hugo Frontmatter&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;prefix&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;frontmatter&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;body&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;---&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;title: \&amp;#34;${1:शीर्षक}\&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;slug: \&amp;#34;${2:slug-name}\&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;date: \&amp;#34;$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE T$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND+09:00\&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;image: \&amp;#34;img/eyecatch.jpg\&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;math: true&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;mermaid: true&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;categories: [\&amp;#34;${3:Category}\&amp;#34;]&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tags: [\&amp;#34;${4:Tag1}\&amp;#34;, \&amp;#34;${5:Tag2}\&amp;#34;]&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;---&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;${0}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;description&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;ह्यूगो (Hugo) के लिए YAML Frontmatter का विस्तार करता है&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;Hugo Figure Shortcode&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;prefix&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;hfig&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;body&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;{{&amp;lt; figure src=\&amp;#34;${1:image.jpg}\&amp;#34; title=\&amp;#34;${2:छवि का शीर्षक}\&amp;#34; &amp;gt;}}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;description&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;ह्यूगो (Hugo) का Figure शॉर्टकोड&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;Markdown Table&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;prefix&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;mtable&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;body&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;| ${1:Header 1} | ${2:Header 2} | ${3:Header 3} |&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;| :--- | :---: | ---: |&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;| ${4:Row 1} | ${5:Data} | ${6:Data} |&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;| ${7:Row 2} | ${8:Data} | ${9:Data} |&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;$0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;description&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;3-कॉलम वाली मार्कडाउन टेबल उत्पन्न करता है&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>इस सेटिंग के साथ, बस &lt;code>frontmatter&lt;/code> टाइप करने और टैब कुंजी दबाने से, वर्तमान समय सहित YAML Frontmatter तुरंत विस्तृत हो जाएगा, जिससे आपकी प्रारंभिक लेखन गति नाटकीय रूप से बढ़ जाएगी।&lt;/p>
&lt;h3 id="github-copilot-क-उपयग-करक-लखन-सहयत">GitHub Copilot का उपयोग करके लेखन सहायता
&lt;/h3>&lt;p>VS Code में GitHub Copilot को सक्षम करने से, प्रासंगिक AI पूर्णता (AI completion) मार्कडाउन में भी काम करती है। विशेष रूप से तकनीकी ब्लॉगों के लिए, AI अनुमान लगा सकता है और &amp;ldquo;आगे क्या समझाया जाना चाहिए&amp;rdquo; या &amp;ldquo;संबंधित कोड ब्लॉक&amp;rdquo; सुझा सकता है, जो टाइपिंग समय $T_{type}$ को काफी कम कर सकता है।&lt;/p>
&lt;h2 id="3-neovim-म-अतयधक-अनकलन">3. Neovim में अत्यधिक अनुकूलन
&lt;/h2>&lt;p>VS Code का GUI बेहतरीन है, लेकिन टर्मिनल प्रेमियों और Vimmer के लिए, Neovim सबसे अच्छा विकल्प है, जहाँ आप कीबोर्ड से हाथ हटाए बिना सब कुछ पूरा कर सकते हैं।&lt;/p>
&lt;h3 id="neovim-lsp-आरकटकचर">Neovim LSP आर्किटेक्चर
&lt;/h3>&lt;p>मार्कडाउन वातावरण में Neovim के LSP (Language Server Protocol) और Linter का आर्किटेक्चर निम्नानुसार है।&lt;/p>
&lt;pre class="mermaid">
classDiagram
class Neovim {
+&amp;#34;टेक्स्ट बफर&amp;#34;
+&amp;#34;कीमैप्स&amp;#34;
}
class nvim_lspconfig {
+&amp;#34;marksman (मार्कडाउन LSP)&amp;#34;
}
class null_ls_or_none_ls {
+&amp;#34;markdownlint&amp;#34;
+&amp;#34;textlint&amp;#34;
}
class LuaSnip {
+&amp;#34;डायनेमिक स्निपेट्स&amp;#34;
}
class CMP {
+&amp;#34;ऑटो कंप्लीशन इंजन&amp;#34;
}
Neovim --&amp;gt; nvim_lspconfig : &amp;#34;सिमेंटिक सुविधाएँ प्रदान करता है&amp;#34;
Neovim --&amp;gt; null_ls_or_none_ls : &amp;#34;निदान और स्वरूपण&amp;#34;
Neovim --&amp;gt; CMP : &amp;#34;पूर्णता अनुरोध&amp;#34;
CMP --&amp;gt; nvim_lspconfig : &amp;#34;LSP स्रोत&amp;#34;
CMP --&amp;gt; LuaSnip : &amp;#34;स्निपेट स्रोत&amp;#34;
&lt;/pre>
&lt;h3 id="luasnip-क-उपयग-करक-उननत-सनपट-वसतर">LuaSnip का उपयोग करके उन्नत स्निपेट विस्तार
&lt;/h3>&lt;p>VS Code के JSON स्निपेट से भी अधिक शक्तिशाली Neovim का प्लगइन &lt;code>LuaSnip&lt;/code> है। आप Lua के तर्क (logic) का उपयोग करके गतिशील रूप से स्निपेट की सामग्री की गणना और विस्तार कर सकते हैं।&lt;/p>
&lt;p>नीचे एक LuaSnip कॉन्फ़िगरेशन का उदाहरण दिया गया है जो गतिशील रूप से वर्तमान दिनांक और समय प्राप्त करता है और Hugo के Frontmatter का विस्तार करता है।&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-lua" data-lang="lua">&lt;span class="line">&lt;span class="cl">&lt;span class="kd">local&lt;/span> &lt;span class="n">ls&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">require&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;luasnip&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">local&lt;/span> &lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ls.snippet&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">local&lt;/span> &lt;span class="n">t&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ls.text_node&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">local&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ls.insert_node&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">local&lt;/span> &lt;span class="n">f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ls.function_node&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- वर्तमान JST समय प्राप्त करने का फ़ंक्शन&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">local&lt;/span> &lt;span class="kr">function&lt;/span> &lt;span class="nf">get_current_date_jst&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">return&lt;/span> &lt;span class="n">os.date&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;!%Y-%m-%dT%H:%M:%S&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">..&lt;/span> &lt;span class="s2">&amp;#34;+09:00&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kr">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ls.add_snippets&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;markdown&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;frontmatter&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;---&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;title: &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Title&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;slug: &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;slug-name&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;date: &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kr">function&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="kr">return&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="n">get_current_date_jst&lt;/span>&lt;span class="p">()}&lt;/span> &lt;span class="kr">end&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">{}),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;image: &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">img/eyecatch.jpg&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;math: true&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;mermaid: true&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;categories: [&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Category&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">]&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;tags: [&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Tag&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">]&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;---&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;mtable&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34;| &amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Header 1&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34; | &amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Header 2&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34; |&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;|---|---|&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;| &amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Cell 1&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34; | &amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Cell 2&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s2">&amp;#34; |&amp;#34;&lt;/span>&lt;span class="p">}),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>इस प्रकार, प्रोग्रामिंग भाषा (Lua) की शक्ति को उधार लेकर, न केवल निश्चित स्ट्रिंग बनाना संभव है, बल्कि कार्यों के रिटर्न मान को एम्बेड करना भी संभव है, या यहां तक कि उन्नत स्निपेट भी बनाए जा सकते हैं जो इनपुट वर्णों की संख्या के अनुसार तालिका में कॉलम की संख्या को गतिशील रूप से बढ़ाते या घटाते हैं।&lt;/p>
&lt;h2 id="4-लखन-क-गणवतत-और-गत-क-सतलत-करन-क-लए-सथतक-वशलषण-textlint-और-रगलर-एकसपरशन">4. लेखन की गुणवत्ता और गति को संतुलित करने के लिए स्थैतिक विश्लेषण (textlint और रेगुलर एक्सप्रेशन)
&lt;/h2>&lt;p>ब्लॉग की गुणवत्ता सुनिश्चित करने के लिए, आपको टाइपिंग संबंधी त्रुटियों (typos) और वर्तनी की विसंगतियों को रोकना होगा। यदि इसे मैन्युअल रूप से किया जाए, तो $T_{review}$ बहुत बढ़ जाता है, इसलिए हम &lt;code>textlint&lt;/code> के माध्यम से स्थैतिक विश्लेषण (static analysis) पेश करेंगे।&lt;/p>
&lt;h3 id="textlint-क-परचय-और-जपन-नयम-सट">textlint का परिचय और जापानी नियम सेट
&lt;/h3>&lt;p>Node.js वातावरण के अंतर्गत textlint इंस्टॉल करें।&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npm install -D textlint textlint-rule-preset-ja-technical-writing textlint-rule-prh textlint-filter-rule-comments
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>प्रोजेक्ट के रूट में &lt;code>.textlintrc.json&lt;/code> बनाएँ और इसे निम्नानुसार कॉन्फ़िगर करें।&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;filters&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;comments&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;rules&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;preset-ja-technical-writing&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;ja-no-mixed-period&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;periodMark&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;。&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;sentence-length&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;max&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;prh&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;rulePaths&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;./prh.yml&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>तकनीकी शब्दों के वर्तनी भेदों को परिभाषित करने के लिए &lt;code>prh.yml&lt;/code> बनाएँ। उदाहरण के लिए, &amp;ldquo;सर्वर (サーバー)&amp;rdquo; और &amp;ldquo;सर्वर (サーバ)&amp;rdquo;, या &amp;ldquo;Javascript&amp;rdquo; और &amp;ldquo;JavaScript&amp;rdquo; को एकीकृत करें।&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">rules&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">expected&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;JavaScript&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">pattern&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Javascript&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">expected&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;サーバー&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">pattern&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;サーバ&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">expected&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;インターフェース&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">pattern&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;インターフェイス&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>परिणामस्वरूप, हर बार जब आप संपादक में टाइप करेंगे, आपको रीयल-टाइम में वर्तनी की विसंगतियों के बारे में चेतावनी दी जाएगी, जिससे प्रूफरीडिंग का समय लगभग शून्य हो जाएगा।&lt;/p>
&lt;h3 id="रगलर-एकसपरशन-क-उपयग-करक-बच-रपलसमट-और-सटरकचरड-पटरन">रेगुलर एक्सप्रेशन का उपयोग करके बैच रिप्लेसमेंट और स्ट्रक्चर्ड पैटर्न
&lt;/h3>&lt;p>जब आप किसी मौजूदा लेख को मार्कडाउन में ले जाते हैं expanded या बाहर से टेक्स्ट लाते हैं, तो रेगुलर एक्सप्रेशन का उपयोग करके बैच रिप्लेसमेंट काम आता है।&lt;/p>
&lt;p>उदाहरण के लिए, HTML के &lt;code>&amp;lt;b&amp;gt;जोर&amp;lt;/b&amp;gt;&lt;/code> टैग को मार्कडाउन के &lt;code>**जोर**&lt;/code> में बदलने के लिए रेगुलर एक्सप्रेशन:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>खोज पैटर्न&lt;/strong>: &lt;code>&amp;lt;b&amp;gt;(.*?)&amp;lt;/b&amp;gt;&lt;/code>&lt;/li>
&lt;li>&lt;strong>प्रतिस्थापन पैटर्न&lt;/strong>: &lt;code>**$1**&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>अनावश्यक लगातार लाइन ब्रेक को एक में समेकित करते समय:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>खोज पैटर्न&lt;/strong>: &lt;code>\n{3,}&lt;/code>&lt;/li>
&lt;li>&lt;strong>प्रतिस्थापन पैटर्न&lt;/strong>: &lt;code>\n\n&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>आप VS Code की खोज और प्रतिस्थापन सुविधा (रेगुलर एक्सप्रेशन मोड) या Neovim की &lt;code>%s&lt;/code> कमांड (&lt;code>:%s/&amp;lt;b&amp;gt;\(.*?\)&amp;lt;\/b&amp;gt;/**\1**/g&lt;/code>) का उपयोग करके इन्हें चलाकर, तुरंत स्वरूपण को एकीकृत कर सकते हैं।&lt;/p>
&lt;h3 id="cicd-पइपलइन-क-सथ-सवचलत-जच">CI/CD पाइपलाइन के साथ स्वचालित जाँच
&lt;/h3>&lt;p>इसके अतिरिक्त, हम एक CI पाइपलाइन बनाने के लिए GitHub Actions का उपयोग करते हैं जो ब्लॉग पोस्ट को पुश करते समय स्वचालित रूप से textlint चलाता है। यह आपको नियम-उल्लंघन करने वाले लेखों को डिप्लॉय होने से रोकने की अनुमति देता है।&lt;/p>
&lt;pre class="mermaid">
flowchart TD
A[&amp;#34;लेखक&amp;#34;] --&amp;gt;|परिवर्तन पुश करें| B[&amp;#34;GitHub रिपॉजिटरी&amp;#34;]
B --&amp;gt; C{&amp;#34;GitHub Actions ट्रिगर हुआ&amp;#34;}
C --&amp;gt; D[&amp;#34;रिपॉजिटरी चेकआउट करें&amp;#34;]
D --&amp;gt; E[&amp;#34;Node.js सेटअप करें&amp;#34;]
E --&amp;gt; F[&amp;#34;npm install&amp;#34;]
F --&amp;gt; G[&amp;#34;textlint चलाएं&amp;#34;]
G --&amp;gt;|पास| H[&amp;#34;Hugo साइट बनाएं&amp;#34;]
G --&amp;gt;|विफल| I[&amp;#34;PR/Commit में त्रुटि रिपोर्ट करें&amp;#34;]
H --&amp;gt; J[&amp;#34;होस्टिंग (Vercel/Netlify) पर डिप्लॉय करें&amp;#34;]
&lt;/pre>
&lt;h2 id="5-llm-यग-म-मरकडउन-लखन-तकनक">5. LLM युग में मार्कडाउन लेखन तकनीक
&lt;/h2>&lt;p>आधुनिक तकनीकी ब्लॉग लेखन में, LLM (लार्ज लैंग्वेज मॉडल) का उपयोग अपरिहार्य है। संपादक में अंतर्निहित AI टूल का उपयोग करके, लेखन गति को और भी दोगुना किया जा सकता है।&lt;/p>
&lt;h3 id="सपदक-क-भतर-परमपट-इजनयरग-prompt-engineering">संपादक के भीतर प्रॉम्प्ट इंजीनियरिंग (Prompt Engineering)
&lt;/h3>&lt;p>VS Code के GitHub Copilot Chat, या Neovim के &lt;code>ChatGPT.nvim&lt;/code> और &lt;code>Copilot.vim&lt;/code> का उपयोग करके, आप संपादक को छोड़े बिना निम्नलिखित जैसे प्रॉम्प्ट दे सकते हैं:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;कृपया शुरुआती लोगों के लिए मार्कडाउन पदानुक्रम (hierarchy) संरचना में निम्नलिखित तकनीकी तत्वों की रूपरेखा तैयार करें: Docker, Kubernetes, CI/CD&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>ऐसा करने से, तुरंत हेडिंग और बुलेट पॉइंट मार्कडाउन उत्पन्न हो जाता है। हमें बस उस ढांचे को विस्तृत करने की आवश्यकता है।&lt;/p>
&lt;p>इसके अलावा, जटिल Mermaid आरेख (diagrams) और गणितीय सूत्र (LaTeX) लिखते समय, AI को निर्देश देने से सटीक सिंटैक्स उत्पन्न होगा। उदाहरण के लिए, इस लेख में प्रस्तुत सूत्रों और आरेखों के लेआउट की नींव भी LLM के साथ जोड़ी-लेखन (pair writing) के माध्यम से तेज की गई है।&lt;/p>
&lt;h2 id="6-नषकरष">6. निष्कर्ष
&lt;/h2>&lt;p>हमने संपादक सेटिंग्स के बारे में बताया है जो मार्कडाउन में तकनीकी ब्लॉग लिखते समय आपकी लेखन गति को दोगुना कर देंगी।&lt;/p>
&lt;ol>
&lt;li>&lt;strong>गणितीय मॉडल के प्रति जागरूकता&lt;/strong>: $T_{saved}$ को अधिकतम करने के लिए दोहराए जाने वाले कार्यों को खत्म करें।&lt;/li>
&lt;li>&lt;strong>VS Code का लाभ उठाना&lt;/strong>: एक्सटेंशन और &lt;code>markdown.json&lt;/code> स्निपेट्स के साथ टाइपिंग कम करें।&lt;/li>
&lt;li>&lt;strong>Neovim का अत्यधिक अनुकूलन&lt;/strong>: &lt;code>LuaSnip&lt;/code> के माध्यम से गतिशील स्निपेट्स और पूर्ण कीबोर्ड नियंत्रण।&lt;/li>
&lt;li>&lt;strong>textlint और स्थैतिक विश्लेषण&lt;/strong>: प्रूफरीडिंग समय को शून्य के करीब लाने के लिए CI/CD और स्थानीय लिंटर का एकीकरण।&lt;/li>
&lt;li>&lt;strong>LLM का एकीकरण&lt;/strong>: AI को संपादक के भीतर सीधे मार्कडाउन संरचनाओं और आरेख कोड आउटपुट करने का निर्देश दें।&lt;/li>
&lt;/ol>
&lt;p>इन सेटिंग्स को अपने स्वयं के वातावरण में शामिल करके, लेखन की &amp;ldquo;परेशानी&amp;rdquo; दूर हो जाएगी, और आपके तकनीकी आउटपुट की मात्रा और गुणवत्ता में नाटकीय रूप से सुधार होना चाहिए। क्यों न सिर्फ एक छोटे स्निपेट को पंजीकृत करके शुरुआत करें?&lt;/p></description></item></channel></rss>