Personal blog and portfolio website built with SvelteKit and MDX
- βοΈ Modern Tech Stack: Built with SvelteKit, TypeScript, and UnoCSS
- π MDX Support: Write articles in Markdown with embedded Svelte components
- π¨ Syntax Highlighting: Code blocks with Shiki highlighter and custom transformers
- π SEO Optimized: Automatic sitemap generation and meta tags
- π± Responsive Design: Mobile-first design with UnoCSS
- β‘ Fast Performance: Optimized builds and Vercel deployment
- π‘οΈ Type Safety: Full TypeScript support throughout the codebase
- Framework: SvelteKit
- Styling: UnoCSS with custom presets
- Content: MDsveX for MDX support
- Syntax Highlighting: Shiki
- Icons: Iconify
- Fonts: Variable fonts from Fontsource
- Deployment: Vercel
- Package Manager: Bun
_dev_tokiory/
βββ content/
β βββ articles/ # Blog articles in MDX format
β βββ drafts/ # Draft articles
β βββ *.mdx # Published articles
βββ src/
β βββ lib/
β β βββ components/ # Reusable Svelte components
β β βββ modules/ # Feature modules
β βββ routes/
β β βββ (standard)/ # Main site routes
β β βββ (cv)/ # CV/Resume routes
β β βββ api/ # API endpoints
β βββ styles/ # Global styles
βββ static/ # Static assets
βββ docs/ # Documentation and assets
- Bun (recommended) or Node.js 18+
- Git
- Clone the repository:
git clone https://github.com/tokiory/dev-tokiory.git
cd dev-tokiory- Install dependencies:
bun install- Start the development server:
bun run dev- Open your browser and navigate to
http://localhost:5173
bun run dev- Start development serverbun run build- Build for productionbun run preview- Preview production build locallybun run check- Run type checking and linting
Articles are written in MDX format and stored in the content/articles/ directory. Each article should include frontmatter with metadata:
---
title: Your Article Title
description: Brief description of the article
date: 2024-01-15
tags:
- tag1
- tag2
---
Your article content here with support for:
- Markdown syntax
- Embedded Svelte components
- Code blocks with syntax highlightingThe project uses Shiki for syntax highlighting with custom transformers:
- Focus notation:
// [!code focus] - Diff notation:
// [!code ++]and// [!code --] - Highlight notation:
// [!code highlight]
The project uses UnoCSS with:
- Custom presets for icons and styling
- CSS variables for theming
- Responsive design utilities
- Variable fonts (Manrope, Martian Mono, Podkova, Iosevka)
Key configuration files:
svelte.config.js- SvelteKit and MDsveX configurationuno.config.ts- UnoCSS configurationvite.config.ts- Vite build configurationtsconfig.json- TypeScript configuration
The site is automatically deployed to Vercel on push to the main branch. The deployment configuration is handled by the Vercel adapter in svelte.config.js.
To deploy manually:
- Build the project:
bun run build- Deploy to Vercel:
vercel --prodWhile this is a personal blog, suggestions and bug reports are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is open source and available under the MIT License.
- Website: https://tokiory.vercel.app
- GitHub: https://github.com/tokiory
Built with β€οΈ by tokiory
