mirror of
https://github.com/Lapikud/lapikud.github.io.git
synced 2026-08-08 17:49:15 +00:00
refactor(vue): migrate app, routes, and tooling from Svelte
Replace the Svelte runtime, Vite plugin, Storybook adapter, and component files with Vue 3 equivalents while preserving the existing route table, page markup, styling, assets, deployment shape, and npm workflows. Move shared and page-level state onto Vue refs, computed values, lifecycle hooks, and script setup components. Recreate the custom async router and translation composable as Vue-native modules so navigation and bilingual content continue to work without introducing a router or state-management dependency. Adopt the maintained @lucide/vue package, remove the Svelte icon and map wrappers, and initialize MapLibre directly on the Helpdesk page. Replace the Svelte CSF story with a Vue Storybook story, remove obsolete aliases and generation/config files, and update the audited lockfile with no known vulnerabilities.
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
import { readFileSync, writeFileSync } from 'fs';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { dirname, resolve } from 'path';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const svelteSrc = readFileSync(resolve(__dirname, '../src/components/Svg.svelte'), 'utf-8');
|
||||
|
||||
const match = svelteSrc.match(/export const VARIANTS\s*=\s*\[([^\]]+)\]/);
|
||||
if (!match) {
|
||||
console.error('Could not find VARIANTS in Svg.svelte');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const variants = match[1]
|
||||
.split(',')
|
||||
.map(v => v.trim().replace(/['"]/g, ''))
|
||||
.filter(Boolean);
|
||||
|
||||
const stories = variants.map(v => `<Story name="${v}" args={{ type: '${v}' }} />`).join('\n');
|
||||
|
||||
const output = `<script context="module">
|
||||
import { defineMeta } from '@storybook/addon-svelte-csf';
|
||||
import Svg from '../components/Svg.svelte';
|
||||
|
||||
const { Story } = defineMeta({
|
||||
title: 'Components/Svg',
|
||||
component: Svg,
|
||||
});
|
||||
</script>
|
||||
|
||||
${stories}
|
||||
`;
|
||||
|
||||
const outPath = resolve(__dirname, '../src/stories/Svg.stories.svelte');
|
||||
writeFileSync(outPath, output, 'utf-8');
|
||||
console.log(`✅ Generated ${variants.length} stories: ${variants.join(', ')}`);
|
||||
Reference in New Issue
Block a user