Skip to content

Commit e2d76b0

Browse files
docs: fix broken English links and complete showcases section (#27)
1 parent 5c76ab8 commit e2d76b0

2 files changed

Lines changed: 92 additions & 64 deletions

File tree

docs/components/home/ConceptsSection.vue

Lines changed: 69 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
<h2>{{ concepts.title }}</h2>
55
<p>{{ concepts.description }}</p>
66
<ul>
7-
<li v-for="item in concepts.items" :key="item.title">
8-
<a :href="`/${locale}${item.link}`">{{ item.title }}</a> - {{ item.description }}
7+
<li
8+
v-for="item in concepts.items"
9+
:key="item.title"
10+
>
11+
<a :href="`/${locale}${item.link || '#'}`">{{ item.title }}</a>
12+
- {{ item.description }}
913
</li>
1014
</ul>
1115
</div>
@@ -14,85 +18,89 @@
1418
<h2>{{ showcases.title }}</h2>
1519
<p>{{ showcases.description }}</p>
1620
<ul>
17-
<li v-for="item in showcases.items" :key="item.title">
18-
<a :href="`/${locale}${item.link}`">{{ item.title }}</a> - {{ item.description }}
21+
<li
22+
v-for="item in showcases.items"
23+
:key="item.title"
24+
>
25+
<a :href="`/${locale}${item.link || '#'}`">{{ item.title }}</a>
26+
- {{ item.description }}
1927
</li>
2028
</ul>
2129
</div>
2230
</div>
2331
</template>
2432

2533
<script setup lang="ts">
26-
import { useData } from 'vitepress';
27-
import { computed } from 'vue';
34+
import { useData } from "vitepress";
35+
import { computed } from "vue";
2836
29-
const { frontmatter } = useData();
37+
const { frontmatter } = useData();
3038
31-
const locale = computed(() => frontmatter.value.locale || 'en-US');
32-
const concepts = computed(() => frontmatter.value.concepts || {});
33-
const showcases = computed(() => frontmatter.value.showcases || {});
39+
const locale = computed(() => frontmatter.value.locale || "en-US");
40+
const concepts = computed(() => frontmatter.value.concepts || {});
41+
const showcases = computed(() => frontmatter.value.showcases || {});
3442
</script>
3543

3644
<style scoped>
37-
.home-sections {
38-
display: grid;
39-
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
40-
gap: 2rem;
41-
margin: 4rem 0;
42-
max-width: 1200px;
43-
margin-left: auto;
44-
margin-right: auto;
45-
position: relative;
46-
overflow: hidden;
47-
}
45+
.home-sections {
46+
display: grid;
47+
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
48+
gap: 2rem;
49+
margin: 4rem 0;
50+
max-width: 1200px;
51+
margin-left: auto;
52+
margin-right: auto;
53+
position: relative;
54+
overflow: hidden;
55+
}
4856
49-
.section-card {
50-
padding: 2rem;
51-
background: var(--vp-c-bg-soft);
52-
border-radius: 12px;
53-
position: relative;
54-
z-index: 1;
55-
}
57+
.section-card {
58+
padding: 2rem;
59+
background: var(--vp-c-bg-soft);
60+
border-radius: 12px;
61+
position: relative;
62+
z-index: 1;
63+
}
5664
57-
.section-card h2 {
58-
margin-top: 0;
59-
margin-bottom: 1rem;
60-
}
65+
.section-card h2 {
66+
margin-top: 0;
67+
margin-bottom: 1rem;
68+
}
6169
62-
.section-card p {
63-
color: var(--vp-c-text-2);
64-
margin-bottom: 1rem;
65-
}
70+
.section-card p {
71+
color: var(--vp-c-text-2);
72+
margin-bottom: 1rem;
73+
}
6674
67-
.section-card ul {
68-
list-style: none;
69-
padding: 0;
70-
margin: 0;
71-
}
75+
.section-card ul {
76+
list-style: none;
77+
padding: 0;
78+
margin: 0;
79+
}
7280
73-
.section-card li {
74-
padding: 0.5rem 0;
75-
border-bottom: 1px solid var(--vp-c-divider);
76-
}
81+
.section-card li {
82+
padding: 0.5rem 0;
83+
border-bottom: 1px solid var(--vp-c-divider);
84+
}
7785
78-
.section-card li:last-child {
79-
border-bottom: none;
80-
}
86+
.section-card li:last-child {
87+
border-bottom: none;
88+
}
8189
82-
.section-card a {
83-
color: var(--vp-c-brand-1);
84-
text-decoration: none;
85-
transition: color 0.2s ease;
86-
}
90+
.section-card a {
91+
color: var(--vp-c-brand-1);
92+
text-decoration: none;
93+
transition: color 0.2s ease;
94+
}
8795
88-
.section-card a:hover {
89-
color: var(--vp-c-brand-2);
90-
text-decoration: underline;
91-
}
96+
.section-card a:hover {
97+
color: var(--vp-c-brand-2);
98+
text-decoration: underline;
99+
}
92100
93-
@media (max-width: 768px) {
94-
.home-sections {
95-
grid-template-columns: 1fr;
101+
@media (max-width: 768px) {
102+
.home-sections {
103+
grid-template-columns: 1fr;
104+
}
96105
}
97-
}
98106
</style>

docs/en-US/index.md

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,45 @@ concepts:
3535
description: Learn the fundamental concepts that power schepta
3636
items:
3737
- title: Factories
38+
link: /concepts/01-factories
3839
description: How schemas become components
3940
- title: Schema Language
41+
link: /concepts/02-schema-language
4042
description: The syntax for defining UI
4143
- title: Provider
44+
link: /concepts/03-provider
4245
description: Global configuration and context
4346
- title: Schema Resolution
47+
link: /concepts/04-schema-resolution
4448
description: From JSON to React/Vue
4549
- title: Renderer
50+
link: /concepts/05-renderer
4651
description: The rendering engine
4752
- title: Middleware
53+
link: /concepts/06-middleware
4854
description: Transforming props and behavior
4955
- title: Debug System
56+
link: /concepts/07-debug-system
5057
description: Development tools
5158
showcases:
5259
title: Showcases
53-
description: Showcases of how to use schepta
60+
description: See schepta in action with interactive examples
5461
items:
55-
- title: React
56-
description: React example
62+
- title: React Examples
63+
link: /showcases/react
64+
description: React with react-hook-form
65+
- title: React Material UI
66+
link: /showcases/material-ui
67+
description: React with Material UI
68+
- title: React Chakra UI
69+
link: /showcases/chakra-ui
70+
description: React with Chakra UI
71+
- title: Vue Examples
72+
link: /showcases/vue
73+
description: Vue with custom form adapter
74+
- title: Vue Vuetify
75+
link: /showcases/vuetify
76+
description: Vue with Vuetify Material Design
5777
---
5878

5979
<script setup>

0 commit comments

Comments
 (0)