feat: migrate to Vue 3.5 + Vite
Faithful 1:1 port of the single-file index.html to a Vite + Vue 3.5 project. All visuals, behavior, translations, quiz logic, scoring, SVG paint filters, and modifier panel preserved. The previous single-file build is archived as index.original.html for A/B compare. Inline onclick handlers in the static template are converted to Vue's @click bindings — Vue 3 ignores string-valued on* attributes, which silently broke the qpb-logo "back to landing" navigation. Inline handlers inside dynamically-injected innerHTML strings (quiz options, slider, nav buttons) keep working since the browser parses them; their target functions are exposed on window from onMounted. Pinned: vue 3.5.13, vite 6.4.2, @vitejs/plugin-vue 5.2.1. Zero npm audit vulnerabilities. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
node_modules
|
||||
dist
|
||||
.DS_Store
|
||||
*.log
|
||||
.vite
|
||||
2593
index.html
2593
index.html
File diff suppressed because it is too large
Load Diff
3075
index.original.html
Normal file
3075
index.original.html
Normal file
File diff suppressed because it is too large
Load Diff
1327
package-lock.json
generated
Normal file
1327
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
18
package.json
Normal file
18
package.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "kammergut",
|
||||
"private": true,
|
||||
"version": "0.1.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"vue": "3.5.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "5.2.1",
|
||||
"vite": "6.4.2"
|
||||
}
|
||||
}
|
||||
BIN
public/images/bg-1.jpg
Normal file
BIN
public/images/bg-1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 716 KiB |
1754
src/App.vue
Normal file
1754
src/App.vue
Normal file
File diff suppressed because it is too large
Load Diff
5
src/main.js
Normal file
5
src/main.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
import './styles.css'
|
||||
|
||||
createApp(App).mount('#app')
|
||||
1193
src/styles.css
Normal file
1193
src/styles.css
Normal file
File diff suppressed because it is too large
Load Diff
7
vite.config.js
Normal file
7
vite.config.js
Normal file
@@ -0,0 +1,7 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
server: { port: 5173 }
|
||||
})
|
||||
Reference in New Issue
Block a user