Jawaban:
Take me to [pookie](#pookie)
seharusnya sintaks penurunan harga yang benar untuk melompat ke titik jangkar bernama pookie.
Untuk memasukkan titik jangkar dari nama itu gunakan HTML:
<a name="pookie"></a>
Penurunan harga tampaknya tidak masalah di mana Anda meletakkan titik jangkar. Tempat yang berguna untuk meletakkannya di header. Sebagai contoh:
### <a name="tith"></a>This is the Heading
bekerja dengan sangat baik. (Saya akan menunjukkan di sini tetapi penyaji SO menghapus jangkar.)
id=
versusname=
Versi sebelumnya dari posting ini disarankan untuk menggunakan <a id='tith' />
, menggunakan sintaks self-closing untuk XHTML, dan menggunakan id
atribut alih-alih name
.
XHTML memungkinkan tag apa pun menjadi 'kosong' dan 'ditutup sendiri'. Artinya, <tag />
adalah kependekan dari <tag></tag>
, sepasang tag yang cocok dengan tubuh kosong. Sebagian besar browser akan menerima XHTML, tetapi beberapa tidak. Untuk menghindari masalah lintas-browser, tutup tag secara eksplisit menggunakan <tag></tag>
, seperti yang direkomendasikan di atas.
Akhirnya, atribut name=
itu ditinggalkan dalam XHTML, jadi saya awalnya menggunakan id=
, yang semua orang tahu. Namun, HTML5 sekarang membuat variabel global dalam JavaScript saat menggunakan id=
, dan ini mungkin bukan yang Anda inginkan. Jadi, menggunakan name=
sekarang cenderung lebih ramah.
(Terima kasih kepada Slipp Douglas untuk menjelaskan XHTML dengan saya, dan nailer untuk menunjukkan HTML5 efek samping - melihat komentar dan nailer 's jawaban untuk detail lebih lanjut. name=
Muncul untuk bekerja di mana-mana, meskipun sudah ditinggalkan dalam XHTML.)
<a>
tanpa href bukan berarti itu menutup diri. Kecuali saya benar-benar gila, kedua -duanya : test-xhtml11 dan [ sln.6bitt.com/public/test-html5.html[(test-html5) membuat sisa halaman dalam tag <a>. Silakan dan periksa dengan inspektur web pilihan Anda.
<a id="hi"/> rest of doc
, tetapi diperlakukan seperti <a id="hi"> rest of doc</a>
. (Dan analisis elemen halaman menunjukkan ini juga.) Kesalahan saya: Saya melihat elemen yang ditampilkan bukan sumber mentah. Apakah Anda pikir jawabannya harus diubah, mengingat pengamatan ini?
name
atribut juga menciptakan variabel global (lihat stackoverflow.com/questions/3434278/... ), sehingga Anda mungkin juga menggunakan id
atribut sebagai target URL identifier fragmen, sebagaimana dimaksud.
Pada bitbucket.org solusi yang dipilih tidak akan berfungsi. Sebaliknya, saat menggunakan tajuk (dengan ##), dimungkinkan untuk merujuknya sebagai jangkar dengan mengawasinya sebagai # markdown-header-my-header-name, di mana # markdown-header- adalah awalan implisit yang dibuat oleh renderer, dan sisanya adalah judul header berhuruf rendah dengan tanda hubung menggantikan spasi.
Contoh
## My paragraph title
akan menghasilkan anchor implisit seperti ini
#markdown-header-my-paragraph-title
Seluruh URL sebelum setiap referensi jangkar adalah opsional, yaitu
[Some text](#markdown-header-my-paragraph-title)
setara dengan
[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title)
asalkan mereka berada di halaman yang sama.
Sumber: https://bitbucket.org/tutorials/markdowndemo/overview (edit sumber file .md ini dan lihat bagaimana jangkar dibuat).
## My paragraph title
akan menghasilkan jangkar berikut user-content-my-paragraph-title
, sehingga Anda dapat merujuknya dengan [Beberapa teks] (# user-content-my-paragraf-judul). Namun, saya belum menemukan dokumentasi resmi untuk ini.
[linky](#header)
adalah jangkar yang cukup, dan berfungsi saat dipublikasikan ke Gist juga.
Gunakan a name
. Menggunakan sebuah id
tidak diperlukan dalam HTML 5 dan akan membuat variabel global dalam JavaScript Anda
Lihat spesifikasi HTML 5, 5.9.8 Menavigasi ke pengidentifikasi fragmen - keduanya id
dan name
digunakan.
Penting untuk diketahui bahwa sebagian besar browser masih mengubah ID menjadi variabel global . Inilah tes cepat . Menggunakan name
menghindari membuat global dan segala konflik yang mungkin terjadi.
Contoh menggunakan nama:
Take me to [pookie](#pookie)
Dan jangkar tujuan:
### <a name="pookie"></a>Some heading
name
dan id
berbeda.
fineuploader
, Anda tidak akan dapat menggunakan fineuploader
modul. Menghindari menciptakan global yang tidak perlu membantu menghindari konflik itu.
Markdown Anchor mendukung hashmark, jadi tautan ke jangkar di halaman tersebut adalah sederhana[Pookie](#pookie)
Menghasilkan jangkar sebenarnya tidak didukung di Gruber Markdown, tetapi dalam implementasi lain, seperti Markdown Extra .
Dalam Markdown Extra, anchor ID ditambahkan ke header atau subjudul dengan {#pookie}
.
Github Flavoured Markdown di halaman repositori Git (tetapi tidak di Gists) secara otomatis menghasilkan jangkar dengan beberapa tag markup pada semua header (h1, h2, h3, dll.), Termasuk:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(ini untuk ikon tautan svg yang ditampilkan di atas mouse)Tidak termasuk ikon aria / svg, ketika seseorang menulis:
# Header Title
Github menghasilkan:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
Oleh karena itu, orang tidak perlu melakukan apa pun untuk membuat tautan tajuk, dan selalu dapat menautkannya dengan:
[Header Title](#header-title)
Tidak ada sintaks yang tersedia untuk melakukan ini dalam sintaks Markdown asli, tetapi Markdown Extra menyediakan sarana untuk setidaknya menetapkan ID untuk header - yang kemudian dapat Anda tautkan dengan mudah. Perhatikan juga bahwa Anda dapat menggunakan HTML biasa di Markdown dan Markdown Extra, dan bahwa name
atribut telah digantikan oleh id
atribut di versi HTML yang lebih baru.
Bagi siapa saja yang mencari solusi untuk masalah ini di GitBook. Beginilah cara saya membuatnya bekerja (di GitBook). Anda perlu menandai tajuk secara eksplisit, seperti ini:
# My Anchored Heading {#my-anchor}
Kemudian tautkan ke jangkar ini seperti ini
[link to my anchored heading](#my-anchor)
Solusi, dan contoh tambahan, dapat ditemukan di sini: https://seadude.gitbooks.io/learn-gitbook/
Terlambat ke pesta, tapi saya pikir penambahan ini mungkin berguna untuk orang yang bekerja dengan rmarkdown
. Di rmarkdown
sana ada dukungan built-in untuk referensi ke header di dokumen Anda.
Tajuk apa pun yang ditentukan oleh
# Header
dapat dirujuk oleh
get me back to that [header](#header)
Berikut ini adalah .rmd
file mandiri minimal yang menunjukkan perilaku ini. Ini bisa dirajut ke .pdf
dan .html
.
---
title: "references in rmarkdown"
output:
html_document: default
pdf_document: default
---
# Header
Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text.
Go back to that [header](#header).
Menggunakan Penurunan harga terbaru, Anda harus dapat menggunakan sintaks berikut:
[](){:name='anchorName'}
Ini harus membuat HTML berikut:
<a name="anchorName"></a>
Jika Anda ingin jangkar memiliki teks, cukup tambahkan teks jangkar di dalam tanda kurung:
[Some Text](){:name='anchorName'}
Maruku
tahu tentang sintaks ini. Lihat babelmark.
Untuk generator penurunan harga paling umum. Anda memiliki jangkar sederhana yang dibuat sendiri di setiap tajuk. Misalnya dengan pandoc , anchor yang dihasilkan akan menjadi slug case kebab dari header Anda.
echo "# Hello, world\!" | pandoc
# => <h1 id="hello-world">Hello, world!</h1>
Bergantung pada parser penurunan harga yang Anda gunakan, jangkar dapat berubah (lihat contoh symbolrush dan La muerte Peluda, semuanya berbeda!). Lihat babelmark ini di mana Anda dapat melihat jangkar yang dihasilkan tergantung pada implementasi penurunan harga Anda .