mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	chore(website): start with fresh template for preact
This commit is contained in:
		
							
								
								
									
										24
									
								
								apps/website3/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								apps/website3/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | # Logs | ||||||
|  | logs | ||||||
|  | *.log | ||||||
|  | npm-debug.log* | ||||||
|  | yarn-debug.log* | ||||||
|  | yarn-error.log* | ||||||
|  | pnpm-debug.log* | ||||||
|  | lerna-debug.log* | ||||||
|  |  | ||||||
|  | node_modules | ||||||
|  | dist | ||||||
|  | dist-ssr | ||||||
|  | *.local | ||||||
|  |  | ||||||
|  | # Editor directories and files | ||||||
|  | .vscode/* | ||||||
|  | !.vscode/extensions.json | ||||||
|  | .idea | ||||||
|  | .DS_Store | ||||||
|  | *.suo | ||||||
|  | *.ntvs* | ||||||
|  | *.njsproj | ||||||
|  | *.sln | ||||||
|  | *.sw? | ||||||
							
								
								
									
										15
									
								
								apps/website3/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								apps/website3/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | # `create-preact` | ||||||
|  |  | ||||||
|  | <h2 align="center"> | ||||||
|  |   <img height="256" width="256" src="./src/assets/preact.svg"> | ||||||
|  | </h2> | ||||||
|  |  | ||||||
|  | <h3 align="center">Get started using Preact and Vite!</h3> | ||||||
|  |  | ||||||
|  | ## Getting Started | ||||||
|  |  | ||||||
|  | -   `npm run dev` - Starts a dev server at http://localhost:5173/ | ||||||
|  |  | ||||||
|  | -   `npm run build` - Builds for production, emitting to `dist/`. Prerenders all found routes in app to static HTML | ||||||
|  |  | ||||||
|  | -   `npm run preview` - Starts a server at http://localhost:4173/ to test production build locally | ||||||
							
								
								
									
										14
									
								
								apps/website3/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								apps/website3/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  | 	<head> | ||||||
|  | 		<meta charset="UTF-8" /> | ||||||
|  | 		<link rel="icon" type="image/svg+xml" href="/vite.svg" /> | ||||||
|  | 		<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||||
|  | 		<meta name="color-scheme" content="light dark" /> | ||||||
|  | 		<title>Vite + Preact</title> | ||||||
|  | 	</head> | ||||||
|  | 	<body> | ||||||
|  | 		<div id="app"></div> | ||||||
|  | 		<script prerender type="module" src="/src/index.tsx"></script> | ||||||
|  | 	</body> | ||||||
|  | </html> | ||||||
							
								
								
									
										5184
									
								
								apps/website3/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										5184
									
								
								apps/website3/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										24
									
								
								apps/website3/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								apps/website3/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | { | ||||||
|  | 	"private": true, | ||||||
|  | 	"type": "module", | ||||||
|  | 	"scripts": { | ||||||
|  | 		"dev": "vite", | ||||||
|  | 		"build": "vite build", | ||||||
|  | 		"preview": "vite preview" | ||||||
|  | 	}, | ||||||
|  | 	"dependencies": { | ||||||
|  | 		"preact": "^10.26.9", | ||||||
|  | 		"preact-iso": "^2.10.0", | ||||||
|  | 		"preact-render-to-string": "^6.6.1" | ||||||
|  | 	}, | ||||||
|  | 	"devDependencies": { | ||||||
|  | 		"@preact/preset-vite": "^2.10.2", | ||||||
|  | 		"eslint": "^9.36.0", | ||||||
|  | 		"eslint-config-preact": "^2.0.0", | ||||||
|  | 		"typescript": "^5.9.2", | ||||||
|  | 		"vite": "^7.0.4" | ||||||
|  | 	}, | ||||||
|  | 	"eslintConfig": { | ||||||
|  | 		"extends": "preact" | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								apps/website3/public/vite.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								apps/website3/public/vite.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"> | ||||||
|  |     <defs> | ||||||
|  |         <linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"> | ||||||
|  |             <stop offset="0%" stop-color="#41D1FF"></stop> | ||||||
|  |             <stop offset="100%" stop-color="#BD34FE"></stop> | ||||||
|  |         </linearGradient> | ||||||
|  |         <linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"> | ||||||
|  |             <stop offset="0%" stop-color="#FFEA83"></stop> | ||||||
|  |             <stop offset="8.333%" stop-color="#FFDD35"></stop> | ||||||
|  |             <stop offset="100%" stop-color="#FFA800"></stop> | ||||||
|  |         </linearGradient> | ||||||
|  |     </defs> | ||||||
|  |     <path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path> | ||||||
|  |     <path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										6
									
								
								apps/website3/src/assets/preact.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								apps/website3/src/assets/preact.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="27.68" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 296"> | ||||||
|  | 	<path fill="#673AB8" d="m128 0l128 73.9v147.8l-128 73.9L0 221.7V73.9z"></path> | ||||||
|  | 	<path fill="#FFF" d="M34.865 220.478c17.016 21.78 71.095 5.185 122.15-34.704c51.055-39.888 80.24-88.345 63.224-110.126c-17.017-21.78-71.095-5.184-122.15 34.704c-51.055 39.89-80.24 88.346-63.224 110.126Zm7.27-5.68c-5.644-7.222-3.178-21.402 7.573-39.253c11.322-18.797 30.541-39.548 54.06-57.923c23.52-18.375 48.303-32.004 69.281-38.442c19.922-6.113 34.277-5.075 39.92 2.148c5.644 7.223 3.178 21.403-7.573 39.254c-11.322 18.797-30.541 39.547-54.06 57.923c-23.52 18.375-48.304 32.004-69.281 38.441c-19.922 6.114-34.277 5.076-39.92-2.147Z"></path> | ||||||
|  | 	<path fill="#FFF" d="M220.239 220.478c17.017-21.78-12.169-70.237-63.224-110.126C105.96 70.464 51.88 53.868 34.865 75.648c-17.017 21.78 12.169 70.238 63.224 110.126c51.055 39.889 105.133 56.485 122.15 34.704Zm-7.27-5.68c-5.643 7.224-19.998 8.262-39.92 2.148c-20.978-6.437-45.761-20.066-69.28-38.441c-23.52-18.376-42.74-39.126-54.06-57.923c-10.752-17.851-13.218-32.03-7.575-39.254c5.644-7.223 19.999-8.261 39.92-2.148c20.978 6.438 45.762 20.067 69.281 38.442c23.52 18.375 42.739 39.126 54.06 57.923c10.752 17.85 13.218 32.03 7.574 39.254Z"></path> | ||||||
|  | 	<path fill="#FFF" d="M127.552 167.667c10.827 0 19.603-8.777 19.603-19.604c0-10.826-8.776-19.603-19.603-19.603c-10.827 0-19.604 8.777-19.604 19.603c0 10.827 8.777 19.604 19.604 19.604Z"></path> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										18
									
								
								apps/website3/src/components/Header.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								apps/website3/src/components/Header.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | import { useLocation } from 'preact-iso'; | ||||||
|  |  | ||||||
|  | export function Header() { | ||||||
|  | 	const { url } = useLocation(); | ||||||
|  |  | ||||||
|  | 	return ( | ||||||
|  | 		<header> | ||||||
|  | 			<nav> | ||||||
|  | 				<a href="/" class={url == '/' && 'active'}> | ||||||
|  | 					Home | ||||||
|  | 				</a> | ||||||
|  | 				<a href="/404" class={url == '/404' && 'active'}> | ||||||
|  | 					404 | ||||||
|  | 				</a> | ||||||
|  | 			</nav> | ||||||
|  | 		</header> | ||||||
|  | 	); | ||||||
|  | } | ||||||
							
								
								
									
										28
									
								
								apps/website3/src/index.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								apps/website3/src/index.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | import { LocationProvider, Router, Route, hydrate, prerender as ssr } from 'preact-iso'; | ||||||
|  |  | ||||||
|  | import { Header } from './components/Header.jsx'; | ||||||
|  | import { Home } from './pages/Home/index.jsx'; | ||||||
|  | import { NotFound } from './pages/_404.jsx'; | ||||||
|  | import './style.css'; | ||||||
|  |  | ||||||
|  | export function App() { | ||||||
|  | 	return ( | ||||||
|  | 		<LocationProvider> | ||||||
|  | 			<Header /> | ||||||
|  | 			<main> | ||||||
|  | 				<Router> | ||||||
|  | 					<Route path="/" component={Home} /> | ||||||
|  | 					<Route default component={NotFound} /> | ||||||
|  | 				</Router> | ||||||
|  | 			</main> | ||||||
|  | 		</LocationProvider> | ||||||
|  | 	); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if (typeof window !== 'undefined') { | ||||||
|  | 	hydrate(<App />, document.getElementById('app')); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export async function prerender(data) { | ||||||
|  | 	return await ssr(<App {...data} />); | ||||||
|  | } | ||||||
							
								
								
									
										39
									
								
								apps/website3/src/pages/Home/index.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								apps/website3/src/pages/Home/index.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  | import preactLogo from '../../assets/preact.svg'; | ||||||
|  | import './style.css'; | ||||||
|  |  | ||||||
|  | export function Home() { | ||||||
|  | 	return ( | ||||||
|  | 		<div class="home"> | ||||||
|  | 			<a href="https://preactjs.com" target="_blank"> | ||||||
|  | 				<img src={preactLogo} alt="Preact logo" height="160" width="160" /> | ||||||
|  | 			</a> | ||||||
|  | 			<h1>Get Started building Vite-powered Preact Apps </h1> | ||||||
|  | 			<section> | ||||||
|  | 				<Resource | ||||||
|  | 					title="Learn Preact" | ||||||
|  | 					description="If you're new to Preact, try the interactive tutorial to learn important concepts" | ||||||
|  | 					href="https://preactjs.com/tutorial" | ||||||
|  | 				/> | ||||||
|  | 				<Resource | ||||||
|  | 					title="Differences to React" | ||||||
|  | 					description="If you're coming from React, you may want to check out our docs to see where Preact differs" | ||||||
|  | 					href="https://preactjs.com/guide/v10/differences-to-react" | ||||||
|  | 				/> | ||||||
|  | 				<Resource | ||||||
|  | 					title="Learn Vite" | ||||||
|  | 					description="To learn more about Vite and how you can customize it to fit your needs, take a look at their excellent documentation" | ||||||
|  | 					href="https://vitejs.dev" | ||||||
|  | 				/> | ||||||
|  | 			</section> | ||||||
|  | 		</div> | ||||||
|  | 	); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function Resource(props) { | ||||||
|  | 	return ( | ||||||
|  | 		<a href={props.href} target="_blank" class="resource"> | ||||||
|  | 			<h2>{props.title}</h2> | ||||||
|  | 			<p>{props.description}</p> | ||||||
|  | 		</a> | ||||||
|  | 	); | ||||||
|  | } | ||||||
							
								
								
									
										47
									
								
								apps/website3/src/pages/Home/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								apps/website3/src/pages/Home/style.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | img { | ||||||
|  | 	margin-bottom: 1.5rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | img:hover { | ||||||
|  | 	filter: drop-shadow(0 0 2em #673ab8aa); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .home section { | ||||||
|  | 	margin-top: 5rem; | ||||||
|  | 	display: grid; | ||||||
|  | 	grid-template-columns: repeat(3, 1fr); | ||||||
|  | 	column-gap: 1.5rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .resource { | ||||||
|  | 	padding: 0.75rem 1.5rem; | ||||||
|  | 	border-radius: 0.5rem; | ||||||
|  | 	text-align: left; | ||||||
|  | 	text-decoration: none; | ||||||
|  | 	color: #222; | ||||||
|  | 	background-color: #f1f1f1; | ||||||
|  | 	border: 1px solid transparent; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .resource:hover { | ||||||
|  | 	border: 1px solid #000; | ||||||
|  | 	box-shadow: 0 25px 50px -12px #673ab888; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (max-width: 639px) { | ||||||
|  | 	.home section { | ||||||
|  | 		margin-top: 5rem; | ||||||
|  | 		grid-template-columns: 1fr; | ||||||
|  | 		row-gap: 1rem; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (prefers-color-scheme: dark) { | ||||||
|  | 	.resource { | ||||||
|  | 		color: #ccc; | ||||||
|  | 		background-color: #161616; | ||||||
|  | 	} | ||||||
|  | 	.resource:hover { | ||||||
|  | 		border: 1px solid #bbb; | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								apps/website3/src/pages/_404.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								apps/website3/src/pages/_404.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | export function NotFound() { | ||||||
|  | 	return ( | ||||||
|  | 		<section> | ||||||
|  | 			<h1>404: Not Found</h1> | ||||||
|  | 			<p>It's gone :(</p> | ||||||
|  | 		</section> | ||||||
|  | 	); | ||||||
|  | } | ||||||
							
								
								
									
										70
									
								
								apps/website3/src/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								apps/website3/src/style.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | :root { | ||||||
|  | 	font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; | ||||||
|  | 	line-height: 1.5; | ||||||
|  | 	font-weight: 400; | ||||||
|  |  | ||||||
|  | 	color: #222; | ||||||
|  | 	background-color: #ffffff; | ||||||
|  |  | ||||||
|  | 	font-synthesis: none; | ||||||
|  | 	text-rendering: optimizeLegibility; | ||||||
|  | 	-webkit-font-smoothing: antialiased; | ||||||
|  | 	-moz-osx-font-smoothing: grayscale; | ||||||
|  | 	-webkit-text-size-adjust: 100%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | body { | ||||||
|  | 	margin: 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #app { | ||||||
|  | 	display: flex; | ||||||
|  | 	flex-direction: column; | ||||||
|  | 	min-height: 100vh; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | header { | ||||||
|  | 	display: flex; | ||||||
|  | 	justify-content: flex-end; | ||||||
|  | 	background-color: #673ab8; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | header nav { | ||||||
|  | 	display: flex; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | header a { | ||||||
|  | 	color: #fff; | ||||||
|  | 	padding: 0.75rem; | ||||||
|  | 	text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | header a.active { | ||||||
|  | 	background-color: #0005; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | header a:hover { | ||||||
|  | 	background-color: #0008; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | main { | ||||||
|  | 	flex: auto; | ||||||
|  | 	display: flex; | ||||||
|  | 	align-items: center; | ||||||
|  | 	max-width: 1280px; | ||||||
|  | 	margin: 0 auto; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (max-width: 639px) { | ||||||
|  | 	main { | ||||||
|  | 		margin: 2rem; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (prefers-color-scheme: dark) { | ||||||
|  | 	:root { | ||||||
|  | 		color: #ccc; | ||||||
|  | 		background-color: #1a1a1a; | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										20
									
								
								apps/website3/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								apps/website3/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | { | ||||||
|  | 	"compilerOptions": { | ||||||
|  | 		"target": "ES2020", | ||||||
|  | 		"module": "ESNext", | ||||||
|  | 		"moduleResolution": "bundler", | ||||||
|  | 		"noEmit": true, | ||||||
|  | 		"allowJs": true, | ||||||
|  | 		"checkJs": true, | ||||||
|  |  | ||||||
|  | 		/* Preact Config */ | ||||||
|  | 		"jsx": "react-jsx", | ||||||
|  | 		"jsxImportSource": "preact", | ||||||
|  | 		"skipLibCheck": true, | ||||||
|  | 		"paths": { | ||||||
|  | 			"react": ["./node_modules/preact/compat/"], | ||||||
|  | 			"react-dom": ["./node_modules/preact/compat/"] | ||||||
|  | 		} | ||||||
|  | 	}, | ||||||
|  | 	"include": ["node_modules/vite/client.d.ts", "**/*"] | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								apps/website3/vite.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								apps/website3/vite.config.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | import { defineConfig } from 'vite'; | ||||||
|  | import preact from '@preact/preset-vite'; | ||||||
|  |  | ||||||
|  | // https://vitejs.dev/config/ | ||||||
|  | export default defineConfig({ | ||||||
|  | 	plugins: [ | ||||||
|  | 		preact({ | ||||||
|  | 			prerender: { | ||||||
|  | 				enabled: true, | ||||||
|  | 				renderTarget: '#app', | ||||||
|  | 				additionalPrerenderRoutes: ['/404'], | ||||||
|  | 				previewMiddlewareEnabled: true, | ||||||
|  | 				previewMiddlewareFallback: '/404', | ||||||
|  | 			}, | ||||||
|  | 		}), | ||||||
|  | 	], | ||||||
|  | }); | ||||||
		Reference in New Issue
	
	Block a user