{"id":17340842,"url":"https://github.com/kenfdev/kenfdev-blog","last_synced_at":"2026-02-14T20:02:02.910Z","repository":{"id":42231814,"uuid":"211405232","full_name":"kenfdev/kenfdev-blog","owner":"kenfdev","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-02T14:19:58.000Z","size":22484,"stargazers_count":0,"open_issues_count":17,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-08T16:39:23.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Astro","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/kenfdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2019-09-27T21:35:35.000Z","updated_at":"2026-01-02T14:20:01.000Z","dependencies_parsed_at":"2024-12-19T21:41:27.070Z","dependency_job_id":null,"html_url":"https://github.com/kenfdev/kenfdev-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kenfdev/kenfdev-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenfdev%2Fkenfdev-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenfdev%2Fkenfdev-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenfdev%2Fkenfdev-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenfdev%2Fkenfdev-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kenfdev","download_url":"https://codeload.github.com/kenfdev/kenfdev-blog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenfdev%2Fkenfdev-blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29454679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"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":"2024-10-15T15:46:42.366Z","updated_at":"2026-02-14T20:02:02.905Z","avatar_url":"https://github.com/kenfdev.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kenfdev-blog\n\n多言語対応のAstro製ブログ。\n\n## 技術スタック\n\n- Astro (静的出力)\n- Content Collections (Markdown)\n- 素のCSS\n\n## ローカル開発\n\n```bash\n# 依存関係のインストール\nnpm install\n\n# 開発サーバー起動 (http://localhost:4321)\nnpm run dev\n\n# ビルド\nnpm run build\n\n# ビルド結果のプレビュー\nnpm run preview\n```\n\n## プロジェクト構造\n\n```\n/\n├── public/\n│   ├── favicon.svg\n│   └── _redirects          # Cloudflare Pages用リダイレクト\n├── src/\n│   ├── content/\n│   │   ├── config.ts       # Content Collection定義\n│   │   └── posts/          # ブログ記事 (Markdown)\n│   ├── layouts/\n│   │   └── BaseLayout.astro\n│   ├── lib/\n│   │   ├── config.ts       # サイト設定・UI文字列\n│   │   └── i18n.ts         # 多言語ユーティリティ\n│   ├── pages/\n│   │   ├── index.astro     # / → /ja/ リダイレクト\n│   │   ├── 404.astro\n│   │   ├── rss.xml.ts      # 全体RSS\n│   │   └── [lang]/\n│   │       ├── index.astro\n│   │       ├── rss.xml.ts  # 言語別RSS\n│   │       └── posts/\n│   │           ├── index.astro\n│   │           └── [slug].astro\n│   └── styles/\n│       └── global.css\n├── astro.config.mjs\n└── package.json\n```\n\n## URL設計\n\n| パス | 説明 |\n|------|------|\n| `/` | `/ja/` へ301リダイレクト |\n| `/ja/` | 日本語トップ |\n| `/en/` | 英語トップ |\n| `/ja/posts/` | 日本語記事一覧 |\n| `/en/posts/` | 英語記事一覧 |\n| `/ja/posts/{slug}/` | 日本語記事 |\n| `/en/posts/{slug}/` | 英語記事 |\n| `/rss.xml` | 全言語RSS |\n| `/ja/rss.xml` | 日本語RSS |\n| `/en/rss.xml` | 英語RSS |\n\n## 記事の追加\n\n`src/content/posts/` に Markdown ファイルを追加します。\n\nファイル名: `{slug}.{lang}.md`\n\n例:\n- `my-article.ja.md` (日本語)\n- `my-article.en.md` (英語)\n\n### Frontmatter\n\n```yaml\n---\ntitle: \"記事タイトル\"\ndate: \"2025-01-01\"\ndescription: \"記事の説明\"\ntags: [\"tag1\", \"tag2\"]\nlang: \"ja\"\n---\n```\n\n**注意:** slugはファイル名から自動的に抽出されます（`my-article.ja.md` → `/ja/posts/my-article/`）\n\n## Cloudflare Pagesへのデプロイ\n\n### Cloudflare Pages設定\n\n| 項目 | 値 |\n|------|-----|\n| Build command | `npm run build` |\n| Build output directory | `dist` |\n| Node.js version | `20` |\n\n### 本番ドメイン設定\n\n`astro.config.mjs` の `site` を本番ドメインに変更してください：\n\n```js\nexport default defineConfig({\n  site: 'https://your-domain.com',\n  // ...\n});\n```\n\n## ライセンス\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenfdev%2Fkenfdev-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkenfdev%2Fkenfdev-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenfdev%2Fkenfdev-blog/lists"}