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' idattributo 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?
nameattributo crea anche variabili globali (consultare stackoverflow.com/questions/3434278/… ), quindi è possibile utilizzare l' idattributo 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 titleprodurrà 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 idnon è 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 ide namevengono utilizzati.
È importante sapere che la maggior parte dei browser trasforma ancora gli ID in variabili globali . Ecco un breve test . L'uso di a nameevita 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
namee idsono diversi.
fineuploader, non sarà possibile utilizzare il fineuploadermodulo. 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 TitleGithub 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' nameattributo è stato sostituito dall'attributo idnelle 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 .rmdfile autonomo minimo che mostra questo comportamento. Può essere lavorato a maglia a .pdfe .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'}
Marukusappia 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 .