सामग्री तालिका जेनरेटर
मार्कडाउन या HTML पेस्ट करें और वास्तविक GitHub-शैली टकराव-सुरक्षित एंकर स्लग के साथ सामग्री की एक नेस्टेड, क्लिक करने योग्य तालिका प्राप्त करें, साथ ही हेडिंग आईडी इंजेक्ट की गई मूल सामग्री भी प्राप्त करें।
नतीजा
सामग्री तालिका केवल उतनी ही उपयोगी होती है जितनी इसके नीचे एंकर लिंक, और एंकर लिंक केवल तभी विश्वसनीय होते हैं यदि प्रत्येक शीर्षक को एक अद्वितीय, पूर्वानुमानित स्लग मिलता है। यह जनरेटर आप जो भी पेस्ट करते हैं उनमें से शीर्षकों को पार्स करता है - मार्कडाउन या HTML - और हर एक को एक वास्तविक GitHub-शैली एंकर प्रदान करता है: लोअरकेस टेक्स्ट, रिक्त स्थान और विराम चिह्न को प्रतिस्थापित या हटा दिया जाता है, और, गंभीर रूप से, एक वास्तविक टकराव-सुरक्षित प्रत्यय जब भी दो शीर्षक अन्यथा समान स्लग उत्पन्न करते हैं। किसी दस्तावेज़ में दूसरा "परिचय" परिचय-1 बन जाता है, तीसरा परिचय-2 बन जाता है, जिसे चालू घटना मानचित्र के साथ ठीक उसी तरह से ट्रैक किया जाता है जिस तरह से गिटहब का अपना स्लगर काम करता है - कोई शॉर्टकट नहीं जो शीर्षकों को दोहराने पर चुपचाप पहले के लिंक को अधिलेखित कर देता है, जो हाथ से रोल की गई सामग्री तालिका स्क्रिप्ट को तोड़ने का सबसे आम तरीका है।
मार्कडाउन पार्सिंग उद्देश्य पर लाइन-आधारित है, क्योंकि एक सरल कार्यान्वयन के लिए क्लासिक विफलता मोड एक बाड़े कोड ब्लॉक के अंदर लिखे गए "#" को एक शीर्षक के रूप में मान रहा है। यह टूल ट्रैक करता है कि ``` या ~~~ बाड़ वर्तमान में खुली है या नहीं क्योंकि यह दस्तावेज़ को लाइन दर लाइन चलाता है, और खुले बाड़ के बाहर केवल एटीएक्स शीर्षकों (# से ###### तक) को पहचानता है - इसलिए शेल टिप्पणियां या पायथन "# टिप्पणी" दिखाने वाला एक कोड नमूना कभी भी आपकी सामग्री की तालिका को प्रदूषित नहीं करता है। HTML इनपुट एक अलग, समान रूप से वास्तविक पथ लेता है: इसे ब्राउज़र के अपने DOMParser के साथ पार्स किया जाता है, शीर्षकों को टैग नाम से चुना जाता है, और दस्तावेज़ को एक स्ट्रिंग में क्रमबद्ध करने से पहले प्रत्येक की आईडी विशेषता सीधे वास्तविक तत्व पर सेट की जाती है।
दूसरे छोर से दो चीजें सामने आती हैं. सबसे पहले, स्वयं सामग्री तालिका, एक नेस्टेड मार्कडाउन सूची (- [शीर्षक](#slug), शीर्षक स्तर द्वारा इंडेंट की गई) और एक नेस्टेड HTML सूची (<ul><li><a href='#slug'>) दोनों के रूप में निर्यात की जाती है, प्रत्येक का अपना कॉपी बटन होता है। दूसरा, एंकर के साथ आपकी मूल सामग्री वास्तव में वायर्ड है: मार्कडाउन इनपुट के लिए आप क्रैमडाउन, पांडोक, एमकेडॉक्स और गिटहब पेज के जेकेल द्वारा उपयोग किए जाने वाले व्यापक रूप से समर्थित हेडिंग-एट्रिब्यूट सिंटैक्स को चुन सकते हैं, या यदि आपका लक्ष्य रेंडरर एट्रिब्यूट सिंटैक्स को नहीं समझता है तो पहले से ही सेट किए गए आईडी = "स्लग" के साथ सादे HTML हेडिंग टैग पर वापस आ सकते हैं। HTML इनपुट के लिए, आईडी को सीधे पार्स किए गए शीर्षक तत्व में इंजेक्ट किया जाता है - चुनने के लिए कोई अलग "मोड" नहीं है क्योंकि टैग पहले से मौजूद हैं।
आपके ब्राउज़र में सब कुछ स्थानीय रूप से चलता है: पार्सिंग, स्लग गणित, और दस्तावेज़ का पुनः संयोजन, यह सब उस पृष्ठ पर जावास्क्रिप्ट में होता है जिसे आप अभी देख रहे हैं, कहीं भी कुछ भी अपलोड नहीं किया गया है। यह ड्राफ्ट दस्तावेज़ीकरण, आंतरिक विकी, या एक अप्रकाशित ब्लॉग पोस्ट के लिए मायने रखता है जिसे आप केवल सामग्री की कार्य तालिका प्राप्त करने के लिए किसी तृतीय-पक्ष सेवा में पेस्ट करने के लिए तैयार नहीं हैं।