mirror of
https://github.com/IT4Change/IT4C.dev.git
synced 2025-12-12 17:05:50 +00:00
feat(other): eslint & prettier (#302)
* eslint * eslint fixes * fix footer * install prettier * fix prettier
This commit is contained in:
parent
cdb1944578
commit
d6be15ce0d
14
.prettierrc.json
Normal file
14
.prettierrc.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"quoteProps": "as-needed",
|
||||
"jsxSingleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"bracketSpacing": true,
|
||||
"bracketSameLine": false,
|
||||
"arrowParens": "always",
|
||||
"endOfLine": "auto"
|
||||
}
|
||||
@ -30,9 +30,9 @@ module.exports = {
|
||||
},
|
||||
'write-good': {
|
||||
passive: false,
|
||||
thereIs: false
|
||||
thereIs: false,
|
||||
},
|
||||
'apostrophe': true,
|
||||
apostrophe: true,
|
||||
},
|
||||
filters: {
|
||||
comments: true,
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { defineClientConfig } from 'vuepress/client'
|
||||
import { setupTransparentNavbar } from "vuepress-theme-hope/presets/transparentNavbar.js";
|
||||
import { setupTransparentNavbar } from 'vuepress-theme-hope/presets/transparentNavbar.js'
|
||||
import BlankLayout from './layouts/BlankLayout.vue'
|
||||
import ContactForm from './components/ContactForm.vue'
|
||||
import ContentSection from './components/ContentSection.vue'
|
||||
import Footer from './components/Footer.vue'
|
||||
import VPFooter from './components/VPFooter.vue'
|
||||
import ProcessStep from './components/ProcessStep.vue'
|
||||
import ProjectCard from './components/ProjectCard.vue'
|
||||
import ServiceCard from './components/ServiceCard.vue'
|
||||
@ -14,7 +14,7 @@ export default defineClientConfig({
|
||||
enhance({ app }) {
|
||||
app.component('ContactForm', ContactForm)
|
||||
app.component('ContentSection', ContentSection)
|
||||
app.component('Footer', Footer)
|
||||
app.component('VPFooter', VPFooter)
|
||||
app.component('ProcessStep', ProcessStep)
|
||||
app.component('ProjectCard', ProjectCard)
|
||||
app.component('TeamMember', TeamMember)
|
||||
@ -22,11 +22,11 @@ export default defineClientConfig({
|
||||
app.component('CaptionedImage', CaptionedImage)
|
||||
},
|
||||
setup() {
|
||||
setupTransparentNavbar({ type: "homepage" });
|
||||
setupTransparentNavbar({ type: 'homepage' })
|
||||
},
|
||||
// You can override or add layouts here
|
||||
layouts: {
|
||||
// For example, here we change the default layout of vuepress-theme-hope to layouts/Layout.vue
|
||||
BlankLayout,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@ -4,10 +4,13 @@
|
||||
<figcaption>{{ caption }}</figcaption>
|
||||
</figure>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: ['src', 'caption', 'width'],
|
||||
}
|
||||
|
||||
<script setup lang="ts">
|
||||
defineProps<{
|
||||
src: string
|
||||
caption: string
|
||||
width: string
|
||||
}>()
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<p class="text-gray-600 dark:text-gray-300 mb-8">Wir freuen uns auf Ihre Nachricht. Als Ansprechpartner steht Ihnen <strong>Ulf Gebhardt</strong> für Ihre Fragen gerne zur Verfügung.</p>
|
||||
<p class="text-gray-600 dark:text-gray-300 mb-8">
|
||||
Wir freuen uns auf Ihre Nachricht. Als Ansprechpartner steht Ihnen
|
||||
<strong>Ulf Gebhardt</strong> für Ihre Fragen gerne zur Verfügung.
|
||||
</p>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-5 gap-8">
|
||||
<!-- Left side: Portrait - takes 2/5 of space -->
|
||||
@ -16,8 +19,19 @@
|
||||
<h3 class="mb-4">Telefon</h3>
|
||||
<div class="flex-col gap-2 mb-8">
|
||||
<p class="flex items-center">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="phone-number h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" />
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="phone-number h-5 w-5 mr-2"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"
|
||||
/>
|
||||
</svg>
|
||||
<a href="tel:+4915784841600" class="phone-number hover:!underline">+49 15784841600</a>
|
||||
</p>
|
||||
@ -35,35 +49,35 @@
|
||||
|
||||
<div class="my-4">
|
||||
<input
|
||||
type="text"
|
||||
id="name"
|
||||
v-model="form.name"
|
||||
type="text"
|
||||
placeholder="Name"
|
||||
required
|
||||
minlength="2"
|
||||
maxlength="35"
|
||||
class="w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:highlight focus:border-transparent"
|
||||
>
|
||||
/>
|
||||
</div>
|
||||
<div class="my-4">
|
||||
<input
|
||||
type="email"
|
||||
id="email"
|
||||
v-model="form.email"
|
||||
type="email"
|
||||
placeholder="E-Mail"
|
||||
required
|
||||
class="w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:highlight focus:border-transparent"
|
||||
>
|
||||
/>
|
||||
</div>
|
||||
<div class="my-4">
|
||||
<input
|
||||
type="tel"
|
||||
id="phone"
|
||||
v-model="form.phone"
|
||||
type="tel"
|
||||
placeholder="Telefon"
|
||||
minlength="8"
|
||||
class="w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:highlight focus:border-transparent"
|
||||
>
|
||||
/>
|
||||
</div>
|
||||
<div class="my-4">
|
||||
<textarea
|
||||
@ -74,7 +88,7 @@
|
||||
required
|
||||
minlength="5"
|
||||
class="w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:highlight focus:border-transparent"
|
||||
></textarea>
|
||||
/>
|
||||
</div>
|
||||
<div class="my-4 flex justify-end">
|
||||
<button
|
||||
@ -98,7 +112,7 @@ const form = reactive({
|
||||
name: '',
|
||||
email: '',
|
||||
phone: '',
|
||||
message: ''
|
||||
message: '',
|
||||
})
|
||||
|
||||
const isSubmitting = ref(false)
|
||||
@ -113,14 +127,14 @@ const handleSubmit = async () => {
|
||||
const response = await fetch('/api/mail', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: form.name,
|
||||
email: form.email,
|
||||
telephone: form.phone || undefined, // Send undefined if empty to match optional schema
|
||||
text: form.message
|
||||
})
|
||||
text: form.message,
|
||||
}),
|
||||
})
|
||||
|
||||
if (response.status !== 200) {
|
||||
@ -142,9 +156,9 @@ const handleSubmit = async () => {
|
||||
setTimeout(() => {
|
||||
submitSuccess.value = false
|
||||
}, 5000) // Hide success message after 5 seconds
|
||||
|
||||
} catch (error) {
|
||||
submitError.value = error instanceof Error ? error.message : 'Ein unbekannter Fehler ist aufgetreten'
|
||||
submitError.value =
|
||||
error instanceof Error ? error.message : 'Ein unbekannter Fehler ist aufgetreten'
|
||||
} finally {
|
||||
isSubmitting.value = false
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<div class="content-width">
|
||||
<div class="py-16">
|
||||
<h1>{{ title }}</h1>
|
||||
<slot></slot>
|
||||
<slot />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -15,16 +15,16 @@ export default {
|
||||
props: {
|
||||
title: {
|
||||
type: String,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
backgroundColor: {
|
||||
type: String,
|
||||
default: 'bg-white dark:bg-gray-900'
|
||||
default: 'bg-white dark:bg-gray-900',
|
||||
},
|
||||
id: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
}
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
<template>
|
||||
<footer class="bg-[#22596c] text-white py-8">
|
||||
<div class="content-width mx-auto px-4 md:px-6">
|
||||
<div class="flex flex-col md:flex-row justify-between items-center">
|
||||
<div class="mb-4 md:mb-0">
|
||||
<p class="text-sm">© {{ currentYear }} CC BY IT4C.dev & Autoren</p>
|
||||
</div>
|
||||
<div class="flex flex-col sm:flex-row items-center gap-4 sm:gap-6">
|
||||
<a href="/impressum.html" class="!text-white hover:!text-gray-300 hover:!underline text-sm transition-colors">
|
||||
Impressum
|
||||
</a>
|
||||
<a href="https://github.com/IT4Change" target="_blank" rel="noopener noreferrer" class="!text-white hover:!text-gray-300 hover:!underline flex items-center gap-2 text-sm transition-colors">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github">
|
||||
<path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path>
|
||||
<path d="M9 18c-4.51 2-5-2-7-2"></path>
|
||||
</svg>
|
||||
GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'FooterSection',
|
||||
computed: {
|
||||
currentYear() {
|
||||
return new Date().getFullYear();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="grid grid-cols-12 items-start mb-16">
|
||||
<div class="col-span-3 text-right pr-8">
|
||||
<span class="text-5xl sm:text-6xl font-bold highlight-number">{{ number.padStart(2, '0') }}</span>
|
||||
<span class="text-5xl sm:text-6xl font-bold highlight-number">{{
|
||||
number.padStart(2, '0')
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="col-span-9 pt-0 sm:pt-2">
|
||||
<h3 class="text-xl font-semibold mb-2">{{ title }}</h3>
|
||||
|
||||
@ -1,15 +1,11 @@
|
||||
<template>
|
||||
<a :href="href">
|
||||
<div class="border border-gray-300 rounded-lg p-6">
|
||||
<img :src="image" :alt="title" class="rounded-lg mb-4 w-full h-auto object-contain">
|
||||
<img :src="image" :alt="title" class="rounded-lg mb-4 w-full h-auto object-contain" />
|
||||
<h3 class="text-xl font-semibold mb-2">{{ title }}</h3>
|
||||
<p class="text-gray-600 dark:text-gray-300 mb-4">{{ description }}</p>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<span
|
||||
v-for="tag in tags"
|
||||
:key="tag"
|
||||
class="tag px-3 py-1 rounded-full text-sm"
|
||||
>
|
||||
<span v-for="tag in tags" :key="tag" class="tag px-3 py-1 rounded-full text-sm">
|
||||
{{ tag }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@ -8,16 +8,17 @@
|
||||
<img
|
||||
:src="image"
|
||||
:alt="name"
|
||||
class="rounded-full w-full h-full object-cover grayscale transition-all duration-200 transform
|
||||
group-hover:scale-[1.05]"
|
||||
>
|
||||
class="rounded-full w-full h-full object-cover grayscale transition-all duration-200 transform group-hover:scale-[1.05]"
|
||||
/>
|
||||
<!-- Overlay mit highlight-color-light Variable -->
|
||||
<div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[115%] h-[115%]
|
||||
rounded-full overlay-bg opacity-0 group-hover:opacity-25 transition-opacity duration-200">
|
||||
</div>
|
||||
<div
|
||||
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[115%] h-[115%] rounded-full overlay-bg opacity-0 group-hover:opacity-25 transition-opacity duration-200"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<h4 class="font-semibold text-gray-900 dark:text-gray-50 transition-colors duration-200 group-hover:text-gray-600 group-hover:dark:text-gray-300">
|
||||
<h4
|
||||
class="font-semibold text-gray-900 dark:text-gray-50 transition-colors duration-200 group-hover:text-gray-600 group-hover:dark:text-gray-300"
|
||||
>
|
||||
{{ name }}
|
||||
</h4>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-300">{{ role }}</p>
|
||||
|
||||
55
docs/.vuepress/components/VPFooter.vue
Normal file
55
docs/.vuepress/components/VPFooter.vue
Normal file
@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<footer class="bg-[#22596c] text-white py-8">
|
||||
<div class="content-width mx-auto px-4 md:px-6">
|
||||
<div class="flex flex-col md:flex-row justify-between items-center">
|
||||
<div class="mb-4 md:mb-0">
|
||||
<p class="text-sm">© {{ currentYear }} CC BY IT4C.dev & Autoren</p>
|
||||
</div>
|
||||
<div class="flex flex-col sm:flex-row items-center gap-4 sm:gap-6">
|
||||
<a
|
||||
href="/impressum.html"
|
||||
class="!text-white hover:!text-gray-300 hover:!underline text-sm transition-colors"
|
||||
>
|
||||
Impressum
|
||||
</a>
|
||||
<a
|
||||
href="https://github.com/IT4Change"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="!text-white hover:!text-gray-300 hover:!underline flex items-center gap-2 text-sm transition-colors"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-github"
|
||||
>
|
||||
<path
|
||||
d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"
|
||||
/>
|
||||
<path d="M9 18c-4.51 2-5-2-7-2" />
|
||||
</svg>
|
||||
GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'FooterSection',
|
||||
computed: {
|
||||
currentYear() {
|
||||
return new Date().getFullYear()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@ -11,10 +11,8 @@ export default defineUserConfig({
|
||||
theme,
|
||||
bundler: viteBundler({
|
||||
viteOptions: {
|
||||
plugins: [
|
||||
tailwindcss(),
|
||||
]
|
||||
}
|
||||
plugins: [tailwindcss()],
|
||||
},
|
||||
}),
|
||||
plugins: [
|
||||
Imagemin({
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
import { HeadConfig } from "vuepress";
|
||||
import { HeadConfig } from 'vuepress'
|
||||
|
||||
export default {
|
||||
title: 'IT4C',
|
||||
description: 'IT4C.dev stellt das IT Team for Change, seine angewandte Philosophie und Projekte vor.',
|
||||
description:
|
||||
'IT4C.dev stellt das IT Team for Change, seine angewandte Philosophie und Projekte vor.',
|
||||
head: [
|
||||
['meta', {name: 'viewport', content: 'width=device-width,initial-scale=1'}]
|
||||
['meta', { name: 'viewport', content: 'width=device-width,initial-scale=1' }],
|
||||
] as HeadConfig[],
|
||||
}
|
||||
@ -17,7 +17,7 @@ export default hopeTheme({
|
||||
{ text: 'Kontakt', link: '/kontakt' },
|
||||
{
|
||||
text: 'Github',
|
||||
link: 'https://github.com/IT4Change'
|
||||
link: 'https://github.com/IT4Change',
|
||||
},
|
||||
],
|
||||
sidebar: [
|
||||
@ -30,10 +30,7 @@ export default hopeTheme({
|
||||
text: 'IT4C',
|
||||
link: '/it4c',
|
||||
collapsible: false,
|
||||
children: [
|
||||
'/historie',
|
||||
'/kontakt'
|
||||
]
|
||||
children: ['/historie', '/kontakt'],
|
||||
},
|
||||
{
|
||||
text: 'Projekte',
|
||||
@ -41,21 +38,21 @@ export default hopeTheme({
|
||||
children: [
|
||||
{
|
||||
text: 'DEMOCRACY App',
|
||||
link: '/projekte/democracy.app'
|
||||
link: '/projekte/democracy.app',
|
||||
},
|
||||
{
|
||||
text: 'Ocelot.Social',
|
||||
link: '/projekte/ocelot.social'
|
||||
link: '/projekte/ocelot.social',
|
||||
},
|
||||
{
|
||||
text: 'Gradido Software',
|
||||
link: '/projekte/gradido'
|
||||
link: '/projekte/gradido',
|
||||
},
|
||||
{
|
||||
text: 'DreamMall.earth',
|
||||
link: '/projekte/dreammall'
|
||||
link: '/projekte/dreammall',
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Team',
|
||||
@ -68,13 +65,13 @@ export default hopeTheme({
|
||||
'/team/moriz-wahl',
|
||||
'/team/sebastian-stein',
|
||||
'/team/ulf-gebhardt',
|
||||
'/team/wolfgang-huss'
|
||||
]
|
||||
'/team/wolfgang-huss',
|
||||
],
|
||||
},
|
||||
],
|
||||
plugins: {
|
||||
slimsearch: {
|
||||
indexContent: true
|
||||
indexContent: true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
<template>
|
||||
<div class="theme-container blank-layout">
|
||||
<Content />
|
||||
<Footer />
|
||||
<VPFooter />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'BlankLayout'
|
||||
name: 'BlankLayout',
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@layer theme, base, components, utilities;
|
||||
|
||||
@import "tailwindcss/theme.css" layer(theme);
|
||||
@import "tailwindcss/preflight.css" layer(base);
|
||||
@import "tailwindcss/utilities.css" layer(utilities);
|
||||
@import 'tailwindcss/theme.css' layer(theme);
|
||||
@import 'tailwindcss/preflight.css' layer(base);
|
||||
@import 'tailwindcss/utilities.css' layer(utilities);
|
||||
|
||||
@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
|
||||
|
||||
@ -51,11 +51,17 @@ export default {
|
||||
--content-width: 1160px;
|
||||
}
|
||||
|
||||
.blank-layout h1, .blank-layout h2, .blank-layout h3, .blank-layout h4, .blank-layout h5, .blank-layout h6 {
|
||||
.blank-layout h1,
|
||||
.blank-layout h2,
|
||||
.blank-layout h3,
|
||||
.blank-layout h4,
|
||||
.blank-layout h5,
|
||||
.blank-layout h6 {
|
||||
font-family: var(--font-family-heading);
|
||||
}
|
||||
|
||||
.blank-layout h1, .blank-layout h2 {
|
||||
.blank-layout h1,
|
||||
.blank-layout h2 {
|
||||
border-bottom: none;
|
||||
padding-bottom: 2rem;
|
||||
font-weight: bold;
|
||||
|
||||
37
eslint.config.ts
Normal file
37
eslint.config.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import eslint from '@eslint/js'
|
||||
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
|
||||
import eslintPluginVue from 'eslint-plugin-vue'
|
||||
import globals from 'globals'
|
||||
import typescriptEslint from 'typescript-eslint'
|
||||
|
||||
export default typescriptEslint.config(
|
||||
{
|
||||
ignores: [
|
||||
'coverage',
|
||||
'backend',
|
||||
'docs/.vuepress/.cache',
|
||||
'docs/.vuepress/.temp',
|
||||
'docs/.vuepress/dist',
|
||||
],
|
||||
},
|
||||
{
|
||||
extends: [
|
||||
eslint.configs.recommended,
|
||||
...typescriptEslint.configs.recommended,
|
||||
...eslintPluginVue.configs['flat/recommended'],
|
||||
],
|
||||
files: ['**/*.{ts,vue}'],
|
||||
languageOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
globals: globals.browser,
|
||||
parserOptions: {
|
||||
parser: typescriptEslint.parser,
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
// your rules
|
||||
},
|
||||
},
|
||||
eslintPluginPrettierRecommended,
|
||||
)
|
||||
1301
package-lock.json
generated
1301
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@ -7,7 +7,9 @@
|
||||
"build": "vuepress build docs",
|
||||
"dev": "vuepress dev docs",
|
||||
"dev-prod": "npm run build && http-server ./docs/.vuepress/dist",
|
||||
"test": "textlint \"*.md\" \"docs/**/*.md\""
|
||||
"test": "npm run test:lint:textlint && npm run test:lint:eslint",
|
||||
"test:lint:eslint": "eslint",
|
||||
"test:lint:textlint": "textlint \"*.md\" \"docs/**/*.md\""
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -24,7 +26,13 @@
|
||||
"@textlint-rule/textlint-rule-no-unmatched-pair": "^2.0.4",
|
||||
"@vuepress/bundler-vite": "^2.0.0-rc.20",
|
||||
"@vuepress/plugin-slimsearch": "^2.0.0-rc.82",
|
||||
"eslint": "^9.22.0",
|
||||
"eslint-config-prettier": "^10.1.1",
|
||||
"eslint-plugin-prettier": "^5.2.3",
|
||||
"eslint-plugin-vue": "^10.0.0",
|
||||
"globals": "^16.0.0",
|
||||
"http-server": "^14.1.1",
|
||||
"prettier": "3.5.3",
|
||||
"sass-embedded": "^1.86.0",
|
||||
"tailwindcss": "^4.0.5",
|
||||
"textlint": "^14.5.0",
|
||||
@ -41,6 +49,7 @@
|
||||
"textlint-rule-no-zero-width-spaces": "^1.0.1",
|
||||
"textlint-rule-period-in-list-item": "^1.0.1",
|
||||
"textlint-rule-write-good": "^2.0.0",
|
||||
"typescript-eslint": "^8.27.0",
|
||||
"vuepress": "^2.0.0-rc.20",
|
||||
"vuepress-plugin-imagemin": "^0.1.2",
|
||||
"vuepress-theme-hope": "^2.0.0-rc.74"
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
module.exports = {
|
||||
content: [
|
||||
'./docs/**/*.{vue,js,ts,jsx,tsx,md}',
|
||||
'!./**/cache',
|
||||
'!./**/.temp',
|
||||
],
|
||||
content: ['./docs/**/*.{vue,js,ts,jsx,tsx,md}', '!./**/cache', '!./**/.temp'],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user