Skip to content

Marzogh/Marzogh.github.io

Repository files navigation

Chips'nCode

Astro-powered personal site for technical writing, projects, tools, education resources, poetry, and astrophotography.

Live deployment is served as a static site.

Stack

  • Astro 5
  • Astro Content Collections (Markdown/MDX)
  • CI-based static deployment

Content Collections

Content is managed in src/content/:

  • blog
  • docs
  • projects
  • tools
  • education
  • poetry
  • astrophotography

Collection schemas and validation live in src/content.config.ts.

Local Development

Run all commands from repository root:

Command Action
npm install Install dependencies
npm run dev Start local dev server
npm run build Build static site to dist/
npm run preview Preview production build locally

Publishing Workflow

  1. Add or edit content in the relevant src/content/<collection>/ directory.
  2. Include frontmatter fields expected by the schema (for example: title, description, pubDate, tags, optional updatedDate, optional featured).
  3. Run npm run build before pushing.
  4. Push through the normal repository workflow to trigger deployment.

Tags are normalized to slug routes under /tags/<tag-slug>/.

CLI Index Shell

The reusable shell component lives at:

  • src/components/CliShell.astro

It is used on:

  • /docs
  • /projects
  • /tools
  • /notebook

Notes:

  • Supports unix-style commands (stat, ls, cd, grep, tag, man, etc.)
  • Supports per-command help via --help / -h
  • Manual drawer includes keyboard navigation and clickable SEE ALSO
  • Hidden on mobile breakpoints to keep index pages lightweight

Deployment

  • Deployment target: static hosting
  • Build output: static files in dist/

Deployment is handled by the repository's configured CI workflow.

Living Codex Sync

This site tracks The Living Codex as a git submodule:

  • Submodule path: vendor/the-living-codex
  • Tracking branch: main
  • Served route: /living-codex/* (synced into public/living-codex at build time)
  • Deploy behavior: the build uses the checked-out submodule content when generating the static site.

Automatic sync

An internal maintenance workflow can refresh the submodule and open an update PR when changes exist.

Manual fallback sync

Run from repo root:

git submodule update --init --recursive
git submodule update --remote --merge vendor/the-living-codex
git add .gitmodules vendor/the-living-codex
git commit -m "chore(sync): bump Living Codex submodule"
git push origin HEAD

To refresh the static payload locally:

npm run sync:living-codex

Domain and DNS

Custom domain DNS is managed outside this repository.

Repository Layout

.
├── public/
├── src/
│   ├── components/
│   ├── content/
│   ├── layouts/
│   ├── pages/
│   └── utils/
├── astro.config.mjs
├── package.json
└── README.md

About

Github Homepage

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors