configlet का मुख्य उपयोग लिंटिंग है: यह जाँचना कि किसी ट्रैक की कॉन्फिगरेशन फाइलें ठीक से बनी हैं या नहीं, सिंटैक्स और अर्थ, दोनों के हिसाब से। गलत तरीके से कॉन्फिगर किए गए ट्रैक ठीक से सिंक नहीं हो पाते, वेबसाइट पर गलत दिख सकते हैं, या यूज़र को ठीक अनुभव नहीं दे पाते। इसलिए Exercism की अखंडता बनाए रखने में configlet की जाँचें अहम भूमिका निभाती हैं।
किसी ट्रैक की लिंटिंग के लिए lint कमांड का उपयोग किया जा सकता है।
configlet [global-options] lint [command-options]
Global options:
-h, --help Show this help message and exit
--version Show this tool's version information and exit
-t, --track-dir <dir> Specify a track directory to use instead of the current directory
-v, --verbosity <verbosity> The verbosity of output. Allowed values: q[uiet], n[ormal], d[etailed]
ये वे लिंटिंग नियम हैं जिनकी जाँच की जाती है।
लिंटर को जाँचना चाहिए कि सभी ज़रूरी फाइलें मौजूद हैं या नहीं। किसी खास अभ्यास से जुड़ी न होने वाली जो फाइलें मौजूद होनी चाहिए, वे ये हैं:
config.jsondocs/ABOUT.mddocs/INSTALLATION.mddocs/LEARNING.mddocs/RESOURCES.mddocs/SNIPPET.txtdocs/TESTS.mdexercises/shared/.docs/help.mdexercises/shared/.docs/tests.mdकॉन्सेप्ट अभ्यास से जुड़ी जो फाइलें मौजूद होनी चाहिए, वे ये हैं:
exercises/concept/<slug>/.docs/hints.mdexercises/concept/<slug>/.docs/instructions.mdexercises/concept/<slug>/.docs/introduction.mdexercises/concept/<slug>/.meta/config.jsonप्रैक्टिस अभ्यास के लिए भी ऐसी ही सूची होगी, लेकिन उसका स्पेक अभी तय नहीं हुआ है।
config.json में दिए गए हर कॉन्सेप्ट के पास ये फाइलें होनी चाहिए:
concepts/<slug>/about.mdconcepts/<slug>/introduction.mdconcepts/<slug>/links.jsonconfig.json फाइल की ये जाँचें होनी चाहिए:
"language" की ज़रूरी है"language" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 255 हो"slug" की ज़रूरी है"slug" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए, जिसकी लंबाई <= 255 हो"active" की ज़रूरी है"active" की वैल्यू एक बूलियन होनी चाहिए"blurb" की ज़रूरी है"blurb" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 400 हो"version" की ज़रूरी है"version" की वैल्यू पूर्णांक 3 होनी चाहिए"status.concept_exercises" की ज़रूरी है"status.concept_exercises" की वैल्यू एक बूलियन होनी चाहिए"status.test_runner" की ज़रूरी है"status.test_runner" की वैल्यू एक बूलियन होनी चाहिए"status.representer" की ज़रूरी है"status.representer" की वैल्यू एक बूलियन होनी चाहिए"status.analyzer" की ज़रूरी है"status.analyzer" की वैल्यू एक बूलियन होनी चाहिए"online_editor.indent_style" की ज़रूरी है"online_editor.indent_style" की वैल्यू स्ट्रिंग space या tab होनी चाहिए"online_editor.indent_size" की ज़रूरी है"online_editor.indent_size" की वैल्यू एक पूर्णांक होनी चाहिए जो >= 0 और <= 8 हो"online_editor.highlightjs_language" की वैकल्पिक है"online_editor.highlightjs_language" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए"files" की वैकल्पिक है"files" की वैल्यू एक ऑब्जेक्ट होनी चाहिए"files.solution" की वैकल्पिक है"files.solution" की वैल्यू एक ऐरे होनी चाहिए"files.solution" की वैल्यू मान्य पैटर्न⁵ होनी चाहिए"files.solution" की वैल्यू में दोहराव नहीं होना चाहिए"files.test" की वैकल्पिक है"files.test" की वैल्यू एक ऐरे होनी चाहिए"files.test" की वैल्यू मान्य पैटर्न⁵ होनी चाहिए"files.test" की वैल्यू में दोहराव नहीं होना चाहिए"files.example" की वैकल्पिक है"files.example" की वैल्यू एक ऐरे होनी चाहिए"files.example" की वैल्यू मान्य पैटर्न⁵ होनी चाहिए"files.example" की वैल्यू में दोहराव नहीं होना चाहिए"files.exemplar" की वैकल्पिक है"files.exemplar" की वैल्यू एक ऐरे होनी चाहिए"files.exemplar" की वैल्यू मान्य पैटर्न⁵ होनी चाहिए"files.exemplar" की वैल्यू में दोहराव नहीं होना चाहिए"files.editor" की वैकल्पिक है"files.editor" की वैल्यू एक ऐरे होनी चाहिए"files.editor" की वैल्यू मान्य पैटर्न⁵ होनी चाहिए"files.editor" की वैल्यू में दोहराव नहीं होना चाहिए"files.invalidator" की वैकल्पिक है"files.invalidator" की वैल्यू एक ऐरे होनी चाहिए"files.invalidator" की वैल्यू मान्य पैटर्न⁵ होनी चाहिए"files.invalidator" की वैल्यू में दोहराव नहीं होना चाहिए"files.solution", "files.test", "files.example", "files.exemplar", "files.editor" या "files.invalidator" ऐरे में से किसी एक में ही लिखे जा सकते हैं (कोई ओवरलैप नहीं)
d या plsql है, तो "files.solution" और "files.test" फाइलों में ओवरलैप हो सकता है
"files.example और "files.exemplar" फाइलों में ओवरलैप हो सकता है
"status.test_runner" की वैल्यू true है, तो "test_runner.average_run_time" की ज़रूरी है"test_runner.average_run_time" की वैल्यू एक पूर्णांक होनी चाहिए जो > 0 हो"approaches.snippet_extension" की ज़रूरी है"approaches.snippet_extension" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए"exercises" की ज़रूरी है"exercises.concept" की ज़रूरी है"exercises.concept" की वैल्यू एक ऐरे होनी चाहिए"exercises.concept[].slug" की ज़रूरी है"exercises.concept[].slug" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए, जिसकी लंबाई <= 255 हो"exercises.concept[].slug" की वैल्यू "exercises.concept[].slug" में अद्वितीय होनी चाहिए और "exercises.practice[].slug" में मौजूद नहीं होनी चाहिए"exercises.concept[].name" की ज़रूरी है"exercises.concept[].name" की वैल्यू एक टाइटल केस स्ट्रिंग³ होनी चाहिए, जिसकी लंबाई <= 255 हो"exercises.concept[].uuid" की ज़रूरी है"exercises.concept[].uuid" की वैल्यू एक अद्वितीय वर्ज़न 4 UUID स्ट्रिंग⁶ होनी चाहिए"exercises.concept[].uuid" वैल्यू कभी नहीं बदलनी चाहिए"exercises.concept[].concepts" की ज़रूरी है"exercises.concept[].status" की वैल्यू deprecated नहीं है, तो "exercises.concept[].concepts" की वैल्यू स्ट्रिंग का एक गैर-खाली ऐरे होनी चाहिए"exercises.concept[].status" की वैल्यू deprecated है, तो "exercises.concept[].concepts" की वैल्यू एक खाली ऐरे होनी चाहिए"exercises.concept[].concepts" की वैल्यू कीबैब-केस स्ट्रिंग² होनी चाहिए"exercises.concept[].concepts" की वैल्यू में दोहराव नहीं होना चाहिए"exercises.concept[].concepts" की वैल्यू किसी भी दूसरे कॉन्सेप्ट अभ्यास की "concepts" प्रॉपर्टी में नहीं होनी चाहिए"exercises.concept[].concepts" की वैल्यू किसी एक कॉन्सेप्ट की "concepts.slug" प्रॉपर्टी से मेल खानी चाहिए"exercises.concept[].prerequisites" की ज़रूरी है"exercises.concept[].status" की वैल्यू deprecated नहीं है, तो "exercises.concept[].prerequisites" की वैल्यू स्ट्रिंग का एक गैर-खाली ऐरे होनी चाहिए। हाँ, ठीक एक अभ्यास ऐसा हो सकता है जिसकी वैल्यू खाली ऐरे हो"exercises.concept[].status" की वैल्यू deprecated है, तो "exercises.concept[].prerequisites" की वैल्यू एक खाली ऐरे होनी चाहिए"exercises.concept[].prerequisites" की वैल्यू कीबैब-केस स्ट्रिंग² होनी चाहिए"exercises.concept[].prerequisites" की वैल्यू में दोहराव नहीं होना चाहिए"exercises.concept[].prerequisites" की वैल्यू किसी भी दूसरे कॉन्सेप्ट अभ्यास की "concepts" प्रॉपर्टी की वैल्यू से मेल खानी चाहिए"exercises.concept[].prerequisites" की वैल्यू उस अभ्यास की "exercises.concept[].concepts" प्रॉपर्टी की किसी भी वैल्यू से मेल नहीं खानी चाहिए"exercises.concept[].prerequisites" की वैल्यू किसी एक कॉन्सेप्ट की "concepts.slug" प्रॉपर्टी से मेल खानी चाहिए"exercises.concept[].concepts" और "exercises.concept[].prerequisites" के बीच कोई चक्र नहीं होना चाहिए"exercises.concept[].status" की वैकल्पिक है"exercises.concept[].status" की वैल्यू स्ट्रिंग wip, beta, active या deprecated होनी चाहिए"exercises.practice" की ज़रूरी है"exercises.practice" की वैल्यू एक ऐरे होनी चाहिए"exercises.practice[].slug" की ज़रूरी है"exercises.practice[].slug" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए, जिसकी लंबाई <= 255 हो"exercises.practice[].slug" की वैल्यू "exercises.practice[].slug" में अद्वितीय होनी चाहिए और "exercises.concept[].slug" में मौजूद नहीं होनी चाहिए"exercises.practice[].slug" वैल्यू होनी चाहिए जो स्ट्रिंग hello-world हो"exercises.practice[].name" की ज़रूरी है"exercises.practice[].name" की वैल्यू एक टाइटल केस स्ट्रिंग³ होनी चाहिए, जिसकी लंबाई <= 255 हो"exercises.practice[].uuid" की ज़रूरी है"exercises.practice[].uuid" की वैल्यू एक अद्वितीय वर्ज़न 4 UUID स्ट्रिंग⁶ होनी चाहिए"exercises.practice[].uuid" वैल्यू कभी नहीं बदलनी चाहिए"exercises.practice[].difficulty" की ज़रूरी है"exercises.practice[].difficulty" की वैल्यू एक पूर्णांक होनी चाहिए जो >= 1 और <= 10 हो"exercises.practice[].practices" की ज़रूरी है"exercises.practice[].status" की वैल्यू deprecated नहीं है, तो "exercises.practice[].practices" की वैल्यू स्ट्रिंग का एक गैर-खाली ऐरे होनी चाहिए"exercises.practice[].status" की वैल्यू deprecated है, तो "exercises.practice[].practices" की वैल्यू एक खाली ऐरे होनी चाहिए"exercises.practice[].practices" की वैल्यू कीबैब-केस स्ट्रिंग² होनी चाहिए"exercises.practice[].practices" की वैल्यू में दोहराव नहीं होना चाहिए"exercises.practice[].practices" की वैल्यू किसी एक कॉन्सेप्ट की "concepts[].slug" प्रॉपर्टी से मेल खानी चाहिए"exercises.practice[].practices" की वैल्यू में ज़्यादा से ज़्यादा 10 बार हो सकता है"exercises.practice[].prerequisites" की ज़रूरी है"exercises.practice[].status" की वैल्यू deprecated नहीं है, तो "exercises.practice[].prerequisites" की वैल्यू स्ट्रिंग का एक गैर-खाली ऐरे होनी चाहिए"exercises.practice[].status" की वैल्यू deprecated है, तो "exercises.practice[].prerequisites" की वैल्यू एक खाली ऐरे होनी चाहिए"exercises.practice[].slug" की वैल्यू hello-world है, तो "exercises.practice[].prerequisites" की वैल्यू एक खाली ऐरे होनी चाहिए"exercises.practice[].prerequisites" की वैल्यू कीबैब-केस स्ट्रिंग² होनी चाहिए"exercises.practice[].prerequisites" की वैल्यू में दोहराव नहीं होना चाहिए"exercises.practice[].prerequisites" की वैल्यू किसी भी कॉन्सेप्ट अभ्यास की "exercises.concept[].concepts" वैल्यू से मेल खानी चाहिए"exercises.practice[].prerequisites" की वैल्यू किसी एक कॉन्सेप्ट की "concepts[].slug" प्रॉपर्टी से मेल खानी चाहिए"exercises.practice[].status" की वैकल्पिक है"exercises.practice[].status" की वैल्यू स्ट्रिंग wip, beta, active या deprecated होनी चाहिए"exercises.practice[].slug" की वैल्यू hello-world है, तो "exercises.practice[].status" की वैल्यू या तो हटा दी जानी चाहिए या स्ट्रिंग active होनी चाहिए"exercises.foregone" की वैकल्पिक है"exercises.foregone" की वैल्यू एक ऐरे होनी चाहिए"exercises.foregone" की वैल्यू कीबैब-केस स्ट्रिंग² होनी चाहिए"exercises.foregone" की वैल्यू में दोहराव नहीं होना चाहिए"exercises.foregone" की वैल्यू किसी भी कॉन्सेप्ट या प्रैक्टिस अभ्यास के स्लग से मेल नहीं खानी चाहिए"concepts" की ज़रूरी है"concepts" की वैल्यू एक ऐरे होनी चाहिए"concepts[].uuid" की ज़रूरी है"concepts[].uuid" की वैल्यू एक अद्वितीय वर्ज़न 4 UUID स्ट्रिंग⁶ होनी चाहिए"concepts[].uuid" वैल्यू कभी नहीं बदलनी चाहिए"concepts[].slug" की ज़रूरी है"concepts[].slug" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए, जिसकी लंबाई <= 255 हो"concepts[].name" की ज़रूरी है"concepts[].name" की वैल्यू एक टाइटल केस स्ट्रिंग³ होनी चाहिए, जिसकी लंबाई <= 255 हो"concepts[].tags" की वैकल्पिक है"concepts[].tags.any" खाली नहीं है, तो "concepts[].tags.all" की वैकल्पिक है"concepts[].tags.all" की वैल्यू एक ऐरे होनी चाहिए"concepts[].tags.all" की वैल्यू गैर-खाली टैग⁷ स्ट्रिंग होनी चाहिए, जिसकी लंबाई <= 255 हो"concepts[].tags.all" की वैल्यू में दोहराव नहीं होना चाहिए"concepts[].tags.all" खाली नहीं है, तो "concepts[].tags.any" की वैकल्पिक है"concepts[].tags.any" की वैल्यू एक ऐरे होनी चाहिए"concepts[].tags.any" की वैल्यू गैर-खाली टैग⁷ स्ट्रिंग होनी चाहिए, जिसकी लंबाई <= 255 हो"concepts[].tags.any" की वैल्यू में दोहराव नहीं होना चाहिए"concepts[].tags.not" की वैकल्पिक है"concepts[].tags.not" की वैल्यू एक ऐरे होनी चाहिए"concepts[].tags.not" की वैल्यू गैर-खाली टैग⁷ स्ट्रिंग होनी चाहिए, जिसकी लंबाई <= 255 हो"concepts[].tags.not" की वैल्यू में दोहराव नहीं होना चाहिए"concepts" की हर वैल्यू के पास एक concept/<concepts.slug>/about.md फाइल होनी चाहिए। इस फाइल के लिंटिंग नियम नीचे दिए गए हैं।"concepts" की हर वैल्यू के पास एक concept/<concepts.slug>/introduction.md फाइल होनी चाहिए। इस फाइल के लिंटिंग नियम नीचे दिए गए हैं।"concepts" की हर वैल्यू के पास एक concept/<concepts.slug>/links.json फाइल होनी चाहिए। इस फाइल के लिंटिंग नियम नीचे दिए गए हैं।"key_features" की वैकल्पिक है"key_features" की वैल्यू एक ऐरे होनी चाहिए जिसकी लंबाई = 6 हो"key_features[].icon" की ज़रूरी है"key_features[].icon" की वैल्यू पहले से तय आइकन वैल्यू में से कोई एक होनी चाहिए"key_features[].title" की ज़रूरी है"key_features[].title" की वैल्यू एक सेंटेंस केस स्ट्रिंग⁴ होनी चाहिए, जिसकी लंबाई <= 25 हो"key_features[].content" की ज़रूरी है"key_features[].content" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 100 हो"tags" की ज़रूरी है"tags" की वैल्यू स्ट्रिंग का एक ऐरे होनी चाहिए"tags" की वैल्यू में दोहराव नहीं होना चाहिए"tags" की वैल्यू पहले से तय टैग वैल्यू में से कोई एक होनी चाहिए"blurb" की ज़रूरी है"blurb" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 350 हो"source" की वैकल्पिक है"source" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए"source_url" की वैकल्पिक है"source_url" की वैल्यू एक URL होनी चाहिए"authors" की ज़रूरी है"authors" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"authors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"authors" की वैल्यू में दोहराव नहीं होना चाहिए"authors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"contributors" की वैकल्पिक है"contributors" की वैल्यू एक ऐरे होनी चाहिए"contributors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"contributors" की वैल्यू में दोहराव नहीं होना चाहिए"contributors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"authors" ऐरे में हो सकता है या "contributors" ऐरे में, दोनों में नहीं (कोई ओवरलैप नहीं)"files.solution" की ज़रूरी है"files.solution" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"files.solution" की वैल्यू में दोहराव नहीं होना चाहिए"files.test" की ज़रूरी है"files.test" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"files.test" की वैल्यू में दोहराव नहीं होना चाहिए"files.exemplar" की ज़रूरी है"files.exemplar" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"files.exemplar" की वैल्यू में दोहराव नहीं होना चाहिए"files.editor" की वैकल्पिक है"files.editor" की वैल्यू एक ऐरे होनी चाहिए"files.editor" की वैल्यू में दोहराव नहीं होना चाहिए"files.invalidator" की वैकल्पिक है"files.invalidator" की वैल्यू एक ऐरे होनी चाहिए"files.invalidator" की वैल्यू में दोहराव नहीं होना चाहिए"files.solution" में लिखी फाइलें मौजूद होनी चाहिए"files.test" में लिखी फाइलें मौजूद होनी चाहिए"files.exemplar" में लिखी फाइलें मौजूद होनी चाहिए"files.editor" में लिखी फाइलें मौजूद होनी चाहिए"files.invalidator" में लिखी फाइलें मौजूद होनी चाहिए"files.solution", "files.test", "files.exemplar" या "files.invalidator" ऐरे में से किसी एक में ही लिखी जा सकती हैं (कोई ओवरलैप नहीं)
d या plsql है, तो "files.solution" और "files.test" फाइलों में ओवरलैप हो सकता है
"forked_from" की वैकल्पिक है"forked_from" की वैल्यू एक ऐरे होनी चाहिए"forked_from" की वैल्यू ऐसी स्ट्रिंग होनी चाहिए जो <track-slug>/<exercise-slug> के रूप में लिखी हो (जैसे fsharp/bird-watcher)"forked_from" की वैल्यू ऐसे अभ्यासों की ओर इशारा करनी चाहिए जो वाकई लागू किए गए हैं"forked_from" की वैल्यू में दोहराव नहीं होना चाहिए"language_versions" की वैकल्पिक है"language_versions" की वैल्यू एक स्ट्रिंग होनी चाहिए"representer.version" की वैकल्पिक है"representer.version" की वैल्यू एक पूर्णांक होनी चाहिए जो >= 1 हो"icon" की वैकल्पिक है"icon" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए## General हों या ## X. <task>, जहाँ X instructions.md में दिए गए कार्य-संख्या वाली हेडिंग से मेल खाता हो## 1. Do X
config.json में दिए गए किसी एक कॉन्सेप्ट की "concepts.slug" प्रॉपर्टी से मेल खाना चाहिए।"blurb" की ज़रूरी है"blurb" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 350 हो"source" की वैकल्पिक है"source" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए"source_url" की वैकल्पिक है"source_url" की वैल्यू एक URL होनी चाहिए"authors" की वैकल्पिक है"authors" की वैल्यू एक ऐरे होनी चाहिए"authors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"authors" की वैल्यू में दोहराव नहीं होना चाहिए"authors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"contributors" की वैकल्पिक है"contributors" की वैल्यू एक ऐरे होनी चाहिए"contributors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"contributors" की वैल्यू में दोहराव नहीं होना चाहिए"contributors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"authors" ऐरे में हो सकता है या "contributors" ऐरे में, दोनों में नहीं (कोई ओवरलैप नहीं)"files.solution" की ज़रूरी है"files.solution" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"files.solution" की वैल्यू में दोहराव नहीं होना चाहिए"files.test" की ज़रूरी है"files.test" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"files.test" की वैल्यू में दोहराव नहीं होना चाहिए"files.example" की ज़रूरी है"files.example" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"files.example" की वैल्यू में दोहराव नहीं होना चाहिए"files.editor" की वैकल्पिक है"files.editor" की वैल्यू एक ऐरे होनी चाहिए"files.editor" की वैल्यू में दोहराव नहीं होना चाहिए"files.invalidator" की वैकल्पिक है"files.invalidator" की वैल्यू एक ऐरे होनी चाहिए"files.invalidator" की वैल्यू में दोहराव नहीं होना चाहिए"files.solution" में लिखी फाइलें मौजूद होनी चाहिए"files.test" में लिखी फाइलें मौजूद होनी चाहिए"files.example" में लिखी फाइलें मौजूद होनी चाहिए"files.editor" में लिखी फाइलें मौजूद होनी चाहिए"files.invalidator" में लिखी फाइलें मौजूद होनी चाहिए"files.solution", "files.test", "files.example या "files.invalidator" ऐरे में से किसी एक में ही लिखी जा सकती हैं (कोई ओवरलैप नहीं)
d या plsql है, तो "files.solution" और "files.test" फाइलों में ओवरलैप हो सकता है
"language_versions" की वैकल्पिक है"language_versions" की वैल्यू एक स्ट्रिंग होनी चाहिए"test_runner" की वैकल्पिक है"test_runner" की वैल्यू एक बूलियन होनी चाहिए"representer.version" की वैकल्पिक है"representer.version" की वैल्यू एक पूर्णांक होनी चाहिए जो >= 1 हो"icon" की वैकल्पिक है"icon" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिएintroduction.md या साथ वाली कोई डायरेक्टरी हो, तो नहीं"introduction.authors" की वैकल्पिक है"introduction.authors" की वैल्यू एक ऐरे होनी चाहिए"introduction.authors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"introduction.authors" की वैल्यू में दोहराव नहीं होना चाहिए"introduction.authors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"introduction.authors" ऐरे खाली नहीं है, तो एक गैर-खाली introduction.md फाइल होनी चाहिए"introduction.contributors" की वैकल्पिक है"introduction.contributors" की वैल्यू एक ऐरे होनी चाहिए"introduction.contributors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"introduction.contributors" की वैल्यू में दोहराव नहीं होना चाहिए"introduction.contributors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"introduction.contributors" ऐरे खाली नहीं है, तो एक गैर-खाली introduction.md फाइल होनी चाहिए"introduction.authors" ऐरे में हो सकता है या "introduction.contributors" ऐरे में, दोनों में नहीं (कोई ओवरलैप नहीं)"approaches" की वैकल्पिक है, लेकिन अगर साथ में कोई डायरेक्टरी मौजूद हो (जिसमें उस अप्रोच की फाइलें हैं), तो नहीं"approaches" की वैल्यू ऑब्जेक्ट का एक ऐरे होनी चाहिए"approaches[].uuid" की ज़रूरी है"approaches[].uuid" की वैल्यू एक अद्वितीय वर्ज़न 4 UUID स्ट्रिंग⁶ होनी चाहिए"approaches[].uuid" वैल्यू कभी नहीं बदलनी चाहिए"approaches[].slug" की ज़रूरी है"approaches[].slug" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए, जिसकी लंबाई <= 255 हो"approaches[].slug" की वैल्यू के लिए एक गैर-खाली <slug>/content.md फाइल होनी चाहिए"approaches[].slug" की वैल्यू के लिए एक गैर-खाली <slug>/snippet.txt फाइल होनी चाहिए"approaches[].title" की ज़रूरी है"approaches[].title" की वैल्यू एक टाइटल केस स्ट्रिंग³ होनी चाहिए, जिसकी लंबाई <= 255 हो"approaches[].blurb" की ज़रूरी है"approaches[].blurb" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 350 हो"approaches[].authors" की ज़रूरी है"approaches[].authors" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"approaches[].authors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"approaches[].authors" की वैल्यू में दोहराव नहीं होना चाहिए"approaches[].authors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"approaches[].contributors" की वैकल्पिक है"approaches[].contributors" की वैल्यू एक ऐरे होनी चाहिए"approaches[].contributors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"approaches[].contributors" की वैल्यू में दोहराव नहीं होना चाहिए"approaches[].contributors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"approaches[].authors" ऐरे में हो सकता है या "approaches[].contributors" ऐरे में, दोनों में नहीं (कोई ओवरलैप नहीं)"approaches[].tags" की वैकल्पिक है"approaches[].tags.any" खाली नहीं है, तो "approaches[].tags.all" की वैकल्पिक है"approaches[].tags.all" की वैल्यू एक ऐरे होनी चाहिए"approaches[].tags.all" की वैल्यू गैर-खाली टैग⁷ स्ट्रिंग होनी चाहिए, जिसकी लंबाई <= 255 हो"approaches[].tags.all" की वैल्यू में दोहराव नहीं होना चाहिए"approaches[].tags.all" खाली नहीं है, तो "approaches[].tags.any" की वैकल्पिक है"approaches[].tags.any" की वैल्यू एक ऐरे होनी चाहिए"approaches[].tags.any" की वैल्यू गैर-खाली टैग⁷ स्ट्रिंग होनी चाहिए, जिसकी लंबाई <= 255 हो"approaches[].tags.any" की वैल्यू में दोहराव नहीं होना चाहिए"approaches[].tags.not" की वैकल्पिक है"approaches[].tags.not" की वैल्यू एक ऐरे होनी चाहिए"approaches[].tags.not" की वैल्यू गैर-खाली टैग⁷ स्ट्रिंग होनी चाहिए, जिसकी लंबाई <= 255 हो"approaches[].tags.not" की वैल्यू में दोहराव नहीं होना चाहिए.approaches/config.json फाइल में "approaches[].slug" की मेल खाती एंट्री मौजूद है, तो फाइल का मौजूद होना ज़रूरी है.approaches/config.json फाइल में "approaches[].slug" की मेल खाती एंट्री मौजूद है, तो फाइल का मौजूद होना ज़रूरी हैconfig.json फाइल में approaches.snippet_extension की वैल्यू से लिया जाता है"articles" की वैकल्पिक है, लेकिन अगर साथ में कोई डायरेक्टरी मौजूद हो (जिसमें उस आर्टिकल की फाइलें हैं), तो नहीं"articles" की वैल्यू ऑब्जेक्ट का एक ऐरे होनी चाहिए"articles[].uuid" की ज़रूरी है"articles[].uuid" की वैल्यू एक अद्वितीय वर्ज़न 4 UUID स्ट्रिंग⁶ होनी चाहिए"articles[].uuid" वैल्यू कभी नहीं बदलनी चाहिए"articles[].slug" की ज़रूरी है"articles[].slug" की वैल्यू एक कीबैब-केस स्ट्रिंग² होनी चाहिए, जिसकी लंबाई <= 255 हो"articles[].slug" की वैल्यू के लिए एक गैर-खाली <slug>/content.md फाइल होनी चाहिए"articles[].slug" की वैल्यू के लिए एक गैर-खाली <slug>/snippet.md फाइल होनी चाहिए"articles[].title" की ज़रूरी है"articles[].title" की वैल्यू एक टाइटल केस स्ट्रिंग³ होनी चाहिए, जिसकी लंबाई <= 255 हो"articles[].blurb" की ज़रूरी है"articles[].blurb" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 350 हो"articles[].authors" की ज़रूरी है"articles[].authors" की वैल्यू एक गैर-खाली ऐरे होनी चाहिए"articles[].authors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"articles[].authors" की वैल्यू में दोहराव नहीं होना चाहिए"articles[].authors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"articles[].contributors" की वैकल्पिक है"articles[].contributors" की वैल्यू एक ऐरे होनी चाहिए"articles[].contributors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"articles[].contributors" की वैल्यू में दोहराव नहीं होना चाहिए"articles[].contributors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"articles[].authors" ऐरे में हो सकता है या "articles[].contributors" ऐरे में, दोनों में नहीं (कोई ओवरलैप नहीं).articles/config.json फाइल में "articles[].slug" की मेल खाती एंट्री मौजूद है, तो फाइल का मौजूद होना ज़रूरी है.articles/config.json फाइल में "articles[].slug" की मेल खाती एंट्री मौजूद है, तो फाइल का मौजूद होना ज़रूरी है"[].url" प्रॉपर्टी ज़रूरी है"[].url" की वैल्यू एक URL होनी चाहिए"[].description" प्रॉपर्टी ज़रूरी है"[].description" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए"[].icon_url" प्रॉपर्टी वैकल्पिक है"[].icon_url" की वैल्यू एक URL होनी चाहिए"blurb" की ज़रूरी है"blurb" की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए, जिसकी लंबाई <= 350 हो"authors" की ज़रूरी है"authors" की वैल्यू एक ऐरे होनी चाहिए"authors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"authors" की वैल्यू में दोहराव नहीं होना चाहिए"authors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"contributors" की वैकल्पिक है"contributors" की वैल्यू एक ऐरे होनी चाहिए"contributors" की वैल्यू गैर-खाली स्ट्रिंग¹ होनी चाहिए"contributors" की वैल्यू में दोहराव नहीं होना चाहिए"contributors" की वैल्यू केस को नज़रअंदाज़ करके देखी जाती हैं"authors" ऐरे में हो सकता है या "contributors" ऐरे में, दोनों में नहीं (कोई ओवरलैप नहीं)गैर-खाली स्ट्रिंग: ऐसी स्ट्रिंग जिसमें कम से कम एक गैर-व्हाइटस्पेस अक्षर हो।
कीबैब-केस स्ट्रिंग: ऐसी स्ट्रिंग जिसमें सिर्फ [a-z0-9] के बीच के अक्षर हों, और वे चाहें तो डैश से अलग किए गए हों (जैसे "two-fer")। इसे इस रेगुलर एक्सप्रेशन से मेल खाना चाहिए: ^[a-z0-9]+(-[a-z0-9]+)*$
टाइटल केस स्ट्रिंग: एक गैर-खाली स्ट्रिंग जो Chicago Manual of Style के इन दिशानिर्देशों का पालन करती हो:
सेंटेंस केस स्ट्रिंग: एक गैर-खाली स्ट्रिंग जो इन दिशानिर्देशों का पालन करती हो:
मान्य files पैटर्न: एक गैर-खाली स्ट्रिंग¹ जो अभ्यास की डायरेक्टरी के सापेक्ष, उस अभ्यास में इस्तेमाल होने वाली किसी फाइल का पता बताती है। पैटर्न में इनमें से कोई एक प्लेसहोल्डर इस्तेमाल हो सकता है:
%{kebab_slug}: अभ्यास का kebab-case स्लग (जैसे bit-manipulation)%{snake_slug}: अभ्यास का snake_case स्लग (जैसे bit_manipulation)%{camel_slug}: अभ्यास का camelCase स्लग (जैसे bitManipulation)%{pascal_slug}: अभ्यास का PascalCase स्लग (जैसे BitManipulation)अद्वितीय वर्ज़न 4 UUID स्ट्रिंग: ऐसी स्ट्रिंग जो ये सारी शर्तें पूरी करती हो:
config.json फाइल में सिर्फ एक बार मौजूद होconfig.json फाइल में मौजूद न होcanonical-data.json फाइल में मौजूद न हो^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
उदाहरण के लिए, नीचे दिया गया UUID सही रूप में है:
d334ffe3-657e-4725-a950-290b284b6d9f
उपयुक्त UUID बनाने के लिए आप configlet uuid चला सकते हैं।
मान्य एनालाइज़र tag: एक गैर-खाली स्ट्रिंग¹ जो <category>:<thing> के रूप में लिखी हो।
<category> की वैल्यू इनमें से एक होनी चाहिए:
paradigm (जैसे paradigm:functional)technique (जैसे technique:recursion)construct (जैसे construct:bitwise-and)uses (जैसे uses:DateTime.add_seconds)<thing> की वैल्यू एक गैर-खाली स्ट्रिंग¹ होनी चाहिए।