Skip to content

Commit 633ba4b

Browse files
committed
feature: add emeriti scaffold
1 parent a112243 commit 633ba4b

File tree

5 files changed

+504
-55
lines changed

5 files changed

+504
-55
lines changed

src/.vitepress/components/TeamCard.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ const imageAlt = computed(() => {
3030
class="member-profile-image"
3131
/>
3232
<section>
33-
<h3 class="member-name">{{ profile.name }}</h3>
34-
<p class="member-headline">
33+
<h3 v-if="profile.name" class="member-name">{{ profile.name }}</h3>
34+
<p v-if="profile.title" class="member-headline">
3535
{{ profile.title }}
3636
<span v-if="profile.company">@ {{ profile.company }}</span>
3737
</p>
3838
<div class="member-details">
3939
<section
40-
v-if="profile.projectList.length > 0"
40+
v-if="profile.projectList && profile.projectList.length > 0"
4141
class="member-detail-section"
4242
>
4343
<IconCode class="member-detail-icon" />
@@ -52,15 +52,18 @@ const imageAlt = computed(() => {
5252
</li>
5353
</ul>
5454
</section>
55-
<section v-if="profile.location.label" class="member-detail-section">
55+
<section
56+
v-if="profile.location && profile.location.label"
57+
class="member-detail-section"
58+
>
5659
<IconLocation class="member-detail-icon" />
5760
<h4 class="sr-only">Location</h4>
5861
<address class="member-location">
5962
{{ profile.location.label }}
6063
</address>
6164
</section>
6265
<section
63-
v-if="profile.languageList.length > 0"
66+
v-if="profile.languageList && profile.languageList.length > 0"
6467
class="member-detail-section"
6568
>
6669
<IconGlobe class="member-detail-icon" />
@@ -84,7 +87,7 @@ const imageAlt = computed(() => {
8487
<a :href="profile.website.url">{{ profile.website.label }}</a>
8588
</section>
8689
</div>
87-
<ul class="member-social-list">
90+
<ul v-if="profile.social" class="member-social-list">
8891
<li
8992
v-for="(handle, platform) in profile.social"
9093
:key="`${platform}-${handle}`"

src/about/core-team.json

Lines changed: 345 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,345 @@
1+
[
2+
{
3+
"name": "Evan You",
4+
"title": "Creator",
5+
"company": "Vue.js",
6+
"projectList": [
7+
{
8+
"label": "vuejs/*",
9+
"url": "https://www.github.com/vuejs"
10+
},
11+
{
12+
"label": "vitejs/*",
13+
"url": "https://www.github.com/vitejs"
14+
}
15+
],
16+
"location": {
17+
"label": "New Jersey, NJ, USA"
18+
},
19+
"languageList": ["中文", "English"],
20+
"website": {
21+
"label": "patreon.com/evanyou",
22+
"url": "https://www.patreon.com/evanyou"
23+
},
24+
"social": {
25+
"github": "yyx990803",
26+
"twitter": "youyuxi"
27+
}
28+
},
29+
{
30+
"name": "Ben Hong",
31+
"title": "Staff Developer Experience Engineer",
32+
"company": "Netlify",
33+
"projectList": [],
34+
"location": {
35+
"label": "Washington, DC, USA"
36+
},
37+
"languageList": ["Chinese", "English"],
38+
"website": {
39+
"label": "bencodezen.io",
40+
"url": "https://www.bencodezen.io"
41+
},
42+
"social": {
43+
"github": "bencodezen",
44+
"twitter": "bencodezen"
45+
}
46+
},
47+
{
48+
"name": "Eduardo",
49+
"title": "Real-Time Rerouter",
50+
"location": { "label": "Paris, France" },
51+
"languageList": ["es", "fr", "en"],
52+
"social": {
53+
"github": "posva",
54+
"twitter": "posva"
55+
},
56+
"work": {
57+
"role": "Freelance Developer & Consultant"
58+
},
59+
"projectList": ["vuefire", "vue-router"],
60+
"reposPersonal": ["vuex-mock-store", "vue-promised", "vue-motion"],
61+
"website": {
62+
"label": "patreon.com/posva",
63+
"url": "https://www.patreon.com/posva"
64+
}
65+
},
66+
{
67+
"name": "Sodatea",
68+
"location": { "label": "Hangzhou, China" },
69+
"languageList": ["zh", "en"],
70+
"social": {
71+
"github": "sodatea",
72+
"twitter": "haoqunjiang"
73+
},
74+
"projectList": ["vue-cli", "vue-loader"]
75+
},
76+
{
77+
"name": "Pine Wu",
78+
"location": { "label": "Shanghai, China" },
79+
"languageList": ["zh", "en", "jp"],
80+
"social": {
81+
"github": "octref",
82+
"twitter": "octref"
83+
},
84+
"work": {
85+
"role": "Nomad"
86+
},
87+
"projectList": ["vetur"]
88+
},
89+
{
90+
"name": "Jinjiang",
91+
"location": { "label": "Singapore" },
92+
"languageList": ["zh", "en"],
93+
"social": {
94+
"github": "jinjiang",
95+
"twitter": "zhaojinjiang"
96+
},
97+
"projectList": ["cn.vuejs.org", "vue-docs-zh-cn"],
98+
"reposPersonal": [
99+
"vue-a11y-utils",
100+
"vue-mark-display",
101+
"mark2slides",
102+
"vue-keyboard-over"
103+
]
104+
},
105+
{
106+
"name": "Katashin",
107+
"title": "One of a Type State Manager",
108+
"location": { "label": "Singapore" },
109+
"languageList": ["jp", "en"],
110+
"work": {
111+
"role": "Software Engineer",
112+
"org": "ClassDo",
113+
"orgUrl": "https://classdo.com"
114+
},
115+
"social": {
116+
"github": "ktsn",
117+
"twitter": "ktsn"
118+
},
119+
"projectList": ["vuex", "vue-class-component"],
120+
"reposPersonal": ["vue-designer"]
121+
},
122+
{
123+
"name": "Kazupon",
124+
"title": "Validated Internationalizing Missionary",
125+
"location": { "label": "Tokyo, Japan" },
126+
"languageList": ["jp", "en"],
127+
"social": {
128+
"github": "kazupon",
129+
"twitter": "kazu_pon"
130+
},
131+
"work": {
132+
"role": "Engineer",
133+
"org": "PLAID, Inc.",
134+
"orgUrl": "https://plaid.co.jp"
135+
},
136+
"projectList": ["vuejs.org", "jp.vuejs.org"],
137+
"reposPersonal": [
138+
"vue-i18n",
139+
"vue-cli-plugin-i18n",
140+
"vue-i18n-loader",
141+
"eslint-plugin-vue-i18n",
142+
"vue-i18n-extensions",
143+
"vue-cli-plugin-p11n"
144+
],
145+
"website": {
146+
"label": "patreon.com/kazupon",
147+
"url": "https://www.patreon.com/kazupon"
148+
}
149+
},
150+
{
151+
"name": "Rahul Kadyan",
152+
"title": "Ecosystem Glue Chemist",
153+
"location": { "label": "Bangalore, India" },
154+
"languageList": ["hi", "en"],
155+
"work": {
156+
"role": "Software Engineer",
157+
"org": "Grammarly",
158+
"orgUrl": "https://grammarly.com/"
159+
},
160+
"social": {
161+
"github": "znck",
162+
"twitter": "znck0"
163+
},
164+
"projectList": ["rollup-plugin-vue", "vue-next"],
165+
"reposPersonal": ["vue-developer-experience", "prop-types", "grammarly"],
166+
"website": {
167+
"label": "https://znck.me",
168+
"url": "https://znck.me"
169+
}
170+
},
171+
{
172+
"name": "Linusborg",
173+
"title": "Hive-Mind Community Wrangler (Probably a Bot)",
174+
"location": { "label": "Mannheim, Germany" },
175+
"languageList": ["de", "en"],
176+
"social": {
177+
"github": "LinusBorg",
178+
"twitter": "Linus_Borg"
179+
},
180+
"projectList": ["vuejs/*"],
181+
"reposPersonal": ["portal-vue"],
182+
"website": {
183+
"label": "https://forum.vuejs.org/",
184+
"url": "https://forum.vuejs.org/"
185+
}
186+
},
187+
{
188+
"name": "Guillaume Chau",
189+
"title": "Client-Server Astronaut",
190+
"location": { "label": "Lyon, France" },
191+
"languageList": ["fr", "en"],
192+
"social": {
193+
"github": "Akryum",
194+
"twitter": "Akryum"
195+
},
196+
"work": {
197+
"role": "Frontend Developer",
198+
"org": "Livestorm",
199+
"orgUrl": "https://livestorm.co/"
200+
},
201+
"projectList": ["vue-devtools", "vue-cli", "vue-curated"],
202+
"reposPersonal": [
203+
"vue-apollo",
204+
"vue-meteor",
205+
"vue-virtual-scroller",
206+
"v-tooltip"
207+
],
208+
"website": {
209+
"label": "patreon.com/akryum",
210+
"url": "http://patreon.com/akryum"
211+
}
212+
},
213+
{
214+
"name": "Damian Dulisz",
215+
"title": "Dark Mage of Plugins, News, and Confs",
216+
"location": { "label": "Wrocław, Poland" },
217+
"languageList": ["pl", "en"],
218+
"social": {
219+
"github": "shentao",
220+
"twitter": "DamianDulisz"
221+
},
222+
"work": {
223+
"role": "Consultant"
224+
},
225+
"projectList": ["news.vuejs.org"],
226+
"reposPersonal": ["shentao/vue-multiselect", "shentao/vue-global-events"]
227+
},
228+
{
229+
"name": "Michał Sajnóg",
230+
"location": { "label": "Poznań, Poland" },
231+
"languageList": ["pl", "en"],
232+
"social": {
233+
"github": "michalsnik",
234+
"twitter": "michalsnik"
235+
},
236+
"work": {
237+
"role": "Senior Frontend Developer / Team Leader",
238+
"org": "Netguru",
239+
"orgUrl": "https://netguru.co/"
240+
},
241+
"projectList": ["eslint-plugin-vue", "vue-devtools"],
242+
"reposPersonal": ["vue-computed-helpers", "vue-content-placeholders"]
243+
},
244+
{
245+
"name": "GU Yiling",
246+
"location": { "label": "Shanghai, China" },
247+
"languageList": ["zh", "en"],
248+
"work": {
249+
"role": "Senior web developer",
250+
"org": "Baidu, inc.",
251+
"orgUrl": "https://www.baidu.com/"
252+
},
253+
"social": {
254+
"github": "Justineo",
255+
"twitter": "_justineo"
256+
},
257+
"projectList": ["vue", "cn.vuejs.org"],
258+
"reposPersonal": [
259+
"Justineo/vue-awesome",
260+
"ecomfe/vue-echarts",
261+
"ecomfe/veui"
262+
]
263+
},
264+
{
265+
"name": "ULIVZ",
266+
"location": { "label": "Hangzhou, China" },
267+
"languageList": ["zh", "en"],
268+
"work": {
269+
"role": "Senior Frontend Developer",
270+
"org": "AntFinancial",
271+
"orgUrl": "https://www.antfin.com"
272+
},
273+
"social": { "github": "ulivz", "twitter": "_ulivz" },
274+
"projectList": ["vuepress"]
275+
},
276+
{
277+
"name": "Phan An",
278+
"title": "Backend Designer & Process Poet",
279+
"location": { "label": "Munich, Germany" },
280+
"languageList": ["vi", "en"],
281+
"social": { "github": "phanan", "twitter": "notphanan" },
282+
"work": {
283+
"role": "Engineering Team Lead",
284+
"org": "InterNations",
285+
"orgUrl": "https://www.internations.org/"
286+
},
287+
"projectList": ["vuejs.org"],
288+
"reposPersonal": ["vuequery", "vue-google-signin-button"],
289+
"website": {
290+
"label": "https://phanan.net/",
291+
"url": "https://phanan.net/"
292+
}
293+
},
294+
{
295+
"name": "Natalia Tepluhina",
296+
"title": "Fox Tech Guru",
297+
"location": { "label": "Amsterdam, Netherlands" },
298+
"languageList": ["uk", "ru", "en"],
299+
"projectList": ["vuejs.org", "vue-cli"],
300+
"work": {
301+
"role": "Staff Frontend Engineer",
302+
"org": "GitLab",
303+
"orgUrl": "https://gitlab.com/"
304+
},
305+
"social": { "github": "NataliaTepluhina", "twitter": "N_Tepluhina" }
306+
},
307+
{
308+
"name": "Yosuke Ota",
309+
"location": { "label": "Kanagawa, Japan" },
310+
"languageList": ["jp"],
311+
"social": { "github": "ota-meshi", "twitter": "omoteota" },
312+
"work": {
313+
"role": "Lead Web Engineer",
314+
"org": "Future Corporation",
315+
"orgUrl": "https://www.future.co.jp/"
316+
},
317+
"projectList": ["eslint-plugin-vue"]
318+
},
319+
{
320+
"name": "Kia King Ishii",
321+
"title": "The optimist web designer/developer",
322+
"location": { "label": "Kanagawa, Japan" },
323+
"languageList": ["en", "jp"],
324+
"work": {
325+
"role": "Tech Talent",
326+
"org": "Global Brain",
327+
"orgUrl": "https://globalbrains.com/"
328+
},
329+
"social": { "github": "kiaking", "twitter": "KiaKing85" },
330+
"projectList": ["vuex"],
331+
"reposPersonal": ["vuex-orm/*"]
332+
},
333+
{
334+
"name": "Anthony Fu",
335+
"location": { "label": "Taipei, Taiwan" },
336+
"languageList": ["zh", "en"],
337+
"social": { "github": "antfu", "twitter": "antfu7" },
338+
"projectList": ["composition-api"],
339+
"reposPersonal": ["vueuse", "vue-demi", "vue-reactivity/*"],
340+
"website": {
341+
"label": "https://antfu.me/",
342+
"url": "https://antfu.me/"
343+
}
344+
}
345+
]

0 commit comments

Comments
 (0)