mirror of
https://github.com/lobehub/lobehub.git
synced 2026-03-26 13:19:34 +07:00
* 📝 docs: add SPA routes restructure design and implementation plan * ♻️ refactor: restructure SPA routes to src/routes and src/router - Move SPA page components from src/app/[variants] to src/routes/ - (main) -> Desktop pages - (mobile) -> Mobile pages - (desktop) -> Desktop-specific pages - onboarding -> Onboarding pages - share -> Share pages - Move router configurations from src/app/[variants]/router to src/router/ - desktopRouter.config.tsx - desktopRouter.config.desktop.tsx - mobileRouter.config.tsx - Keep auth pages in src/app/[variants]/(auth) for SSR - Update all import paths: - @/app/[variants]/ -> @/routes/ - Relative paths adjusted for new directory structure - Update CLAUDE.md and project-overview skill documentation * 🔧 chore: restore imports for RouteConfig and ErrorBoundary in desktopRouter.config.desktop.tsx - Reintroduced the imports for RouteConfig, ErrorBoundary, and redirectElement in the desktop router configuration file. - Ensured proper organization and functionality of the desktop routing setup. Signed-off-by: Innei <tukon479@gmail.com> * 🐛 fix: update import paths after routes restructure - Fix imports from old `src/app/[variants]/` to new `src/routes/` paths - Update Title, Sidebar, MakedownRender, McpList imports - Fix desktop-onboarding/storage import path - Run lint --fix to sort imports * 📝 docs: SPA routes convention and spa-routes skill - Add roots vs features rules to CLAUDE.md and AGENTS.md - Add .agents/skills/spa-routes for route/feature file division - Phase 1: move page route logic to src/features/Pages, thin route files Made-with: Cursor * 🌐 chore: translate non-English comments to English in memory module (#12547) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * ♻️ refactor: move router and entries to src/spa, platform-based warmup - Move src/router and entry.*.tsx to src/spa/ - Update HTML, vite.config, and entry imports - Warmup only the entry matching current platform (web/mobile) - Update CLAUDE.md, AGENTS.md, and spa-routes skill Made-with: Cursor * 🗂️ chore: restructure SPA routes and configurations - Deleted outdated SPA routes and implementation plan documents. - Migrated SPA page components to new `src/routes/` directory. - Moved route configurations to `src/router/`. - Updated import paths across the project to reflect new structure. - Revised AI documentation to align with the updated directory layout. Signed-off-by: Innei <tukon479@gmail.com> --------- Signed-off-by: Innei <tukon479@gmail.com> Co-authored-by: LobeHub Bot <i@lobehub.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
69 lines
2.4 KiB
HTML
69 lines
2.4 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<!--SEO_META-->
|
|
<style>
|
|
html body {
|
|
background: #f8f8f8;
|
|
}
|
|
html[data-theme='dark'] body {
|
|
background-color: #000;
|
|
}
|
|
</style>
|
|
<script>
|
|
(function(){
|
|
var O=globalThis.Worker;
|
|
globalThis.Worker=function(u,o){
|
|
var h=typeof u==='string'?u:u instanceof URL?u.href:'';
|
|
if(h.startsWith('http')&&!h.startsWith(location.origin)){
|
|
var b=new Blob(['import "'+h+'";'],{type:'application/javascript'});
|
|
return new O(URL.createObjectURL(b),Object.assign({},o,{type:'module'}));
|
|
}return new O(u,o)};
|
|
globalThis.Worker.prototype=O.prototype;
|
|
})();
|
|
</script>
|
|
<script>
|
|
(function () {
|
|
var theme = 'system';
|
|
try {
|
|
theme = localStorage.getItem('theme') || 'system';
|
|
} catch (_) {}
|
|
var systemTheme =
|
|
window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
? 'dark'
|
|
: 'light';
|
|
var resolvedTheme = theme === 'system' ? systemTheme : theme;
|
|
if (resolvedTheme === 'dark' || resolvedTheme === 'light') {
|
|
document.documentElement.setAttribute('data-theme', resolvedTheme);
|
|
}
|
|
|
|
var hl = new URLSearchParams(location.search).get('hl');
|
|
var m = document.cookie.match(/(?:^|;\s*)LOBE_LOCALE=([^;]*)/);
|
|
var cookie = m ? decodeURIComponent(m[1]) : '';
|
|
var locale = hl || cookie || navigator.language || 'en-US';
|
|
if (locale === 'auto') locale = navigator.language || 'en-US';
|
|
if (hl && !cookie) {
|
|
document.cookie =
|
|
'LOBE_LOCALE=' + encodeURIComponent(hl) + ';path=/;max-age=7776000;SameSite=Lax';
|
|
}
|
|
document.documentElement.lang = locale;
|
|
var rtl = ['ar', 'arc', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ku', 'ps', 'ur', 'yi'];
|
|
document.documentElement.dir =
|
|
rtl.indexOf(locale.split('-')[0].toLowerCase()) >= 0 ? 'rtl' : 'ltr';
|
|
})();
|
|
</script>
|
|
<script>
|
|
window.__SERVER_CONFIG__ = undefined; /* SERVER_CONFIG */
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="root" style="height: 100%"></div>
|
|
|
|
<!--ANALYTICS_SCRIPTS-->
|
|
<script type="module" src="/src/spa/entry.mobile.tsx"></script>
|
|
</body>
|
|
</html>
|