Piszę duży dokument Markdown i chciałbym umieścić na początku swego rodzaju spis treści, który będzie zawierał łącza do różnych lokalizacji w dokumencie. W jaki sposób mogę to zrobić?
Próbowałem użyć
[a link](# MyTitle)
gdzie MyTitle
jest tytuł w dokumencie i to nie działało.
markdown
multimarkdown
wykluczenie receptorów
źródło
źródło
Odpowiedzi:
W pandoc , jeśli użyjesz opcji
--toc
do tworzenia html, spis treści zostanie utworzony z linkami do sekcji i z powrotem do spisu treści z nagłówków sekcji. Podobnie jest z innymi formatami zapisywanymi przez pandoc, takimi jak LaTeX, rtf, rst itp. Tak więc z poleceniemten kawałek zniżki:
da to jako treść html:
źródło
git clone
umieszczony w najniższym lub najbardziej zewnętrznym katalogu tmbundle,~/Library/Application\ Support/TextMate/Bundles
aby uprościć integrację.-1
do pierwszego powtórzenia id,-2
do drugiego, itpGithub automatycznie analizuje tagi kotwicy z twoich nagłówków. Możesz więc wykonać następujące czynności:
W powyższym przypadku
Foo
nagłówek wygenerował tag zakotwiczenia o nazwiefoo
Uwaga : tylko jeden
#
dla wszystkich rozmiarów nagłówków, bez spacji#
i nazwy kotwicy, zakotwiczenia, nazwy znaczników zakotwiczenia muszą być pisane małymi literami i oddzielane myślnikami, jeśli d -multiAktualizacja
Działa również po wyjęciu z pudełka
pandoc
.źródło
[just](#like-this-one)
.## Foo
, spróbuj [to mój link do Foo] (# foo) ... to znaczy: pojedynczy hash, bez spacji między hash i małymi literami-kebab-case-name- nagłówkaEksperymentując, znalazłem rozwiązanie wykorzystujące,
<div…/>
ale oczywistym rozwiązaniem jest umieszczenie własnego punktu kontrolnego na stronie, gdziekolwiek chcesz, w ten sposób:przed i
po linii, którą chcesz „połączyć”. Następnie link przeceny, taki jak:
zabierze Cię tam gdziekolwiek w dokumencie.
<div…/>
Rozwiązanie wstawia „atrapę” podział prostu dodaćid
właściwość, a to potencjalnie uciążliwy do struktury strony, ale<a name="abcde"/>
rozwiązanie powinno być zupełnie nieszkodliwe.(PS: Umieszczenie kotwicy w linii, do której chcesz utworzyć łącze, może być w następujący sposób:
ale to zależy od tego, jak potraktuje to Markdown. Zaznaczam na przykład, że formater odpowiedzi przepełnienia stosu jest z tego zadowolony!)
źródło
## headers
.<div/>
kilkoma liniami poniżej, będzie to miało wpływ. Zamiast tego muszę owinąć tekst, który łączę, wdiv
klauzulę pełnego tagu i muszę ponownie określić zachowanie od zera za pomocą prawdziwego HTML. Gwizd.<a name="head1"/>
go<a id="head1"/>
.Może to być nieaktualny wątek, ale do tworzenia wewnętrznych linków do dokumentów w znacznikach w Github użyj ...
(UWAGA: małe litery #title)
Zadano dobre pytanie, więc zredagowałem swoją odpowiedź;
Można utworzyć łącze wewnętrzne do dowolnego rozmiaru tytułu, używając -
#
,##
,###
,####
I stworzył krótki przykład poniżej ... https://github.com/aogilvie/markdownLinkTestźródło
(#dependencies-title)
informuje Github, że jest to łącze wewnętrzne. Poniższy tekst może mieć dowolny rozmiar tytułu. Oto przykładowy test, który wykonałem ... https://github.com/aogilvie/markdownLinkTesttak, Markdown to robi, ale musisz podać nazwę kotwicy
<a name='xyx'>
.pełny przykład
to tworzy link
[tasks](#tasks)
w dalszej części dokumentu utworzysz nazwaną kotwicę (jakkolwiek to się nazywa).
pamiętaj, że możesz również owinąć go wokół nagłówka.
źródło
Podręcznik pandoc wyjaśnia, jak połączyć się z nagłówkami, używając ich identyfikatora. Nie sprawdziłem obsługi tego przez inne parsery, ale zgłoszono, że nie działa na github .
Identyfikator można podać ręcznie:
lub możesz użyć automatycznie wygenerowanego identyfikatora (w tym przypadku
#my-heading-text
). Oba są szczegółowo wyjaśnione w podręczniku pandoc .UWAGA : Działa to tylko podczas konwersji na HTML , LaTex , ConTeXt , Textile lub AsciiDoc .
źródło
Niektóre dodatkowe rzeczy, o których warto pamiętać, jeśli ya kiedykolwiek fantazję z symboli w pozycjach, które ya chcą, aby przejść do ...
... takie rzeczy jak
#
,;
,&
, i:
w pozycji łańcuchy są zazwyczaj są ignorowane / paski zamiast uciec, a można też użyć cytat łączy styl do szybkiego wykorzystania łatwiejsze.Punkty bonusowe?
Na wypadek, gdyby ktoś zastanawiał się, w jaki sposób obrazy i inne linki w nagłówku są przetwarzane w
id
...Ostrzeżenia
Renderowanie MarkDown różni się w zależności od miejsca, więc rzeczy takie jak ...
... na GitHub będzie miał element
id
taki jak ...... gdzie jako wanilia sanitarna spowodowałaby
id
...... co oznacza, że pisanie lub kompilowanie plików MarkDown z szablonów wymaga albo ukierunkowania jednego sposobu na slugifeing , albo dodania konfiguracji i logiki skryptowej dla różnych sprytnych sposobów, w które lubią czyścić tekst nagłówka.
źródło
Uniwersalne rozwiązania
To pytanie wydaje się mieć inną odpowiedź w zależności od realizacji obniżki.
W rzeczywistości oficjalna dokumentacja Markdown milczy na ten temat.
W takich przypadkach i jeśli potrzebujesz przenośnego rozwiązania, możesz użyć HTML.
Przed dowolnym nagłówkiem lub w tym samym wierszu nagłówka zdefiniuj identyfikator za pomocą tagu HTML.
Na przykład:
<a id="Chapter1"></a>
Zobaczysz to w kodzie, ale nie w renderowanym dokumencie.
Pełny przykład:
Zobacz pełny przykład (online i edytowalny) tutaj .
Aby przetestować ten przykład, musisz dodać dodatkową przestrzeń między listą treści a pierwszym rozdziałem lub zmniejszyć wysokość okna.
Nie używaj również spacji w nazwie identyfikatorów.
źródło
## Chapter 1
potrzebuje nad nim otwartej linii. (2). Link nie działa ...<span id="Chapter1"><span>
Nie ma takiej dyrektywy w specyfikacji Markdown. Przepraszam.
źródło
Gitlab używa GitLab Flavored Markdown (GFM)
Tutaj „wszystkie nagłówki renderowane przez Markdown automatycznie otrzymują identyfikatory”
Można użyć myszy do:
skopiuj i zapisz link klikając prawym przyciskiem myszy
Na przykład w pliku README.md mam nagłówek:
## series expansion formula of the Boettcher function
który daje link:
Prefiks można usunąć, więc link tutaj jest prosty
co tutaj oznacza:
Teraz może być używany jako:
[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)
Można to również zrobić ręcznie: zastąp spacje znakiem łącznika.
Przykład na żywo jest tutaj
źródło
Przy użyciu kramdown wydaje się, że działa to dobrze:
Widzę, że wspomniano o tym
działa wydajnie, ale ta pierwsza może być dobrą alternatywą dla elementów oprócz nagłówków lub nagłówków z wieloma słowami.
źródło
Ponieważ MultiMarkdown został wymieniony jako opcja w komentarzach.
W MultiMarkdown składnia łącza wewnętrznego jest prosta.
W przypadku dowolnego nagłówka w dokumencie wystarczy podać nazwę nagłówka w tym formacie
[heading][]
aby utworzyć łącze wewnętrzne.Przeczytaj więcej tutaj: MultiMarkdown-5 Odsyłacze .
źródło
Więcej spinów na
<a name="">
lewie:źródło
Oprócz powyższych odpowiedzi
Podczas ustawiania opcji
number_sections: true
w nagłówku YAML:RMarkdown automatycznie ponumeruje twoje sekcje.
Aby odwołać się do tych automatycznie ponumerowanych sekcji, po prostu umieść w pliku R Markdown:
[My Section]
Gdzie
My Section
jest nazwa sekcjiWydaje się, że działa to niezależnie od poziomu sekcji:
# My section
## My section
### My section
źródło