goofmint 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +17 -0
- package/.github/workflows/deploy.yml +44 -0
- package/.nvmrc +1 -0
- package/.ruby-version +1 -0
- package/DEPLOYMENT.md +111 -0
- package/Gemfile +10 -0
- package/README.md +118 -0
- package/_config.yml +77 -0
- package/_data/i18n.yml +86 -0
- package/_data/social.yml +19 -0
- package/_includes/footer.html +18 -0
- package/_includes/header.html +42 -0
- package/_includes/i18n.html +2 -0
- package/_layouts/default.html +25 -0
- package/_layouts/post.html +18 -0
- package/_layouts/project.html +37 -0
- package/_posts/2025-01-03-welcome.md +62 -0
- package/_posts/en/2025-01-03-welcome.md +61 -0
- package/_projects/bug-sniper.md +28 -0
- package/_projects/caiz.md +29 -0
- package/_projects/drowl.md +28 -0
- package/_projects/incho-app.md +32 -0
- package/_projects/moongift.md +33 -0
- package/_projects/review-game.md +28 -0
- package/_projects/sheetdb.md +30 -0
- package/_projects/text2cal.md +49 -0
- package/_projects_en/bug-sniper.md +28 -0
- package/_projects_en/caiz.md +29 -0
- package/_projects_en/drowl.md +28 -0
- package/_projects_en/incho-app.md +32 -0
- package/_projects_en/moongift.md +33 -0
- package/_projects_en/review-game.md +28 -0
- package/_projects_en/sheetdb.md +30 -0
- package/_projects_en/text2cal.md +49 -0
- package/_sass/_base.scss +58 -0
- package/_sass/_components.scss +113 -0
- package/_sass/_layout.scss +140 -0
- package/_sass/_syntax.scss +137 -0
- package/_sass/_theme.scss +261 -0
- package/about.md +182 -0
- package/assets/css/main.scss +68 -0
- package/assets/images/atsushi.jpg +0 -0
- package/assets/images/daruma.jpeg +0 -0
- package/assets/images/icons/email.svg +1 -0
- package/assets/images/icons/github.svg +1 -0
- package/assets/images/icons/linkedin.svg +1 -0
- package/assets/images/icons/x.svg +1 -0
- package/assets/images/moveum.jpeg +0 -0
- package/assets/images/notes.jpeg +0 -0
- package/assets/js/lang-toggle.js +89 -0
- package/assets/js/theme-toggle.js +69 -0
- package/blog.html +21 -0
- package/en/about.md +180 -0
- package/en/blog.html +21 -0
- package/en/index.html +45 -0
- package/en/projects.html +26 -0
- package/index.html +45 -0
- package/index.js +321 -0
- package/package.json +43 -0
- package/projects.html +29 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(jekyll:*)",
|
|
5
|
+
"Bash(mkdir:*)",
|
|
6
|
+
"Bash(bundle install:*)",
|
|
7
|
+
"Bash(tree:*)",
|
|
8
|
+
"WebFetch(domain:api.iconify.design)",
|
|
9
|
+
"Bash(bundle exec jekyll clean:*)",
|
|
10
|
+
"Bash(bundle exec jekyll build:*)",
|
|
11
|
+
"Bash(npm install)",
|
|
12
|
+
"Bash(chmod:*)",
|
|
13
|
+
"Bash(npm link)",
|
|
14
|
+
"Bash(npx goofmint:*)"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Deploy to Cloudflare Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build-and-deploy:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
deployments: write
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout repository
|
|
20
|
+
uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- name: Setup Ruby
|
|
23
|
+
uses: ruby/setup-ruby@v1
|
|
24
|
+
with:
|
|
25
|
+
ruby-version: '3.2'
|
|
26
|
+
bundler-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: bundle install
|
|
30
|
+
|
|
31
|
+
- name: Build Jekyll site
|
|
32
|
+
run: bundle exec jekyll build
|
|
33
|
+
env:
|
|
34
|
+
JEKYLL_ENV: production
|
|
35
|
+
|
|
36
|
+
- name: Publish to Cloudflare Pages
|
|
37
|
+
uses: cloudflare/pages-action@v1
|
|
38
|
+
with:
|
|
39
|
+
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
40
|
+
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
|
41
|
+
projectName: goofmint-dev
|
|
42
|
+
directory: _site
|
|
43
|
+
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
|
|
44
|
+
branch: main
|
package/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
20
|
package/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.2.0
|
package/DEPLOYMENT.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Cloudflare Pagesへのデプロイ手順
|
|
2
|
+
|
|
3
|
+
このドキュメントでは、GitHub Actionsを使用してJekyllサイトをCloudflare Pagesに自動デプロイする方法を説明します。
|
|
4
|
+
|
|
5
|
+
## 前提条件
|
|
6
|
+
|
|
7
|
+
- GitHubアカウント
|
|
8
|
+
- Cloudflareアカウント
|
|
9
|
+
- このリポジトリがGitHubにプッシュされていること
|
|
10
|
+
|
|
11
|
+
## セットアップ手順
|
|
12
|
+
|
|
13
|
+
### 1. Cloudflare Pages プロジェクトの作成
|
|
14
|
+
|
|
15
|
+
1. [Cloudflare Dashboard](https://dash.cloudflare.com/) にログイン
|
|
16
|
+
2. 左メニューから「Workers & Pages」を選択
|
|
17
|
+
3. 「Create application」→「Pages」→「Connect to Git」を選択
|
|
18
|
+
4. **GitHubとの接続はスキップ**(GitHub Actionsでデプロイするため)
|
|
19
|
+
5. 代わりに「Direct Upload」を選択
|
|
20
|
+
6. プロジェクト名を `goofmint-dev` に設定
|
|
21
|
+
7. プロジェクトを作成
|
|
22
|
+
|
|
23
|
+
### 2. Cloudflare API トークンの取得
|
|
24
|
+
|
|
25
|
+
1. Cloudflare Dashboard で右上のアイコン → 「My Profile」
|
|
26
|
+
2. 左メニューから「API Tokens」を選択
|
|
27
|
+
3. 「Create Token」をクリック
|
|
28
|
+
4. 「Edit Cloudflare Workers」テンプレートを使用するか、カスタムトークンを作成
|
|
29
|
+
- **Permissions**:
|
|
30
|
+
- Account - Cloudflare Pages: Edit
|
|
31
|
+
- **Account Resources**:
|
|
32
|
+
- Include - 該当するアカウント
|
|
33
|
+
5. 「Continue to summary」→「Create Token」
|
|
34
|
+
6. **トークンをコピーして保存**(後で使用)
|
|
35
|
+
|
|
36
|
+
### 3. Cloudflare Account IDの取得
|
|
37
|
+
|
|
38
|
+
1. Cloudflare Dashboard のホームに戻る
|
|
39
|
+
2. 右側のサイドバーに表示されている「Account ID」をコピー
|
|
40
|
+
|
|
41
|
+
### 4. GitHub Secretsの設定
|
|
42
|
+
|
|
43
|
+
1. GitHubリポジトリページで「Settings」→「Secrets and variables」→「Actions」
|
|
44
|
+
2. 「New repository secret」をクリックして以下を追加:
|
|
45
|
+
|
|
46
|
+
**CLOUDFLARE_API_TOKEN**
|
|
47
|
+
```
|
|
48
|
+
(ステップ2で取得したAPIトークン)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**CLOUDFLARE_ACCOUNT_ID**
|
|
52
|
+
```
|
|
53
|
+
(ステップ3で取得したAccount ID)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## デプロイ方法
|
|
57
|
+
|
|
58
|
+
### 自動デプロイ
|
|
59
|
+
|
|
60
|
+
`main` ブランチにプッシュすると自動的にデプロイされます:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git add .
|
|
64
|
+
git commit -m "Update site"
|
|
65
|
+
git push origin main
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### デプロイの確認
|
|
69
|
+
|
|
70
|
+
1. GitHubリポジトリの「Actions」タブでワークフローの実行状況を確認
|
|
71
|
+
2. 成功したら Cloudflare Dashboard の「Workers & Pages」でデプロイを確認
|
|
72
|
+
3. 提供されたURLでサイトにアクセス
|
|
73
|
+
|
|
74
|
+
## カスタムドメインの設定
|
|
75
|
+
|
|
76
|
+
1. Cloudflare Dashboard で該当プロジェクトを選択
|
|
77
|
+
2. 「Custom domains」タブを開く
|
|
78
|
+
3. 「Set up a custom domain」をクリック
|
|
79
|
+
4. ドメイン名を入力(例: `goofmint.dev`)
|
|
80
|
+
5. DNSレコードが自動的に設定されます
|
|
81
|
+
|
|
82
|
+
## トラブルシューティング
|
|
83
|
+
|
|
84
|
+
### ビルドエラー
|
|
85
|
+
|
|
86
|
+
- GitHub Actionsの「Actions」タブでログを確認
|
|
87
|
+
- Rubyのバージョンやgemの依存関係を確認
|
|
88
|
+
|
|
89
|
+
### デプロイエラー
|
|
90
|
+
|
|
91
|
+
- Cloudflare API TokenとAccount IDが正しく設定されているか確認
|
|
92
|
+
- プロジェクト名が `goofmint-dev` と一致しているか確認
|
|
93
|
+
|
|
94
|
+
### 環境変数
|
|
95
|
+
|
|
96
|
+
本番環境用の環境変数が必要な場合:
|
|
97
|
+
|
|
98
|
+
```yaml
|
|
99
|
+
# .github/workflows/deploy.yml
|
|
100
|
+
- name: Build Jekyll site
|
|
101
|
+
run: bundle exec jekyll build
|
|
102
|
+
env:
|
|
103
|
+
JEKYLL_ENV: production
|
|
104
|
+
# その他の環境変数をここに追加
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 参考リンク
|
|
108
|
+
|
|
109
|
+
- [Cloudflare Pages Documentation](https://developers.cloudflare.com/pages/)
|
|
110
|
+
- [GitHub Actions for Cloudflare Pages](https://github.com/cloudflare/pages-action)
|
|
111
|
+
- [Jekyll Documentation](https://jekyllrb.com/docs/)
|
package/Gemfile
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# goofmint.dev
|
|
2
|
+
|
|
3
|
+
個人ポートフォリオサイト
|
|
4
|
+
|
|
5
|
+
## 概要
|
|
6
|
+
|
|
7
|
+
Jekyll を使用して構築された個人ポートフォリオサイトです。
|
|
8
|
+
|
|
9
|
+
## 機能
|
|
10
|
+
|
|
11
|
+
- **ポートフォリオ**: プロジェクトの一覧と詳細ページ
|
|
12
|
+
- **ブログ**: 技術記事などを投稿
|
|
13
|
+
- **多言語対応**: 日本語・英語
|
|
14
|
+
- **ダークモード**: ライト/ダークテーマ切り替え
|
|
15
|
+
- **レスポンシブデザイン**: モバイル対応
|
|
16
|
+
- **SEO対応**: jekyll-seo-tag プラグインを使用
|
|
17
|
+
- **自動デプロイ**: GitHub Actions → Cloudflare Pages
|
|
18
|
+
|
|
19
|
+
## セットアップ
|
|
20
|
+
|
|
21
|
+
### 必要要件
|
|
22
|
+
|
|
23
|
+
- Ruby 2.7以上
|
|
24
|
+
- Jekyll 4.3以上
|
|
25
|
+
|
|
26
|
+
### インストール
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 依存関係のインストール
|
|
30
|
+
bundle install
|
|
31
|
+
|
|
32
|
+
# ローカルサーバーの起動
|
|
33
|
+
bundle exec jekyll serve
|
|
34
|
+
|
|
35
|
+
# ブラウザで http://localhost:4000 にアクセス
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## ディレクトリ構造
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
.
|
|
42
|
+
├── _config.yml # サイト設定
|
|
43
|
+
├── _includes/ # 再利用可能なコンポーネント
|
|
44
|
+
├── _layouts/ # ページレイアウト
|
|
45
|
+
├── _posts/ # ブログ投稿
|
|
46
|
+
├── _projects/ # プロジェクトページ
|
|
47
|
+
├── _sass/ # Sassスタイルシート
|
|
48
|
+
├── assets/ # CSS、JS、画像
|
|
49
|
+
├── index.html # トップページ
|
|
50
|
+
├── about.md # About ページ
|
|
51
|
+
├── blog.html # ブログ一覧
|
|
52
|
+
└── projects.html # プロジェクト一覧
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## プロジェクトの追加方法
|
|
56
|
+
|
|
57
|
+
`_projects/` ディレクトリに新しいMarkdownファイルを作成します:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
---
|
|
61
|
+
title: プロジェクト名
|
|
62
|
+
tech:
|
|
63
|
+
- 技術1
|
|
64
|
+
- 技術2
|
|
65
|
+
github: https://github.com/username/repo
|
|
66
|
+
demo: https://demo.example.com
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
プロジェクトの説明...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## ブログ投稿の追加方法
|
|
73
|
+
|
|
74
|
+
`_posts/` ディレクトリに `YYYY-MM-DD-title.md` の形式でファイルを作成します:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
---
|
|
78
|
+
layout: post
|
|
79
|
+
title: "投稿タイトル"
|
|
80
|
+
date: YYYY-MM-DD HH:MM:SS +0900
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
記事の内容...
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## ビルド
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
bundle exec jekyll build
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
ビルドされたサイトは `_site/` ディレクトリに生成されます。
|
|
93
|
+
|
|
94
|
+
## デプロイ
|
|
95
|
+
|
|
96
|
+
このサイトはGitHub ActionsでCloudflare Pagesに自動デプロイされます。
|
|
97
|
+
|
|
98
|
+
詳細な手順は [DEPLOYMENT.md](./DEPLOYMENT.md) を参照してください。
|
|
99
|
+
|
|
100
|
+
### クイックスタート
|
|
101
|
+
|
|
102
|
+
1. Cloudflare Pagesでプロジェクト作成
|
|
103
|
+
2. GitHub Secretsに以下を設定:
|
|
104
|
+
- `CLOUDFLARE_API_TOKEN`
|
|
105
|
+
- `CLOUDFLARE_ACCOUNT_ID`
|
|
106
|
+
3. `main` ブランチにプッシュすると自動デプロイ
|
|
107
|
+
|
|
108
|
+
## 技術スタック
|
|
109
|
+
|
|
110
|
+
- **フレームワーク**: Jekyll 4.3
|
|
111
|
+
- **スタイル**: Sass/SCSS
|
|
112
|
+
- **デプロイ**: Cloudflare Pages
|
|
113
|
+
- **CI/CD**: GitHub Actions
|
|
114
|
+
- **言語**: Ruby 3.2
|
|
115
|
+
|
|
116
|
+
## ライセンス
|
|
117
|
+
|
|
118
|
+
MIT License
|
package/_config.yml
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Site settings
|
|
2
|
+
title: goofmint.dev
|
|
3
|
+
description: >-
|
|
4
|
+
Personal Portfolio Site of Atsushi Nakatsugawa, a DevRel lover based in Yokohama, Japan.
|
|
5
|
+
baseurl: ""
|
|
6
|
+
url: "https://goofmint.dev"
|
|
7
|
+
|
|
8
|
+
# Language settings
|
|
9
|
+
languages: ["ja", "en"]
|
|
10
|
+
default_lang: "ja"
|
|
11
|
+
lang: "ja"
|
|
12
|
+
|
|
13
|
+
# Author settings
|
|
14
|
+
author:
|
|
15
|
+
name: Goofmint
|
|
16
|
+
email: your-email@example.com
|
|
17
|
+
|
|
18
|
+
# Build settings
|
|
19
|
+
markdown: kramdown
|
|
20
|
+
permalink: pretty
|
|
21
|
+
|
|
22
|
+
# Plugins
|
|
23
|
+
plugins:
|
|
24
|
+
- jekyll-feed
|
|
25
|
+
- jekyll-seo-tag
|
|
26
|
+
- jekyll-sitemap
|
|
27
|
+
|
|
28
|
+
# Exclude from processing
|
|
29
|
+
exclude:
|
|
30
|
+
- Gemfile
|
|
31
|
+
- Gemfile.lock
|
|
32
|
+
- node_modules
|
|
33
|
+
- vendor/bundle/
|
|
34
|
+
- vendor/cache/
|
|
35
|
+
- vendor/gems/
|
|
36
|
+
- vendor/ruby/
|
|
37
|
+
- .sass-cache/
|
|
38
|
+
- .jekyll-cache/
|
|
39
|
+
- gemfiles/
|
|
40
|
+
|
|
41
|
+
# Collections
|
|
42
|
+
collections:
|
|
43
|
+
projects:
|
|
44
|
+
output: true
|
|
45
|
+
permalink: /projects/:name/
|
|
46
|
+
projects_en:
|
|
47
|
+
output: true
|
|
48
|
+
permalink: /en/projects/:name/
|
|
49
|
+
|
|
50
|
+
# Defaults
|
|
51
|
+
defaults:
|
|
52
|
+
- scope:
|
|
53
|
+
path: ""
|
|
54
|
+
type: "projects"
|
|
55
|
+
values:
|
|
56
|
+
layout: "project"
|
|
57
|
+
lang: "ja"
|
|
58
|
+
- scope:
|
|
59
|
+
path: ""
|
|
60
|
+
type: "projects_en"
|
|
61
|
+
values:
|
|
62
|
+
layout: "project"
|
|
63
|
+
lang: "en"
|
|
64
|
+
- scope:
|
|
65
|
+
path: ""
|
|
66
|
+
type: "posts"
|
|
67
|
+
values:
|
|
68
|
+
layout: "post"
|
|
69
|
+
lang: "ja"
|
|
70
|
+
permalink: /blog/:year/:month/:day/:title/
|
|
71
|
+
- scope:
|
|
72
|
+
path: "_posts/en"
|
|
73
|
+
type: "posts"
|
|
74
|
+
values:
|
|
75
|
+
layout: "post"
|
|
76
|
+
lang: "en"
|
|
77
|
+
permalink: /en/blog/:year/:month/:day/:title/
|
package/_data/i18n.yml
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
ja:
|
|
2
|
+
site:
|
|
3
|
+
title: goofmint.dev
|
|
4
|
+
description: アツシの個人ポートフォリオサイト
|
|
5
|
+
|
|
6
|
+
nav:
|
|
7
|
+
home: ホーム
|
|
8
|
+
projects: プロジェクト
|
|
9
|
+
blog: ブログ
|
|
10
|
+
about: 私について
|
|
11
|
+
|
|
12
|
+
home:
|
|
13
|
+
hero_title: goofmint.devへようこそ
|
|
14
|
+
hero_description: アツシの個人ポートフォリオサイトへようこそ
|
|
15
|
+
about_title: About
|
|
16
|
+
about_description: CodeRabbit デベロッパーアドボケイト、株式会社MOONGIFT代表取締役、一般社団法人DevRel代表理事。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。ソーシャルIDはすべて goofmint。
|
|
17
|
+
featured_projects: 注目のプロジェクト
|
|
18
|
+
latest_posts: 最新の投稿
|
|
19
|
+
view_all_projects: すべてのプロジェクトを見る
|
|
20
|
+
view_all_posts: すべての投稿を見る
|
|
21
|
+
|
|
22
|
+
projects:
|
|
23
|
+
title: プロジェクト
|
|
24
|
+
|
|
25
|
+
blog:
|
|
26
|
+
title: ブログ
|
|
27
|
+
|
|
28
|
+
about:
|
|
29
|
+
title: アツシについて
|
|
30
|
+
skills: スキル
|
|
31
|
+
experience: 経歴
|
|
32
|
+
contact: お問い合わせ
|
|
33
|
+
|
|
34
|
+
post:
|
|
35
|
+
posted_on: 投稿日
|
|
36
|
+
|
|
37
|
+
footer:
|
|
38
|
+
rights: All rights reserved.
|
|
39
|
+
|
|
40
|
+
en:
|
|
41
|
+
site:
|
|
42
|
+
title: goofmint.dev
|
|
43
|
+
description: Personal Portfolio Site
|
|
44
|
+
|
|
45
|
+
nav:
|
|
46
|
+
home: Home
|
|
47
|
+
projects: Projects
|
|
48
|
+
blog: Blog
|
|
49
|
+
about: About
|
|
50
|
+
|
|
51
|
+
home:
|
|
52
|
+
hero_title: Welcome to goofmint.dev
|
|
53
|
+
hero_description: "Welcome to Atsushi's personal portfolio site"
|
|
54
|
+
about_title: About
|
|
55
|
+
about_description: >-
|
|
56
|
+
CodeRabbit Developer Advocate, CEO of MOONGIFT Inc.,
|
|
57
|
+
and Representative Director of DevRel Association.
|
|
58
|
+
Worked as a programmer and engineer at several companies,
|
|
59
|
+
and became independent at the age of 28.
|
|
60
|
+
In 2004, he launched "MOONGIFT", a technical blog on open source software,
|
|
61
|
+
where he shares information daily.
|
|
62
|
+
In 2013, he incorporated the business and started DevRel activities
|
|
63
|
+
that connect business and engineers.
|
|
64
|
+
His social ID is goofmint everywhere.
|
|
65
|
+
featured_projects: Featured Projects
|
|
66
|
+
latest_posts: Latest Posts
|
|
67
|
+
view_all_projects: View All Projects
|
|
68
|
+
view_all_posts: View All Posts
|
|
69
|
+
|
|
70
|
+
projects:
|
|
71
|
+
title: Projects
|
|
72
|
+
|
|
73
|
+
blog:
|
|
74
|
+
title: Blog
|
|
75
|
+
|
|
76
|
+
about:
|
|
77
|
+
title: About me
|
|
78
|
+
skills: Skills
|
|
79
|
+
experience: Experience
|
|
80
|
+
contact: Contact
|
|
81
|
+
|
|
82
|
+
post:
|
|
83
|
+
posted_on: Posted on
|
|
84
|
+
|
|
85
|
+
footer:
|
|
86
|
+
rights: All rights reserved.
|
package/_data/social.yml
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
github:
|
|
2
|
+
url: https://github.com/goofmint
|
|
3
|
+
icon: github.svg
|
|
4
|
+
name: GitHub
|
|
5
|
+
|
|
6
|
+
twitter:
|
|
7
|
+
url: https://twitter.com/goofmint
|
|
8
|
+
icon: X.svg
|
|
9
|
+
name: X
|
|
10
|
+
|
|
11
|
+
linkedin:
|
|
12
|
+
url: https://www.linkedin.com/in/goofmint/
|
|
13
|
+
icon: linkedin.svg
|
|
14
|
+
name: LinkedIn
|
|
15
|
+
|
|
16
|
+
email:
|
|
17
|
+
url: mailto:atsushi@moongift.jp
|
|
18
|
+
icon: email.svg
|
|
19
|
+
name: Email
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<footer class="site-footer">
|
|
2
|
+
<div class="wrapper">
|
|
3
|
+
<div class="footer-content">
|
|
4
|
+
<div class="footer-info">
|
|
5
|
+
<p>© {{ 'now' | date: "%Y" }} {{ site.title }}. All rights reserved.</p>
|
|
6
|
+
<p>{{ site.description }}</p>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="social-links">
|
|
10
|
+
{% for social in site.data.social %}
|
|
11
|
+
<a href="{{ social[1].url }}" target="_blank" rel="noopener noreferrer" aria-label="{{ social[1].name }}" class="social-link">
|
|
12
|
+
<img src="{{ '/assets/images/icons/' | append: social[1].icon | relative_url }}" alt="{{ social[1].name }}" class="social-icon">
|
|
13
|
+
</a>
|
|
14
|
+
{% endfor %}
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</footer>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{% include i18n.html %}
|
|
2
|
+
{% if page.lang == 'en' %}
|
|
3
|
+
{% assign home_url = "/en/" %}
|
|
4
|
+
{% assign projects_url = "/en/projects/" %}
|
|
5
|
+
{% assign blog_url = "/en/blog/" %}
|
|
6
|
+
{% assign about_url = "/en/about/" %}
|
|
7
|
+
{% else %}
|
|
8
|
+
{% assign home_url = "/" %}
|
|
9
|
+
{% assign projects_url = "/projects/" %}
|
|
10
|
+
{% assign blog_url = "/blog/" %}
|
|
11
|
+
{% assign about_url = "/about/" %}
|
|
12
|
+
{% endif %}
|
|
13
|
+
|
|
14
|
+
<header class="site-header">
|
|
15
|
+
<div class="wrapper">
|
|
16
|
+
<a class="site-title" href="{{ home_url | relative_url }}">{{ site.title }}</a>
|
|
17
|
+
|
|
18
|
+
<div class="header-right">
|
|
19
|
+
<nav class="site-nav">
|
|
20
|
+
<a href="{{ home_url | relative_url }}">{{ t.nav.home }}</a>
|
|
21
|
+
<a href="{{ projects_url | relative_url }}">{{ t.nav.projects }}</a>
|
|
22
|
+
<a href="{{ blog_url | relative_url }}">{{ t.nav.blog }}</a>
|
|
23
|
+
<a href="{{ about_url | relative_url }}">{{ t.nav.about }}</a>
|
|
24
|
+
</nav>
|
|
25
|
+
|
|
26
|
+
<div class="header-controls">
|
|
27
|
+
<button class="lang-toggle" aria-label="言語切り替え">
|
|
28
|
+
{% if page.lang == 'en' %}JA{% else %}EN{% endif %}
|
|
29
|
+
</button>
|
|
30
|
+
|
|
31
|
+
<button class="theme-toggle" aria-label="テーマ切り替え">
|
|
32
|
+
<svg class="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
33
|
+
<path d="M12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM11 1H13V4H11V1ZM11 20H13V23H11V20ZM3.51472 4.92893L4.92893 3.51472L7.05025 5.63604L5.63604 7.05025L3.51472 4.92893ZM16.9497 18.364L18.364 16.9497L20.4853 19.0711L19.0711 20.4853L16.9497 18.364ZM19.0711 3.51472L20.4853 4.92893L18.364 7.05025L16.9497 5.63604L19.0711 3.51472ZM5.63604 16.9497L7.05025 18.364L4.92893 20.4853L3.51472 19.0711L5.63604 16.9497ZM23 11V13H20V11H23ZM4 11V13H1V11H4Z"/>
|
|
34
|
+
</svg>
|
|
35
|
+
<svg class="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
36
|
+
<path d="M10 7C10 10.866 13.134 14 17 14C18.9584 14 20.729 13.1957 21.9995 11.8995C22 11.933 22 11.9665 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C12.0335 2 12.067 2 12.1005 2.00049C10.8043 3.27098 10 5.04157 10 7ZM4 12C4 16.4183 7.58172 20 12 20C15.0583 20 17.7158 18.2839 19.062 15.7621C18.3945 15.9187 17.7035 16 17 16C12.0294 16 8 11.9706 8 7C8 6.29648 8.08133 5.60547 8.2379 4.938C5.71611 6.28423 4 8.9417 4 12Z"/>
|
|
37
|
+
</svg>
|
|
38
|
+
</button>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</header>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="{{ page.lang | default: site.lang | default: 'ja' }}">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title }}</title>
|
|
7
|
+
<meta name="description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
|
|
8
|
+
<link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}">
|
|
9
|
+
<script src="{{ "/assets/js/theme-toggle.js" | relative_url }}"></script>
|
|
10
|
+
<script src="{{ "/assets/js/lang-toggle.js" | relative_url }}"></script>
|
|
11
|
+
{% seo %}
|
|
12
|
+
{% feed_meta %}
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
{% include header.html %}
|
|
16
|
+
|
|
17
|
+
<main class="page-content">
|
|
18
|
+
<div class="wrapper">
|
|
19
|
+
{{ content }}
|
|
20
|
+
</div>
|
|
21
|
+
</main>
|
|
22
|
+
|
|
23
|
+
{% include footer.html %}
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<article class="post">
|
|
6
|
+
<header class="post-header">
|
|
7
|
+
<h1 class="post-title">{{ page.title }}</h1>
|
|
8
|
+
<p class="post-meta">
|
|
9
|
+
<time datetime="{{ page.date | date_to_xmlschema }}">
|
|
10
|
+
{{ page.date | date: "%Y年%m月%d日" }}
|
|
11
|
+
</time>
|
|
12
|
+
</p>
|
|
13
|
+
</header>
|
|
14
|
+
|
|
15
|
+
<div class="post-content">
|
|
16
|
+
{{ content }}
|
|
17
|
+
</div>
|
|
18
|
+
</article>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<article class="project">
|
|
6
|
+
<header class="project-header">
|
|
7
|
+
<h1 class="project-title">{{ page.title }}</h1>
|
|
8
|
+
{% if page.tech %}
|
|
9
|
+
<div class="project-tech">
|
|
10
|
+
{% if page.status %}
|
|
11
|
+
<span class="tech-tag status-{{ page.status | downcase }}">{{ page.status }}</span>
|
|
12
|
+
{% endif %}
|
|
13
|
+
{% for tech in page.tech %}
|
|
14
|
+
<span class="tech-tag">{{ tech }}</span>
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</div>
|
|
17
|
+
{% endif %}
|
|
18
|
+
</header>
|
|
19
|
+
|
|
20
|
+
<div class="project-content">
|
|
21
|
+
{{ content }}
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
{% if page.github or page.demo or page.site %}
|
|
25
|
+
<div class="project-links">
|
|
26
|
+
{% if page.site %}
|
|
27
|
+
<a href="{{ page.site }}" target="_blank" class="btn">URL</a>
|
|
28
|
+
{% endif %}
|
|
29
|
+
{% if page.github %}
|
|
30
|
+
<a href="{{ page.github }}" target="_blank" class="btn">GitHub</a>
|
|
31
|
+
{% endif %}
|
|
32
|
+
{% if page.demo %}
|
|
33
|
+
<a href="{{ page.demo }}" target="_blank" class="btn">Demo</a>
|
|
34
|
+
{% endif %}
|
|
35
|
+
</div>
|
|
36
|
+
{% endif %}
|
|
37
|
+
</article>
|