Markdown dosyasındaki GitHub göreli bağlantısı


831

<a>Bir Markdown dosyasının içindeki bağlantıyı, aynı depo ve şube içindeki başka bir dosyaya (geçerli dalla ilgili bağlantı olarak da bilinir) bir URL bağlantısı oluşturmanın bir yolu var mı ?

Örneğin, ana dalda ben gibi bir şey yapmak istiyorum bir README.md dosyası var:

# My Project
is really really cool. My Project has a subdir named myLib, see below.

## myLib documentation
see documentation [here](myLib/README.md)

Bu, bir .md'den aynı dalda başka bir bağlantıya bağlanmamı ve hangi dalda olduğumu düşünmeme izin vermeyecek (github.com dal adını içeren mutlak bir URL yapmak zorunda kalmama).

İşte ne demek istediğimin çalışan bir örneği:

  1. GOTO http://github.com/rynop/testRel , bağlantı çalışmıyor.
  2. GOTO http://github.com/rynop/testRel/blob/master/README.md , bağlantı çalışıyor.

Bu beklenen bir nokta çünkü bu noktada başlangıç ​​URL'si dalda. Şimdi deponun kökündeki README.md dosyasında geçerli dalı almak nasıl alabilirim?

Güncelleme : Bu özellik isteği için GitHub'a karşı bir sorun açtım .


21
Son olarak : göreli bağlantılar artık desteklenmektedir! Cevabımı güncelledim :)
VonC

Başka bir .md açmaya veya başka bir web http / s veya html veya hatta .jpg, .png veya jpeg sayfalarına gitmeye çalışıyorsanız, ancak Markdown'un bir .pdf dosyasını nasıl açtığınızı gösterirsiniz. Sözdizimini, .md dosyasıyla aynı dizinde bulunan .pdf dosyasını açması için doğru şekilde alamıyorum. Herkes .pdf açmak için yardımcı olabilir mi?
Elton

Bu soruda bazı çözümler bulabilirsiniz: stackoverflow.com/questions/40422790/…
Oleg Pro

Yanıtlar:


970

Güncelleme 30, Ocak 2013 16 ay sonra:

GitHub Blog Post Biçimlendirme dosyalarındaki göreli bağlantılar :

Bugünden itibaren GitHub, biçimlendirme dosyalarındaki göreli bağlantıları desteklemektedir .
Artık GitHub'ın kendisinde veya yerel olarak farklı bir biçimlendirme oluşturucu kullanarak belgeleri görüntüleseniz de doğrudan farklı belge dosyaları arasında bağlantı kurabilirsiniz.

Bağlantı tanımlarına ve nasıl çalıştığına dair örnekler mi istiyorsunuz? İşte sizin için bazı Markdown.
Mutlak bağlantı yerine:

[a link](https://github.com/user/repo/blob/branch/other_file.md)

… Göreli bir bağlantı kullanabilirsiniz:

[a relative link](other_file.md)

ve bağlantı kurulduğundan emin olacağız user/repo/blob/branch/other_file.md.

Gibi bir geçici çözüm [a workaround link](repo/blob/master/other_file.md)kullanıyorsanız, yeni sözdizimini kullanmak için belgelerinizi güncellemeniz gerekir.

Bu aynı zamanda belgelerinizin GitHub'a her zaman işaret etmeden kendi başına kolayca durabileceği anlamına gelir .


20 Aralık 2011 Güncellemesi:

GitHub biçimlendirme sorunu 84 şu anda tarafından kapatılır technoweenie yorum ile,:

Bunun <base>için bir etiket eklemeyi denedik , ancak sitedeki diğer göreli bağlantılarda sorunlara neden oluyor.


12 Ekim 2011:

Markdown'un kendisinin (!) Ham kaynağınaREADME.md bakarsanız , göreli yollar desteklenmiyor gibi görünüyor.
Aşağıdaki gibi referanslar bulacaksınız:

[r2h]: http://github.com/github/markup/tree/master/lib/github/commands/rest2html
[r2hc]: http://github.com/github/markup/tree/master/lib/github/markups.rb#L13

1
Hmm .. Ben göreceli bir URL yapabilirim ([link] someDir / README.md deneyin, bir çapa yapacak) - ama github şube farkında gibi göreceli bağlantı istiyorum: myRepo / tree / <$ curBranch> /pathToMd.md . Muhtemelen sadece github.com ile bir özellik isteği açacağım
rynop

1
Hayır. Tüm örneğe buradan bakın github.com/rynop/testRel . Şube belirten göreceli bir bağlantı yapabilirdim, ama bu ilk etapta yapmaya çalıştığım şeyin amacını bozuyor. İ bir alt dizinde bir .md diğerine bağlantı olsaydı, ben göreceli bağlantı sadece iyi ele olacağını düşünüyorum. Repo'nun kökündeki .md'den bağlantı yapılırken sorun oluşur.
rynop

2
İlgili: Bir wiki sayfasından diğerine bağlantı oluşturmak için [Welcome](./wiki/Hello)çalışır, burada Hello aynı repodaki başka bir wiki sayfasıdır.
Wayne Bloss

1
@wizlb Ben sadece yol olmadan denedim ve [Welcome](Hello)Hello aynı repo başka bir wiki sayfası olduğu yerde de çalışır .
Mottie

2
Bu normal wiki sayfalarında çalışır, ancak _Sidebar.md dosyası eklerseniz, bağlantıların wiki ana sayfasında sayfaların geri kalanından nasıl çözüldüğü arasında bir fark vardır. Burada her şeyi şanssız denedim. Şimdiye kadar bulduğum tek şey 2 farklı _Sidebar.md dosyası kullanmak ve dosyaları alt dizinler halinde düzenlemek.
NightOwl888

93

Örneğin, aşağıdakine benzer bir deponuz var:

project/
    text.md
    subpro/
       subtext.md
       subsubpro/
           subsubtext.md
       subsubpro2/
           subsubtext2.md

Göreli bağlantı subtext.mdin text.mdşöyle olabilir:

[this subtext](subpro/subtext.md)

Göreli bağlantı subsubtext.mdin text.mdşöyle olabilir:

[this subsubtext](subpro/subsubpro/subsubtext.md)

Göreli bağlantı subtext.mdin subsubtext.mdşöyle olabilir:

[this subtext](../subtext.md)

Göreli bağlantı subsubtext2.mdin subsubtext.mdşöyle olabilir:

[this subsubtext2](../subsubpro2/subsubtext2.md)

Göreli bağlantı text.mdin subsubtext.mdşöyle olabilir:

[this text](../../text.md)

1
Bulduğum bir şey, bağlantılar büyük / küçük harfe duyarlı, beklemediğim.
Andy Wiesendanger

Dizinlerimde boşluk varsa ne olur?
Rishav

16

31 Ocak 2013 itibariyle Github markdown dosyalara göreli bağlantıları desteklemektedir .

[a relative link](markdown_file.md)

Ancak, bazı eksiklikler vardır. bu yorum dizisinde tartışılan .

Alternatif olarak, kullanabileceğiniz Gitdown inşa etmek deposuna tam URL'ler ve hatta onları farkında, örneğin dallara yapmak

{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown
{"gitdown": "gitinfo", "name": "branch"} // master

Gitdown bir GitHub etiketleme ön işlemcisidir. GitHub deposu için bir belge sayfası tutmayla ilgili ortak görevleri kolaylaştırır; örneğin, değişkenler dahil olmak üzere içindekiler tablosu oluşturma, URL'ler oluşturma ve girdinin işlenmesi sırasında depo hakkında bilgi alma. Gitdown, bina komut dosyalarınızla sorunsuz bir şekilde bütünleşir.

Ben Gitdown kütüphanesinin yazarıyım.


1
@Thomas Bu Yığın Taşması kullanım koşullarının bir parçası mı? Evet ise, lütfen bir bağlantı paylaşın. Böyle bir gereksinimin arkasındaki motivasyonu bilmek isterim.
Gajus

5
"İyi, alakalı yanıtlar gönderin ve ürününüzle veya web sitenizle ilgili bazılarının hepsi olmasa bile, sorun değil. Ancak, yanıtlarınızdaki ilişkinizi açıklamalısınız." stackoverflow.com/help/behavior
Thomas

1
Bu, Stack Overflow'un çok fazla kaçınmaya çalıştığı meta bilgiler altında olduğunu düşünür, yani konu dışı bir tartışmayı teşvik eder.
Gajus

14

GitHub, minimum çalışma ile bunu daha iyi hale getirebilir. İşte bir çözüm.

Sanırım daha çok bir şey istiyorsun

[Your Title](your-project-name/tree/master/your-subfolder)

veya README'nin kendisine işaret etmek için

[README](your-project-name/blob/master/your-subfolder/README.md)

İyi şanslar


3
evet bugün yaptığım şey bu. Şube bilgisini linke pişirmek istemiyorum. Göreli olmalı.
rynop

8

Sadece bunu eklemek istedim çünkü hedef bağlantı adında boşluk bulunan bir dizinse yukarıdaki çözümlerden hiçbiri işe yaramadı. Hedef bağlantı bir dizinse ve alanı varsa \ ile boşluktan kaçmak bile bağlantıyı Github'da oluşturmaz. Sadece benim için çalışılan çözüm %20her alan için kullanıyor .

örneğin: eğer dizin yapısı bu ise

Top_dir
|-----README.md
|-----Cur_dir1
      |----Dir A
           |----README.md
      |----Dir B
           |----README.md

Dir AREADME.md dosyasında bağlantı oluşturmak için Top_dirbunu yapabilirsiniz:

[Dir 1](Cur_dir1/Dir%20A)

8

Dosyaya bağlanabilir, ancak klasörlere bağlanamaz ve Github'un /blob/master/göreli bağlantınızdan önce ekleyeceğini unutmayın (ve klasörlerin, ne HTML <a>etiketleri ne de Markdown bağlantısıyla bağlanamayacakları için bu kısmı yoktur ).

Yani, içinde bir dosya varsa myrepo/src/Test.java, bunun gibi bir url'si olacaktır:

https://github.com/WesternGun/myrepo/blob/master/src/Test.java

Ve benioku dosyasına bağlamak için şunu kullanabiliriz:

[This is a link](src/Test.java)

veya: <a href="src/Test.java">This is a link</a>.

(Sanırım, dalı mastertemsil eder masterve dosya başka bir dalda olduğunda farklılık gösterir.)


7

İle repo kökünden göreli URL'leri kullanabilirsiniz <a href="">. Repo'nuzun ismi testRelvarsayalım, aşağıdakileri koyun testRel/README.md:

# My Project
is really really cool. My Project has a subdir named myLib, see below.

## myLib docs
see documentation:
    * <a href="testRel/myLib">myLib/</a>
    * <a href="testRel/myLib/README.md">myLib/README.md</a>

3
bu geçerli değil md sözdizimi
astroanu

6

Bu soru oldukça eski, ama yine de önemli görünüyor, çünkü readme.md'den Github'daki wiki sayfalarına göreli referanslar koymak kolay değil.

Biraz oynadım ve bu göreceli bağlantı oldukça iyi çalışıyor:

[Your wiki page](../../wiki/your-wiki-page)

İkisi tabanınızı ../çıkaracak /blob/master/ve başlangıç ​​noktası olarak kullanacaktır. Gerçi Github'dan başka depolarda da denemedim (uyumluluk sorunları olabilir).


4

Burada bu seçeneği görüp görmediğimden emin değilim. Deponuzda sadece bir tane oluşturabilir /folderve doğrudan kullanabilirsiniz:

[a relative link](/folder/myrelativefile.md)

Hiçbir damla veya ağaç veya depo adı gerekli değildir ve bir cazibe gibi çalışır.


1
Bunun bariz bir yol olacağını düşünürdünüz ama benim için işe yaramıyor.
Kmeixner

4

GitHub'daki wiki sayfanıza göreli bir bağlantı istiyorsanız, bunu kullanın:

Read here: [Some other wiki page](path/to/some-other-wiki-page)

Havuzdaki bir dosyaya bağlantı vermek istiyorsanız, bazı başlık dosyalarına başvurmak için diyelim ve wiki sayfası wiki'nin kökündedir, şunu kullanın:

Read here: [myheader.h](../tree/master/path/to/myheader.h)

Sonuncunun mantığı, "/ wiki" yolunu "../" ile atlamak ve gelecekte değişebilecek depo adını belirtmeden depo ağacındaki ana şubeye gitmektir.

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.