jekyll-uta-folio 0.1.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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +111 -0
- data/_config.yml +99 -0
- data/_layouts/default.html +149 -0
- data/_layouts/page.html +8 -0
- data/_layouts/post.html +33 -0
- data/_layouts/project.html +51 -0
- data/_projects/web-app.md +15 -0
- data/about.md +29 -0
- data/contact.md +74 -0
- data/index.md +84 -0
- metadata +93 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: d47eae453a3b1d9f1ac3f2e6fba013a18ad311084be29c5d61c3f6c5ed98fa0d
|
|
4
|
+
data.tar.gz: 4691adc446887bdc4f3a8f4f31e540144517e9721296bfd73fa70d170935558f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 7f06d8b34f02a40e8c3594df0cb2c67475649f09b84b1168b6bf451e1c3d17ec19424ba3b04d29d6e5ccf8bae51f1f86ff9f66d9bda05fcb0faad92cf8a25041
|
|
7
|
+
data.tar.gz: 36c5097ac70b0732fd7886b90860192ad976bc4f5c6f7df85cc4b6bd98d0222d33ffbedf386baae86abbafb65dfeb0dc2c9bbc3b22dfd4351078630bc8204ada
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 IshikawaUta
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# 🚀 Jekyll Uta Folio - Modern Gradient Theme
|
|
2
|
+
|
|
3
|
+
Tema portofolio Jekyll yang modern, responsif, dan sangat ringan. Dirancang khusus untuk developer dan kreatif yang menginginkan tampilan profesional dengan **Tailwind CSS**, tanpa perlu setup Node.js yang rumit.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## ✨ Fitur Utama
|
|
12
|
+
* 🎨 **Desain Modern & Glassmorphism**: Estetika premium dengan aksen gradient indigo & purple.
|
|
13
|
+
* 🌓 **Dark Mode Ready**: Mendukung mode gelap otomatis sesuai sistem atau toggle manual.
|
|
14
|
+
* 📲 **WhatsApp Contact Integration**: Pengunjung bisa mengirim pesan langsung ke WA tanpa backend.
|
|
15
|
+
* ⚡ **Ultra Fast**: Menggunakan Tailwind CSS via CDN dan nol framework JavaScript berat.
|
|
16
|
+
* 📂 **Collection-Based Projects**: Kelola portofolio Anda dengan mudah melalui file Markdown.
|
|
17
|
+
* 🧩 **Zero Configuration Pages**: Halaman About, Contact, dan Project sudah termasuk dalam tema.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 📂 Struktur Folder Tema
|
|
22
|
+
Untuk bekerja sebagai tema, pastikan struktur folder Anda mengikuti standar berikut:
|
|
23
|
+
```text
|
|
24
|
+
.
|
|
25
|
+
├── _layouts/ # Template (default, page, post, project)
|
|
26
|
+
├── _projects/ # Tempat file .md karya Anda
|
|
27
|
+
├── assets/ # File gambar dan aset statis
|
|
28
|
+
├── _config.yml # Pusat pengaturan konten & profile
|
|
29
|
+
├── index.md # Halaman utama (Dinamis)
|
|
30
|
+
├── about.md # Halaman tentang saya (Dinamis)
|
|
31
|
+
└── contact.md # Halaman kontak (WhatsApp ready)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 🚀 Cara Instalasi
|
|
37
|
+
|
|
38
|
+
### Sebagai Remote Theme (GitHub Pages)
|
|
39
|
+
|
|
40
|
+
Jika Anda menggunakan GitHub Pages, ini adalah cara tercepat:
|
|
41
|
+
|
|
42
|
+
1. Tambahkan plugin `jekyll-remote-theme` ke `Gemfile` Anda:
|
|
43
|
+
```ruby
|
|
44
|
+
group :jekyll_plugins do
|
|
45
|
+
gem "jekyll-remote-theme"
|
|
46
|
+
end
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
2. Di file `_config.yml` Anda, tambahkan:
|
|
51
|
+
```yaml
|
|
52
|
+
remote_theme: ishikawauta/jekyll-uta-folio
|
|
53
|
+
plugins:
|
|
54
|
+
- jekyll-remote-theme
|
|
55
|
+
- jekyll-seo-tag
|
|
56
|
+
- jekyll-feed
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Sebagai Gem-based Theme
|
|
62
|
+
|
|
63
|
+
1. Tambahkan baris berikut ke `Gemfile` proyek Jekyll Anda:
|
|
64
|
+
```ruby
|
|
65
|
+
gem "jekyll-uta-folio"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
2. Jalankan:
|
|
70
|
+
```bash
|
|
71
|
+
bundle install
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
3. Tambahkan di `_config.yml`:
|
|
76
|
+
```yaml
|
|
77
|
+
theme: jekyll-uta-folio
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## ⚙️ Kustomisasi (The Magic of _config.yml)
|
|
85
|
+
|
|
86
|
+
Keunggulan tema ini adalah Anda tidak perlu menyentuh kode HTML. Cukup edit `_config.yml`:
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
# Profil Penulis
|
|
90
|
+
author:
|
|
91
|
+
name: "Nama Anda"
|
|
92
|
+
role: "Pekerjaan Anda"
|
|
93
|
+
whatsapp: "62895xxxxx" # Kode negara tanpa +
|
|
94
|
+
image: "/assets/images/profile.jpg"
|
|
95
|
+
|
|
96
|
+
# Pengaturan Hero Section
|
|
97
|
+
hero_title: "Membangun Masa Depan Lewat Baris Kode."
|
|
98
|
+
hero_description: "Halo! Saya [name], seorang [role] yang fokus pada web."
|
|
99
|
+
|
|
100
|
+
# Daftar Keahlian (Skills)
|
|
101
|
+
skills:
|
|
102
|
+
- name: "Web Development"
|
|
103
|
+
icon: "💻"
|
|
104
|
+
description: "HTML5, CSS3, JavaScript, dan React."
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 📄 Lisensi
|
|
110
|
+
|
|
111
|
+
Proyek ini dilisensikan di bawah **MIT License**. Anda bebas menggunakan, memodifikasi, dan mendistribusikannya kembali.
|
data/_config.yml
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# --- Informasi Dasar Situs ---
|
|
2
|
+
title: My Modern Portfolio
|
|
3
|
+
email: komikers09@gmail.com
|
|
4
|
+
description: >-
|
|
5
|
+
Portfolio digital profesional dengan desain modern, gradient,
|
|
6
|
+
dan integrasi langsung ke WhatsApp.
|
|
7
|
+
baseurl: ""
|
|
8
|
+
url: "https://ishikawauta.github.io"
|
|
9
|
+
|
|
10
|
+
# --- Data Profil (Digunakan di seluruh situs) ---
|
|
11
|
+
author:
|
|
12
|
+
name: Eka saputra
|
|
13
|
+
role: Fullstack Developer
|
|
14
|
+
whatsapp: "62895701060973"
|
|
15
|
+
image: "https://res.cloudinary.com/dzsqaauqn/image/upload/v1751897200/nxdkmqhzszftsvmazjdc.jpg"
|
|
16
|
+
|
|
17
|
+
# --- Kustomisasi Halaman Utama (Theme Settings) ---
|
|
18
|
+
hero_title: "Membangun <span class='text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 to-purple-600 dark:from-indigo-400 dark:to-purple-400'>Masa Depan</span> Lewat Baris Kode."
|
|
19
|
+
hero_description: "Halo! Saya [name], seorang [role] yang fokus pada estetika dan performa web."
|
|
20
|
+
|
|
21
|
+
# Bagian Keahlian (Skills)
|
|
22
|
+
skills_title: "Keahlian Utama"
|
|
23
|
+
skills_description: "Teknologi yang saya gunakan untuk mewujudkan ide Anda."
|
|
24
|
+
skills:
|
|
25
|
+
- name: "Web Development"
|
|
26
|
+
icon: "💻"
|
|
27
|
+
description: "HTML5, CSS3, JavaScript, dan framework modern seperti React atau Vue."
|
|
28
|
+
- name: "Devops Engineer"
|
|
29
|
+
icon: "👨🏻💻"
|
|
30
|
+
description: "Membangun infrastruktur otomatis serta memastikan efisiensi pengembangan perangkat lunak."
|
|
31
|
+
- name: "Optimization"
|
|
32
|
+
icon: "🚀"
|
|
33
|
+
description: "Memastikan website cepat, SEO friendly, dan responsif di semua perangkat."
|
|
34
|
+
|
|
35
|
+
# Bagian Proyek
|
|
36
|
+
projects_title: "Proyek Terbaru"
|
|
37
|
+
projects_description: "Karya terpilih yang telah saya selesaikan."
|
|
38
|
+
|
|
39
|
+
# --- Pengaturan Halaman About ---
|
|
40
|
+
about_title: "Tentang <span class='text-indigo-600 dark:text-indigo-400'>Saya</span>"
|
|
41
|
+
|
|
42
|
+
# Gunakan >- untuk menulis teks panjang beberapa baris
|
|
43
|
+
about_content: >-
|
|
44
|
+
Saya adalah seorang kreatif yang bersemangat dalam menggabungkan desain visual dengan teknologi web terbaru.
|
|
45
|
+
Dengan pengalaman bertahun-tahun di industri digital, saya telah membantu berbagai klien membangun identitas online mereka.
|
|
46
|
+
|
|
47
|
+
Visi saya adalah menciptakan solusi digital yang tidak hanya terlihat bagus, tetapi juga memberikan hasil nyata bagi bisnis.
|
|
48
|
+
Saya sangat menyukai tantangan baru dan selalu belajar teknologi terbaru setiap harinya.
|
|
49
|
+
|
|
50
|
+
about_quote:
|
|
51
|
+
text: "Desain bukan sekadar apa yang terlihat, tapi bagaimana cara kerjanya."
|
|
52
|
+
author: "Steve Jobs"
|
|
53
|
+
|
|
54
|
+
# --- Pengaturan Halaman Kontak ---
|
|
55
|
+
location: "Jakarta, Indonesia"
|
|
56
|
+
contact_title: "Ayo Berkolaborasi."
|
|
57
|
+
contact_description: "Punya ide proyek atau sekadar ingin menyapa? Silakan isi formulir ini, pesan Anda akan langsung masuk ke WhatsApp saya."
|
|
58
|
+
|
|
59
|
+
# Format pesan yang akan muncul di chat WhatsApp (gunakan [name] dan [msg] sebagai placeholder)
|
|
60
|
+
whatsapp_intro_text: "Halo, saya *[name]*. Saya ingin berdiskusi tentang: [msg]"
|
|
61
|
+
|
|
62
|
+
# --- Pengaturan Build ---
|
|
63
|
+
markdown: kramdown
|
|
64
|
+
highlighter: rouge
|
|
65
|
+
|
|
66
|
+
# --- File yang Diabaikan ---
|
|
67
|
+
exclude:
|
|
68
|
+
- Gemfile
|
|
69
|
+
- Gemfile.lock
|
|
70
|
+
- node_modules
|
|
71
|
+
- .sass-cache
|
|
72
|
+
- .jekyll-cache
|
|
73
|
+
- .jekyll-metadata
|
|
74
|
+
- vendor
|
|
75
|
+
- README.md
|
|
76
|
+
- SCREENSHOT.png
|
|
77
|
+
|
|
78
|
+
# --- Plugins ---
|
|
79
|
+
plugins:
|
|
80
|
+
- jekyll-feed
|
|
81
|
+
- jekyll-seo-tag
|
|
82
|
+
|
|
83
|
+
# --- Pengaturan Khusus (Defaults) ---
|
|
84
|
+
defaults:
|
|
85
|
+
- scope:
|
|
86
|
+
path: ""
|
|
87
|
+
type: "pages"
|
|
88
|
+
values:
|
|
89
|
+
layout: "default"
|
|
90
|
+
- scope:
|
|
91
|
+
path: ""
|
|
92
|
+
type: "projects"
|
|
93
|
+
values:
|
|
94
|
+
layout: "project"
|
|
95
|
+
|
|
96
|
+
collections:
|
|
97
|
+
projects:
|
|
98
|
+
output: true
|
|
99
|
+
permalink: /project/:path/
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="id">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>{{ page.title }} | {{ site.title }}</title>
|
|
7
|
+
|
|
8
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
9
|
+
<script>
|
|
10
|
+
tailwind.config = {
|
|
11
|
+
darkMode: 'class',
|
|
12
|
+
}
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"/>
|
|
16
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;700;800&display=swap" rel="stylesheet">
|
|
17
|
+
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🚀</text></svg>">
|
|
18
|
+
|
|
19
|
+
<style>
|
|
20
|
+
body { font-family: 'Inter', sans-serif; transition: background-color 0.3s ease, color 0.3s ease; }
|
|
21
|
+
.bg-gradient-modern { background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%); }
|
|
22
|
+
.hover-lift { transition: all 0.3s ease; }
|
|
23
|
+
.hover-lift:hover { transform: translateY(-10px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); }
|
|
24
|
+
|
|
25
|
+
/* Glassmorphism yang adaptif */
|
|
26
|
+
.glass {
|
|
27
|
+
background: rgba(255, 255, 255, 0.7);
|
|
28
|
+
backdrop-filter: blur(10px);
|
|
29
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
30
|
+
}
|
|
31
|
+
.dark .glass {
|
|
32
|
+
background: rgba(15, 23, 42, 0.6);
|
|
33
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* State untuk Mobile Menu */
|
|
37
|
+
#mobile-menu.active {
|
|
38
|
+
display: flex;
|
|
39
|
+
}
|
|
40
|
+
</style>
|
|
41
|
+
|
|
42
|
+
<script>
|
|
43
|
+
if (localStorage.getItem('theme') === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
44
|
+
document.documentElement.classList.add('dark');
|
|
45
|
+
} else {
|
|
46
|
+
document.documentElement.classList.remove('dark');
|
|
47
|
+
}
|
|
48
|
+
</script>
|
|
49
|
+
</head>
|
|
50
|
+
<body class="bg-slate-50 text-slate-900 dark:bg-[#0f172a] dark:text-slate-200 min-h-screen flex flex-col">
|
|
51
|
+
|
|
52
|
+
<nav class="sticky top-0 z-50 glass px-6 py-4">
|
|
53
|
+
<div class="max-w-6xl mx-auto flex justify-between items-center">
|
|
54
|
+
<a href="{{ site.baseurl }}/" class="text-xl md:text-2xl font-extrabold tracking-tighter text-slate-900 dark:text-white">
|
|
55
|
+
MY<span class="text-indigo-500">FOLIO.</span>
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
<div class="flex items-center space-x-4 md:space-x-8">
|
|
59
|
+
<div class="hidden md:flex space-x-8 font-medium">
|
|
60
|
+
<a href="{{ site.baseurl }}/" class="hover:text-indigo-600 dark:hover:text-indigo-400 transition">Home</a>
|
|
61
|
+
<a href="{{ site.baseurl }}/about" class="hover:text-indigo-600 dark:hover:text-indigo-400 transition">About</a>
|
|
62
|
+
<a href="{{ site.baseurl }}/contact" class="hover:text-indigo-600 dark:hover:text-indigo-400 transition">Contact</a>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="flex items-center space-x-2 md:space-x-4">
|
|
66
|
+
<button id="theme-toggle" class="p-2.5 rounded-xl bg-slate-200 dark:bg-slate-800 text-slate-700 dark:text-yellow-400 hover:ring-2 ring-indigo-500 transition-all duration-300">
|
|
67
|
+
<span id="theme-toggle-dark-icon" class="hidden text-xl">🌙</span>
|
|
68
|
+
<span id="theme-toggle-light-icon" class="hidden text-xl">☀️</span>
|
|
69
|
+
</button>
|
|
70
|
+
|
|
71
|
+
<button id="mobile-menu-button" class="md:hidden p-2.5 rounded-xl bg-slate-200 dark:bg-slate-800 text-slate-700 dark:text-slate-200">
|
|
72
|
+
<svg id="hamburger-icon" class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
73
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>
|
|
74
|
+
</svg>
|
|
75
|
+
</button>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div id="mobile-menu" class="hidden flex-col md:hidden mt-4 space-y-4 pb-4 animate__animated animate__fadeIn">
|
|
81
|
+
<a href="{{ site.baseurl }}/" class="block px-4 py-2 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-lg transition">Home</a>
|
|
82
|
+
<a href="{{ site.baseurl }}/about" class="block px-4 py-2 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-lg transition">About</a>
|
|
83
|
+
<a href="{{ site.baseurl }}/contact" class="block px-4 py-2 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-lg transition">Contact</a>
|
|
84
|
+
</div>
|
|
85
|
+
</nav>
|
|
86
|
+
|
|
87
|
+
<main class="flex-grow">
|
|
88
|
+
{{ content }}
|
|
89
|
+
</main>
|
|
90
|
+
|
|
91
|
+
<footer class="p-5 text-center text-slate-500 border-t border-slate-200 dark:border-slate-800">
|
|
92
|
+
<p>© 2026 {{ site.author.name }}. Built with Jekyll & Tailwind.</p>
|
|
93
|
+
</footer>
|
|
94
|
+
|
|
95
|
+
<script>
|
|
96
|
+
// --- Dark Mode Logic ---
|
|
97
|
+
const themeToggleBtn = document.getElementById('theme-toggle');
|
|
98
|
+
const darkIcon = document.getElementById('theme-toggle-dark-icon');
|
|
99
|
+
const lightIcon = document.getElementById('theme-toggle-light-icon');
|
|
100
|
+
|
|
101
|
+
function updateIcons() {
|
|
102
|
+
if (document.documentElement.classList.contains('dark')) {
|
|
103
|
+
lightIcon.classList.remove('hidden');
|
|
104
|
+
darkIcon.classList.add('hidden');
|
|
105
|
+
} else {
|
|
106
|
+
darkIcon.classList.remove('hidden');
|
|
107
|
+
lightIcon.classList.add('hidden');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
updateIcons();
|
|
112
|
+
|
|
113
|
+
themeToggleBtn.addEventListener('click', function() {
|
|
114
|
+
document.documentElement.classList.toggle('dark');
|
|
115
|
+
if (document.documentElement.classList.contains('dark')) {
|
|
116
|
+
localStorage.setItem('theme', 'dark');
|
|
117
|
+
} else {
|
|
118
|
+
localStorage.setItem('theme', 'light');
|
|
119
|
+
}
|
|
120
|
+
updateIcons();
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// --- Mobile Menu Logic ---
|
|
124
|
+
const menuButton = document.getElementById('mobile-menu-button');
|
|
125
|
+
const mobileMenu = document.getElementById('mobile-menu');
|
|
126
|
+
const hamburgerIcon = document.getElementById('hamburger-icon');
|
|
127
|
+
|
|
128
|
+
menuButton.addEventListener('click', () => {
|
|
129
|
+
const isOpen = mobileMenu.classList.toggle('hidden');
|
|
130
|
+
const active = !mobileMenu.classList.contains('hidden');
|
|
131
|
+
|
|
132
|
+
// Update Icon (Hamburger to X)
|
|
133
|
+
if (active) {
|
|
134
|
+
hamburgerIcon.innerHTML = `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>`;
|
|
135
|
+
} else {
|
|
136
|
+
hamburgerIcon.innerHTML = `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>`;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Close menu on resize to desktop
|
|
141
|
+
window.addEventListener('resize', () => {
|
|
142
|
+
if (window.innerWidth >= 768) {
|
|
143
|
+
mobileMenu.classList.add('hidden');
|
|
144
|
+
hamburgerIcon.innerHTML = `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>`;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
</script>
|
|
148
|
+
</body>
|
|
149
|
+
</html>
|
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
<article class="max-w-4xl mx-auto px-6 py-20 animate__animated animate__fadeIn">
|
|
5
|
+
<header class="mb-12 border-b border-slate-800 pb-8">
|
|
6
|
+
<h1 class="text-4xl md:text-5xl font-black text-white mb-6 leading-tight">
|
|
7
|
+
{{ page.title }}
|
|
8
|
+
</h1>
|
|
9
|
+
|
|
10
|
+
<div class="flex items-center space-x-4 text-slate-400">
|
|
11
|
+
<div class="flex items-center">
|
|
12
|
+
<span class="mr-2">📅</span>
|
|
13
|
+
<time datetime="{{ page.date | date_to_xmlschema }}">
|
|
14
|
+
{{ page.date | date: "%d %B %Y" }}
|
|
15
|
+
</time>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="flex items-center border-l border-slate-700 pl-4">
|
|
18
|
+
<span class="mr-2">✍️</span>
|
|
19
|
+
<span>{{ site.author.name }}</span>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
</header>
|
|
23
|
+
|
|
24
|
+
<div class="prose prose-invert lg:prose-xl text-slate-400 max-w-none">
|
|
25
|
+
{{ content }}
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<footer class="mt-16 pt-8 border-t border-slate-800">
|
|
29
|
+
<a href="{{ '/' | relative_url }}" class="text-indigo-400 font-bold hover:text-white transition flex items-center">
|
|
30
|
+
<span class="mr-2">←</span> Kembali ke Beranda
|
|
31
|
+
</a>
|
|
32
|
+
</footer>
|
|
33
|
+
</article>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
<div class="max-w-5xl mx-auto px-6 py-20 animate__animated animate__fadeIn">
|
|
5
|
+
<a href="{{ '/' | relative_url }}" class="text-slate-500 hover:text-indigo-600 dark:hover:text-indigo-400 transition flex items-center mb-8 group">
|
|
6
|
+
<span class="transform group-hover:-translate-x-2 transition-transform duration-300 mr-2">←</span> Kembali ke Portofolio
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
<div class="flex flex-col lg:flex-row gap-12">
|
|
10
|
+
<div class="lg:w-2/3">
|
|
11
|
+
<div class="glass rounded-3xl overflow-hidden mb-8 border border-slate-200 dark:border-slate-700/50 shadow-sm">
|
|
12
|
+
{% if page.thumbnail %}
|
|
13
|
+
<img src="{{ page.thumbnail }}" alt="{{ page.title }}" class="w-full h-auto object-cover">
|
|
14
|
+
{% else %}
|
|
15
|
+
<div class="bg-slate-200 dark:bg-slate-800 h-64 flex items-center justify-center text-6xl">📁</div>
|
|
16
|
+
{% endif %}
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="prose dark:prose-invert lg:prose-xl text-slate-600 dark:text-slate-400 max-w-none">
|
|
20
|
+
{{ content }}
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<div class="lg:w-1/3">
|
|
25
|
+
<div class="sticky top-28 space-y-6">
|
|
26
|
+
<div class="glass p-8 rounded-3xl border-l-4 border-indigo-500 shadow-md">
|
|
27
|
+
<span class="text-xs font-bold text-indigo-600 dark:text-indigo-400 uppercase tracking-widest">{{ page.category }}</span>
|
|
28
|
+
<h1 class="text-3xl font-black text-slate-900 dark:text-white mt-2 mb-4 leading-tight">{{ page.title }}</h1>
|
|
29
|
+
<p class="text-slate-600 dark:text-slate-400 text-sm leading-relaxed mb-6">
|
|
30
|
+
{{ page.description }}
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
<div class="space-y-4 border-t border-slate-200 dark:border-slate-800 pt-6">
|
|
34
|
+
<div class="flex justify-between text-sm">
|
|
35
|
+
<span class="text-slate-500">Klien</span>
|
|
36
|
+
<span class="text-slate-900 dark:text-slate-200 font-medium">Internal Project</span>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="flex justify-between text-sm">
|
|
39
|
+
<span class="text-slate-500">Peran</span>
|
|
40
|
+
<span class="text-slate-900 dark:text-slate-200 font-medium">{{ site.author.role }}</span>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<a href="{{ '/contact' | relative_url }}" class="mt-8 block w-full bg-gradient-modern text-center py-4 rounded-xl font-bold text-white hover:scale-105 transition duration-300 shadow-lg shadow-indigo-500/25">
|
|
45
|
+
Tertarik dengan Proyek Ini?
|
|
46
|
+
</a>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: project
|
|
3
|
+
title: "Aplikasi E-Commerce Premium"
|
|
4
|
+
category: "Web Development"
|
|
5
|
+
description: "Platform belanja online dengan integrasi pembayaran otomatis dan desain elegan untuk meningkatkan konversi penjualan."
|
|
6
|
+
thumbnail: "https://res.cloudinary.com/dzsqaauqn/image/upload/v1754582928/hb5dzf63uhaft4huyukr.jpg"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### Ringkasan Eksekutif
|
|
10
|
+
Proyek ini dibangun untuk mendemonstrasikan kemampuan dalam mengelola state aplikasi yang kompleks serta integrasi API pihak ketiga.
|
|
11
|
+
|
|
12
|
+
### Fitur Utama
|
|
13
|
+
* **Payment Gateway**: Integrasi pembayaran otomatis.
|
|
14
|
+
* **Responsive Design**: Tampilan optimal di perangkat mobile maupun desktop.
|
|
15
|
+
* **SEO Optimized**: Kecepatan akses tinggi untuk performa pencarian lebih baik.
|
data/about.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: About
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<div class="max-w-4xl mx-auto px-6 py-20 animate__animated animate__fadeIn">
|
|
7
|
+
<h2 class="text-4xl font-extrabold text-slate-900 dark:text-white mb-8">
|
|
8
|
+
{{ site.about_title | default: "Tentang <span class='text-indigo-600 dark:text-indigo-400'>Saya</span>" }}
|
|
9
|
+
</h2>
|
|
10
|
+
|
|
11
|
+
<div class="prose dark:prose-invert lg:prose-xl text-slate-600 dark:text-slate-400">
|
|
12
|
+
{% if site.about_content %}
|
|
13
|
+
{{ site.about_content | markdownify }}
|
|
14
|
+
{% else %}
|
|
15
|
+
<p class="mb-6">
|
|
16
|
+
Silakan isi deskripsi diri Anda di file <code>_config.yml</code> pada bagian <code>about_content</code>.
|
|
17
|
+
</p>
|
|
18
|
+
{% endif %}
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
{% if site.about_quote %}
|
|
22
|
+
<div class="mt-12 p-8 glass rounded-3xl border-l-4 border-indigo-500 shadow-sm">
|
|
23
|
+
<h4 class="text-slate-800 dark:text-white font-bold text-lg mb-2 italic">
|
|
24
|
+
"{{ site.about_quote.text }}"
|
|
25
|
+
</h4>
|
|
26
|
+
<p class="text-slate-500 dark:text-slate-400">- {{ site.about_quote.author }}</p>
|
|
27
|
+
</div>
|
|
28
|
+
{% endif %}
|
|
29
|
+
</div>
|
data/contact.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Contact
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<div class="max-w-6xl mx-auto px-6 py-20">
|
|
7
|
+
<div class="flex flex-col md:flex-row gap-16 items-start">
|
|
8
|
+
|
|
9
|
+
<div class="md:w-1/2 animate__animated animate__fadeInLeft">
|
|
10
|
+
<h2 class="text-4xl font-extrabold text-slate-900 dark:text-white mb-6">
|
|
11
|
+
{{ site.contact_title | default: "Ayo Berkolaborasi." }}
|
|
12
|
+
</h2>
|
|
13
|
+
<p class="text-slate-600 dark:text-slate-400 text-lg mb-8">
|
|
14
|
+
{{ site.contact_description | default: "Punya ide proyek atau sekadar ingin menyapa? Silakan isi formulir ini, pesan Anda akan langsung masuk ke WhatsApp saya." }}
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<div class="space-y-4 text-slate-700 dark:text-slate-300">
|
|
18
|
+
{% if site.email %}
|
|
19
|
+
<div class="flex items-center space-x-4">
|
|
20
|
+
<span class="p-3 bg-slate-200 dark:bg-slate-800 rounded-lg">📧</span>
|
|
21
|
+
<span>{{ site.email }}</span>
|
|
22
|
+
</div>
|
|
23
|
+
{% endif %}
|
|
24
|
+
|
|
25
|
+
{% if site.location %}
|
|
26
|
+
<div class="flex items-center space-x-4">
|
|
27
|
+
<span class="p-3 bg-slate-200 dark:bg-slate-800 rounded-lg">📍</span>
|
|
28
|
+
<span>{{ site.location }}</span>
|
|
29
|
+
</div>
|
|
30
|
+
{% endif %}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="md:w-1/2 w-full glass p-8 rounded-3xl animate__animated animate__fadeInRight shadow-xl">
|
|
35
|
+
<div class="space-y-6">
|
|
36
|
+
<div>
|
|
37
|
+
<label class="block text-sm font-medium text-slate-600 dark:text-slate-400 mb-2">Nama Anda</label>
|
|
38
|
+
<input type="text" id="wa_name" placeholder="Masukkan nama Anda"
|
|
39
|
+
class="w-full bg-white/50 dark:bg-slate-900/50 border border-slate-300 dark:border-slate-700 text-slate-900 dark:text-white rounded-xl p-4 focus:ring-2 focus:ring-indigo-500 outline-none transition placeholder:text-slate-400">
|
|
40
|
+
</div>
|
|
41
|
+
<div>
|
|
42
|
+
<label class="block text-sm font-medium text-slate-600 dark:text-slate-400 mb-2">Pesan</label>
|
|
43
|
+
<textarea id="wa_message" rows="5" placeholder="Tuliskan ide proyek Anda..."
|
|
44
|
+
class="w-full bg-white/50 dark:bg-slate-900/50 border border-slate-300 dark:border-slate-700 text-slate-900 dark:text-white rounded-xl p-4 focus:ring-2 focus:ring-indigo-500 outline-none transition placeholder:text-slate-400"></textarea>
|
|
45
|
+
</div>
|
|
46
|
+
<button onclick="sendToWA()" class="w-full bg-gradient-modern py-4 rounded-xl font-bold text-white text-lg hover:shadow-lg hover:shadow-indigo-500/40 hover:scale-[1.02] active:scale-95 transition duration-300">
|
|
47
|
+
Kirim Pesan Sekarang
|
|
48
|
+
</button>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<script>
|
|
55
|
+
function sendToWA() {
|
|
56
|
+
const name = document.getElementById('wa_name').value;
|
|
57
|
+
const msg = document.getElementById('wa_message').value;
|
|
58
|
+
const phone = "{{ site.author.whatsapp }}";
|
|
59
|
+
|
|
60
|
+
if (!name || !msg) {
|
|
61
|
+
alert("Harap isi nama dan pesan terlebih dahulu.");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Format pesan WhatsApp dinamis
|
|
66
|
+
const intro = "{{ site.whatsapp_intro_text | default: 'Halo, saya [name]. Pesan: [msg]' }}";
|
|
67
|
+
const formattedMsg = intro.replace("[name]", name).replace("[msg]", msg);
|
|
68
|
+
|
|
69
|
+
const text = encodeURIComponent(formattedMsg);
|
|
70
|
+
const whatsappUrl = `https://wa.me/${phone}?text=${text}`;
|
|
71
|
+
|
|
72
|
+
window.open(whatsappUrl, '_blank');
|
|
73
|
+
}
|
|
74
|
+
</script>
|
data/index.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: Home
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<section class="max-w-6xl mx-auto px-6 py-12 md:py-20 flex flex-col md:flex-row items-center">
|
|
7
|
+
<div class="w-full md:w-3/5 text-center md:text-left animate__animated animate__fadeInLeft order-2 md:order-1">
|
|
8
|
+
<h2 class="text-4xl md:text-6xl font-black text-slate-900 dark:text-white leading-[1.1] md:leading-tight">
|
|
9
|
+
{{ site.hero_title | default: "Membangun Masa Depan Lewat Baris Kode." }}
|
|
10
|
+
</h2>
|
|
11
|
+
<p class="mt-6 text-lg md:text-xl text-slate-600 dark:text-slate-400 max-w-lg mx-auto md:mx-0">
|
|
12
|
+
{% assign desc = site.hero_description | default: "Halo! Saya adalah [name], seorang [role] yang fokus pada estetika dan performa web." %}
|
|
13
|
+
{{ desc | replace: "[name]", site.author.name | replace: "[role]", site.author.role }}
|
|
14
|
+
</p>
|
|
15
|
+
<div class="mt-10 flex flex-col sm:flex-row justify-center md:justify-start gap-4">
|
|
16
|
+
<a href="{{ '/contact' | relative_url }}" class="bg-gradient-modern px-8 py-4 rounded-xl font-bold text-white hover:scale-105 transition duration-300 shadow-lg shadow-indigo-500/20 text-center">Hubungi Saya</a>
|
|
17
|
+
<a href="{{ '/about' | relative_url }}" class="px-8 py-4 rounded-xl font-bold border border-slate-300 dark:border-slate-700 text-slate-700 dark:text-slate-200 hover:bg-slate-100 dark:hover:bg-slate-800 transition text-center">Tentang Saya</a>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="w-full md:w-2/5 mb-12 md:mb-0 flex justify-center animate__animated animate__zoomIn order-1 md:order-2">
|
|
22
|
+
<div class="relative">
|
|
23
|
+
<div class="absolute -inset-1 bg-gradient-to-r from-indigo-500 to-purple-600 rounded-full blur opacity-30 dark:opacity-40 animate-pulse"></div>
|
|
24
|
+
{% if site.author.image %}
|
|
25
|
+
<img src="{{ site.author.image | relative_url }}"
|
|
26
|
+
class="relative rounded-full w-48 h-48 md:w-64 md:h-64 border-4 border-white dark:border-slate-800 shadow-2xl object-cover"
|
|
27
|
+
alt="{{ site.author.name }}">
|
|
28
|
+
{% else %}
|
|
29
|
+
<div class="relative rounded-full w-48 h-48 md:w-64 md:h-64 border-4 border-white dark:border-slate-800 shadow-2xl bg-slate-200 dark:bg-slate-800 flex items-center justify-center text-4xl">👤</div>
|
|
30
|
+
{% endif %}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</section>
|
|
34
|
+
|
|
35
|
+
{% if site.skills %}
|
|
36
|
+
<section class="max-w-6xl mx-auto px-6 py-16 md:py-24 border-t border-slate-200 dark:border-slate-800">
|
|
37
|
+
<div class="text-center mb-12 md:mb-16">
|
|
38
|
+
<h3 class="text-2xl md:text-3xl font-bold text-slate-900 dark:text-white">{{ site.skills_title | default: "Keahlian Utama" }}</h3>
|
|
39
|
+
<p class="text-slate-600 dark:text-slate-400 mt-2">{{ site.skills_description | default: "Teknologi yang saya gunakan untuk mewujudkan ide Anda." }}</p>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8">
|
|
43
|
+
{% for skill in site.skills %}
|
|
44
|
+
<div class="glass p-8 rounded-3xl hover-lift shadow-sm transition-all border border-transparent hover:border-indigo-500/20">
|
|
45
|
+
<div class="w-12 h-12 bg-indigo-500/10 dark:bg-indigo-500/20 text-indigo-600 dark:text-indigo-400 flex items-center justify-center rounded-xl mb-6 text-2xl">
|
|
46
|
+
{{ skill.icon | default: "⚡" }}
|
|
47
|
+
</div>
|
|
48
|
+
<h4 class="text-xl font-bold text-slate-900 dark:text-white mb-2">{{ skill.name }}</h4>
|
|
49
|
+
<p class="text-slate-600 dark:text-slate-400 text-sm leading-relaxed">{{ skill.description }}</p>
|
|
50
|
+
</div>
|
|
51
|
+
{% endfor %}
|
|
52
|
+
</div>
|
|
53
|
+
</section>
|
|
54
|
+
{% endif %}
|
|
55
|
+
|
|
56
|
+
<section class="max-w-6xl mx-auto px-6 py-16 md:py-24 border-t border-slate-200 dark:border-slate-800">
|
|
57
|
+
<div class="text-center mb-12 md:mb-16">
|
|
58
|
+
<h3 class="text-2xl md:text-3xl font-bold text-slate-900 dark:text-white">{{ site.projects_title | default: "Proyek Terbaru" }}</h3>
|
|
59
|
+
<p class="text-slate-600 dark:text-slate-400 mt-2">{{ site.projects_description | default: "Karya terpilih yang telah saya selesaikan." }}</p>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8">
|
|
63
|
+
{% assign projects = site.projects | sort: 'date' | reverse %}
|
|
64
|
+
{% for project in projects limit:6 %}
|
|
65
|
+
<div class="glass rounded-3xl overflow-hidden hover-lift flex flex-col shadow-sm group border border-transparent hover:border-indigo-500/20">
|
|
66
|
+
<div class="h-48 bg-slate-200 dark:bg-slate-800 flex items-center justify-center overflow-hidden">
|
|
67
|
+
{% if project.thumbnail %}
|
|
68
|
+
<img src="{{ project.thumbnail | relative_url }}" alt="{{ project.title }}" class="w-full h-full object-cover group-hover:scale-110 transition duration-500">
|
|
69
|
+
{% else %}
|
|
70
|
+
<span class="text-5xl">📁</span>
|
|
71
|
+
{% endif %}
|
|
72
|
+
</div>
|
|
73
|
+
<div class="p-6 flex-grow">
|
|
74
|
+
<span class="text-xs font-bold text-indigo-600 dark:text-indigo-400 uppercase tracking-widest">{{ project.category | default: "Project" }}</span>
|
|
75
|
+
<h4 class="text-xl font-bold text-slate-900 dark:text-white mt-2 mb-3">{{ project.title }}</h4>
|
|
76
|
+
<p class="text-slate-600 dark:text-slate-400 text-sm mb-6 line-clamp-2 italic">{{ project.description }}</p>
|
|
77
|
+
<a href="{{ project.url | relative_url }}" class="text-indigo-600 dark:text-indigo-400 font-bold hover:text-indigo-800 dark:hover:text-white transition inline-flex items-center">
|
|
78
|
+
Lihat Detail <span class="ml-2 group-hover:translate-x-2 transition-transform">→</span>
|
|
79
|
+
</a>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
{% endfor %}
|
|
83
|
+
</div>
|
|
84
|
+
</section>
|
metadata
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: jekyll-uta-folio
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- IshikawaUta
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: jekyll
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '4.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '4.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: jekyll-feed
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0.12'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0.12'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: jekyll-seo-tag
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '2.8'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '2.8'
|
|
54
|
+
email:
|
|
55
|
+
- komikers09@gmail.com
|
|
56
|
+
executables: []
|
|
57
|
+
extensions: []
|
|
58
|
+
extra_rdoc_files: []
|
|
59
|
+
files:
|
|
60
|
+
- LICENSE
|
|
61
|
+
- README.md
|
|
62
|
+
- _config.yml
|
|
63
|
+
- _layouts/default.html
|
|
64
|
+
- _layouts/page.html
|
|
65
|
+
- _layouts/post.html
|
|
66
|
+
- _layouts/project.html
|
|
67
|
+
- _projects/web-app.md
|
|
68
|
+
- about.md
|
|
69
|
+
- contact.md
|
|
70
|
+
- index.md
|
|
71
|
+
homepage: https://github.com/ishikawauta/jekyll-uta-folio
|
|
72
|
+
licenses:
|
|
73
|
+
- MIT
|
|
74
|
+
metadata:
|
|
75
|
+
plugin_type: theme
|
|
76
|
+
rdoc_options: []
|
|
77
|
+
require_paths:
|
|
78
|
+
- lib
|
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: '0'
|
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
requirements: []
|
|
90
|
+
rubygems_version: 3.6.7
|
|
91
|
+
specification_version: 4
|
|
92
|
+
summary: Tema portofolio Jekyll modern dengan Tailwind CSS dan integrasi WhatsApp.
|
|
93
|
+
test_files: []
|