पृष्ठों और सामग्री की तालिका बनाने के लिए मार्कडाउन?


356

मैंने नोट्स लेने के लिए मार्कडाउन का उपयोग करना शुरू कर दिया।

मैं अपने मार्कडाउन नोट और उसके सुंदर को देखने के लिए चिह्नित का उपयोग करता हूं।

लेकिन जैसे-जैसे मेरे नोट्स लंबे होते जाते हैं, मुझे यह खोजना मुश्किल हो जाता है कि मुझे क्या चाहिए।

मुझे पता है कि मार्कडाउन टेबल बना सकता है, लेकिन क्या यह टेबल में कंटेंट की तालिका बनाने में सक्षम है, या मार्कडाउन में पेज सेक्शन को परिभाषित करता है?

वैकल्पिक रूप से, क्या मार्कडाउन पाठक / संपादक ऐसे काम कर सकते हैं। खोज के लिए भी अच्छी सुविधा होगी।

संक्षेप में, मैं इसे अपना ज़बरदस्त नोट लेने का साधन बनाना चाहता हूं और यह बहुत काम करता है जैसे पुस्तक लिखना आदि।


2
यदि आप एक जावास्क्रिप्ट / नोड.जेएस टूल का उपयोग करना चाहते हैं, तो चिह्नित करें-
टीओसी

@jonschlinkert आपको उसे उत्तर के रूप में प्रस्तुत करना चाहिए! वर्तमान में, उत्तर केवल उन उपकरणों का सुझाव देते हैं जो या तो मुक्त नहीं हैं या पायथन। वास्तव में विकल्पों का एक बड़ा सेट नहीं।
डोमी

8
मुझे शायद यह उल्लेख करना चाहिए कि LaTeX में यह हासिल किया गया है \tableofcontents। यदि पहिया को फिर से स्थापित किया जा रहा है, तो अच्छे भागों की नकल करना बेहतर होगा।
Eero Aaltonen


इसी तरह reStructuredText में अंतर्वस्तु की तालिका के लिए एक अंतर्निहित निर्देश है जो सरलतम रूप में दिखता है .. contents::
साजा sa ’

जवाबों:


37

मल्टीमैर्कड कंपोजर संपादन करते समय सहायता करने के लिए सामग्री की एक तालिका उत्पन्न करता है।

एक या अन्य पुस्तकालय भी हो सकते हैं, जो TOCs उत्पन्न कर सकते हैं: पायथन मार्कडाउन TOC एक्सटेंशन देखें


17
MultiMarkdown संगीतकार केवल MacOS है
chmike

1
वर्किंग पायथन मार्कडाउन
जॉन

2
एप्लिकेशन यूके क्षेत्र में उपलब्ध नहीं है।
kenorb

टीओसी विस्तार एचटीएमएल टॉक्स का उत्पादन करता है, मार्कडाउन का नहीं। यह उल्लेखनीय है कि यह कठिन है।
rjurney

393

आप इसे आजमा सकते हैं।

# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)
4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)


## Example
## Example2
## Third Example
## [Fourth Example](http://www.fourthexample.com) 

10
ऊपर तीसरा उदाहरण काम नहीं करता है। ## Example ## "Example2" ## Third Example<a name="third-example" /> एक ही रास्ता मैं इसे अब तक रिक्त स्थान निगलने के लिए मिल सकता है। निश्चित रूप से तीसरे टैग की व्याख्या इस प्रकार की जाएगी - #Third- इसके बाद एक स्थान - फिर शब्द उदाहरण - ऊपर आपके स्निपेट में? हाइफ़न बिल्कुल काम नहीं करते हैं। धन्यवाद
जुलाब

उदाहरण एक से अधिक शब्दों के लिए एक उदाहरण के रूप में सेवा करने के लिए है। सभी शब्द बिना किसी कैप लॉक, और कोई रिक्त स्थान के टूट जाते हैं।
रिक

6
RStudio में ठीक काम करता है। बस जोड़ना चाहते हैं कि जर्मन umlauts उदा ü को लंगर में 1. [Einführung](#einfuhrung)
umlaut के

4
Bitbucket v4.5.2 में शीर्षकों के लिए एंकर स्वचालित रूप से नहीं बनाए जाते हैं
माइक रायलैंडर

1
वह चौथा उदाहरण वह है जिसकी मुझे तलाश थी। धन्यवाद!
केनेकस्वेल

218

यहाँ एक उपयोगी विधि है। किसी भी मार्कडाउन संपादक में क्लिक करने योग्य संदर्भ का उत्पादन करना चाहिए।

# Table of contents
1. [Introduction](#introduction)
2. [Some paragraph](#paragraph1)
    1. [Sub paragraph](#subparagraph1)
3. [Another paragraph](#paragraph2)

## This is the introduction <a name="introduction"></a>
Some introduction text, formatted in heading 2 style

## Some paragraph <a name="paragraph1"></a>
The first paragraph text

### Sub paragraph <a name="subparagraph1"></a>
This is a sub paragraph, formatted in heading 3 style

## Another paragraph <a name="paragraph2"></a>
The second paragraph text

पैदा करता है:

विषय - सूची

  1. परिचय
  2. कुछ पैराग्राफ
    1. उप अनुच्छेद
  3. एक और पैराग्राफ

यह परिचय है

कुछ परिचय पाठ, शीर्षक 2 शैली में स्वरूपित

कुछ पैराग्राफ

पहला पैराग्राफ टेक्स्ट

उप अनुच्छेद

यह एक उप अनुच्छेद है, जिसे 3 शैली में शीर्षक दिया गया है

एक और पैराग्राफ

दूसरा पैराग्राफ टेक्स्ट


21
मैं शीर्ष पर लाइन पर एंकर टैग लगाना पसंद करता हूं, जब लिंक पर क्लिक किया जाता है तो पृष्ठ पर शीर्षक शो होता है।
mgarey

4
यह मेरे लिए एकमात्र उपयोगी था। लंबे शीर्षक के साथ, एंकर टैग के बिना ऐसा करना असंभव है।
मैट फ्लेचर

यह वास्तव में अच्छा है। मैं जल्दी से सभी वर्गों के बीच नेविगेट करने के लिए अपने सभी बृहस्पति पुस्तिकाओं में सामग्री की एक तालिका रखने लगा।
जैकडब

@mgarey ने पहले लंगर डाला:## <a name="foo" /> Foo
Tobias_k

40

के लिए दृश्य स्टूडियो संहिता उपयोगकर्ताओं, एक अच्छा विचार का उपयोग है Markdown टीओसी प्लगइन।

इसे स्थापित करने के लिए, वीएस कोड क्विक ओपन ( Control/⌘+ P) लॉन्च करें , निम्न कमांड पेस्ट करें, और एंटर दबाएं।

ext install markdown-toc

और TOC उत्पन्न करने के लिए, कमांड पैलेट ( Control/⌘+ Shift+ P) खोलें और चुनेंMarkdown TOC:Insert/Update option या उपयोग Control/⌘+ MT


7
नोट: मैंने अभी पाया कि स्टॉक VSCode का उपयोग करके आप हेडर से मार्कडाउन लिंक बना सकते हैं: [Section Foo](#foo-header-title)और यह प्रीव्यू मोड के बाहर भी काम करता है (यानी सादे मार्कडाउन में)।
kitsu.eb

4
VSCode के लिए एक अन्य विकल्प vscode-markdown है जिसमें कई विशेषताएं हैं,
ToC में

26

टीओसी को मार्कडाउन फ़ाइल से जनरेट करने के लिए आप इस रूबी स्क्रिप्ट को आज़मा सकते हैं ।

 #!/usr/bin/env ruby

require 'uri'

fileName = ARGV[0]
fileName = "README.md" if !fileName

File.open(fileName, 'r') do |f|
  inside_code_snippet = false
  f.each_line do |line|
    forbidden_words = ['Table of contents', 'define', 'pragma']
    inside_code_snippet = !inside_code_snippet if line.start_with?('```')
    next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ } || inside_code_snippet

    title = line.gsub("#", "").strip
    href = URI::encode title.gsub(" ", "-").downcase
    puts "  " * (line.count("#")-1) + "* [#{title}](\##{href})"
  end
end

महान! बस एक नोट, जोड़ सकते हैं ifndef, includeऔर endifअन्य पूर्वप्रक्रमक निर्देशों के बीच में, मना किया शब्द सूची में। इसके अलावा, लूप के दायरे से बाहर की सूची को परिभाषित करने से प्रत्येक पुनरावृत्ति के साथ इसे बहाल करने से बचा जाता है। इसके अलावा, यह किसी भी भाषा की टिप्पणियों को #उठाएगा जो टिप्पणी वाक्यविन्यास का उपयोग करता है , रूबी शामिल है, जो अच्छा नहीं है। यदि आप चाहें तो मैं संपादित करने को तैयार हूं। हालाँकि यह एक शानदार शुरुआत है और मेरे उद्देश्यों के लिए अच्छा काम किया है। बहुत बहुत धन्यवाद!
जेफ क्लेन

यह केवल atx हैडिंग्स के साथ काम करता है (यानी जो इसके साथ शुरू होता है #), सेटटेक्स वाले (रेखांकित) के साथ नहीं।
gozzilli

इसके लिए धन्यवाद, यदि आप रेल पर रेडकारपेट के लिए इसका उपयोग कर रहे हैं, तो आपको title.parameterizehref के लिए जाना चाहिए , धन्यवाद!
एलेक्सिस

25

टीओसी बनाने के 2 तरीके हैंआपके मार्कट डॉक्यूमेंट में (समरी) ।

1. मैन्युअल रूप से

# My Table of content
- [Section 1](#id-section1)
- [Section 2](#id-section2)

<div id='id-section1'/>
## Section 1
<div id='id-section2'/>
## Section 2

2. प्रोग्रामिक रूप से

आप उदाहरण के लिए एक स्क्रिप्ट का उपयोग कर सकते हैं जो आपके लिए सारांश उत्पन्न करती है, मेरे प्रोजेक्ट पर एक नज़र डालिए github - summarizeMD पर -

मैंने अन्य स्क्रिप्ट / npm मॉड्यूल (उदाहरण के लिए doctoc ) की भी कोशिश की है, लेकिन कोई भी काम करने वाले एंकर के साथ TOC को पुन: पेश नहीं करता है।


`` डिव आईडी = ... `को
मार्कडाउनपैड 2

केवल एक ही फ़ोल्डर में काम करता है, सेटटेडिंग हेडिंग के लिए भी काम नहीं करता है।
गोजिल्ली

25
# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)

## Example [](#){name=example}
## Example2 [](#){name=example2}
## [Third Example](#){name=third-example}

यदि आप मार्कडाउन अतिरिक्त का उपयोग करते हैं, तो यह न भूलें कि आप लिंक, हेडर, कोड बाड़ और छवियों के लिए विशेष विशेषताओं को जोड़ सकते हैं।
https://michelf.ca/projects/php-markdown/extra/#spe-attr


11

विभिन्न मार्काडाउन पार्सर्स द्वारा उत्पन्न एंकर टैग भी नहीं हैं।

यदि आप Markdown parsers GFM (GitHub Flavoured Markdown) या Redcarpet के साथ काम कर रहे हैं, तो मैंने सामग्री की तालिका को संभालने के लिए एक Vim प्लगइन लिखा।

विशेषताएं

  1. मार्कडाउन फ़ाइलों के लिए सामग्री की तालिका बनाएं।

    समर्थित मार्कडाउन पार्सर्स:

    • GFM (GitHub फ्लेवर्ड मार्कडाउन)
    • लाल कालीन
  2. सामग्री की मौजूदा तालिका अपडेट करें।

  3. सहेजें पर सामग्री की मौजूदा तालिका को ऑटो अपडेट करें।

स्क्रीनशॉट

vim-markdown-toc

प्रयोग

सामग्री की तालिका बनाएं

कर्सर को उस पंक्ति पर ले जाएं जिसे आप सामग्री की तालिका को जोड़ना चाहते हैं, फिर आपके नीचे एक कमांड टाइप करें। कमांड, सामग्री की तालिका में कर्सर के बाद शीर्षक उत्पन्न करेगा।

  1. :GenTocGFM

    GFM लिंक शैली में सामग्री की तालिका बनाएं।

    यह कमांड GitHub रिपॉजिटरी में मार्कडाउन फ़ाइलों के लिए उपयुक्त है, जैसे README.md, और GitBook के लिए मार्कडाउन फाइलें।

  2. :GenTocRedcarpet

    Redcarpet लिंक शैली में सामग्री की तालिका बनाएं।

    यह कमांड Jekyll के लिए उपयुक्त है या कहीं और अपने मार्कडाउन पार्सर के रूप में Redcarpet का उपयोग करें।

    जीएफएम और रेडकारपेट स्टाइल टो लिंक के बीच अंतर जानने के लिए आप यहां देख सकते हैं ।

सामग्री की मौजूदा तालिका को मैन्युअल रूप से अपडेट करें

आम तौर पर आपको ऐसा करने की आवश्यकता नहीं होती है, सामग्री की मौजूदा तालिका डिफ़ॉल्ट रूप से सहेजने पर स्वतः अपडेट हो जाएगी। यदि आप इसे मैन्युअल रूप से करना चाहते हैं, तो बस :UpdateTocकमांड का उपयोग करें ।

डाउनलोड और दस्तावेज़

https://github.com/mzlogin/vim-markdown-toc


10

तुम भी इस्तेमाल कर सकते हैं pandoc, "दूसरे में एक मार्कअप प्रारूप" परिवर्तित करने के लिए "स्विस सेना चाकू" । यदि आप --tocतर्क की आपूर्ति करते हैं तो यह स्वचालित रूप से आउटपुट दस्तावेज़ में सामग्री की एक तालिका उत्पन्न कर सकता है।

संकेत: यदि आप htmlआउटपुट में सामग्री की एक तालिका चाहते हैं , तो आपको आपूर्ति करने की भी आवश्यकता है -sजो एक स्वसंपूर्ण दस्तावेज़ उत्पन्न करता है।

उदाहरण शेल कमांड लाइन:

./pandoc -s --toc input.md -o output.html


7

यदि आप एक जावास्क्रिप्ट / Node.js उपकरण का उपयोग करना चाहते हैं, पर एक नज़र डालें markdown-toc


7

आप इस बैश वन-लाइनर का उपयोग करके इसे उत्पन्न कर सकते हैं। मान लें कि आपकी मार्कडाउन फ़ाइल कहा जाता है FILE.md

echo "## Contents" ; echo ; 
cat FILE.md | grep '^## ' | grep -v Contents | sed 's/^## //' | 
  while read -r title ; do 
    link=$(echo $title | tr 'A-Z ' 'a-z-') ; 
    echo "- [$title](#$link)" ; 
    done

यह भी खूब रही। तर्क के रूप में फ़ाइल नाम के साथ एक उचित स्क्रिप्ट के रूप में इसे फिर से लिखने के लायक होगा, और शायद उप-वर्गों से निपटने के साथ।
मास्टरस्कैट

6

मैंने सिर्फ एक एक्सटेंशन को कोडित किया है python-markdown, जो शीर्षकों को पुनः प्राप्त करने के लिए अपने पार्सर का उपयोग करता है, और स्थानीय लिंक के साथ एक टीओसी को मार्कडाउन-स्वरूपित अनियंत्रित सूची के रूप में आउटपुट करता है। फ़ाइल है

... और इसे markdown/extensions/मार्कडाउन इंस्टालेशन में डायरेक्टरी में रखा जाना चाहिए । फिर, आपको बस इतना करना है, एक संदर्भ के रूप में एक विशेषता के <a>साथ एंकर टैग टाइप करें id="..."- तो इस तरह एक इनपुट पाठ के लिए:

$ cat test.md 
Hello
=====

## <a id="sect one"></a>SECTION ONE ##

something here

### <a id='sect two'>eh</a>SECTION TWO ###

something else

#### SECTION THREE

nothing here

### <a id="four"></a>SECTION FOUR

also...

... विस्तार को इस तरह कहा जा सकता है:

$ python -m markdown -x md_toc test.md 
* Hello
    * [SECTION ONE](#sect one)
        * [SECTION TWO](#sect two)
            * SECTION THREE
        * [SECTION FOUR](#four)

... और फिर आप अपने मार्कडाउन डॉक्यूमेंट में इस toc को वापस पेस्ट कर सकते हैं (या आपके टेक्स्ट एडिटर में शॉर्टकट है, जो वर्तमान में खुले दस्तावेज़ पर स्क्रिप्ट को कॉल करता है, और फिर उसी दस्तावेज़ में परिणामी TOC सम्मिलित करता है)।

ध्यान दें कि पुराने संस्करणों में मॉड्यूल python-markdownनहीं है __main__.py, और इस तरह, ऊपर के रूप में कमांड लाइन कॉल उन संस्करणों के लिए काम नहीं करेगा।


6

जैसा कि अन्य उत्तरों में उल्लेख किया गया है, स्वचालित रूप से सामग्री तालिका बनाने के कई तरीके हैं। अधिकांश खुले स्रोत सॉफ़्टवेयर हैं और इन्हें आपकी आवश्यकताओं के अनुकूल बनाया जा सकता है।

हालांकि, जो मुझे याद आ रहा था, वह मार्कडाउन द्वारा प्रदान किए गए सीमित विकल्पों का उपयोग करते हुए, सामग्री की तालिका के लिए एक नेत्रहीन आकर्षक स्वरूपण है। हम निम्नलिखित के साथ आए:

कोड

## Content

**[1. Markdown](#heading--1)**

  * [1.1. Markdown formatting cheatsheet](#heading--1-1)
  * [1.2. Markdown formatting details](#heading--1-2)

**[2. BBCode formatting](#heading--2)**

  * [2.1. Basic text formatting](#heading--2-1)

      * [2.1.1. Not so basic text formatting](#heading--2-1-1)

  * [2.2. Lists, Images, Code](#heading--2-2)
  * [2.3. Special features](#heading--2-3)

----

अपने दस्तावेज़ के अंदर, आप इस तरह से लक्ष्य सबपार्टर मार्कर रखेंगे:

<div id="heading--1-1"/>
### 1.1. Markdown formatting cheatsheet

मार्कडाउन का उपयोग आप कहां और कैसे करते हैं, इसके आधार पर, निम्नलिखित को भी काम करना चाहिए, और अच्छे दिखने वाले मार्कडाउन कोड प्रदान करता है:

### 1.1. Markdown formatting cheatsheet <a name="heading--1-1"/>

उदाहरण प्रस्तुत करना

सामग्री

1. मार्कडाउन

2. BBCode स्वरूपण


लाभ

  • आप जितने स्तर के अध्याय और उप-अध्याय जोड़ सकते हैं, उतने की आवश्यकता है। सामग्री की तालिका में, ये गहरे स्तर पर नेस्टेड अनऑर्डेड सूचियों के रूप में दिखाई देंगे।

  • आदेशित सूचियों का कोई उपयोग नहीं। ये एक इंडेंटेशन बनाएंगे, संख्या को लिंक नहीं करेंगे, और "1.1" जैसी दशमलव वर्गीकरण संख्या बनाने के लिए उपयोग नहीं किया जा सकता है।

  • पहले स्तर के लिए सूचियों का कोई उपयोग नहीं। यहां, एक अनियंत्रित सूची का उपयोग करना संभव है, लेकिन आवश्यक नहीं है: इंडेंटेशन और बुलेट केवल दृश्य अव्यवस्था और यहां कोई फ़ंक्शन नहीं जोड़ते हैं, इसलिए हम पहले टीओसी स्तर के लिए एक सूची का उपयोग नहीं करते हैं।

  • बोल्ड प्रिंट द्वारा सामग्री की तालिका में प्रथम-स्तरीय वर्गों पर दृश्य जोर।

  • छोटे, सार्थक सबपार्टर मार्कर जो ब्राउज़र के URL बार में "सुंदर" दिखते हैं, जैसे #heading--1-1कि वास्तविक हेडिंग के परिवर्तित टुकड़ों वाले मार्करों के बजाय।

  • कोड एच 2 हेडिंग ( ## …) सेक्शन के लिए, एच 3 हेडिंग ( ### …) सब-हेडिंग आदि के लिए उपयोग करता है। यह सोर्स कोड को पढ़ना आसान बनाता है क्योंकि ## …जब केस H1 हेडिंग के साथ शुरू होता है तो केस की तुलना में स्क्रॉल करने पर एक मजबूत विजुअल क्लू प्रदान करता है ( # …)। यह अभी भी तार्किक रूप से संगत है क्योंकि आप दस्तावेज़ शीर्षक के लिए H1 शीर्षक का उपयोग करते हैं।

  • अंत में, हम सामग्री की तालिका को वास्तविक सामग्री से अलग करने के लिए एक अच्छा क्षैतिज नियम जोड़ते हैं।

इस तकनीक के बारे में अधिक जानकारी के लिए और हम इसे फ़ोरम सॉफ़्टवेयर डिस्कोर्स के अंदर कैसे उपयोग करते हैं , यहाँ देखें


5

मैंने एक पाइथन स्क्रिप्ट लिखी है जो एक मार्कडाउन फ़ाइल को पार्स करता है और मार्कडाउन सूची के रूप में सामग्री की एक तालिका को आउटपुट करता है: md-to-toc

मुझे मिली अन्य लिपियों के विपरीत, md-to-to डुप्लिकेट शीर्षकों का सही समर्थन करता है। इसके लिए इंटरनेट कनेक्शन की भी आवश्यकता नहीं होती है, इसलिए यह किसी भी सार्वजनिक फाइल से उपलब्ध न होकर किसी भी md फाइल पर काम करता है।


5

विजुअल स्टूडियो कोड (VSCode) में आप एक्सटेंशन मार्केड ऑल इन वन का उपयोग कर सकते हैं ।

एक बार स्थापित होने के बाद, नीचे दिए गए चरणों का पालन करें:

  1. प्रेस CTRL+ SHIFT+P
  2. Markdown चुनें : सामग्री तालिका बनाएँ

4

मैंने बस यही काम करना शुरू किया (मार्कडाउन में नोट्स लें)। मैं MarkdownPreview प्लगइन के साथ उदात्त पाठ 2 का उपयोग करता हूं । बिल्ट-इन मार्कडाउन पार्सर सपोर्ट करता है [TOC]


1
उदात्त पाठ 3 में भी toc बनाने के लिए एक प्लगइन है: packagecontrol.io/packages/MarkdownTOC
fangda


4

Gitlab पर, मार्कडाउन इसका समर्थन करता है: [[_TOC_]]


1
यह समाधान अब और काम नहीं करता है, संभवत: चूंकि GitLab Redcarpet से kramdown में स्थानांतरित हो गया है, इसकी TODO सूची भी देखें: gitlab.com/gitlab-org/gitlab-docs/merge_requests/108
Amadeu Barbosa

गोलम V5 में भी काम करता है।
user2394284

4

बस एक प्लगइन के साथ अपने पाठ संपादक का उपयोग करें।

आपके संपादक के पास संभवतः आपके लिए इसे संभालने के लिए एक पैकेज / प्लगइन है। उदाहरण के लिए, Emacs में , आप markdown-toc TOC जनरेटर स्थापित कर सकते हैं । फिर जैसा कि आप संपादित करते हैं, बस बार-बार कॉल करेंM-x markdown-toc-generate-or-refresh-toc । यदि आप इसे अक्सर करना चाहते हैं तो यह एक महत्वपूर्ण बंधन है। HTML एंकर के साथ अपने डॉक को प्रदूषित किए बिना एक साधारण TOC उत्पन्न करना अच्छा है।

अन्य संपादकों के पास समान प्लगइन्स हैं, इसलिए लोकप्रिय सूची कुछ इस प्रकार है:


2

अल्बर्टोडेबर्टोली उत्तर के आधार पर समारोह को अतिरिक्त जांच और विराम चिह्नों के प्रतिस्थापन के साथ बनाया गया।

# @fn       def generate_table_of_contents markdown # {{{
# @brief    Generates table of contents for given markdown text
#
# @param    [String]  markdown Markdown string e.g. File.read('README.md')
#
# @return   [String]  Table of content in markdown format.
#
def generate_table_of_contents markdown
  table_of_contents = ""
  i_section = 0
  # to track markdown code sections, because e.g. ruby comments also start with #
  inside_code_section = false
  markdown.each_line do |line|
    inside_code_section = !inside_code_section if line.start_with?('```')

    forbidden_words = ['Table of contents', 'define', 'pragma']
    next if !line.start_with?('#') || inside_code_section || forbidden_words.any? { |w| line =~ /#{w}/ }

    title = line.gsub("#", "").strip
    href = title.gsub(/(^[!.?:\(\)]+|[!.?:\(\)]+$)/, '').gsub(/[!.,?:; \(\)-]+/, "-").downcase

    bullet = line.count("#") > 1 ? " *" : "#{i_section += 1}."
    table_of_contents << "  " * (line.count("#") - 1) + "#{bullet} [#{title}](\##{href})\n"
  end
  table_of_contents
end


2

मेरे लिए, @ टम द्वारा प्रस्तावित समाधान 2 स्तरों वाली सामग्री की तालिका के लिए एक आकर्षण की तरह काम करता है। हालाँकि, तीसरे स्तर के लिए यह काम नहीं किया। यह लिंक को पहले 2 स्तरों के रूप में प्रदर्शित नहीं करता था, यह सादे पाठ को प्रदर्शित करता है3.5.1. [bla bla bla](#blablabla) <br> इसके बजाय ।

मेरा समाधान उन लोगों के लिए @Tum (जो बहुत सरल है) के समाधान के लिए एक अतिरिक्त है, जिन्हें 3 स्तरों या अधिक के साथ सामग्री की तालिका की आवश्यकता होती है।

दूसरे स्तर पर, एक साधारण टैब आपके लिए इंडेंट सही ढंग से करेगा। लेकिन यह 2 टैब का समर्थन नहीं करता है। इसके बजाय, आपको एक टैब का उपयोग करना होगा और कई को जोड़ना होगा&nbsp; तीसरे स्तर को सही ढंग से संरेखित करने के लिए अपने आप को जितनी आवश्यक हो उतना होगा।

यहां 4 स्तरों का उपयोग करके एक उदाहरण दिया गया है (उच्च स्तर, भयानक यह बन जाता है):

# Table of Contents
1. [Title](#title) <br>
    1.1. [sub-title](#sub_title) <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.1. [sub-sub-title](#sub_sub_title)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.1.1. [sub-sub-sub-title](#sub_sub_sub_title)

# Title <a name="title"></a>
Heading 1

## Sub-Title <a name="sub_title"></a>
Heading 2

### Sub-Sub-Title <a name="sub_sub_title"></a>
Heading 3

#### Sub-Sub-Sub-Title <a name="sub_sub_sub_title"></a>
Heading 4

यह निम्नलिखित परिणाम देता है जहां सामग्री की तालिका का प्रत्येक तत्व इसके संबंधित अनुभाग का एक लिंक है। नोट भी<br>एक ही लाइन पर होने के बजाय एक नई लाइन जोड़ने के लिए ।

विषय - सूची

  1. शीर्षक
    १.१। उप-शीर्षक
           1.1.1। उप-उप-शीर्षक
                     १.१.१.१। उप-उप-उप-शीर्षक

शीर्षक

शीर्षक 1

उप-शीर्षक

शीर्षक २

उप-उप-शीर्षक

शीर्षक ३

उप-उप-उप-शीर्षक

शीर्षक ४


1

अपने वर्कफ़्लो के आधार पर, आप स्ट्रैपडाउन को देखना चाह सकते हैं

यह मूल एक का कांटा है ( http://strapdownjs.com ) जो सामग्री की तालिका की पीढ़ी को जोड़ता है।

यदि आप html फ़ाइलों में लिखना पसंद नहीं करते हैं, तो फ़्लाई पर सादे मार्कडाउन को लपेटने के लिए रेपो पर एक अपाचे कॉन्फ़िगर फ़ाइल (ठीक से अभी तक अपडेट नहीं की जा सकती है) है।


1

मुझे यकीन नहीं है, मार्कडाउन के लिए आधिकारिक दस्तावेज क्या है। क्रॉस-रेफरेंस को सिर्फ ब्रैकेट में [Heading], या खाली ब्रैकेट के साथ लिखा जा सकता है [Heading][]

दोनों पैंडोक का उपयोग कर काम करता है । इसलिए मैंने एक क्विक बैश स्क्रिप्ट बनाई, जो $ TOC को md फाइल में उसके TOC के साथ बदल देगी । (आपको एन्वास्बस्ट की आवश्यकता होगी, जो आपके डिस्ट्रो का हिस्सा नहीं हो सकता है)

#!/bin/bash
filename=$1
__TOC__=$(grep "^##" $filename | sed -e 's/ /1. /;s/^##//;s/#/   /g;s/\. \(.*\)$/. [\1][]/')
export __TOC__
envsubst '$__TOC__' < $filename

1

यदि आप ग्रहण का उपयोग करते हैं, तो आप Ctrl+ O(रूपरेखा) शॉर्टकट का उपयोग कर सकते हैं , यह सामग्री की तालिका के बराबर दिखाई देगा और अनुभाग शीर्षकों (स्वतः पूर्ण) में खोजने की अनुमति देगा।

आप बाह्यरेखा दृश्य (विंडो -> शो दृश्य -> ​​रूपरेखा) भी खोल सकते हैं, लेकिन इसकी कोई स्वत: पूर्ण खोज नहीं है।


1

Toc.py का उपयोग करें जो एक छोटी अजगर स्क्रिप्ट है जो आपके मार्कडाउन के लिए एक टेबल-ऑफ-कंटेंट तैयार करती है।

उपयोग:

  • अपनी मार्कडाउन फ़ाइल में वह स्थान जोड़ें <toc>जहाँ आप सामग्री की तालिका रखना चाहते हैं।
  • $python toc.py README.md( README.md के बजाय अपने मार्कडाउन फ़ाइलनाम का उपयोग करें )

चीयर्स!


आप स्क्रिप्ट अच्छी है, लेकिन यह प्रत्येक शीर्षक से पहले एक एंकर नहीं बनाता है। कम से कम बिटकॉइन में आवश्यक।
पॉल रूजियक्स

1

मैंने https://github.com/ekalinin/github-markdown-toc का उपयोग किया है जो एक कमांड लाइन उपयोगिता प्रदान करता है जो एक मार्कडाउन दस्तावेज़ से सामग्री की तालिका उत्पन्न करता है।

कोई प्लगइन्स, या मैक्रोज़ या अन्य निर्भरता नहीं। उपयोगिता को स्थापित करने के बाद, बस उपयोगिता के आउटपुट को उस दस्तावेज़ में स्थान पर पेस्ट करें जहां आप अपनी सामग्री की तालिका चाहते हैं। उपयोग करने के लिए बहुत सरल है।

$ cat README.md | ./gh-md-toc -

1

यदि आपकी मार्कडाउन फ़ाइल को bitbucket.org पर रेपो में प्रदर्शित किया जाना है, तो आपको [TOC]उस स्थान पर जोड़ना चाहिए जहां आप अपनी सामग्री की तालिका चाहते हैं। इसके बाद यह ऑटो जेनरेट होगा। अधिक जानकारी यहाँ:

https://confluence.atlassian.com/bitbucket/add-a-table-of-contents-to-a-wiki-221451163.html


1

एक रूबी स्क्रिप्ट है जिसे mdtoc.rb कहा जाता है जो एक GFM मार्कडाउन टेबल ऑफ़ कॉन्टेंट्स को ऑटो-जनरेट कर सकती है, और यह यहाँ पर पोस्ट की गई कुछ अन्य स्क्रिप्ट्स के समान ही है लेकिन थोड़ा अलग है।

एक इनपुट मार्कडाउन फ़ाइल की तरह दिया गया:

# Lorem Ipsum

Lorem ipsum dolor sit amet, mei alienum adipiscing te, has no possit delicata. Te nominavi suavitate sed, quis alia cum no, has an malis dictas explicari. At mel nonumes eloquentiam, eos ea dicat nullam. Sed eirmod gubergren scripserit ne, mei timeam nonumes te. Qui ut tale sonet consul, vix integre oportere an. Duis ullum at ius.

## Et cum

Et cum affert dolorem habemus. Sale malis at mel. Te pri copiosae hendrerit. Cu nec agam iracundia necessitatibus, tibique corpora adipisci qui cu. Et vix causae consetetur deterruisset, ius ea inermis quaerendum.

### His ut

His ut feugait consectetuer, id mollis nominati has, in usu insolens tractatos. Nemore viderer torquatos qui ei, corpora adipiscing ex nec. Debet vivendum ne nec, ipsum zril choro ex sed. Doming probatus euripidis vim cu, habeo apeirian et nec. Ludus pertinacia an pro, in accusam menandri reformidans nam, sed in tantas semper impedit.

### Doctus voluptua

Doctus voluptua his eu, cu ius mazim invidunt incorrupte. Ad maiorum sensibus mea. Eius posse sonet no vim, te paulo postulant salutatus ius, augue persequeris eum cu. Pro omnesque salutandi evertitur ea, an mea fugit gloriatur. Pro ne menandri intellegam, in vis clita recusabo sensibus. Usu atqui scaevola an.

## Id scripta

Id scripta alterum pri, nam audiam labitur reprehendunt at. No alia putent est. Eos diam bonorum oportere ad. Sit ad admodum constituto, vide democritum id eum. Ex singulis laboramus vis, ius no minim libris deleniti, euismod sadipscing vix id.

यह सामग्री तालिका बनाता है:

$ mdtoc.rb FILE.md 
#### Table of contents

1. [Et cum](#et-cum)
    * [His ut](#his-ut)
    * [Doctus voluptua](#doctus-voluptua)
2. [Id scripta](#id-scripta)

इस विषय पर मेरा ब्लॉग पोस्ट भी देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.