Penurunan harga untuk membuat halaman dan daftar isi?

359

Saya mulai menggunakan penurunan harga untuk membuat catatan.

Saya menggunakan yang ditandai untuk melihat catatan penurunan harga saya dan itu indah.

Tetapi karena catatan saya semakin panjang, saya merasa sulit untuk menemukan apa yang saya inginkan.

Saya tahu penurunan harga dapat membuat tabel, tetapi apakah ini dapat membuat daftar isi, yang melompat ke bagian, atau menentukan bagian halaman dalam penurunan harga?

Atau, apakah ada pembaca / editor yang dapat melakukan hal-hal seperti itu. Pencarian juga akan menjadi fitur yang bagus.

Singkatnya, saya ingin menjadikannya alat pencatat yang luar biasa dan fungsinya seperti menulis buku, dll.

beristirahat
sumber
2
jika Anda ingin menggunakan alat javascript / node.js, coba ditandai-toc
jonschlinkert
@jonschlinkert Anda harus mengirimkannya sebagai jawaban! Saat ini, jawabannya hanya menyarankan alat yang tidak gratis atau Python. Tidak terlalu banyak pilihan.
Domi
8
Saya mungkin harus menyebutkan bahwa di LaTeX ini dicapai dengan \tableofcontents. Jika roda akan diciptakan kembali, akan lebih baik untuk menyalin bagian yang baik.
Eero Aaltonen
2
Penurunan harga GitHub: stackoverflow.com/questions/9721944/...
Ciro Santilli 郝海东 冠状 病 六四 事件 事件
Demikian pula reStructuredText memiliki direktif bawaan untuk daftar isi yang dalam bentuk paling sederhana tampak seperti adil .. contents::.
saaj

Jawaban:

37

MultiMarkdown Composer tampaknya menghasilkan daftar isi untuk membantu saat mengedit.

Mungkin juga ada satu atau perpustakaan lain, yang dapat menghasilkan TOCs: lihat Python Markdown TOC Extension .

mxro
sumber
17
MultiMarkdown Composer hanya untuk MacOS
chmike
1
Bekerja Python Markdown TOC tautan: python-markdown.github.io/extensions/toc
John
2
Aplikasi ini tidak tersedia di wilayah UK.
kenorb
Ekstensi TOC menghasilkan tocs HTML, bukan Markdown. Sungguh luar biasa bahwa ini sulit.
rjurney
395

Anda bisa mencobanya.

# 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) 
Rick
sumber
10
Contoh ke-3 di atas tidak berfungsi. ## Example ## "Example2" ## Third Example<a name="third-example" /> adalah satu-satunya cara saya bisa menelan ruang sejauh ini. Tentunya tag ke-3 akan ditafsirkan sebagai - #Third- diikuti oleh spasi - lalu kata Contoh - dalam cuplikan Anda di atas? Tanda hubung tidak bekerja sama sekali. Terima kasih
twobob
Contohnya ada untuk melayani sebagai contoh untuk lebih dari satu kata. Semua kata dipecah menjadi tidak ada kunci caps, dan tidak ada spasi.
Rick
6
Bekerja dengan baik di RStudio. Hanya ingin menambahkan bahwa umlaut Jerman misalnya ü perlu ditulis tanpa umlaut di jangkar yaitu1. [Einführung](#einfuhrung)
steinbock
4
Jangkar tidak secara otomatis dibuat untuk pos di Bitbucket v4.5.2
Mike Rylander
1
Contoh keempat itulah yang saya cari. Terima kasih!
kenecaswell
221

Inilah metode yang bermanfaat. Harus menghasilkan referensi yang dapat diklik di editor MarkDown apa pun.

# 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

Menghasilkan:

Daftar Isi

  1. pengantar
  2. Beberapa paragraf
    1. Sub paragraf
  3. Paragraf lain

Inilah pengantar

Beberapa teks pengantar, diformat dalam judul 2 gaya

Beberapa paragraf

Teks paragraf pertama

Sub paragraf

Ini adalah sub paragraf, diformat dalam judul 3 gaya

Paragraf lain

Teks paragraf kedua

Tum
sumber
22
Saya suka meletakkan tag anchor pada baris di atas heading sehingga ketika tautan diklik heading muncul di halaman.
mgarey
4
Ini adalah satu-satunya yang berguna bagi saya. Dengan judul yang panjang, tidak mungkin melakukannya tanpa jangkar tag.
Matt Fletcher
Ini sangat bagus. Saya mulai menempatkan Daftar Isi di semua notebook Jupyter saya untuk bernavigasi dengan cepat di antara bagian-bagian.
jackdbd
@ Magarey Cukup taruh jangkar dulu:## <a name="foo" /> Foo
tobias_k
40

Untuk pengguna Visual Studio Code , ide yang bagus adalah menggunakan Markdown TOC plugin .

Untuk menginstalnya, luncurkan VS Code Quick Open ( Control/⌘+ P), rekatkan perintah berikut, dan tekan enter.

ext install markdown-toc

Dan untuk menghasilkan TOC, buka palet perintah ( Control/⌘+ Shift+ P) dan pilih Markdown TOC:Insert/Update optionatau gunakan Control/⌘+ MT.

Valdeci
sumber
7
Catatan: Saya baru saja menemukan bahwa menggunakan stock VSCode Anda dapat membuat tautan penurunan harga ke header:, [Section Foo](#foo-header-title)dan bahkan berfungsi di luar mode pratinjau (yaitu dalam penurunan harga biasa).
kitsu.eb
4
Alternatif lain untuk VSCode adalah vscode-markdown yang memiliki banyak fitur, termasuk ToC
Ciprian Tomoiagă
26

Anda dapat mencoba skrip ruby ​​ini untuk menghasilkan TOC dari file penurunan harga.

 #!/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
albertodebortoli
sumber
Bagus! Sekedar catatan, mungkin ingin menambahkan ifndef, includedan endif, antara arahan preprocessor lain, untuk daftar kata-kata terlarang. Juga, mendefinisikan daftar di luar lingkup loop menghindari harus menginstalnya kembali dengan setiap iterasi. Juga, ini akan mengambil komentar dari bahasa apa pun yang menggunakan #sintaksis komentar, termasuk Ruby, yang tidak baik. Saya bersedia mengedit jika Anda mau. Namun ini adalah awal yang baik dan bekerja dengan baik untuk tujuan saya. Terima kasih banyak!
Jeff Klein
Ini hanya berfungsi dengan atx heading (yaitu yang dimulai dengan #), bukan dengan yang setext (bergaris bawah).
gozzilli
terima kasih untuk ini, jika Anda menggunakan ini untuk redcarpet di rel, Anda harus pergi dengan title.parameterizeuntuk href, terima kasih!
Alexis
25

Ada 2 cara untuk membuat TOC Anda (ringkasan) dalam dokumen penurunan harga Anda.

1. Secara manual

# 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. Secara pemrograman

Misalnya, Anda dapat menggunakan skrip yang menghasilkan ringkasan untuk Anda, lihat proyek saya di github - summarizeMD -

Saya sudah mencoba juga modul script / npm lainnya (misalnya doctoc ) tetapi tidak ada yang mereproduksi TOC dengan anchor yang berfungsi.

Luca Davanzo
sumber
`` <div id = ... `tidak dikenali oleh MarkdownPad2 (Windows)
chmike
Hanya berfungsi di folder yang sama, juga tidak berfungsi untuk judul setext.
gozzilli
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}

Jika Anda menggunakan tambahan penurunan harga, jangan lupa Anda dapat menambahkan atribut khusus ke tautan, header, pagar kode, dan gambar.
https://michelf.ca/projects/php-markdown/extra/#spe-attr

Greg Bosen
sumber
11

Anchor tag yang dihasilkan oleh parser penurunan harga yang berbeda bahkan tidak.

Jika Anda bekerja dengan parser Markdown GFM (GitHub Flavoured Markdown) atau Redcarpet, saya menulis plugin Vim untuk menangani daftar isi.

fitur

  1. Hasilkan daftar isi untuk file Markdown.

    Parser Markdown yang didukung:

    • GFM (GitHub Flavoured Markdown)
    • Karpet merah
  2. Perbarui daftar isi yang ada.

  3. Perbarui otomatis daftar isi yang ada di save.

Tangkapan layar

vim-markdown-toc

Pemakaian

Hasilkan daftar isi

Pindahkan kursor ke baris yang ingin Anda tambahkan daftar isi, lalu ketikkan perintah di bawah yang sesuai untuk Anda. Perintah akan menghasilkan heading setelah kursor masuk ke daftar isi.

  1. :GenTocGFM

    Buat daftar isi dengan gaya tautan GFM.

    Perintah ini cocok untuk file Markdown di repositori GitHub, seperti README.md, dan file Markdown untuk GitBook.

  2. :GenTocRedcarpet

    Buat daftar isi dengan gaya tautan Redcarpet.

    Perintah ini cocok untuk Jekyll atau di mana pun menggunakan Redcarpet sebagai pengurai Markdown-nya.

    Anda dapat melihat di sini untuk mengetahui perbedaan antara tautan toc gaya GFM dan Redcarpet.

Perbarui daftar isi yang ada secara manual

Secara umum Anda tidak perlu melakukan ini, daftar isi yang ada akan secara otomatis diperbarui saat penyimpanan secara default. Jika Anda ingin melakukannya secara manual, gunakan saja:UpdateToc perintah.

Unduhan dan dokumen

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

Zhuang Ma
sumber
10

Anda juga dapat menggunakan pandoc, "swiss-army knife" untuk mengubah "satu format markup menjadi yang lain" . Secara otomatis dapat menghasilkan daftar isi dalam dokumen keluaran jika Anda menyediakan--toc argumen.

Petunjuk: Jika Anda ingin daftar isi dalam htmloutput, Anda juga perlu menyediakan-s yang menghasilkan dokumen mandiri.

Baris perintah shell contoh:

./pandoc -s --toc input.md -o output.html
Goforhistory
sumber
7

Jika Anda ingin menggunakan alat javascript / node.js, lihat markdown-toc .

jonschlinkert
sumber
7

Anda bisa membuatnya menggunakan bash one-liner ini. Mengasumsikan file penurunan harga Anda dipanggil 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
Asim Jalis
sumber
Ini bagus. Akan layak ditulis ulang sebagai skrip yang tepat dengan nama file sebagai argumen, dan mungkin dengan penanganan sub-bagian.
MasterScrat
6

Saya baru saja mengkodekan ekstensi python-markdown, yang menggunakan parsernya untuk mengambil judul, dan menampilkan TOC sebagai daftar tidak berurutan yang diformat dengan Markdown dengan tautan lokal. File tersebut adalah

... dan itu harus ditempatkan di markdown/extensions/direktori dalam instalasi penurunan harga. Kemudian, yang harus Anda lakukan adalah mengetikkan jangkar <a>tag dengan id="..."atribut sebagai referensi - jadi untuk teks input seperti ini:

$ 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...

... ekstensi bisa disebut seperti ini:

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

... dan kemudian Anda dapat menempelkan kembali toc ini dalam dokumen penurunan harga Anda (atau memiliki pintasan di editor teks Anda, yang memanggil skrip pada dokumen yang saat ini terbuka, dan kemudian memasukkan TOC yang dihasilkan dalam dokumen yang sama).

Perhatikan bahwa versi yang lebih lama dari python-markdowntidak memiliki __main__.pymodul, dan dengan demikian, panggilan baris perintah seperti di atas tidak akan berfungsi untuk versi tersebut.

sdaau
sumber
6

Seperti disebutkan dalam jawaban lain, ada beberapa cara untuk menghasilkan daftar isi secara otomatis. Sebagian besar adalah perangkat lunak open source dan dapat disesuaikan dengan kebutuhan Anda.

Apa yang saya lewatkan adalah, bagaimanapun, format visual yang menarik untuk daftar isi, menggunakan opsi terbatas yang disediakan Markdown. Kami datang dengan yang berikut:

Kode

## 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)

----

Di dalam dokumen Anda, Anda akan menempatkan penanda sub bagian target seperti ini:

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

Bergantung pada di mana dan bagaimana Anda menggunakan penurunan harga, yang berikut ini juga harus berfungsi, dan memberikan kode penurunan harga yang lebih bagus:

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

Contoh rendering

Kandungan

1. Penurunan harga

2. Format BBCode


Keuntungan

  • Anda dapat menambahkan level bab dan sub-bab sebanyak yang Anda butuhkan. Dalam Daftar Isi, ini akan muncul sebagai daftar unordered bersarang di tingkat yang lebih dalam.

  • Tidak menggunakan daftar yang dipesan. Ini akan membuat lekukan, tidak akan menautkan nomor, dan tidak dapat digunakan untuk membuat penomoran klasifikasi desimal seperti "1.1."

  • Tidak ada penggunaan daftar untuk level pertama. Di sini, menggunakan daftar yang tidak berurutan dimungkinkan, tetapi tidak perlu: lekukan dan peluru hanya menambah kekacauan visual dan tidak ada fungsi di sini, jadi kami tidak menggunakan daftar untuk level ToC pertama sama sekali.

  • Penekanan visual pada bagian tingkat pertama dalam daftar isi dengan cetak tebal.

  • Penanda sub bagian pendek dan bermakna yang terlihat "indah" di bilah URL peramban seperti #heading--1-1bukan penanda yang berisi bagian yang diubah dari tajuk yang sebenarnya.

  • Kode ini menggunakan judul H2 ( ## …) untuk bagian, judul H3 ( ### …) untuk sub-judul dll. Ini membuat kode sumber lebih mudah dibaca karena ## …memberikan petunjuk visual yang lebih kuat ketika menggulir melalui dibandingkan dengan kasus di mana bagian akan mulai dengan judul H1 ( # …). Itu masih konsisten secara logis saat Anda menggunakan judul H1 untuk judul dokumen itu sendiri.

  • Akhirnya, kami menambahkan aturan horizontal yang bagus untuk memisahkan daftar isi dari konten yang sebenarnya.

Untuk informasi lebih lanjut tentang teknik ini dan bagaimana kami menggunakannya di dalam wacana perangkat lunak forum , lihat di sini .

tanius
sumber
5

Saya menulis skrip python yang mem-parsing file penurunan harga dan menampilkan daftar isi sebagai daftar penurunan harga: md-to-toc

Tidak seperti skrip lain yang saya temukan, md-to-toc dengan benar mendukung judul rangkap. Itu juga tidak memerlukan koneksi internet, jadi itu berfungsi pada file md, bukan hanya yang tersedia dari repo publik.

Antonio Maiorano
sumber
5

Dalam Visual Studio Code (VSCode) Anda dapat menggunakan ekstensi Markdown All in One .

Setelah diinstal, ikuti langkah-langkah di bawah ini:

  1. Tekan CTRL+SHIFT +P
  2. Pilih Penurunan Harga: Buat Daftar Isi
Marco Lackovic
sumber
4

Di Gitlab, penurunan harga mendukung ini: [[_TOC_]]

Nicolas Thery
sumber
1
Solusi ini tidak berfungsi lagi, mungkin karena GitLab bermigrasi dari Redcarpet ke kramdown, lihat juga daftar TODO-nya: gitlab.com/gitlab-org/gitlab-docs/merge_requests/108
Amadeu Barbosa
Bekerja di Gollum v5 juga.
user2394284
4

Cukup gunakan editor teks Anda dengan sebuah plugin.

Editor Anda sangat mungkin memiliki paket / plugin untuk menangani ini untuk Anda. Misalnya, di Emacs , Anda dapat menginstal generator TOC markdown-toc . Kemudian saat Anda mengedit, panggil saja M-x markdown-toc-generate-or-refresh-toc. Ikatan kunci itu layak jika Anda ingin sering melakukannya. Ini bagus untuk menghasilkan TOC sederhana tanpa mencemari dokumen Anda dengan jangkar HTML.

Editor lain memiliki plugin yang serupa, jadi daftar yang populer adalah seperti:

Micah Elliott
sumber
2

Berdasarkan jawaban albertodebortoli dibuat fungsi dengan pemeriksaan tambahan dan penggantian tanda baca.

# @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
dmigous
sumber
2

MultiMarkdown 4.7 memiliki {{TOC}} makro yang menyisipkan daftar isi.

Michael R
sumber
2

Bagi saya, solusi yang diusulkan oleh @Tum bekerja seperti pesona untuk daftar isi dengan 2 level. Namun, untuk level 3 tidak berhasil. Itu tidak menampilkan tautan seperti untuk 2 tingkat pertama, itu menampilkan teks biasa 3.5.1. [bla bla bla](#blablabla) <br>sebagai gantinya.

Solusi saya adalah tambahan untuk solusi @Tum (yang sangat sederhana) untuk orang-orang yang membutuhkan daftar isi dengan 3 level atau lebih.

Pada tingkat kedua, tab sederhana akan melakukan indentasi dengan benar untuk Anda. Tetapi tidak mendukung 2 tab. Sebagai gantinya, Anda harus menggunakan satu tab dan menambahkan banyak&nbsp; Anda butuhkan untuk menyelaraskan level ke-3 dengan benar.

Berikut ini adalah contoh menggunakan 4 level (semakin tinggi levelnya, menjadi mengerikan):

# 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

Ini memberikan hasil berikut ini di mana setiap elemen dari daftar isi adalah tautan ke bagian terkait. Perhatikan juga<br> untuk menambahkan baris baru alih-alih berada di baris yang sama.

Daftar Isi

  1. Judul
    1.1. Sub-Judul
           1.1.1. Sub-Judul
                     1.1.1.1. Sub-Sub-Judul

Judul

Tajuk 1

Sub-Judul

Tajuk 2

Sub-Judul

Tajuk 3

Sub-Sub-Judul

Tajuk 4

Gabriel L.
sumber
1

Tergantung pada alur kerja Anda, Anda mungkin ingin melihat strapdown

Itu adalah garpu dari yang asli ( http://strapdownjs.com ) yang menambahkan generasi daftar isi.

Ada file konfigurasi apache pada repo (mungkin belum diperbarui dengan benar) untuk membungkus penurunan harga dengan cepat, jika Anda lebih suka tidak menulis dalam file html.

dengan demikian
sumber
1

Saya tidak yakin, apa dokumentasi resmi untuk penurunan harga. Referensi Silang dapat ditulis hanya dalam kurung [Heading], atau dengan kurung kosong [Heading][].

Keduanya bekerja menggunakan pandoc . Jadi saya membuat skrip bash cepat, yang akan menggantikan $ TOC dalam file md dengan TOC-nya. (Anda perlu envsubst, yang mungkin bukan bagian dari distro Anda)

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

Jika Anda menggunakan Eclipse, Anda dapat menggunakan cara pintas Ctrl+ O(garis besar), ini akan menunjukkan padanan daftar isi dan memungkinkan untuk mencari di judul bagian (pelengkapan otomatis).

Anda juga dapat membuka tampilan Outline (Window -> Show View -> Outline) tetapi tidak memiliki pencarian autocomplete.

Christophe Roussy
sumber
1

Gunakan toc.py yang merupakan skrip python kecil yang menghasilkan daftar isi untuk penurunan harga Anda.

Pemakaian:

  • Dalam file Penurunan harga Anda tambahkan di <toc>mana Anda ingin daftar isi ditempatkan.
  • $python toc.py README.md(Gunakan nama file penurunan harga Anda alih-alih README.md )

Bersulang!

Dhruv Batheja
sumber
Script Anda bagus tetapi tidak membuat jangkar sebelum setiap judul. Diperlukan setidaknya dalam bitbucket.
Paul Rougieux
1

Saya telah menggunakan https://github.com/ekalinin/github-markdown-toc yang menyediakan utilitas baris perintah yang secara otomatis menghasilkan daftar isi dari dokumen penurunan harga.

Tidak ada plugin, atau makro atau dependensi lainnya. Setelah menginstal utilitas, cukup tempelkan output utilitas ke lokasi di dokumen tempat Anda ingin daftar isi Anda. Sangat mudah digunakan.

$ cat README.md | ./gh-md-toc -
mmccabe
sumber
1

Ada skrip Ruby yang disebut mdtoc.rb yang dapat secara otomatis membuat Daftar Isi GFM, dan mirip tapi sedikit berbeda dengan beberapa skrip lain yang diposting di sini.

Diberikan file Penurunan harga input seperti:

# 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.

Ini menghasilkan daftar isi ini:

$ 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)

Lihat juga posting blog saya tentang topik ini.

Alex Harvey
sumber