GitHub wiki'de nasıl bir tür içerik tablosu oluşturabilirim?


109

Buraya bakarsanız: http://en.wikipedia.org/wiki/Stack_Overflow

Küçük bir "İçerik" bölümü olduğunu fark edeceksiniz, bağlantılardan birine tıklarsanız, sizi sayfada belirli bir bölüme gönderecektir.

Bunu GitHub wiki'de nasıl yaparım? Markdown ile mi yoksa kullandıkları her ne ise?


3
İlgili, ancak tam tekrarlamamak, bu konuyu daha ayrıntılı anlatır: stackoverflow.com/q/9721944/2291
Jon Adams

Yanıtlar:


114

Markdown Cheatsheet'in İçindekiler Tablosunda güzel bir şekilde gösterilmiştir .

##### Table of Contents  
[Headers](#headers)  
[Emphasis](#emphasis)  
...snip...    
<a name="headers"/>
## Headers

Bir GitHub Markdown dosyasında bir Başlığın üzerine gelirseniz, solunda basit bir bağlantı görürsünüz, bu bağlantıyı da kullanabilirsiniz. Bu bağlantının biçimi <project URL#<header name>. <header name>Bütün küçük harf olmalıdır.


43
Kesinlikle MediaWiki'nin _ _ TOC _ _ gibi otomatik olarak oluşturmanın bir yolu var mı?
LB

20
@ LB--: Bir GitHub wiki sayfasını düzenlerseniz ve "düzenleme stili" açılır menüsünü "MediaWiki" olarak değiştirirseniz, __TOC__doğrudan MediaWiki'yi kullanabilirsiniz . Açıkçası, temelde yatan otomatik üretim mantığı oradadır. Ancak işlevsellik, Markdown düzenleme stilinde ortaya çıkmış gibi görünmüyor. Oldukça talihsiz. Hepimiz bunun için özellik istekleri göndermeye başlayalım ve belki açarlar.
Andrew Janke

4
Orada olmanın "temeldeki otojenarasyon mantığından" söz ediyorum; farklı "düzenleme stilleri" farklı oluşturuculardan geçiyor gibi görünüyor. Yine de, bunu MD sürümünde bulundurmak harika olurdu çünkü bu oldukça popüler ve eklenmesi zor olamaz.
Andrew Janke

6
@AndrewJanke Daha fazla inceledim, MarkDown formatının içindekiler tablosunun otomatik olarak oluşturulması için herhangi bir desteği olmadığı anlaşılıyor ve bundan gurur duyuyorlar.
LB

6
Bağlantı oluşturmanın bir yolu vardır. Küçük harf olmalılar. Bunu bilmiyordum ve TOC'min neden çalışmadığını merak ediyordum. Kullandığım #Headersyerine #headers. Cevabında bir yazım hatası olduğunu düşündüm. Belki cevabınıza bu bilgiyi ekleyebilirsiniz.
t3chb0t

21

Olası (yarı otomatik) çözümlerden biri Eugene Kalinin'tir github-markdown-toc. Bu araç, esasen README.mddosyanızda ilerleyerek #bir İçindekiler Tablosu oluşturmak için başlıklarını tarar .

  1. Komut dosyasını indirin https://github.com/ekalinin/github-markdown-toc
  2. Kendinizi README.mdsenaryoya verin (Eugene'de belirtildiği gibi README.md)

    kedi README.md | bash github-markdown-toc

  3. Oluşturulan TOC'yi kesip yapıştırın ve README.mddosyanızın en üstüne yerleştirin

Bu bashuygulamanın yalnızca Linux üzerinde çalıştığını unutmayın (anlayabildiğim kadarıyla).

Bir yan not olarak, bir golang uygulaması var ve muhtemelen çalışmaya başlamak için daha zor .




13

Şu anda bunu markdown sözdizimi ( ) kullanarak yapmak mümkün değildir.md . Bazı fikirlerin listelendiği gibi işlenmiş markdown dosyalarında TOC'nin otomatik olarak üretilmesi hakkında süregelen resmi olmayan tartışmalar varREADME.md .

Ancak, aşağıdakiler gibi başka geçici çözümler de vardır:


1
Evet, büyük ölçüde ToC ve başlıklara bağlantı için asciidoc'a dönüştürüldüm. Markdown'un yetişmesini beklemekten sıkıldım.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

8

Markdown'a bağlı kalacak konumda değilseniz, aşağıdaki işlemleri yapabilirsiniz:

  • üzerinde GitHub / wiki : geçiş Markdown için MediaWiki . __TOC__Sözdizimi kullanın . Bkz örnek .
  • üzerinde GitHub / repo : geçiş Markdown için AsciiDoc . :toc:Sözdizimi kullanın . Bkz demo .

Ancak, GitHub / repo'daki Markdown dosyalarını kullanarak , Wikipedia'daki gibi GitHub Sayfalarında edinebilirsiniz.

  • zaman Jekyll etkinleştirildiğinde, aynı zamanda yarattığı GitHub Sayfaları kullanarak Kramdown varsayılan olarak
  • Kramdown ile birlikte gelir Table Of Content. {:toc}Sözdizimi kullanın . Açıklamaya bakın .

6

Visual Studio Kodu

Kullanmak edersek Visual Studio Kodu , kolay kullanımlı denilen uzatma yoktur One Markdown tüm anında herhangi .md dosya için TOC yapabilirsiniz.

görüntü açıklamasını buraya girin

Komut Paletini ( Ctrl-Shift-P) açın ->Markdown: Create Table of Contents

Orijinal md Otomatik TOC yerleştirmeden sonra

Otomatik güncelleme, düzenlediğiniz TOC'nizi karıştırır mı?

Ek bir ipucu olarak, "kaydederken otomatik TOC güncellemelerini" KAPATMAK isteyebilirsiniz:

  "markdown.extension.toc.updateOnSave": false,

Visual Studio Ayarlarınızda (Komut Paleti -> Tercihler: Ayarları Aç (JSON)).



2

Github'ın h1, h2, h3, vb. İçin id = ".." öznitelikleri oluşturmanın kendine özgü bir yolu olması nedeniyle ... id = "slug") tekerleği yeniden icat etmemek ve bu işlemi tersine mühendislik uygulayan kitaplığı kullanmak kullanışlıdır.

Bu görev için markdown-toc adında oldukça iyi bir kitaplık buldum .

Benim için en iyi çözüm gibi görünüyor çünkü makineme her zaman düğüm kurdum.

Sadece npx markdown-toc -i file.md'yi çalıştırın .

Ve bu görev için daha popüler araçlardan biri gibi görünüyor - en azından node.js ekosisteminde.

ls
cat <<EOF >> test.md | tee 
## Table of Contents

<!-- toc -->
- old toc 1
- old toc 2
- old toc 3
<!-- tocstop -->

## abc
This is a b c.

## xyz
This is x y z.
EOF
ls
cat test.md
npx markdown-toc -i test.md
cat test.md

çıktı:

görüntü açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.