[{"data":1,"prerenderedAt":764},["ShallowReactive",2],{"navigation_docs":3,"-configuration-declared-vs-derived":357,"-configuration-declared-vs-derived-surround":761},[4,22,40,53,78,107,132,153,167,176,347],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Introduction","\u002Fintroduction","1.introduction",[9,13,17],{"title":10,"path":11,"stem":12},"Why the-i18n-kit","\u002Fintroduction\u002Fwhy","1.introduction\u002F1.why",{"title":14,"path":15,"stem":16},"Architecture","\u002Fintroduction\u002Farchitecture","1.introduction\u002F2.architecture",{"title":18,"path":19,"stem":20},"Built for Agents","\u002Fintroduction\u002Fbuilt-for-agents","1.introduction\u002F3.built-for-agents",false,{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":21},"ESLint Plugin","i-lucide-shield-check","\u002Feslint-plugin","10.eslint-plugin",[28,32,36],{"title":29,"path":30,"stem":31},"Install and Presets","\u002Feslint-plugin\u002Finstall","10.eslint-plugin\u002F1.install",{"title":33,"path":34,"stem":35},"The Rules","\u002Feslint-plugin\u002Frules","10.eslint-plugin\u002F2.rules",{"title":37,"path":38,"stem":39},"Layer-Aware Missing Keys","\u002Feslint-plugin\u002Flayer-aware","10.eslint-plugin\u002F3.layer-aware",{"title":41,"path":42,"stem":43,"children":44,"page":21},"Getting Started","\u002Fgetting-started","2.getting-started",[45,49],{"title":46,"path":47,"stem":48},"Set Up the MCP Server","\u002Fgetting-started\u002Fagent-setup","2.getting-started\u002F1.agent-setup",{"title":50,"path":51,"stem":52},"From an Unconfigured Repository to a Gated CI Job","\u002Fgetting-started\u002Fcold-start","2.getting-started\u002F2.cold-start",{"title":54,"path":55,"stem":56,"children":57,"page":21},"Monorepos","\u002Fmonorepos","3.monorepos",[58,62,66,70,74],{"title":59,"path":60,"stem":61},"Layers","\u002Fmonorepos\u002Flayers","3.monorepos\u002F1.layers",{"title":63,"path":64,"stem":65},"The Consumer Graph","\u002Fmonorepos\u002Fconsumer-graph","3.monorepos\u002F2.consumer-graph",{"title":67,"path":68,"stem":69},"The Shared Library Scenario","\u002Fmonorepos\u002Fshared-libraries","3.monorepos\u002F3.shared-libraries",{"title":71,"path":72,"stem":73},"Duplicates and Divergence","\u002Fmonorepos\u002Fduplicates-and-divergence","3.monorepos\u002F4.duplicates-and-divergence",{"title":75,"path":76,"stem":77},"Misplaced Usages","\u002Fmonorepos\u002Fmisplaced-usages","3.monorepos\u002F5.misplaced-usages",{"title":79,"path":80,"stem":81,"children":82,"page":21},"Frameworks","\u002Fframeworks","4.frameworks",[83,87,91,95,99,103],{"title":84,"path":85,"stem":86},"Detection","\u002Fframeworks\u002Fdetection","4.frameworks\u002F1.detection",{"title":88,"path":89,"stem":90},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F2.nuxt",{"title":92,"path":93,"stem":94},"Laravel","\u002Fframeworks\u002Flaravel","4.frameworks\u002F3.laravel",{"title":96,"path":97,"stem":98},"Vue","\u002Fframeworks\u002Fvue","4.frameworks\u002F4.vue",{"title":100,"path":101,"stem":102},"React \u002F Next.js","\u002Fframeworks\u002Freact-next","4.frameworks\u002F5.react-next",{"title":104,"path":105,"stem":106},"Generic","\u002Fframeworks\u002Fgeneric","4.frameworks\u002F6.generic",{"title":108,"path":109,"stem":110,"children":111,"page":21},"Configuration","\u002Fconfiguration","5.configuration",[112,116,120,124,128],{"title":113,"path":114,"stem":115},"Where Configuration Lives","\u002Fconfiguration\u002Fwhere-config-lives","5.configuration\u002F1.where-config-lives",{"title":117,"path":118,"stem":119},"Precedence and Conflicts","\u002Fconfiguration\u002Fprecedence","5.configuration\u002F2.precedence",{"title":121,"path":122,"stem":123},"Declared vs. Derived Configuration","\u002Fconfiguration\u002Fdeclared-vs-derived","5.configuration\u002F3.declared-vs-derived",{"title":125,"path":126,"stem":127},"Configuration Fields","\u002Fconfiguration\u002Freference","5.configuration\u002F4.reference",{"title":129,"path":130,"stem":131},"Referring to Locales","\u002Fconfiguration\u002Flocale-refs","5.configuration\u002F5.locale-refs",{"title":133,"path":134,"stem":135,"children":136,"page":21},"Nuxt Module","\u002Fnuxt-module","6.nuxt-module",[137,141,145,149],{"title":138,"path":139,"stem":140},"Install and Setup","\u002Fnuxt-module\u002Finstall","6.nuxt-module\u002F1.install",{"title":142,"path":143,"stem":144},"What It Publishes","\u002Fnuxt-module\u002Fwhat-it-publishes","6.nuxt-module\u002F2.what-it-publishes",{"title":146,"path":147,"stem":148},"What It Validates","\u002Fnuxt-module\u002Fvalidation","6.nuxt-module\u002F3.validation",{"title":150,"path":151,"stem":152},"Options and Limits","\u002Fnuxt-module\u002Foptions-and-limits","6.nuxt-module\u002F4.options-and-limits",{"title":154,"icon":155,"path":156,"stem":157,"children":158,"page":21},"CI\u002FCD","i-lucide-git-pull-request","\u002Fci-cd","7.ci-cd",[159,163],{"title":160,"path":161,"stem":162},"GitHub Actions","\u002Fci-cd\u002Fgithub-actions","7.ci-cd\u002F1.github-actions",{"title":164,"path":165,"stem":166},"GitLab CI","\u002Fci-cd\u002Fgitlab-ci","7.ci-cd\u002F2.gitlab-ci",{"title":168,"path":169,"stem":170,"children":171,"page":21},"Concepts","\u002Fconcepts","8.concepts",[172],{"title":173,"path":174,"stem":175},"Translation Modes","\u002Fconcepts\u002Ftranslation-modes","8.concepts\u002F1.translation-modes",{"title":177,"path":178,"stem":179,"children":180},"Reference","\u002Freference","9.reference",[181,183,261,339,343],{"title":177,"path":178,"stem":182},"9.reference\u002Findex",{"title":184,"path":185,"stem":186,"children":187},"CLI Commands","\u002Freference\u002Fcli","9.reference\u002F1.cli\u002Findex",[188,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257],{"title":184,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"add","\u002Freference\u002Fcli\u002Fadd","9.reference\u002F1.cli\u002Fadd",{"title":194,"path":195,"stem":196},"check","\u002Freference\u002Fcli\u002Fcheck","9.reference\u002F1.cli\u002Fcheck",{"title":198,"path":199,"stem":200},"find-duplicates","\u002Freference\u002Fcli\u002Ffind-duplicates","9.reference\u002F1.cli\u002Ffind-duplicates",{"title":202,"path":203,"stem":204},"get","\u002Freference\u002Fcli\u002Fget","9.reference\u002F1.cli\u002Fget",{"title":206,"path":207,"stem":208},"init","\u002Freference\u002Fcli\u002Finit","9.reference\u002F1.cli\u002Finit",{"title":210,"path":211,"stem":212},"missing","\u002Freference\u002Fcli\u002Fmissing","9.reference\u002F1.cli\u002Fmissing",{"title":214,"path":215,"stem":216},"move","\u002Freference\u002Fcli\u002Fmove","9.reference\u002F1.cli\u002Fmove",{"title":218,"path":219,"stem":220},"remove","\u002Freference\u002Fcli\u002Fremove","9.reference\u002F1.cli\u002Fremove",{"title":222,"path":223,"stem":224},"remove-orphans","\u002Freference\u002Fcli\u002Fremove-orphans","9.reference\u002F1.cli\u002Fremove-orphans",{"title":226,"path":227,"stem":228},"rename","\u002Freference\u002Fcli\u002Frename","9.reference\u002F1.cli\u002Frename",{"title":230,"path":231,"stem":232},"scaffold","\u002Freference\u002Fcli\u002Fscaffold","9.reference\u002F1.cli\u002Fscaffold",{"title":234,"path":235,"stem":236},"scan","\u002Freference\u002Fcli\u002Fscan","9.reference\u002F1.cli\u002Fscan",{"title":238,"path":239,"stem":240},"search","\u002Freference\u002Fcli\u002Fsearch","9.reference\u002F1.cli\u002Fsearch",{"title":242,"path":243,"stem":244},"status","\u002Freference\u002Fcli\u002Fstatus","9.reference\u002F1.cli\u002Fstatus",{"title":246,"path":247,"stem":248},"translate","\u002Freference\u002Fcli\u002Ftranslate","9.reference\u002F1.cli\u002Ftranslate",{"title":250,"path":251,"stem":252},"translate-key","\u002Freference\u002Fcli\u002Ftranslate-key","9.reference\u002F1.cli\u002Ftranslate-key",{"title":254,"path":255,"stem":256},"update","\u002Freference\u002Fcli\u002Fupdate","9.reference\u002F1.cli\u002Fupdate",{"title":258,"path":259,"stem":260},"write","\u002Freference\u002Fcli\u002Fwrite","9.reference\u002F1.cli\u002Fwrite",{"title":262,"path":263,"stem":264,"children":265},"MCP Tools","\u002Freference\u002Fmcp","9.reference\u002F2.mcp\u002Findex",[266,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327,331,335],{"title":262,"path":263,"stem":264},{"title":268,"path":269,"stem":270},"discover","\u002Freference\u002Fmcp\u002Fdiscover","9.reference\u002F2.mcp\u002Fdiscover",{"title":272,"path":273,"stem":274},"find_duplicate_keys","\u002Freference\u002Fmcp\u002Ffind_duplicate_keys","9.reference\u002F2.mcp\u002Ffind_duplicate_keys",{"title":276,"path":277,"stem":278},"find_empty_translations","\u002Freference\u002Fmcp\u002Ffind_empty_translations","9.reference\u002F2.mcp\u002Ffind_empty_translations",{"title":280,"path":281,"stem":282},"find_orphan_keys","\u002Freference\u002Fmcp\u002Ffind_orphan_keys","9.reference\u002F2.mcp\u002Ffind_orphan_keys",{"title":284,"path":285,"stem":286},"find_undefined_keys","\u002Freference\u002Fmcp\u002Ffind_undefined_keys","9.reference\u002F2.mcp\u002Ffind_undefined_keys",{"title":288,"path":289,"stem":290},"get_missing_translations","\u002Freference\u002Fmcp\u002Fget_missing_translations","9.reference\u002F2.mcp\u002Fget_missing_translations",{"title":292,"path":293,"stem":294},"get_translation_status","\u002Freference\u002Fmcp\u002Fget_translation_status","9.reference\u002F2.mcp\u002Fget_translation_status",{"title":296,"path":297,"stem":298},"get_translations","\u002Freference\u002Fmcp\u002Fget_translations","9.reference\u002F2.mcp\u002Fget_translations",{"title":300,"path":301,"stem":302},"list_namespaces","\u002Freference\u002Fmcp\u002Flist_namespaces","9.reference\u002F2.mcp\u002Flist_namespaces",{"title":304,"path":305,"stem":306},"move_translation_key","\u002Freference\u002Fmcp\u002Fmove_translation_key","9.reference\u002F2.mcp\u002Fmove_translation_key",{"title":308,"path":309,"stem":310},"remove_orphan_keys","\u002Freference\u002Fmcp\u002Fremove_orphan_keys","9.reference\u002F2.mcp\u002Fremove_orphan_keys",{"title":312,"path":313,"stem":314},"remove_translations","\u002Freference\u002Fmcp\u002Fremove_translations","9.reference\u002F2.mcp\u002Fremove_translations",{"title":316,"path":317,"stem":318},"rename_translation_key","\u002Freference\u002Fmcp\u002Frename_translation_key","9.reference\u002F2.mcp\u002Frename_translation_key",{"title":320,"path":321,"stem":322},"scaffold_locale","\u002Freference\u002Fmcp\u002Fscaffold_locale","9.reference\u002F2.mcp\u002Fscaffold_locale",{"title":324,"path":325,"stem":326},"search_translations","\u002Freference\u002Fmcp\u002Fsearch_translations","9.reference\u002F2.mcp\u002Fsearch_translations",{"title":328,"path":329,"stem":330},"translate_key","\u002Freference\u002Fmcp\u002Ftranslate_key","9.reference\u002F2.mcp\u002Ftranslate_key",{"title":332,"path":333,"stem":334},"translate_missing","\u002Freference\u002Fmcp\u002Ftranslate_missing","9.reference\u002F2.mcp\u002Ftranslate_missing",{"title":336,"path":337,"stem":338},"write_translations","\u002Freference\u002Fmcp\u002Fwrite_translations","9.reference\u002F2.mcp\u002Fwrite_translations",{"title":340,"path":341,"stem":342},"GitHub Action","\u002Freference\u002Faction","9.reference\u002F3.action",{"title":344,"path":345,"stem":346},"Programmatic API","\u002Freference\u002Fprogrammatic-api","9.reference\u002F4.programmatic-api",{"title":348,"icon":349,"path":350,"stem":351,"children":352,"page":21},"Extra Topics","i-lucide-microscope","\u002Fextra-topics","91.extra-topics",[353],{"title":354,"path":355,"stem":356},"How Detection Scores Adapters","\u002Fextra-topics\u002Fdetection-scoring","91.extra-topics\u002F1.detection-scoring",{"id":358,"title":121,"body":359,"description":556,"extension":755,"links":756,"meta":757,"navigation":597,"path":122,"seo":758,"stem":123,"__hash__":760},"docs\u002F5.configuration\u002F3.declared-vs-derived.md",{"type":360,"value":361,"toc":749},"minimark",[362,375,380,404,414,417,537,540,543,547,550,647,653,671,675,692,700,707,713,719,722,726,745],[363,364,365,366,370,371,374],"p",{},"The kit works from two kinds of configuration: ",[367,368,369],"strong",{},"declared config",", which you\nwrite for the kit, and ",[367,372,373],{},"derived config",", which it reads out of files your\nframework already owns.",[376,377,379],"h2",{"id":378},"the-two-kinds","The Two Kinds",[363,381,382,385,386,390,391,394,395,399,400,403],{},[367,383,384],{},"Declared config"," is everything the tool cannot see for itself:\nproject context, a glossary, per-locale notes, which locales are protected. It\nlives in ",[387,388,389],"code",{},"i18n-kit.config.ts"," or ",[387,392,393],{},".i18n-mcp.json"," — see\n",[396,397,398],"a",{"href":114},"where configuration lives",".\nThe ",[396,401,402],{"href":126},"configuration field reference"," lists every field\nyou can declare and which of those files accepts it.",[363,405,406,409,410,413],{},[367,407,408],{},"Derived config"," is what your project already states somewhere: which locales\nexist, which one is the reference, where the locale files are, and which\n",[367,411,412],{},"layers"," — scoped locale directories, whether that is a Nuxt layer, a\nworkspace package, a shared UI library or an app in a monorepo — contribute to\nan app.",[363,415,416],{},"The kit reads the following, in each case executing the file rather than\npattern-matching it:",[418,419,420,436],"table",{},[421,422,423],"thead",{},[424,425,426,430,433],"tr",{},[427,428,429],"th",{},"Setup",[427,431,432],{},"Read from",[427,434,435],{},"Gives",[437,438,439,457,480,496,517],"tbody",{},[424,440,441,448,454],{},[442,443,444,445],"td",{},"Nuxt with ",[387,446,447],{},"@the-i18n-kit\u002Fnuxt",[442,449,450,453],{},[387,451,452],{},".nuxt\u002Fi18n-kit.json",", published during the build",[442,455,456],{},"Locales, default locale, fallback locale, layer directories",[424,458,459,462,471],{},[442,460,461],{},"next-intl",[442,463,464,467,468],{},[387,465,466],{},"src\u002Fi18n\u002Frouting.ts"," — ",[387,469,470],{},"defineRouting({ ... })",[442,472,473,476,477],{},[387,474,475],{},"locales",", ",[387,478,479],{},"defaultLocale",[424,481,482,485,490],{},[442,483,484],{},"next-translate",[442,486,487],{},[387,488,489],{},"i18n.js",[442,491,492,476,494],{},[387,493,475],{},[387,495,479],{},[424,497,498,501,511],{},[442,499,500],{},"Next.js Pages Router",[442,502,503,506,507,510],{},[387,504,505],{},"next.config.{ts,js,mjs}"," — the ",[387,508,509],{},"i18n"," block",[442,512,513,476,515],{},[387,514,475],{},[387,516,479],{},[424,518,519,525,534],{},[442,520,521,522],{},"Vue with ",[387,523,524],{},"@intlify\u002Funplugin-vue-i18n",[442,526,527,530,531],{},[387,528,529],{},"vite.config.{ts,js}"," — the plugin's ",[387,532,533],{},"include",[442,535,536],{},"Locale directories",[363,538,539],{},"The Next.js sources are tried in that order, and when none of them yields\nanything the adapter falls back to probing a fixed list of candidate\ndirectories.",[363,541,542],{},"A framework config is only ever executed while resolving a project, never while\ndetecting one.",[376,544,546],{"id":545},"declared-beats-derived","Declared Beats Derived",[363,548,549],{},"Where both have an opinion, the value you declared wins. Pinning the reference\nlocale regardless of what any framework config says:",[551,552,557],"pre",{"className":553,"code":554,"filename":389,"language":555,"meta":556,"style":556},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineI18nKitConfig } from '@the-i18n-kit\u002Fcli\u002Fconfig'\n\nexport default defineI18nKitConfig({\n  defaultLocale: 'en',\n})\n","ts","",[387,558,559,592,599,617,638],{"__ignoreMap":556},[560,561,564,568,572,576,579,582,585,589],"span",{"class":562,"line":563},"line",1,[560,565,567],{"class":566},"s7zQu","import",[560,569,571],{"class":570},"sMK4o"," {",[560,573,575],{"class":574},"sTEyZ"," defineI18nKitConfig",[560,577,578],{"class":570}," }",[560,580,581],{"class":566}," from",[560,583,584],{"class":570}," '",[560,586,588],{"class":587},"sfazB","@the-i18n-kit\u002Fcli\u002Fconfig",[560,590,591],{"class":570},"'\n",[560,593,595],{"class":562,"line":594},2,[560,596,598],{"emptyLinePlaceholder":597},true,"\n",[560,600,602,605,608,611,614],{"class":562,"line":601},3,[560,603,604],{"class":566},"export",[560,606,607],{"class":566}," default",[560,609,575],{"class":610},"s2Zo4",[560,612,613],{"class":574},"(",[560,615,616],{"class":570},"{\n",[560,618,620,624,627,629,632,635],{"class":562,"line":619},4,[560,621,623],{"class":622},"swJcz","  defaultLocale",[560,625,626],{"class":570},":",[560,628,584],{"class":570},[560,630,631],{"class":587},"en",[560,633,634],{"class":570},"'",[560,636,637],{"class":570},",\n",[560,639,641,644],{"class":562,"line":640},5,[560,642,643],{"class":570},"}",[560,645,646],{"class":574},")\n",[363,648,649,650,652],{},"The resolution order for ",[387,651,479],{}," in the React adapter is declared value,\nthen the framework config, then the first discovered locale — so declaring it\nalso removes the last of those, which is a guess about directory order.",[363,654,655,656,658,659,476,661,664,665,667,668,670],{},"Nuxt inverts the ownership for the three keys it can answer itself.\n",[387,657,447],{}," rejects ",[387,660,475],{},[387,662,663],{},"localeDirs"," and ",[387,666,479],{}," in\n",[387,669,393],{}," with a build error, because Nuxt resolves them and a second\nhand-written copy is a source of truth with no tiebreak.",[376,672,674],{"id":673},"when-a-config-cannot-be-read","When a Config Cannot Be Read",[363,676,677,680,681,684,685,390,688,691],{},[367,678,679],{},"A framework config that cannot be executed is a warning",", and the command\ncontinues on the directory probing described above. A real ",[387,682,683],{},"next.config.js","\nwrapped in ",[387,686,687],{},"withNextIntl(...)",[387,689,690],{},"withSentryConfig(...)"," needs its plugins\ninstalled and its environment present, and often has neither in CI:",[551,693,698],{"className":694,"code":696,"language":697,"meta":556},[695],"language-text"," WARN  Could not read \u002Fapp\u002Fsrc\u002Fi18n\u002Frouting.ts: Cannot find module 'some-missing-pkg'.\nFalling back to directory detection — declare the value in i18n-kit.config.ts to be sure of it.\n","text",[387,699,696],{"__ignoreMap":556},[363,701,702,703,706],{},"The same holds for the Nuxt artifact: absent, malformed, written by a version\nthis CLI does not understand, or older than the ",[387,704,705],{},"nuxt.config.ts"," it describes —\neach is a warning and a fallback to loading the app through Nuxt.",[363,708,709,712],{},[367,710,711],{},"A kit config that cannot be loaded fails the command",", naming the file.\nNothing else reads it, so there is no fallback that preserves its meaning:",[551,714,717],{"className":715,"code":716,"language":697,"meta":556},[695]," ERROR  Failed to load \u002Fapp\u002Fi18n-kit.config.ts: Cannot find module '.\u002Fglossary.js'\n",[387,718,716],{"__ignoreMap":556},[363,720,721],{},"A config that loads but is wrong — an unknown key, a misspelled field, or\nanything other than a default export — fails validation and exits 1 rather than\nproceeding with a partial config.",[376,723,725],{"id":724},"limits","Limits",[727,728,729,733,736,742],"ul",{},[730,731,732],"li",{},"Derived config is read per project directory. It cannot tell you why a value\nis what it is beyond the log line naming the file it came from — run with\ndebug logging when a locale set surprises you.",[730,734,735],{},"Only the sources in the table are read. A project declaring locales anywhere\nelse falls back to directory probing, and declaring the value yourself is the\nfix.",[730,737,738,739,741],{},"The Vue reader takes the plugin's ",[387,740,533],{}," option. A project that configures\nthe plugin dynamically, or from a value the recorder cannot observe, gets\ndirectory probing instead.",[730,743,744],{},"Deriving a value never rewrites your files. The kit reads them; it does not\noffer to normalize them.",[746,747,748],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":556,"searchDepth":601,"depth":601,"links":750},[751,752,753,754],{"id":378,"depth":594,"text":379},{"id":545,"depth":594,"text":546},{"id":673,"depth":594,"text":674},{"id":724,"depth":594,"text":725},"md",null,{},{"description":759,"title":121},"Config a person writes for the kit, config read out of a framework's own files, and why a broken one of each is treated differently.","KjtdbPCDBrM_gJsXOH6Qxqy21SiJoUKf7CtdW7YuPhs",[762,763],{"title":117,"path":118,"stem":119,"description":556,"children":-1},{"title":125,"path":126,"stem":127,"description":556,"children":-1},1787604651363]