Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

22 Commits

Repository files navigation

Petr Ivan

CI

This repository contains the source for petrivan.com, my personal website and blog.

Preview of petrivan.com

The site uses SvelteKit, Svelte 5, TypeScript, Tailwind CSS, mdsvex, and @sveltejs/enhanced-img. It is prerendered as static files and published to GitHub Pages.

Project structure

src/
├── lib/
│ ├── assets/ build-processed images, icons, fonts, and media
│ ├── components/ reusable interface components
│ └── content/ mdsvex posts, project records, and content queries
└── routes/ pages and prerendered endpoints
resume/ Typst résumé source, fonts, and local assets
scripts/ generated-asset and repository utilities
static/ public files copied directly into the build
tests/e2e/ Playwright browser tests
tests/visual/ scheduled visual-review captures

Project pages are typed content records. Blog posts are .svx files with title, description, and ISO date frontmatter.

Development

The project requires Node.js 22.12 or newer and pnpm 10.17.1. Install the Playwright engines before running the complete validation suite. Typst 0.14.2 is needed only when rebuilding the résumé.

pnpm install
pnpm exec playwright install chromium firefox webkit
pnpm run dev

By default, the development server is available at http://localhost:1420.

CommandPurpose
pnpm run devStart the local development server
pnpm run lintCheck formatting and lint the source
pnpm run checkRun Svelte and TypeScript checks
pnpm run testRun unit tests once
pnpm run test:e2eBuild and run desktop and mobile browser tests
pnpm run test:visualBuild and capture desktop/mobile screenshots for manual review
pnpm run buildGenerate public assets and write the site to build/
pnpm run previewServe the production build locally
pnpm run validateRun the complete local verification suite
pnpm run resume:buildRebuild the downloadable résumé with Typst 0.14.2

Build and verification

pnpm run build, pnpm run test:e2e, and pnpm run validate regenerate the site, article and project social cards and canonical public portrait copy before building the site. The source images and generation script are tracked for reproducible CI builds.

The résumé PDF is generated separately. Run pnpm run resume:build after changing its Typst source, fonts, or local assets, then inspect the result before committing it.

The Visual review workflow runs weekly and on demand. It captures representative pages in light and dark themes at desktop and mobile widths, then uploads the screenshots as a GitHub Actions artifact for manual comparison. Run pnpm run test:visual to create the same captures locally under test-results/visual-review/.

Deployment

Pushes to main are validated and deployed to GitHub Pages by .github/workflows/ci.yml. The workflow publishes the static build/ output with the official Pages actions and can also be run manually. static/CNAME defines the custom domain, while static/robots.txt advertises the generated sitemap.

Licensing

Source code is available under the MIT License. Original prose, photographs, and other original site content are available under CC BY 4.0, unless a file says otherwise. Third-party assets retain their own licenses; see THIRD_PARTY_NOTICES.md.

About

Personal website and blog for Petr Ivan

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages