simple-content-site 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/app.config.ts +29 -0
- package/app/app.vue +77 -0
- package/app/components/IconMenuToggle.vue +83 -0
- package/app/components/LanguageSelect.vue +82 -0
- package/app/components/OgImage/OgImageDocs.vue +76 -0
- package/app/components/OgImage/OgImageLanding.vue +73 -0
- package/app/components/app/AppFooter.vue +11 -0
- package/app/components/app/AppFooterLeft.vue +5 -0
- package/app/components/app/AppFooterRight.vue +30 -0
- package/app/components/app/AppHeader.vue +82 -0
- package/app/components/app/AppHeaderBody.vue +13 -0
- package/app/components/app/AppHeaderCTA.vue +3 -0
- package/app/components/app/AppHeaderCenter.vue +10 -0
- package/app/components/app/AppHeaderLogo.vue +16 -0
- package/app/components/docs/DocsAsideLeftBody.vue +12 -0
- package/app/components/docs/DocsAsideLeftTop.vue +3 -0
- package/app/components/docs/DocsAsideRightBottom.vue +18 -0
- package/app/components/docs/DocsPageHeaderLinks.vue +74 -0
- package/app/composables/useDocusI18n.ts +33 -0
- package/app/error.vue +76 -0
- package/app/layouts/default.vue +5 -0
- package/app/layouts/page.vue +7 -0
- package/app/pages/[[lang]]/[...slug].vue +56 -0
- package/app/plugins/i18n.ts +16 -0
- package/app/templates/landing.vue +44 -0
- package/app/types/index.d.ts +39 -0
- package/app/utils/navigation.ts +7 -0
- package/app/utils/prerender.ts +12 -0
- package/content.config.ts +74 -0
- package/i18n/locales/ar.json +22 -0
- package/i18n/locales/be.json +23 -0
- package/i18n/locales/bn.json +22 -0
- package/i18n/locales/ca.json +22 -0
- package/i18n/locales/ckb.json +18 -0
- package/i18n/locales/cs.json +22 -0
- package/i18n/locales/da.json +22 -0
- package/i18n/locales/de.json +22 -0
- package/i18n/locales/el.json +22 -0
- package/i18n/locales/en.json +22 -0
- package/i18n/locales/et.json +22 -0
- package/i18n/locales/fr.json +22 -0
- package/i18n/locales/he.json +22 -0
- package/i18n/locales/hi.json +22 -0
- package/i18n/locales/hy.json +22 -0
- package/i18n/locales/it.json +22 -0
- package/i18n/locales/ja.json +22 -0
- package/i18n/locales/kk.json +22 -0
- package/i18n/locales/km.json +22 -0
- package/i18n/locales/ko.json +22 -0
- package/i18n/locales/ky.json +22 -0
- package/i18n/locales/lb.json +22 -0
- package/i18n/locales/ms.json +22 -0
- package/i18n/locales/nb.json +22 -0
- package/i18n/locales/pl.json +23 -0
- package/i18n/locales/ru.json +23 -0
- package/i18n/locales/sl.json +22 -0
- package/i18n/locales/sv.json +22 -0
- package/i18n/locales/uk.json +22 -0
- package/i18n/locales/ur.json +22 -0
- package/i18n/locales/vi.json +22 -0
- package/modules/config.ts +116 -0
- package/modules/css.ts +32 -0
- package/modules/routing.ts +41 -0
- package/nuxt.config.ts +75 -0
- package/nuxt.schema.ts +218 -0
- package/package.json +52 -0
- package/server/routes/raw/[...slug].md.get.ts +45 -0
- package/utils/git.ts +110 -0
- package/utils/meta.ts +29 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "või",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Lehekülge ei leitud",
|
|
6
|
+
"description": "Vabandame, kuid otsitavat lehekülge ei leitud."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Kopeeri lehekülg",
|
|
12
|
+
"link": "Kopeeri Markdown lehekülg",
|
|
13
|
+
"view": "Vaata Markdownina",
|
|
14
|
+
"gpt": "Ava ChatGPT-s",
|
|
15
|
+
"claude": "Ava Claude'is"
|
|
16
|
+
},
|
|
17
|
+
"links": "Kogukond",
|
|
18
|
+
"toc": "Sellel lehel",
|
|
19
|
+
"report": "Teata probleemist",
|
|
20
|
+
"edit": "Muuda seda lehekülge"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "ou",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Page non trouvée",
|
|
6
|
+
"description": "Nous sommes désolés, mais la page que vous cherchez n'existe pas."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Copier la page",
|
|
12
|
+
"link": "Copier le lien Markdown",
|
|
13
|
+
"view": "Voir en Markdown",
|
|
14
|
+
"gpt": "Ouvrir dans ChatGPT",
|
|
15
|
+
"claude": "Ouvrir dans Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Communauté",
|
|
18
|
+
"toc": "Sur cette page",
|
|
19
|
+
"report": "Signaler un problème",
|
|
20
|
+
"edit": "Éditer cette page"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "או",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "העמוד לא נמצא",
|
|
6
|
+
"description": "אנו מתנצלים, אך העמוד שאתה מחפש לא קיים."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "העתק עמוד",
|
|
12
|
+
"link": "העתק עמוד Markdown",
|
|
13
|
+
"view": "הצג כ-Markdown",
|
|
14
|
+
"gpt": "פתח ב-ChatGPT",
|
|
15
|
+
"claude": "פתח ב-Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "קהילה",
|
|
18
|
+
"toc": "בעמוד זה",
|
|
19
|
+
"report": "דווח על בעיה",
|
|
20
|
+
"edit": "ערוך עמוד זה"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "या",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "पृष्ठ नहीं मिला",
|
|
6
|
+
"description": "हमें खुशी है, लेकिन आप जो पृष्ठ खोज रहे हैं वह मौजूद नहीं है।"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "पृष्ठ कॉपी करें",
|
|
12
|
+
"link": "Markdown पृष्ठ कॉपी करें",
|
|
13
|
+
"view": "Markdown के रूप में देखें",
|
|
14
|
+
"gpt": "ChatGPT में खोलें",
|
|
15
|
+
"claude": "Claude में खोलें"
|
|
16
|
+
},
|
|
17
|
+
"links": "समुदाय",
|
|
18
|
+
"toc": "इस पृष्ठ पर",
|
|
19
|
+
"report": "समस्या की रिपोर्ट करें",
|
|
20
|
+
"edit": "इस पृष्ठ को संपादित करें"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "կամ",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Էջը չի գտնվել",
|
|
6
|
+
"description": "Ներողություն, բայց այն էջը, որը փնտրում եք, չի գտնվել:"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Պատճենել էջը",
|
|
12
|
+
"link": "Պատճենել Markdown էջը",
|
|
13
|
+
"view": "Դիտել որպես Markdown",
|
|
14
|
+
"gpt": "Բացել ChatGPT-ում",
|
|
15
|
+
"claude": "Բացել Claude-ում"
|
|
16
|
+
},
|
|
17
|
+
"links": "Համայնք",
|
|
18
|
+
"toc": "Այս էջում",
|
|
19
|
+
"report": "Հաղորդել խնդրի մասին",
|
|
20
|
+
"edit": "Խմբագրել այս էջը"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "o",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Pagina non trovata",
|
|
6
|
+
"description": "Ci scusiamo, ma sembra che questa pagina non sia disponibile."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Copia pagina",
|
|
12
|
+
"link": "Copia pagina Markdown",
|
|
13
|
+
"view": "Visualizza come Markdown",
|
|
14
|
+
"gpt": "Apri in ChatGPT",
|
|
15
|
+
"claude": "Apri in Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Comunità",
|
|
18
|
+
"toc": "In questa pagina",
|
|
19
|
+
"report": "Segnala un problema",
|
|
20
|
+
"edit": "Modifica questa pagina"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "または",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "ページが見つかりません",
|
|
6
|
+
"description": "申し訳ございませんが、お探しのページは見つかりませんでした。"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "ページをコピー",
|
|
12
|
+
"link": "Markdownページをコピー",
|
|
13
|
+
"view": "Markdownとして表示",
|
|
14
|
+
"gpt": "ChatGPTで開く",
|
|
15
|
+
"claude": "Claudeで開く"
|
|
16
|
+
},
|
|
17
|
+
"links": "コミュニティ",
|
|
18
|
+
"toc": "このページの内容",
|
|
19
|
+
"report": "問題を報告",
|
|
20
|
+
"edit": "このページを編集"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "немесе",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Бет табылмады",
|
|
6
|
+
"description": "Кешіріңіз, бірақ сіз іздеген бет табылмады."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Бетті көшіру",
|
|
12
|
+
"link": "Markdown бетін көшіру",
|
|
13
|
+
"view": "Markdown ретінде көру",
|
|
14
|
+
"gpt": "ChatGPT-те ашу",
|
|
15
|
+
"claude": "Claude-те ашу"
|
|
16
|
+
},
|
|
17
|
+
"links": "Қауымдастық",
|
|
18
|
+
"toc": "Осы бетте",
|
|
19
|
+
"report": "Мәселе туралы хабарлау",
|
|
20
|
+
"edit": "Осы бетті өңдеу"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "ឬ",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "រកមិនឃើញទំព័រ",
|
|
6
|
+
"description": "យើងសុំទោស ប៉ុន្តែទំព័រដែលអ្នកកំពុងស្វែងរកមិនអាចរកឃើញទេ។"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "ចម្លងទំព័រ",
|
|
12
|
+
"link": "ចម្លងទំព័រ Markdown",
|
|
13
|
+
"view": "មើលជា Markdown",
|
|
14
|
+
"gpt": "បើកនៅ ChatGPT",
|
|
15
|
+
"claude": "បើកនៅ Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "សហគមន៍",
|
|
18
|
+
"toc": "នៅលើទំព័រនេះ",
|
|
19
|
+
"report": "រាយការណ៍បញ្ហា",
|
|
20
|
+
"edit": "កែសម្រួលទំព័រនេះ"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "또는",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "페이지를 찾을 수 없습니다",
|
|
6
|
+
"description": "죄송합니다. 찾고 계신 페이지를 찾을 수 없습니다."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "페이지 복사",
|
|
12
|
+
"link": "Markdown 페이지 복사",
|
|
13
|
+
"view": "Markdown으로 보기",
|
|
14
|
+
"gpt": "ChatGPT에서 열기",
|
|
15
|
+
"claude": "Claude에서 열기"
|
|
16
|
+
},
|
|
17
|
+
"links": "커뮤니티",
|
|
18
|
+
"toc": "이 페이지에서",
|
|
19
|
+
"report": "문제 신고",
|
|
20
|
+
"edit": "이 페이지 편집"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "же",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Барак табылган жок",
|
|
6
|
+
"description": "Кечиресиз, бирок сиз издеген барак табылган жок."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Баракты көчүрүү",
|
|
12
|
+
"link": "Markdown барагын көчүрүү",
|
|
13
|
+
"view": "Markdown катары көрүү",
|
|
14
|
+
"gpt": "ChatGPT'те ачуу",
|
|
15
|
+
"claude": "Claude'да ачуу"
|
|
16
|
+
},
|
|
17
|
+
"links": "Коом",
|
|
18
|
+
"toc": "Бул барактта",
|
|
19
|
+
"report": "Көйгөй туурасында кабарлоо",
|
|
20
|
+
"edit": "Бул баракты түзөтүү"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "oder",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Säit net fonnt",
|
|
6
|
+
"description": "Et deet ons leed, awer d'Säit déi Dir sicht gëtt et net."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Säit kopéieren",
|
|
12
|
+
"link": "Markdown Säit kopéieren",
|
|
13
|
+
"view": "Als Markdown kucken",
|
|
14
|
+
"gpt": "An ChatGPT opmaachen",
|
|
15
|
+
"claude": "An Claude opmaachen"
|
|
16
|
+
},
|
|
17
|
+
"links": "Gemeinschaft",
|
|
18
|
+
"toc": "Op dëser Säit",
|
|
19
|
+
"report": "Problem mellen",
|
|
20
|
+
"edit": "Dës Säit änneren"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "atau",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Halaman tidak dijumpai",
|
|
6
|
+
"description": "Kami mohon maaf, tetapi halaman yang anda cari tidak dapat dijumpai."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Salin halaman",
|
|
12
|
+
"link": "Salin halaman Markdown",
|
|
13
|
+
"view": "Lihat sebagai Markdown",
|
|
14
|
+
"gpt": "Buka di ChatGPT",
|
|
15
|
+
"claude": "Buka di Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Komuniti",
|
|
18
|
+
"toc": "Dalam halaman ini",
|
|
19
|
+
"report": "Laporkan masalah",
|
|
20
|
+
"edit": "Edit halaman ini"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "eller",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Side ikke funnet",
|
|
6
|
+
"description": "Vi beklager, men siden du leter etter kunne ikke finnes."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Kopier side",
|
|
12
|
+
"link": "Kopier Markdown-side",
|
|
13
|
+
"view": "Vis som Markdown",
|
|
14
|
+
"gpt": "Åpne i ChatGPT",
|
|
15
|
+
"claude": "Åpne i Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Fellesskap",
|
|
18
|
+
"toc": "På denne siden",
|
|
19
|
+
"report": "Rapporter et problem",
|
|
20
|
+
"edit": "Rediger denne siden"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "lub",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Nie znaleziono strony",
|
|
6
|
+
"description": "Przepraszamy, ale nie znaleziono tej strony."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Skopiuj stronę",
|
|
12
|
+
"link": "Skopiuj stronę Markdown",
|
|
13
|
+
"view": "Wyświetl jako Markdown",
|
|
14
|
+
"gpt": "Otwórz w ChatGPT",
|
|
15
|
+
"claude": "Otwórz w Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Społeczność",
|
|
18
|
+
"toc": "Na tej stronie",
|
|
19
|
+
"report": "Zgłoś problem",
|
|
20
|
+
"edit": "Edytuj tę stronę"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "или",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Страница не найдена",
|
|
6
|
+
"description": "Извините, но запрашиваемая страница не найдена."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Копировать страницу",
|
|
12
|
+
"link": "Копировать Markdown-страницу",
|
|
13
|
+
"view": "Просмотреть как Markdown",
|
|
14
|
+
"gpt": "Открыть в ChatGPT",
|
|
15
|
+
"claude": "Открыть в Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Сообщество",
|
|
18
|
+
"toc": "На этой странице",
|
|
19
|
+
"report": "Сообщить о проблеме",
|
|
20
|
+
"edit": "Редактировать эту страницу"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "ali",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Stran ni bila najdena",
|
|
6
|
+
"description": "Opravičujemo se, vendar stran, ki jo iščete, ni bila najdena."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Kopiraj stran",
|
|
12
|
+
"link": "Kopiraj Markdown stran",
|
|
13
|
+
"view": "Prikaži kot Markdown",
|
|
14
|
+
"gpt": "Odpri v ChatGPT",
|
|
15
|
+
"claude": "Odpri v Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Skupnost",
|
|
18
|
+
"toc": "Na tej strani",
|
|
19
|
+
"report": "Prijavi težavo",
|
|
20
|
+
"edit": "Uredi to stran"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "eller",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Sidan hittades inte",
|
|
6
|
+
"description": "Vi ber om ursäkt, men sidan du letar efter kunde inte hittas."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Kopiera sida",
|
|
12
|
+
"link": "Kopiera Markdown-sida",
|
|
13
|
+
"view": "Visa som Markdown",
|
|
14
|
+
"gpt": "Öppna i ChatGPT",
|
|
15
|
+
"claude": "Öppna i Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Gemenskap",
|
|
18
|
+
"toc": "På denna sida",
|
|
19
|
+
"report": "Rapportera ett problem",
|
|
20
|
+
"edit": "Redigera denna sida"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "або",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Сторінку не знайдено",
|
|
6
|
+
"description": "Вибачте, але сторінку, яку ви шукаєте, не знайдено."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Скопіювати сторінку",
|
|
12
|
+
"link": "Скопіювати Markdown сторінку",
|
|
13
|
+
"view": "Переглянути як Markdown",
|
|
14
|
+
"gpt": "Відкрити в ChatGPT",
|
|
15
|
+
"claude": "Відкрити в Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Спільнота",
|
|
18
|
+
"toc": "На цій сторінці",
|
|
19
|
+
"report": "Повідомити про проблему",
|
|
20
|
+
"edit": "Редагувати цю сторінку"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "یا",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "صفحہ نہیں ملا",
|
|
6
|
+
"description": "ہمیں افسوس ہے، لیکن آپ جو صفحہ تلاش کر رہے ہیں وہ موجود نہیں ہے۔"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "صفحہ کاپی کریں",
|
|
12
|
+
"link": "Markdown صفحہ کاپی کریں",
|
|
13
|
+
"view": "Markdown کے طور پر دیکھیں",
|
|
14
|
+
"gpt": "ChatGPT میں کھولیں",
|
|
15
|
+
"claude": "Claude میں کھولیں"
|
|
16
|
+
},
|
|
17
|
+
"links": "کمیونٹی",
|
|
18
|
+
"toc": "اس صفحے پر",
|
|
19
|
+
"report": "مسئلہ کی اطلاع دیں",
|
|
20
|
+
"edit": "اس صفحے کو ترمیم کریں"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "hoặc",
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Không tìm thấy trang",
|
|
6
|
+
"description": "Chúng tôi xin lỗi, nhưng trang bạn đang tìm kiếm không tồn tại."
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"docs": {
|
|
10
|
+
"copy": {
|
|
11
|
+
"page": "Sao chép trang",
|
|
12
|
+
"link": "Sao chép trang Markdown",
|
|
13
|
+
"view": "Xem dưới dạng Markdown",
|
|
14
|
+
"gpt": "Mở trong ChatGPT",
|
|
15
|
+
"claude": "Mở trong Claude"
|
|
16
|
+
},
|
|
17
|
+
"links": "Cộng đồng",
|
|
18
|
+
"toc": "Trên trang này",
|
|
19
|
+
"report": "Báo cáo sự cố",
|
|
20
|
+
"edit": "Chỉnh sửa trang này"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { createResolver, defineNuxtModule } from '@nuxt/kit'
|
|
2
|
+
import { defu } from 'defu'
|
|
3
|
+
import { existsSync } from 'node:fs'
|
|
4
|
+
import { join } from 'node:path'
|
|
5
|
+
import { inferSiteURL, getPackageJsonMetadata } from '../utils/meta'
|
|
6
|
+
import { getGitBranch, getGitEnv, getLocalGitInfo } from '../utils/git'
|
|
7
|
+
|
|
8
|
+
export default defineNuxtModule({
|
|
9
|
+
meta: {
|
|
10
|
+
name: 'config',
|
|
11
|
+
},
|
|
12
|
+
async setup(_options, nuxt) {
|
|
13
|
+
const dir = nuxt.options.rootDir
|
|
14
|
+
const url = inferSiteURL()
|
|
15
|
+
const meta = await getPackageJsonMetadata(dir)
|
|
16
|
+
const gitInfo = await getLocalGitInfo(dir) || getGitEnv()
|
|
17
|
+
const siteName = nuxt.options?.site?.name || meta.name || gitInfo?.name || ''
|
|
18
|
+
|
|
19
|
+
// nuxt.options.llms = defu(nuxt.options.llms, {
|
|
20
|
+
// domain: url,
|
|
21
|
+
// title: siteName,
|
|
22
|
+
// description: meta.description || '',
|
|
23
|
+
// full: {
|
|
24
|
+
// title: siteName,
|
|
25
|
+
// description: meta.description || '',
|
|
26
|
+
// },
|
|
27
|
+
// })
|
|
28
|
+
|
|
29
|
+
nuxt.options.site = defu(nuxt.options.site, {
|
|
30
|
+
url,
|
|
31
|
+
name: siteName,
|
|
32
|
+
debug: false,
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
nuxt.options.appConfig.header = defu(nuxt.options.appConfig.header, {
|
|
36
|
+
title: siteName,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
nuxt.options.appConfig.seo = defu(nuxt.options.appConfig.seo, {
|
|
40
|
+
titleTemplate: `%s - ${siteName}`,
|
|
41
|
+
title: siteName,
|
|
42
|
+
description: meta.description || '',
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
nuxt.options.appConfig.github = defu(nuxt.options.appConfig.github, {
|
|
46
|
+
owner: gitInfo?.owner,
|
|
47
|
+
name: gitInfo?.name,
|
|
48
|
+
url: gitInfo?.url,
|
|
49
|
+
branch: getGitBranch(),
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
/*
|
|
53
|
+
** I18N
|
|
54
|
+
*/
|
|
55
|
+
if (nuxt.options.i18n && nuxt.options.i18n.locales) {
|
|
56
|
+
const { resolve } = createResolver(import.meta.url)
|
|
57
|
+
|
|
58
|
+
// Filter locales to only include existing ones
|
|
59
|
+
const filteredLocales = nuxt.options.i18n.locales.filter((locale) => {
|
|
60
|
+
const localeCode = typeof locale === 'string' ? locale : locale.code
|
|
61
|
+
|
|
62
|
+
// Check for JSON locale file
|
|
63
|
+
const localeFilePath = resolve('../i18n/locales', `${localeCode}.json`)
|
|
64
|
+
const hasLocaleFile = existsSync(localeFilePath)
|
|
65
|
+
|
|
66
|
+
// Check for content folder
|
|
67
|
+
const contentPath = join(nuxt.options.rootDir, 'content', localeCode)
|
|
68
|
+
const hasContentFolder = existsSync(contentPath)
|
|
69
|
+
|
|
70
|
+
if (!hasLocaleFile) {
|
|
71
|
+
console.warn(`[Docus] Locale file not found: ${localeCode}.json - skipping locale "${localeCode}"`)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!hasContentFolder) {
|
|
75
|
+
console.warn(`[Docus] Content folder not found: content/${localeCode}/ - skipping locale "${localeCode}"`)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return hasLocaleFile && hasContentFolder
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
// Override strategy to prefix
|
|
82
|
+
nuxt.options.i18n = {
|
|
83
|
+
...nuxt.options.i18n,
|
|
84
|
+
strategy: 'prefix',
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Expose filtered locales
|
|
88
|
+
nuxt.options.runtimeConfig.public.docus = {
|
|
89
|
+
filteredLocales,
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
nuxt.hook('i18n:registerModule', (register) => {
|
|
93
|
+
const langDir = resolve('../i18n/locales')
|
|
94
|
+
|
|
95
|
+
const locales = filteredLocales?.map((locale) => {
|
|
96
|
+
return typeof locale === 'string'
|
|
97
|
+
? {
|
|
98
|
+
code: locale,
|
|
99
|
+
name: locale,
|
|
100
|
+
file: `${locale}.json`,
|
|
101
|
+
}
|
|
102
|
+
: {
|
|
103
|
+
code: locale.code,
|
|
104
|
+
name: locale.name || locale.code,
|
|
105
|
+
file: `${locale.code}.json`,
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
register({
|
|
110
|
+
langDir,
|
|
111
|
+
locales,
|
|
112
|
+
})
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
})
|
package/modules/css.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defineNuxtModule, addTemplate, createResolver } from '@nuxt/kit'
|
|
2
|
+
import { joinURL } from 'ufo'
|
|
3
|
+
import { resolveModulePath } from 'exsolve'
|
|
4
|
+
|
|
5
|
+
export default defineNuxtModule({
|
|
6
|
+
meta: {
|
|
7
|
+
name: 'css',
|
|
8
|
+
},
|
|
9
|
+
async setup(_options, nuxt) {
|
|
10
|
+
const dir = nuxt.options.rootDir
|
|
11
|
+
const resolver = createResolver(import.meta.url)
|
|
12
|
+
|
|
13
|
+
const contentDir = joinURL(dir, 'content')
|
|
14
|
+
const uiPath = resolveModulePath('@nuxt/ui', { from: import.meta.url, conditions: ['style'] })
|
|
15
|
+
const tailwindPath = resolveModulePath('tailwindcss', { from: import.meta.url, conditions: ['style'] })
|
|
16
|
+
const layerDir = resolver.resolve('../app')
|
|
17
|
+
|
|
18
|
+
const cssTemplate = addTemplate({
|
|
19
|
+
filename: 'docus.css',
|
|
20
|
+
getContents: () => {
|
|
21
|
+
return `@import ${JSON.stringify(tailwindPath)};
|
|
22
|
+
@import ${JSON.stringify(uiPath)};
|
|
23
|
+
|
|
24
|
+
@source "${contentDir.replace(/\\/g, '/')}/**/*";
|
|
25
|
+
@source "${layerDir.replace(/\\/g, '/')}/**/*";
|
|
26
|
+
@source "../../app.config.ts";`
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
nuxt.options.css.unshift(cssTemplate.dst)
|
|
31
|
+
},
|
|
32
|
+
})
|