Elixir का डॉक्युमेंटेशन:
डॉक्युमेंटेशन के लिए इस्तेमाल होने वाले मॉड्यूल एट्रिब्यूट:
@moduledoc - मॉड्यूल का वर्णन करता है और मॉड्यूल की पहली लाइन पर आता है।@doc - फंक्शन का वर्णन करता है और फंक्शन की परिभाषा तथा उसके टाइपस्पेक के ठीक ऊपर आता है।@typedoc - कस्टम टाइप का वर्णन करता है और टाइप की परिभाषा के ठीक ऊपर आता है।defmodule String do
@moduledoc """
Strings in Elixir are UTF-8 encoded binaries.
"""
@typedoc """
A UTF-8 encoded binary.
"""
@type t :: binary
@doc """
Converts all characters in the given string to uppercase according to `mode`.
## Examples
iex> String.upcase("abcd")
"ABCD"
iex> String.upcase("olá")
"OLÁ"
"""
def upcase(string, mode \\ :default)
end
Elixir डॉक्युमेंटेशन और कोड कमेंट को दो अलग-अलग चीज़ें मानता है।
डॉक्युमेंटेशन आपके और आपके पब्लिक API के उपयोगकर्ताओं के बीच एक स्पष्ट समझौता है (इन उपयोगकर्ताओं में आपके साथी और आपका भविष्य का रूप भी शामिल हैं)। ज़रूरी नहीं कि इन सबके पास सोर्स कोड उपलब्ध हो, इसलिए डॉक्युमेंटेशन बताता है कि आपके कोड का उपयोग कैसे किया जाए।
कोड कमेंट उन डेवलपर के लिए होते हैं जो सोर्स कोड पढ़ते हैं। ये नोट छोड़ने, इम्प्लीमेंटेशन की बारीकियाँ समझाने, सुधार के मौके बताने और ऐसे ही बहुत कुछ करने में उपयोगी होते हैं।
चूँकि डॉक्युमेंटेशन का उद्देश्य आपके कोड के पब्लिक API का वर्णन करना है, इसलिए किसी प्राइवेट फंक्शन पर @doc एट्रिब्यूट जोड़ने की कोशिश करने पर कंपाइलेशन वॉर्निंग मिलेगी। प्राइवेट फंक्शन समझाने के लिए कोड कमेंट इस्तेमाल कीजिए।
warning: defp do_check_length/2 is private, @doc attribute is always discarded for private functions/macros/types
lib/form.ex:33: Form.do_check_length/2
किसी Elixir प्रोजेक्ट का डॉक्युमेंटेशन देखने के कई अलग-अलग तरीके हैं।
hexdocs.pm और ExDoc
hex.pm Elixir और Erlang के लिए पैकेज रिपॉज़िटरी है। hex.pm पर प्रकाशित होने वाले हर पैकेज का डॉक्युमेंटेशन अपने आप hexdocs.pm पर प्रकाशित हो जाता है। वहाँ आपको अपनी पसंदीदा सभी Elixir लाइब्रेरी का डॉक्युमेंटेशन मिलेगा, और साथ ही Elixir का आधिकारिक डॉक्युमेंटेशन भी।
आप अपने प्रोजेक्ट के लिए डॉक्युमेंटेशन की एक ऐसी वेबसाइट बना सकते हैं जो बिल्कुल Elixir के आधिकारिक डॉक्युमेंटेशन जैसी दिखे, और इसके लिए आपको hex.pm पर कोई पैकेज प्रकाशित करने की ज़रूरत नहीं है। यह काम करने वाले टूल का नाम ExDoc है। ExDoc ऐसी HTML फाइलें बनाता है जिन्हें आप अपने लोकल फाइल सिस्टम से ब्राउज़ कर सकते हैं।
ExDoc इस्तेमाल करते समय सबसे अच्छे नतीजे पाने के लिए डॉक्युमेंटेशन लिखने की आधिकारिक सिफारिशों का पालन ज़रूर कीजिए।
h IEx हेल्परआप स्टैंडर्ड लाइब्रेरी, अपनी इंस्टॉल की हुई किसी भी लाइब्रेरी और अपने Elixir प्रोजेक्ट का डॉक्युमेंटेशन सीधे अपने कंप्यूटर से देख सकते हैं।
अगर आपके कंप्यूटर पर Elixir इंस्टॉल है, तो आप iex कमांड चलाकर इंटरैक्टिव मोड में इसका उपयोग कर सकते हैं (या iex -S mix, अगर आप अपने मौजूदा mix प्रोजेक्ट का सोर्स लोड करना चाहते हैं)।
iex में आप h टाइप कर सकते हैं, उसके बाद एक स्पेस और मॉड्यूल या फंक्शन का नाम लिखकर उसका डॉक्युमेंटेशन पढ़ सकते हैं।
iex()> h String.upcase/1
# def upcase(string, mode \\ :default)
#
# Converts all characters in the given string to uppercase according to mode.
# (...)
मॉड्यूल या फंक्शन का आधा नाम लिखकर टैब कुंजी दबाने पर आप ऑटोकंपलीट की सुविधा से उपलब्ध मॉड्यूल और फंक्शन खोज सकते हैं।
Elixir को सपोर्ट करने वाले कई आधुनिक IDE डॉक्युमेंटेशन और टाइपस्पेक को काम के पॉप-अप में पार्स और प्रदर्शित कर सकते हैं, जैसे Visual Studio Code या Elixir प्लगइन वाला Intellij।
अगर कोई मॉड्यूल या फंक्शन सिर्फ इंटरनल उपयोग के लिए है, तो आप उसे @moduledoc false या @doc false से चिह्नित कर सकते हैं। वे मॉड्यूल और फंक्शन बनने वाले डॉक्युमेंटेशन में शामिल नहीं होंगे। ध्यान रखिए कि इससे वे प्राइवेट नहीं हो जाते। उन्हें अब भी कॉल और/या इम्पोर्ट किया जा सकता है। इस समस्या के संभावित हल जानने के लिए इंटरनल मॉड्यूल और फंक्शन छिपाने के बारे में आधिकारिक डॉक्युमेंटेशन देखिए।