Risposte:
Take me to [pookie](#pookie)
dovrebbe essere la sintassi di markdown corretta per saltare al punto di ancoraggio chiamato pookie.
Per inserire un punto di ancoraggio con quel nome usa HTML:
<a name="pookie"></a>
A Markdown non sembra importare dove hai messo il punto di ancoraggio. Un posto utile per metterlo è in un'intestazione. Per esempio:
### <a name="tith"></a>This is the Heading
funziona molto bene. (Dimostrerei qui ma il renderer di SO elimina l'ancora.)
id=
controname=
Una versione precedente di questo post suggeriva di usare <a id='tith' />
, usando la sintassi a chiusura automatica per XHTML e usando l' id
attributo invece di name
.
XHTML consente che qualsiasi tag sia "vuoto" e "chiuso". Cioè, <tag />
è <tag></tag>
una scorciatoia per , una coppia di tag abbinata con un corpo vuoto. La maggior parte dei browser accetta XHTML, ma alcuni no. Per evitare problemi tra browser, chiudi esplicitamente il tag usando <tag></tag>
, come raccomandato sopra.
Infine, l'attributo è name=
stato deprecato in XHTML, quindi ho usato originariamente id=
, cosa che tutti riconoscono. Tuttavia, HTML5 ora crea una variabile globale in JavaScript durante l'utilizzo id=
e questo potrebbe non essere necessariamente quello che desideri. Quindi, l'utilizzo name=
è ora probabilmente più amichevole.
(Grazie a Slipp Douglas per avermi spiegato XHTML, e inchiodato per aver sottolineato l'effetto collaterale HTML5 - vedi i commenti e la risposta del chiodatore per maggiori dettagli. Sembra funzionare ovunque, sebbene sia deprecato in XHTML.)name=
<a>
senza un href non significa che si chiude da solo. A meno che non stia diventando completamente pazzo, entrambi: test-xhtml11 e [ sln.6bitt.com/public/test-html5.html lasting(test- html5) rendono il resto della pagina all'interno del tag <a>. Vai avanti e ispeziona con un ispettore web di tua scelta.
<a id="hi"/> rest of doc
, ma è stato trattato come <a id="hi"> rest of doc</a>
. (E anche l'analisi degli elementi della pagina mostra questo.) Il mio errore: ho osservato gli elementi visualizzati non la fonte non elaborata. Ritieni che la risposta debba essere modificata alla luce di questa osservazione?
name
attributo crea anche variabili globali (consultare stackoverflow.com/questions/3434278/… ), quindi è possibile utilizzare l' id
attributo come destinazione degli URL identificatore di frammento, come previsto.
Su bitbucket.org la soluzione votata non funzionerebbe. Invece, quando si usano le intestazioni (con ##), è possibile fare riferimento a loro come ancore prefissandole come # markdown-header-my-header-name, dove # markdown-header- è un prefisso implicito generato dal renderer e il resto è il titolo dell'intestazione inferiore con trattini che sostituiscono gli spazi.
Esempio
## My paragraph title
produrrà un'ancora implicita come questa
#markdown-header-my-paragraph-title
L'intero URL prima di ogni riferimento di ancoraggio è facoltativo, ad es
[Some text](#markdown-header-my-paragraph-title)
è equivalente a
[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title)
purché si trovino nella stessa pagina.
Fonte: https://bitbucket.org/tutorials/markdowndemo/overview (modifica la fonte di questo file .md e guarda come vengono fatte le ancore).
## My paragraph title
produrrà il seguente ancoraggio user-content-my-paragraph-title
, quindi puoi fare riferimento con [Alcuni testi] (# user-content-my-paragraph-title). Tuttavia, non ho trovato documentazione ufficiale per questo.
[linky](#header)
stata un'ancora sufficiente e ha funzionato anche quando è stata pubblicata su Gist.
Usa a name
. L'uso di un id
non è necessario in HTML 5 e creerà variabili globali nel tuo JavaScript
Vedere la specifica HTML 5, 5.9.8 Navigazione verso un identificatore di frammento - entrambi id
e name
vengono utilizzati.
È importante sapere che la maggior parte dei browser trasforma ancora gli ID in variabili globali . Ecco un breve test . L'uso di a name
evita la creazione di globuli e qualsiasi conflitto che potrebbe derivarne.
Esempio usando un nome:
Take me to [pookie](#pookie)
E l'ancora di destinazione:
### <a name="pookie"></a>Some heading
name
e id
sono diversi.
fineuploader
, non sarà possibile utilizzare il fineuploader
modulo. Evitare la creazione di globi non necessari aiuta a evitare tali conflitti.
Markdown Anchor supporta l'hashmark, quindi sarebbe semplicemente un collegamento a un anchor nella pagina[Pookie](#pookie)
Generare l'ancora non è effettivamente supportato in Gruber Markdown, ma è in altre implementazioni, come Markdown Extra .
In Markdown Extra, l'ID di ancoraggio viene aggiunto a un'intestazione o sottotitolo con {#pookie}
.
Github Flavored Markdown nelle pagine del repository Git (ma non in Gists) genera automaticamente ancore con diversi tag di markup su tutte le intestazioni (h1, h2, h3, ecc.), Tra cui:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(questo è per un'icona di collegamento svg che viene visualizzata al passaggio del mouse)Escludendo l'icona aria / svg, quando si scrive:
# Header Title
Github genera:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
Pertanto, non è necessario fare nulla per creare i collegamenti di intestazione e si può sempre collegarli con:
[Header Title](#header-title)
Non esiste una sintassi prontamente disponibile per farlo nella sintassi Markdown originale, ma Markdown Extra fornisce un mezzo per assegnare almeno gli ID alle intestazioni, a cui puoi quindi collegarti facilmente. Si noti inoltre che è possibile utilizzare HTML normale sia in Markdown che in Markdown Extra e che l' name
attributo è stato sostituito dall'attributo id
nelle versioni più recenti di HTML.
Per chiunque cerchi una soluzione a questo problema in GitBook. È così che l'ho fatto funzionare (in GitBook). Devi taggare esplicitamente l'intestazione, in questo modo:
# My Anchored Heading {#my-anchor}
Quindi collegare a questo ancoraggio in questo modo
[link to my anchored heading](#my-anchor)
La soluzione e altri esempi sono disponibili qui: https://seadude.gitbooks.io/learn-gitbook/
In ritardo alla festa, ma penso che questa aggiunta possa essere utile per le persone che lavorano rmarkdown
. In rmarkdown
è integrato il supporto per i riferimenti alle intestazioni nel documento.
Qualsiasi intestazione definita da
# Header
può essere referenziato da
get me back to that [header](#header)
Di seguito è riportato un .rmd
file autonomo minimo che mostra questo comportamento. Può essere lavorato a maglia a .pdf
e .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).
Utilizzando l'ultimo Markdown, dovresti essere in grado di usare la sintassi seguente:
[](){:name='anchorName'}
Questo dovrebbe creare il seguente HTML:
<a name="anchorName"></a>
Se si desidera che l'ancoraggio contenga testo, è sufficiente aggiungere il testo di ancoraggio tra parentesi quadre:
[Some Text](){:name='anchorName'}
Maruku
sappia solo di questa sintassi. Vedi il segno della bambina.
Per i generatori di markdown più comuni. Hai un semplice ancoraggio auto-generato in ogni intestazione. Ad esempio con pandoc , l'ancora generata sarà una lumaca del caso kebab dell'intestazione.
echo "# Hello, world\!" | pandoc
# => <h1 id="hello-world">Hello, world!</h1>
A seconda del parser markdown che usi, l'ancora può cambiare (prendi l'esempio di symbolrush e La muerte Peluda risponde, sono diversi!). Vedi questo segno di spunta in cui puoi vedere gli ancoraggi generati in base all'implementazione del markdown .