{"id":42643347,"url":"https://github.com/syaiful6/sbahri.com","last_synced_at":"2026-01-29T06:35:14.040Z","repository":{"id":321425678,"uuid":"1085788666","full_name":"syaiful6/sbahri.com","owner":"syaiful6","description":"Source code for my personal blog about coding, technology and life.","archived":false,"fork":false,"pushed_at":"2025-11-18T18:29:38.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-18T20:19:04.094Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syaiful6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-29T14:11:03.000Z","updated_at":"2025-11-18T18:29:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"1dfa91f7-d053-4029-a34b-0dd90c99d4af","html_url":"https://github.com/syaiful6/sbahri.com","commit_stats":null,"previous_names":["syaiful6/sbahri.com"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/syaiful6/sbahri.com","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fsbahri.com","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fsbahri.com/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fsbahri.com/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fsbahri.com/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syaiful6","download_url":"https://codeload.github.com/syaiful6/sbahri.com/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fsbahri.com/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28867104,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T05:56:06.453Z","status":"ssl_error","status_checked_at":"2026-01-29T05:55:57.668Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-29T06:35:13.399Z","updated_at":"2026-01-29T06:35:14.025Z","avatar_url":"https://github.com/syaiful6.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sbahri Blog\n\nA modern developer blog built with Hugo, custom theme, and deployed to Cloudflare Pages.\n\n## Features\n\n- **Hugo** - Fast static site generator\n- **Custom Theme** - Minimal, developer-focused design\n- **Nix Flakes** - Reproducible development environment\n- **Bun** - Fast JavaScript runtime for build tools\n- **SCSS** - Modern CSS with Sass\n- **Shiki** - Build-time syntax highlighting (VS Code tokenizer)\n- **Markdown Linting** - Consistent markdown formatting\n- **GitHub Actions** - Automated CI/CD\n- **Cloudflare Pages** - Global CDN hosting with custom domain support\n\n## Getting Started\n\n### Prerequisites\n\n- [Nix](https://nixos.org/download.html) with flakes enabled\n\n### Development\n\nEnter the Nix development shell (automatically installs Hugo, Bun, Node.js, and markdownlint):\n\n```bash\nnix develop\n```\n\nBuild CSS and start the Hugo development server:\n\n```bash\nbun run dev\n```\n\nVisit `http://localhost:1313` to see your site.\n\n### Creating Content\n\nCreate a new post:\n\n```bash\nhugo new posts/my-new-post.md\n```\n\nEdit the file in `content/posts/my-new-post.md` and set `draft: false` when ready to publish.\n\n### Building\n\nFull production build with CSS compilation and syntax highlighting:\n\n```bash\nbun run build\n```\n\nThe generated site will be in the `public/` directory.\n\n#### Build Scripts\n\n- `bun run build` - Full production build (CSS + Hugo + Shiki highlighting)\n- `bun run dev` - Development server with live reload\n- `bun run build:css` - Compile SCSS to CSS\n- `bun run highlight` - Apply Shiki syntax highlighting to generated HTML\n- `bun run lint:md` - Lint markdown files\n\n## Theme Development\n\nThe custom theme is located in `themes/sbahri/` with the following structure:\n\n```\nthemes/sbahri/\n├── assets/\n│   ├── scss/           # SCSS source files\n│   │   ├── _variables.scss\n│   │   ├── _base.scss\n│   │   ├── _layout.scss\n│   │   └── main.scss\n│   └── css/            # Generated CSS (gitignored)\n├── layouts/\n│   ├── _default/\n│   │   ├── baseof.html\n│   │   ├── list.html\n│   │   └── single.html\n│   ├── partials/\n│   │   ├── header.html\n│   │   └── footer.html\n│   └── index.html\n└── theme.toml\n```\n\n### Styling\n\nEdit SCSS files in `themes/sbahri/assets/scss/` and run:\n\n```bash\nbun run build:css\n```\n\n## Syntax Highlighting\n\nThis blog uses Shiki for build-time syntax highlighting with the VS Code tokenizer. Code blocks are highlighted during the build process for optimal performance.\n\nSupported languages: TypeScript, JavaScript, Python, Rust, Go, Bash, JSON, YAML, TOML, Markdown, HTML, CSS, SCSS.\n\nTo add more languages, edit `scripts/highlight.ts`.\n\n## Deployment\n\nThis site is automatically deployed to Cloudflare Pages via GitHub Actions when you push to the `main` branch.\n\n### Setup Cloudflare Pages\n\n1. Create a Cloudflare Pages project (e.g., `sbahri-blog`)\n2. Connect your GitHub repository\n3. Add the following secrets to your GitHub repository:\n   - `CLOUDFLARE_API_TOKEN`: Your Cloudflare API token with Pages edit permissions\n   - `CLOUDFLARE_ACCOUNT_ID`: Your Cloudflare account ID\n4. Update `projectName` in `.github/workflows/deploy.yml` if needed\n\n### Custom Domain\n\nCloudflare Pages fully supports custom domains:\n\n1. Go to your Cloudflare Pages project settings\n2. Add your custom domain under \"Custom domains\"\n3. Cloudflare will automatically handle DNS and SSL\n4. Update the `baseURL` in `hugo.toml` to match your domain\n\n## Project Structure\n\n```\n.\n├── .github/\n│   └── workflows/\n│       └── deploy.yml          # GitHub Actions workflow\n├── content/                    # Blog content\n│   ├── posts/                 # Blog posts\n│   │   ├── _index.md\n│   │   └── *.md\n│   └── about.md               # About page\n├── scripts/                   # Build scripts\n│   ├── build-css.ts          # SCSS compilation\n│   └── highlight.ts           # Shiki syntax highlighting\n├── themes/sbahri/             # Custom theme\n│   ├── assets/\n│   ├── layouts/\n│   └── static/\n├── flake.nix                  # Nix flake configuration\n├── package.json               # Bun dependencies \u0026 scripts\n├── hugo.toml                  # Hugo configuration\n├── .markdownlint.json         # Markdown linting rules\n└── README.md\n```\n\n## Development Tools\n\n### Markdown Linting\n\nLint all markdown files:\n\n```bash\nbun run lint:md\n```\n\nConfiguration in `.markdownlint.json`.\n\n### Nix Environment\n\nThe `flake.nix` provides a reproducible development environment with:\n- Hugo (static site generator)\n- Bun (JavaScript runtime)\n- Node.js (for compatibility)\n- markdownlint-cli (markdown linting)\n- Git (version control)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyaiful6%2Fsbahri.com","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyaiful6%2Fsbahri.com","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyaiful6%2Fsbahri.com/lists"}