2013-10-09 5 views
18

मैं markdown पृष्ठों का एक सेट है कि इस तरहमैं डॉक्सिजन में मार्कडाउन दस्तावेज़ों के बीच कैसे लिंक करूं?

[Go to this page](subdir/MyOtherPage.md) 

पृष्ठों सभी Doxygen द्वारा उठाया और उत्पादन में प्रदर्शित करने के रूप में लिंक के साथ आपस में जुड़े हैं के साथ एक परियोजना है, लेकिन लिंक को इंगित करने के लिए परिवर्तित नहीं कर रहे हैं उनके नया एचटीएमएल प्रस्तुतिकरण।

मैं एचटीएमएल पृष्ठों को इंगित करने के लिए लिंक बदल सकता हूं, लेकिन मेरी परियोजना को जिथब पर होस्ट किया गया है और फिर उन लिंक को तोड़ दिया जाएगा क्योंकि जिथब स्वचालित रूप से मार्कडाउन पृष्ठों के बीच लिंकिंग का समर्थन करता है।

मैं बाहरी लोगों के अलावा अन्य लिंक का समर्थन करने के बारे में डॉक्सिजन दस्तावेज़ में कुछ भी नहीं देख सकता। क्या डॉक्सिजन को एक मार्कडाउन से एचटीएमएल लिंक बनाने का कोई तरीका है?

+1

क्या डॉक्सिजन कमांड \ ref मदद करता है? यह मेरे लिए अन्य मार्कडाउन पृष्ठों में डॉक्सिजन \ सेक्शन हेडर को जोड़ने के लिए काम करता है, लेकिन मुझे यकीन नहीं है कि इससे आपकी विशिष्ट आवश्यकताओं को पुनः github में मदद मिलती है। – Cheeseminer

उत्तर

2

यह सुविधा Doxygen 1.8.6 (दिसम्बर 2013) में जोड़ा गया

Allow @ref to unlabeled markdown page by name, i.e. @ref mypage.md 
Allow links to other markdown pages of the form [link text](page.md) 

आप इसे काम करने के लिए कड़ी में प्रलेखन निर्देशिका incldue की जरूरत हो सकती है, जैसे

[link text](docs/page.md) 
+3

मैं 1.8.7 का उपयोग करता हूं, और यह अभी भी काम नहीं करता है। यह हमेशा .md फ़ाइल (HTML में) के स्रोत को संदर्भित करता है, न कि rendered (html) पृष्ठ। इससे कोई फर्क नहीं पड़ता कि मैं '@ ref' या' [here] (document.md) 'का उपयोग करता हूं। क्या इसका कोई समाधान है? – verpfeilt

+0

मेरे लिए काम नहीं करता है, या तो 1.8.6 ... – Kyle

+0

1.8.11 में काम नहीं कर रहा है साथ ही – dwj

11

के अनुसार Doxygen 1.8.7 ऐसा करने के तीन तरीके हैं:

  • अपने मूल प्रश्न में वर्णित मानक मार्कडाउन हाइपरलिंक का उपयोग करें।
  • @ref का उपयोग करें और किसी भी उपनिर्देशिका के साथ md_ के साथ लक्ष्य को उपसर्ग करें।
  • नाम का नाम देने के लिए पृष्ठ का नाम दें और @ref का उपयोग करें।

पहली विधि सीधी है और यह डॉक्सिजन के बिना भी काम करेगी (उदाहरण के लिए गिथब पर अपना कोड भंडार ब्राउज़ करते समय)।

[Go to this page](subdir/MyOtherPage.md) 

दूसरी विधि तो आप इसे इस लिंक करना होगा जबकि:

[Go to this page](@ref md_subdir_MyOtherPage) 

जाहिर है यह भी the way prescribed by the Doxygen's primary author है।

अंततः तीसरे विधि में आपको लक्ष्य पृष्ठ के लिए नाम होना होगा और फिर उस नाम से लिंक करना होगा। उदाहरण:

MyOtherPage.md में हेडर के रूप में इस राशि

# My Other Page Title {#MyOtherPageName} 

तो

[Go to this page](@ref MyOtherPageName) 
+0

ध्यान दें कि डॉक्सिजन * 1.8.7 * महत्वपूर्ण है, सेंटोस 7 अभी भी 1.8.5 के साथ आता है जहां तीसरा विकल्प काम नहीं करेंगे यह अभी तीन साल से अधिक रहा है, बेहतर डॉक्सिजन स्थिर रखें। – ted

3

नियमित पुराने Markdown लिंक की तरह लिंक Doxygen 1.8.6, उदा के रूप में नियंत्रित किया जाता है [link text](docs/page.md)। यह थोड़ी सी भद्दा काम करता है, यद्यपि - यूआरएल डॉक्सिजन कार्यशील निर्देशिका से संबंधित होना चाहिए (यानी डॉक्सीफाइल या .एमडी फ़ाइल की निर्देशिका नहीं है, लेकिन निर्देशिका जिसमें डॉक्सिजन चलती है)। यदि आप देखते हैं कि लिंक पर क्लिक करने से HTML के बजाय कच्चे मार्कडाउन दिखाए जाते हैं, तो इसका मतलब है कि आपका यूआरएल डॉक्सिजन की कार्यशील निर्देशिका से संबंधित नहीं है।

+1

यह मेरे मामले में मेरे लिए समस्या तय करता है मेरे पास डॉक्सफाइल और मार्कडाउन फ़ोल्डर के साथ फ़ोल्डर दस्तावेज़ है। इसलिए मुझे '[file] लिखना है (मार्कडाउन/file.md) '। धन्यवाद! –

0

निम्न चरणों को समस्या का समाधान हो सकता है,

  • निर्देशिका Doxyfile को STRIP_FROM_PATH निर्धारित किया है। मार्कडाउन फ़ाइलों को लिंक करते समय सापेक्ष पथ में कोई समस्या है।
  • कोड कोड pd = Doxygen::pageSDict->find(target); (यदि यह पहले से नहीं है) में 2438 लाइन नंबर पर डॉक्सिजन स्रोत फ़ाइल src/docparser.cpp में निम्न कोड संलग्न करें। यह पेज-सूची में खोज की गई मार्कडाउन फ़ाइल को ठीक करता है।

    अगर (पीडी == 0 & & लैंग == SrcLangExt_Markdown) {पीडी = Doxygen :: pageSDict-> लगता है (markdownFileNameToId (लक्ष्य));}

  • अंत में Doxygen संकलन और फिर कोशिश करें।

यह मेरे लिए काम करता है।

संबंधित मुद्दे