Multimarkdown'da adlandırılmış bir bağlantıya nasıl bağlanılır?


573

MultiMarkdown'un dahili bağlantılar / adlandırılmış çapalar için desteğinden bahsettim, ancak aslında nasıl yapılacağına dair tek bir örnek bulamıyorum.

Peki, adlandırılmış bağlantıyı belirtmek için sözdizimi nedir ve diğer URL'lere bağlantı vermekle aynı sözdizimi nedir (yerine #foo kullanarak http://....)?


Bir içindekiler tablosu oluşturmak için yapıyoruz ben tavsiye ederim doctoc bu (gerektirir otomatik hale getirmek node.js ). Doctoc, işaretleme kodunu oluşturur, böylece belge boyunca başlıklara nasıl bağlantı verileceğine ilişkin bir örnek sağlar (@ user1789493'ün cevabında açıklandığı gibi).
James Owers

Yanıtlar:


659

Standart Markdown'da, <a name="abcd"></a>bağlamak istediğiniz yere bir çapa yerleştirin ve aynı sayfada tarafından referans alın [link text](#abcd).

(Bu, bu yanıtta açıklanan nedenlerden dolayı kullanır name=ve kullanmaz .)id=

Uzaktan referanslar [link text](http://...#abcd)elbette kullanabilir .

Kaynak ve hedef metinler üzerinde kontrol sahibi olmanız koşuluyla bu bir rüya gibi çalışır. Çapa bir pozisyonda bile görünebilir, böylece:

### <a name="head1234"></a>A Heading in this SO entry!

üretir:

Bu SO girişinde bir Başlık!

ve hatta buna bağlanabiliriz:

and we can even [link](#head1234) to it so:

(SO'da, bağlantı çıkarıldığı için bağlantı çalışmaz.)


11
@ jj1bdx Şimdi yapıyorum - <a id="id"></a>form en iyisidir. Bkz bu SO soru / cevap .
Steve Powell

Güzel ek Steve. MultiMarkdown ile ilgili soru dışında cevap olarak işaretlerdim. İnsanların oyları bunun yararlı bir katkı olduğunu gösteriyor. Çok teşekkürler.
masukomi

3
Fyi: Github markdown, id yerine name = kullanmanızı bekliyor.
Dieter

@Dieter: name=XHTML'de kullanımdan kaldırıldı, ancak şimdi bunun id=HTML5'te bir yan etkisi olduğunu görüyorum, bu yüzden name=bu cevaba geri dönüyorum .
Steve Powell


461

İşaretleme dosyalarında üstbilgileriniz varsa, bunları doğrudan dosyaya bağlayabilirsiniz.

Markdown Üstbilgisi -

## The Header

bu, örtük bir kimlik oluşturur #the-header(iç boşlukları kısa çizgilerle değiştirin ve küçük harf yapın).

Bu kimliğe gitmek için bağlantıyı şu şekilde oluşturabilirsiniz:

[Link to Header](#the-header)

Bu şuna eşittir:

<a href="#the-header">Link to Header</a>

Lütfen referansın adının küçük harf olduğunu unutmayın #header.


30
BitBucket bağlantı kimliğini "markdown-header-" ile önek olarak görünüyor. Eğer başlığınız varsa ## This Header ##, bağlantı olacaktır [To This Header](#markdown-header-this-header). Başlığınızın kimliğinin ne olduğundan emin değilseniz, HTML değerlerini görmek için bir sayfa denetçisi kullanın.
Vinney Kelly

Benim için çalışmadı Pandoc genişletilmiş markdown, başka bir yerde çalışabilir.
Zelphir Kaltstahl

9
@SaurabhM bu SADECE html dönüştürücüsüne olan işaretlemeniz standarda uymazsa çalışacaktır. Standart, sabitleme etiketleri oluşturmaz. Şimdi, birçok kişi uymuyor, ancak bunun hiçbir yerde çalışmasını beklememelisiniz .
masukomi

9
Neden oh , Markdown gibi standartsız ve yarı pişmiş bir şeyde standartlaştırmak zorunda kaldık . AsciiDoc'un liderlik yapmasını bekleyemem.
hmijail resignees

1
GitHub üstbilginin adından önce kullanıcı içeriği ekler:[Link](user-content-the-header)
Melvin Witte

137

Alındığı Multimarkdown Kullanıcılar Kılavuzu (bunu işaret için Twitter'da @MultiMarkdown sayesinde)

[Some Text][]"Bazı Metin" adlı bir başlığa bağlantı verecek
ör.

### Some Text ###

Birden fazla başlığın aynı başlığa sahip olduğu vakaları netleştirmeye yardımcı olmak için seçtiğiniz isteğe bağlı bir etiket:

### Overview [MultiMarkdownOverview] ##

Bu, Genel Bakış adlı başka bir bölüme değil, özellikle bu bölüme başvurmak için [MultiMarkdownOverview] kullanmanızı sağlar. Bu, atx veya settext tarzı üstbilgilerle çalışır.

Üstbilgi tarafından kullanılanla aynı kimliği kullanarak bir bağlantı tanımladıysanız, tanımlanan bağlantı önceliğe sahiptir.

Belgedeki başlıklara ek olarak, daha sonra çapraz referanslar için de kullanılabilecek resimler ve tablolar için etiketler sağlayabilirsiniz.


FWIW, 23.4.1 itibariyle emacs markdown modu ile çalışmaz.
Attila Lendvai

5
Markdown dipnotları desteklemez. Bu yüzden çoğu "Markdown" modunda çalışmaz. Ancak MultiMarkdown, yazarlar için hayatı kolaylaştıran bir dizi uzantıyı destekler.
masukomi

11
Github başlıklardaki etiketleri desteklemiyor mu?
andig

1
Üstbilgide ':' olduğunda bu çalışmaz (en azından codepen.io'da).
Xiao Peng - ZenUML.com

2
bu bağlantı, MultiMarkdown'u yazan adamın belgeleri. Codepen.io'da ne yaptığınızdan emin değilim ama belgelerin doğru olduğundan eminim. Unutmayın MULTI Markdown NOT Markdown.
masukomi

100

Bir süre Github Aromalı Markdown'u test ettim ve dört kuralla özetleyebilirim:

  1. noktalama işaretleri kaldırılacak
  2. önde gelen beyaz alanlar bırakılacak
  3. büyük harf küçük harfe dönüştürülür
  4. harfler arasındaki boşluklar -

Örneğin, bölümünüzün adı şöyle ise:

## 1.1 Hello World

Bu şekilde bir bağlantı oluşturun:

[Link](#11-hello-world)

Adında kısa çizgiler varsa ne olur? Neye dönüşüyor? Kelime ile tire arasında boşluklar olduğuna dikkat edin. örnek: `` - - [My - Header] (# my --- header) # My - Header `` `Doğru olur mu?
Spencer Pollock

Bu stilde terminoloji için stackoverflow.com/a/17820138/2908724 . Ben kebap kasasını tercih ederim.
fil

22

İç bağlantılar oluşturmanın en iyi yolu (bölümlerle ilgili) liste oluşturmaktır, ancak başlık boşluklar içeriyorsa bağlantı yerine #section veya # section-title koyun.

---- İŞARETLEME ------------------------

Go to section
* [Hello](#hello)  
* [Hello World](#hello-world)
* [Another section](#new-section)    <-- it's called 'Another section' in this list but refers to 'New section'


## Hello
### Hello World
## New section

---- LİSTE ÖNİZLEME ------------------------

Go to section
Hello              <-- [Hello](#hello)                 -- go to `Hello` section
Hello World        <-- [Hello World](#hello world)     -- go to `Hello World` section
Another section    <-- [Another section](#new-section) -- go to `New section`

---- HTML ------------------------

<p>Go to section</p>
<ul>
<li><a href="#hello">Hello</a><br />
</li>
<li><a href="#hello-world">Hello World</a></li>
<li><a href="#new-section">Another section</a> &lt;– it’s called ‘Another section’ in this list but refers to ‘New section’</li>
</ul>
<h2 id="hello">Hello</h2>
<h3 id="hello-world">Hello World</h3>
<h2 id="new-section">New section</h2>

H1, h2, h3, vb. Üstbilgisi olup olmadığı önemli değildir, her zaman sadece bir tanesini kullanarak bunu belirtirsiniz #.
Bölüm listesindeki tüm referanslar, yukarıdaki örnekte gösterildiği gibi küçük harfli metne dönüştürülmelidir.

Bölüm bağlantısı küçük harf olmalıdır. Başka bir şekilde çalışmaz.
Bu teknik, tüm Markdown varyantları ve MultiMarkdown için çok iyi çalışır.

Şu anda Pandoc'u belge formatını dönüştürmek için kullanıyorum . MultiMarkdown'dan çok daha iyi.
Pandoc'u burada test edin


6
burada diğer yorumlarda belirtildiği gibi. standart izleyen herhangi bir markdown -> html dönüştürücüde çalışmaz. Başlıklarda bağlantı etiketi oluşturma yalnızca BAZI dönüştürücülerde gerçekleşir. Dahası, hepsi boşlukları tirelara dönüştürmeyecekler. Bu güvenilemez.
masukomi

1
GitHub Markdown, "Markdown Preview" adlı yerleşik bir pakete sahip Atom kodu düzenleyicide kullanıyorum . Önizleme modundan "HTML olarak kaydet ..." içerik menüsünü kullanarak bir html dosyası oluşturuyorum.
rafr3

evet, benim açımdan, başka hiçbir yerde çalışan tekniğinize güvenemezsiniz ve ne soru ne de cevabınız Atom'daki işaretleme ile ilgili değildir. Soru Markdown ile ilgili değil, MultiMarkdown ile ilgili.
masukomi

Bu bağlantı yöntemini kullanıyorum ama benim için çalışmıyor. bölüme / o başlığa kaymaz.
Tom Kustermans

Büyük / küçük harfe duyarlı hale getirin. Bir tanımlıyorsanız ## Hellobuna şöyle başvurmalısınız[Whatever you want](#Hello)
Victor Augusto

9

Mdcharm'da şöyle:

* [Descripción](#descripcion)
* [Funcionamiento](#funcionamiento)
* [Instalación](#instalacion)
* [Configuración](#configuracion)

### Descripción {#descripcion}
### Funcionamiento {#funcionamiento}
### Instalación {#instalacion}
### Configuración {#configuracion}

2

İşte benim çözümüm ( SaraubhMyanıtından türetilmiş )

**Jump To**: [Hotkeys & Markers](#hotkeys-markers) / [Radii](#radii) / [Route Wizard 2.0](#route-wizard-2-0)

Hangi size verir:

Atlamak : Kısayol Tuşları ve İşaretleyiciler / Yarıçaplar / Rota Sihirbazı 2.0

Değişiklikleri Not ve .karşı -ve aynı zamanda kaybına &bağlantılarında.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.