GitHub मार्कडाउन फ़ाइल में सापेक्ष लिंक


831

क्या एक URL एंकर बनाने का एक तरीका है, <a>एक मार्कडाउन फ़ाइल के भीतर से लिंक, उसी रिपॉजिटरी और शाखा के भीतर एक अन्य फ़ाइल (वर्तमान शाखा के सापेक्ष एक लिंक)?

उदाहरण के लिए, मास्टर शाखा में मेरे पास एक README.md फ़ाइल है, जिसे मैं कुछ इस तरह करना चाहूंगा:

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

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

यह मुझे एक ही शाखा के भीतर एक .md से दूसरे लिंक करने की अनुमति देगा और इस बारे में चिंता नहीं करनी होगी कि मैं किस शाखा में हूं (एक निरपेक्ष URL करने के लिए जिसमें github.com शाखा का नाम शामिल हो) से बचें।

यहाँ मेरा मतलब है कि एक काम कर रहा है:

  1. GOTO http://github.com/rynop/testRel , लिंक काम नहीं करता है।
  2. गोटो http://github.com/rynop/testRel/blob/master/README.md , लिंक काम करता है।

यह अपेक्षित है क्योंकि इस बिंदु पर प्रारंभिक URL शाखा में है। अब मैं इसे रिपॉजिटरी के मूल में README.md में वर्तमान शाखा को लेने के लिए कैसे प्राप्त करूं?

अद्यतन : मैंने इस सुविधा अनुरोध के लिए GitHub के खिलाफ एक समस्या खोली ।


21
अंत में : रिश्तेदार लिंक अब समर्थित हैं! मैंने अपना उत्तर अपडेट किया है :)
VonC

यदि आप एक और .md खोलने या किसी अन्य वेब http / s या html या .jpg, .png, या jpeg पृष्ठों पर जाने की कोशिश कर रहे हैं तो यह सब अच्छी जानकारी है, लेकिन आप मार्कडाउन को एक .pdf कैसे खोलते हैं? मुझे सिंटैक्स सही नहीं मिल सकता है क्योंकि इसमें मेरा .pdf खुला है जो .md फ़ाइल के समान निर्देशिका में है। क्या कोई .pdf खोलने में मदद कर सकता है?
एल्टन

आप इस प्रश्न में कुछ समाधान पा सकते हैं: stackoverflow.com/questions/40422790/…
ओलेग प्रो

जवाबों:


970

अद्यतन 30 जनवरी, 2013 , 16 महीने बाद:

GitHub ब्लॉग मार्कअप फ़ाइलों में संबंधित लिंक :

आज से, GitHub मार्कअप फ़ाइलों में सापेक्ष लिंक का समर्थन करता है
अब आप अलग-अलग डॉक्यूमेंटेशन फ़ाइलों के बीच सीधे लिंक कर सकते हैं, चाहे आप अलग-अलग मार्कअप रेंडरर का उपयोग करके, स्वयं GitHub पर या स्थानीय स्तर पर डॉक्यूमेंटेशन देखें।

आप लिंक परिभाषाओं के उदाहरण चाहते हैं और वे कैसे काम करते हैं? यहाँ आपके लिए कुछ Markdown है।
एक पूर्ण लिंक के बजाय:

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

... आप एक रिश्तेदार लिंक का उपयोग कर सकते हैं:

[a relative link](other_file.md)

और हम यह सुनिश्चित करेंगे कि यह जुड़ा हुआ हो user/repo/blob/branch/other_file.md

यदि आप वर्कअराउंड का उपयोग कर रहे हैं [a workaround link](repo/blob/master/other_file.md), तो आपको नए सिंटैक्स का उपयोग करने के लिए अपने दस्तावेज़ को अपडेट करना होगा।

इसका अर्थ यह भी है कि आपका दस्तावेज़ अब आसानी से अपने दम पर खड़ा हो सकता है, बिना हमेशा GitHub की ओर इशारा करते हुए


अपडेट 20 दिसंबर, 2011:

GitHub मार्कअप मुद्दा 84 वर्तमान द्वारा बंद कर दिया है technoweenie , टिप्पणी के साथ:

हमने इसके लिए एक <base>टैग जोड़ने की कोशिश की , लेकिन यह साइट पर अन्य रिश्तेदार लिंक के साथ समस्याओं का कारण बनता है।


12 अक्टूबर, 2011:

यदि आप स्वयं मार्कडाउन (!) के कच्चे स्रोत को देखते हैंREADME.md , तो सापेक्ष पथ समर्थित नहीं लगते हैं।
आपको संदर्भ मिलेंगे:

[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
हम्म .. मैं एक रिश्तेदार URL (कोशिश कर सकता हूं [लिंक लिंक someDir / README.md, यह एक एंकर बना देगा) - लेकिन मुझे एक github शाखा को एक रिश्तेदार लिंक की तरह चाहिए: myRepo / tree / <$ curBrch> /pathToMd.md । मैं शायद सिर्फ github.com
rynop

1
नहीं। पूर्ण उदाहरण यहाँ देखें github.com/rynop/testRel । मैं शाखा को निर्दिष्ट करने वाला एक रिश्तेदार लिंक कर सकता था, लेकिन वह इस उद्देश्य को पराजित करता है कि मैं पहली जगह में क्या करने की कोशिश कर रहा हूं। अगर मैं एक सबडिर में एक .md से दूसरे में लिंक कर रहा था, तो मुझे लगता है कि यह ठीक से रिश्तेदार लिंक को संभाल लेगा। रेपो की जड़ में .md से लिंक करते समय समस्या आती है।
rynop

2
संबंधित: एक विकी पेज से दूसरे में जोड़ने के लिए, [Welcome](./wiki/Hello)काम करता है, जहां हैलो उसी रेपो में एक और विकी पेज है।
वेन ब्लास

1
@wizlb मैंने बिना रास्ते के इसे आज़माया और यह भी काम करता है [Welcome](Hello)जहाँ हैलो उसी रेपो में एक और विकी पेज है।
मोटी

2
यह नियमित विकी पृष्ठों में काम करता है, लेकिन अगर आप _Sidebar.md फ़ाइल जोड़ते हैं, तो इस बात में अंतर होता है कि लिंक बाकी पृष्ठों की तुलना में विकी होम पेज पर कैसे हल होते हैं। मैंने बिना किसी भाग्य के यहाँ सब कुछ आजमाया। अब तक मैं केवल एक ही चीज़ ले आया हूँ, 2 अलग-अलग _Sidebar.md फ़ाइलों का उपयोग करना और फ़ाइलों को उप-निर्देशिकाओं में व्यवस्थित करना।
नाइटऑव 888

93

उदाहरण के लिए, आपके पास निम्नलिखित की तरह एक रेपो है:

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

के सापेक्ष लिंक subtext.mdमें text.mdइस प्रकार दिखाई देंगे:

[this subtext](subpro/subtext.md)

के सापेक्ष लिंक subsubtext.mdमें text.mdइस प्रकार दिखाई देंगे:

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

के सापेक्ष लिंक subtext.mdमें subsubtext.mdइस प्रकार दिखाई देंगे:

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

के सापेक्ष लिंक subsubtext2.mdमें subsubtext.mdइस प्रकार दिखाई देंगे:

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

के सापेक्ष लिंक text.mdमें subsubtext.mdइस प्रकार दिखाई देंगे:

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

1
एक चीज जो मैंने पाई है, लिंक संवेदनशील हैं, जिसकी मुझे उम्मीद नहीं थी।
एंडी विसेंडांगर

क्या होगा अगर मेरी निर्देशिकाओं में स्थान हैं?
रिशव

16

31 जनवरी, 2013 तक जीथब मार्कडाउन फाइलों के सापेक्ष लिंक का समर्थन करता है

[a relative link](markdown_file.md)

हालाँकि, कुछ कमियाँ हैं जिनकी चर्चा इस टिप्पणी सूत्र में की गई है

एक विकल्प के रूप में, आप Gitdown का उपयोग रिपॉजिटरी में पूर्ण URL बनाने के लिए कर सकते हैं और यहां तक ​​कि उन्हें शाखा से अवगत करा सकते हैं , जैसे

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

Gitdown एक GitHub मार्कडाउन प्रीप्रोसेसर है। यह GitHub रिपॉजिटरी के लिए डॉक्यूमेंटेशन पेज बनाए रखने से जुड़े आम कार्यों को सुव्यवस्थित करता है, जैसे सामग्री की तालिका बनाना, जिसमें वैरिएबल, URL जनरेट करना और इनपुट को संसाधित करने के समय रिपॉजिटरी के बारे में जानकारी प्राप्त करना शामिल है। Gitdown अपने भवन स्क्रिप्ट के साथ मूल एकीकृत करता है।

मैं गिटडाउन पुस्तकालय का लेखक हूं।


1
@ थोमस क्या यह स्टैक ओवरफ्लो उपयोग की शर्तों का हिस्सा है? यदि हाँ, तो कृपया एक लिंक साझा करें। ऐसी आवश्यकता के पीछे की प्रेरणा को जानने के लिए मैं उत्सुक हूं।
गजस

5
"अच्छे, प्रासंगिक उत्तर पोस्ट करें, और यदि कुछ (लेकिन सभी नहीं) आपके उत्पाद या वेबसाइट के बारे में हो, तो यह ठीक है। हालाँकि, आपको अपने उत्तरों में अपनी संबद्धता का खुलासा करना होगा।" stackoverflow.com/help/behavior
थॉमस

1
किसी को लगता है कि यह मेटा जानकारी के अंतर्गत आता है कि स्टैक ओवरफ्लो इतना से बचने की कोशिश कर रहा है, अर्थात यह एक ऑफ-टॉपिक चर्चा को बढ़ावा देता है।
गजस

14

GitHub इसे कम से कम काम के साथ बेहतर बना सकता है। यहाँ एक काम है।

मुझे लगता है कि आप कुछ और चाहते हैं

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

या README को इंगित करने के लिए

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

शुभ लाभ


3
हाँ, यह वही है जो मैं आज करता हूँ। मैं लिंक में शाखा जानकारी में सेंकना नहीं चाहता। यह सापेक्ष होना चाहिए।
rynop

8

बस इसे जोड़ना चाहते थे क्योंकि ऊपर दिए गए समाधानों में से कोई भी काम नहीं करता है यदि लक्ष्य लिंक निर्देशिका में नाम के साथ निर्देशिका है। यदि टारगेट लिंक एक डायरेक्टरी है और इसमें स्पेस है तो स्पेस के साथ बचकर भी जीथब पर लिंक रेंडर नहीं करता है। केवल मेरे लिए काम किया समाधान %20प्रत्येक स्थान के लिए उपयोग कर रहा है।

उदाहरण: यदि निर्देशिका संरचना यह है

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

आप Dir Aमें मौजूद README.md में लिंक बनाने के लिए Top_dirयह कर सकते हैं:

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

8

आप फ़ाइल से लिंक कर सकते हैं, लेकिन फ़ोल्डरों से नहीं, और ध्यान रखें कि, /blob/master/आपके रिश्तेदार लिंक से पहले Github जोड़ देगा (और फ़ोल्डरों में उस भाग की कमी होती है ताकि वे लिंक नहीं हो सकें, न ही HTML <a>टैग या मार्कडाउन लिंक के साथ)।

इसलिए, अगर हमारे पास कोई फ़ाइल है myrepo/src/Test.java, तो उसके पास एक url होगा:

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

और इसे रीडमी फ़ाइल में लिंक करने के लिए, हम उपयोग कर सकते हैं:

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

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

(मुझे लगता है, शाखा का masterप्रतिनिधित्व करता है masterऔर यह भिन्न होता है जब फ़ाइल किसी अन्य शाखा में होती है।)


7

आप अपने रिपो के मूल से संबंधित URL का उपयोग कर सकते हैं <a href="">। अपने रेपो का नाम रखा गया है testRel, मान लें कि निम्नलिखित में से एक है 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
यह मान्य md वाक्यविन्यास नहीं है
astroanu

6

यह सवाल बहुत पुराना है, लेकिन यह अभी भी महत्वपूर्ण लगता है, क्योंकि यह रीडहेमड से संबंधित संदर्भों को जीथब पर विकी पेजों में डालना आसान नहीं है।

मैं थोड़ा बहुत खेला और इस रिश्तेदार लिंक बहुत अच्छी तरह से काम करने लगता है:

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

दोनों आपके आधार को एक प्रारंभिक बिंदु के रूप में ../हटा देंगे /blob/master/और उपयोग करेंगे। मैंने इसे गितुब की तुलना में अन्य रिपॉजिटरी पर कोशिश नहीं की है, हालांकि (संगतता के मुद्दे हो सकते हैं)।


4

मुझे यकीन नहीं है कि मैं इस विकल्प को यहां देखूंगा। आप बस /folderअपने भंडार में एक बना सकते हैं और इसे सीधे उपयोग कर सकते हैं:

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

कोई बूँद या पेड़ या रिपॉजिटरी नाम की जरूरत नहीं है, और यह एक आकर्षण की तरह काम करता है।


1
आपको लगता है कि यह स्पष्ट तरीका होगा लेकिन यह मेरे लिए काम नहीं करता है।
केमेक्सनर

4

यदि आप GitHub पर अपने विकि पृष्ठ के लिए एक सापेक्ष लिंक चाहते हैं, तो इसका उपयोग करें:

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

यदि आप रिपॉजिटरी में एक फ़ाइल के लिए एक लिंक चाहते हैं, तो हम कहते हैं, कुछ हेडर फ़ाइल को संदर्भित करने के लिए, और विकी पेज विकी के मूल में है, इसका उपयोग करें:

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

अंतिम के लिए तर्क "/" के साथ "/ विकी" पथ को छोड़ना है, और रिपॉजिटरी के नाम को निर्दिष्ट किए बिना रिपॉजिटरी ट्री में मास्टर शाखा में जाएं, जो भविष्य में बदल सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.