Pembuat Daftar Isi
Tempel Markdown atau HTML dan dapatkan daftar isi yang disarangkan dan dapat diklik dengan siput jangkar aman tabrakan gaya GitHub asli, ditambah konten asli dengan ID judul yang dimasukkan.
Hasil
Daftar isi hanya berguna jika tautan jangkar di bawahnya, dan tautan jangkar hanya dapat diandalkan jika setiap judul mendapat slug yang unik dan dapat diprediksi. Generator ini mem-parsing judul-judul dari apa pun yang Anda tempel - Penurunan harga atau HTML - dan menetapkan masing-masing judul tersebut sebagai jangkar gaya GitHub yang sebenarnya: teks huruf kecil, spasi dan tanda baca diganti atau dihilangkan, dan, yang terpenting, sufiks asli yang aman dari tabrakan setiap kali dua judul menghasilkan slug yang sama. "Pendahuluan" kedua dalam dokumen menjadi pendahuluan-1, yang ketiga menjadi pendahuluan-2, dilacak dengan peta kejadian yang sedang berjalan persis seperti cara kerja slugger GitHub - bukan pintasan yang secara diam-diam menimpa tautan sebelumnya ketika judul diulang, yang merupakan satu-satunya cara paling umum untuk memecahkan skrip daftar isi linting tangan.
Penguraian penurunan harga didasarkan pada tujuan, karena mode kegagalan klasik untuk implementasi naif memperlakukan tanda "#" yang ditulis di dalam blok kode berpagar sebagai judul. Alat ini melacak apakah pagar ``` atau ~~~ saat ini terbuka saat menelusuri dokumen baris demi baris, dan hanya mengenali judul ATX (# hingga ######) di luar pagar terbuka - jadi contoh kode yang menampilkan komentar shell atau "# komentar" Python tidak pernah mencemari daftar isi Anda. Masukan HTML mengambil jalur yang berbeda dan sama nyatanya: diurai dengan DOMParser milik browser, judul dipilih berdasarkan nama tag, dan masing-masing atribut id disetel langsung pada elemen aktual sebelum dokumen diserialkan kembali ke string.
Ada dua hal yang muncul di ujung yang lain. Pertama, daftar isi itu sendiri, diekspor sebagai daftar Markdown bertingkat (- [Judul](#slug), diindentasi berdasarkan tingkat judul) dan daftar HTML bertingkat (<ul><li><a href="#slug">), masing-masing dengan tombol salinnya sendiri. Kedua, konten asli Anda dengan jangkar yang benar-benar terhubung: untuk masukan penurunan harga, Anda dapat memilih sintaks atribut judul {#slug} yang didukung secara luas yang digunakan oleh kramdown, Pandoc, MkDocs, dan Jekyll dari Halaman GitHub, atau kembali ke tag judul HTML biasa dengan id="slug" yang telah ditetapkan jika perender target Anda tidak memahami sintaksis atribut. Untuk masukan HTML, id dimasukkan langsung ke elemen judul yang diurai - tidak ada "mode" terpisah untuk dipilih karena tag sudah ada.
Semuanya berjalan secara lokal di browser Anda: penguraian, perhitungan slug, dan penyusunan ulang dokumen semuanya terjadi dalam JavaScript pada halaman yang Anda lihat saat ini, tanpa ada yang diunggah di mana pun. Hal ini penting untuk dokumentasi draf, wiki internal, atau postingan blog yang belum dipublikasikan yang belum siap Anda tempelkan ke layanan pihak ketiga hanya untuk mendapatkan daftar isi yang berfungsi.