├── .npmrc ├── src ├── routes │ ├── +layout.ts │ ├── +page.svelte │ ├── +layout.svelte │ └── +error.svelte ├── lib │ ├── index.ts │ └── components │ │ ├── sections │ │ ├── Footer.svelte │ │ ├── Contributing.svelte │ │ ├── BasicConcepts.svelte │ │ ├── Hero.svelte │ │ ├── Testimonials.svelte │ │ ├── Advantages.svelte │ │ └── Downloads.svelte │ │ ├── common │ │ ├── DualHeader.svelte │ │ └── LinkCard.svelte │ │ └── core │ │ └── Navigation.svelte ├── app.d.ts ├── app.html ├── hooks.server.ts └── app.css ├── bun.lockb ├── screenshots └── 20241008.png ├── .prettierignore ├── Dockerfile ├── .vscode └── settings.json ├── .gitignore ├── compose.yml ├── static ├── icons │ ├── menu-bars.svg │ ├── left-arrow.svg │ ├── right-arrow.svg │ └── link-arrow.svg ├── logo.svg └── graphics │ ├── review-graphic-light.svg │ ├── review-graphic-dark.svg │ ├── deck-graphic-dark.svg │ └── deck-graphic-light.svg ├── .prettierrc ├── Makefile ├── vite.config.ts ├── tsconfig.json ├── README.md ├── svelte.config.js ├── .github └── workflows │ ├── check-pr.yml │ └── deploy.yml ├── eslint.config.js ├── LICENSE └── package.json /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /src/routes/+layout.ts: -------------------------------------------------------------------------------- 1 | export const prerender = true; 2 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ankitects/anki-landing-page/HEAD/bun.lockb -------------------------------------------------------------------------------- /src/lib/index.ts: -------------------------------------------------------------------------------- 1 | // place files you want to import through the `$lib` alias in this folder. 2 | -------------------------------------------------------------------------------- /screenshots/20241008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ankitects/anki-landing-page/HEAD/screenshots/20241008.png -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore files for PNPM, NPM and YARN 2 | pnpm-lock.yaml 3 | package-lock.json 4 | yarn.lock 5 | .vscode -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM oven/bun:alpine 2 | 3 | RUN apk add make 4 | 5 | COPY . /anki-landing-page 6 | 7 | WORKDIR /anki-landing-page -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "conventionalCommits.scopes": [ 3 | "Build Scripts", 4 | "Grammar", 5 | "Docker", 6 | "Documentation", 7 | "Vite" 8 | ] 9 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | vite.config.js.timestamp-* 10 | vite.config.ts.timestamp-* 11 | -------------------------------------------------------------------------------- /src/lib/components/sections/Footer.svelte: -------------------------------------------------------------------------------- 1 |
2 |
Anki is a registered trademark of Ankitects Pty Ltd.
3 |
4 | -------------------------------------------------------------------------------- /compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | preview: 3 | build: . 4 | command: make preview 5 | ports: 6 | - '4173:4173' 7 | dev: 8 | build: . 9 | command: make dev 10 | ports: 11 | - '5173:5173' 12 | -------------------------------------------------------------------------------- /static/icons/menu-bars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/icons/left-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/icons/right-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/icons/link-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": false, 3 | "tabWidth": 2, 4 | "singleQuote": true, 5 | "trailingComma": "all", 6 | "printWidth": 100, 7 | "plugins": ["prettier-plugin-svelte"], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface PageState {} 9 | // interface Platform {} 10 | } 11 | } 12 | 13 | export {}; 14 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %sveltekit.head% 7 | 8 | 9 |
%sveltekit.body%
10 | 11 | 12 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: dev preview 2 | 3 | # Determine the package manager to use 4 | PM := $(shell command -v bun 2> /dev/null || command -v npm 2> /dev/null) 5 | 6 | ifeq ($(PM),) 7 | $(error "Error: Neither bun nor npm is installed.") 8 | endif 9 | 10 | dev: 11 | @$(PM) install && $(PM) run dev 12 | 13 | preview: 14 | @$(PM) install && $(PM) run build && $(PM) run preview -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | import { defineConfig } from 'vite'; 3 | import tailwindcss from '@tailwindcss/vite'; 4 | 5 | export default defineConfig({ 6 | plugins: [sveltekit(), tailwindcss()], 7 | server: { 8 | host: true, 9 | port: 5173, 10 | }, 11 | preview: { 12 | host: true, 13 | port: 4173, 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /src/hooks.server.ts: -------------------------------------------------------------------------------- 1 | import { sequence } from '@sveltejs/kit/hooks'; 2 | import { type Handle } from '@sveltejs/kit'; 3 | 4 | const preloadFonts: Handle = async ({ event, resolve }) => { 5 | const response = await resolve(event, { 6 | preload: ({ type }) => type === 'font', 7 | }); 8 | 9 | return response; 10 | }; 11 | 12 | export const handle: Handle = sequence(preloadFonts); 13 | -------------------------------------------------------------------------------- /src/lib/components/common/DualHeader.svelte: -------------------------------------------------------------------------------- 1 | 13 | 14 |
15 |

{title}

16 |
17 | {@render subtitle()} 18 |
19 |
20 | -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |