Skip to content

Commit 43ac24f

Browse files
ryudoawaruclaude
andcommitted
Add development documentation and refactor content management
Added CLAUDE.md for development guidance, moved hardcoded footer and staff content to Jekyll configuration, externalized Code of Conduct to separate markdown file, and added staff profile functionality with images. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 144d6f9 commit 43ac24f

7 files changed

Lines changed: 144 additions & 95 deletions

File tree

CLAUDE.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is a Jekyll-based static website for RubyConf Taiwan x COSCUP 2025 conference. It's built using Jekyll 4.4.1 with Tailwind CSS for styling, Alpine.js for JavaScript interactivity, and AOS (Animate On Scroll) for animations.
8+
9+
## Development Commands
10+
11+
### Local Development
12+
```bash
13+
# Install dependencies
14+
bundle install
15+
16+
# Serve the site locally with live reload
17+
bundle exec jekyll serve
18+
19+
# Build the site for production
20+
bundle exec jekyll build
21+
```
22+
23+
### CSS Development
24+
The site uses Jekyll Tailwind CSS plugin (`jekyll-tailwindcss`) which automatically processes Tailwind styles defined in `_tailwind.css` using the configuration in `tailwind.config.js`.
25+
26+
## Architecture & Structure
27+
28+
### Jekyll Configuration
29+
- **Main config**: `_config.yml` contains site metadata, plugin configuration, and data for speakers/staff
30+
- **Layout**: Single `default.html` layout in `_layouts/` with Alpine.js integration
31+
- **Content**: Main page is `index.html` with front matter defining schedules and speakers data
32+
33+
### Frontend Stack
34+
- **CSS Framework**: Tailwind CSS with custom color scheme (blue, green, red variants)
35+
- **JavaScript**: Alpine.js for component state management and interactions
36+
- **Animations**: AOS library for scroll-triggered animations
37+
- **Icons**: SVG icons stored in `_includes/icons/`
38+
- **Images**: Background SVGs in `_includes/images/`, photos in `assets/images/`
39+
40+
### Data Structure
41+
The site uses Jekyll front matter in `index.html` to define:
42+
- **Schedules**: Conference schedule with tracks and timing
43+
- **Speakers**: Speaker profiles with images and session details
44+
- **Site config**: Staff information and social links in `_config.yml`
45+
46+
### Key Features
47+
- **Single Page Application**: All content on one scrollable page with smooth section navigation
48+
- **Responsive Design**: Mobile-first with desktop enhancements
49+
- **Interactive Modals**: Speaker details and footer modals using Alpine.js
50+
- **Navigation**: Sticky navigation with active section highlighting
51+
- **Internationalization**: Chinese/English content mixing
52+
53+
### JavaScript Architecture
54+
- `assets/js/main.js`: Initializes AOS animations and integrates with Alpine.js
55+
- Alpine.js components handle:
56+
- Mobile navigation toggle
57+
- Section scrolling and active state tracking
58+
- Modal management for speakers and footer content
59+
- Scroll position tracking for navigation styling

_config.yml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,25 @@ links:
2020
cfv: https://volunteer.coscup.org/
2121
conf:
2222
root_url: 'https://rubyconf.tw'
23-
about_us: 'https://ruby.tw'
23+
about_us: 'https://ruby.tw'
24+
footer:
25+
title: "©Rubyconf Taiwan 2025"
26+
coc:
27+
title: Code of Conduct
28+
team_member:
29+
title: Team Member
30+
rubytw:
31+
title: Ruby Taiwan
32+
href: https://ruby.tw
33+
staffs:
34+
-
35+
name: Mu-Fan Teng
36+
avatar: /assets/images/ryudoawaru.jpg
37+
x_id: ryudoawaru
38+
facebook: https://www.facebook.com/ryudoawaru
39+
ig_id: ryudoawaru
40+
github_id: ryudoawaru
41+
-
42+
name: Xillinna
43+
avatar: /assets/images/Xillinna.jpg
44+
ig_id: xillinna.daily

_includes/icons/github.svg

Lines changed: 8 additions & 0 deletions
Loading

_includes/posts/coc.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
All attendees, speakers, sponsors and volunteers at our conference are required to agree to follow the Code of Conduct. Organizers will enforce this Code of Conduct throughout the event. We are expecting cooperation from all participants to help ensure a safe environment for everybody.
2+
3+
Harassment includes offensive verbal comments related to gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.
4+
5+
Participants asked to stop any harassing behavior are expected to comply immediately. Sponsors are also subject to the anti-harassment policy. In particular, sponsors should not use sexualized images, activities, or other material. Booth staff (including volunteers) should not use sexualized clothing/uniforms/customes, or otherwise create a sexualized environment.
6+
7+
If a participant engages in harassing behavior, the conference organizers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund. If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of conference staff immediately. Conference staff will be visible by their special badges and clothing.
8+
9+
Conference staff will be happy to help participants contact hotel/venue security or local law enforcement, provide escort, or otherwise assist those experiencing harassment to feel safe for the duration of the conference. We value your attendance. We expect participants to follow these rules at all conference venues and conference-related social events.
10+
11+
This Code of Conduct is based off the work done at [Conference Code of Conduct](http://confcodeofconduct.com/).
12+
13+
所有此次活動的聽眾、演講者、贊助商和志工,都必須同意遵守下列行為準則。而主辦單位也將嚴格地執行這些準則,我們期待所有參加者的合作,以確保大家能有一個安全友善的環境。
14+
15+
騷擾包括有關性別,性別認同、年齡、性向、殘疾、外貌、體型、種族、宗教的攻擊性言語,或是在公共場合散播色情圖片、蓄意恐嚇、跟踪、騷擾性的攝影或錄影、多次打斷活動、不恰當的身體接觸,和讓人感到不舒服的性關注。參與者必須停止任何騷擾行為並且立即遵守行為準則。
16+
17+
贊助商也必須遵守行為準則。贊助商不應該使用帶有性意味的圖像、活動,或其它材料。工作人員(包括志工)不該穿著帶有性意味的衣服/制服/裝扮,或是建立一個具有性意味的環境。
18+
19+
如果參與者從事騷擾行為,工作人員會採取其認為適當的任何手段,包括警告或是請離會場,並且不會退費。 如果你被騷擾、看到別人受到騷擾,或有任何其他問題,請立即聯繫會議工作人員,工作人員身上會穿戴可以識別身份的特殊徽章或衣服。
20+
21+
工作人員會很樂意幫助參與者聯繫酒店/場地警衛或當地警察、提供護送,或以其他方式幫助那些遇到騷擾的參與者感到安全。我們非常重視您的參與。
22+
23+
我們希望參與者在各活動場合、會議有關的社群活動都能遵循這些規則。
24+
25+
此行為準則是基於 [Conference Code of Conduct](http://confcodeofconduct.com/) 而訂定。

_layouts/default.html

Lines changed: 30 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,20 @@
5656
@click="modal_id=1"
5757
class="text-blue-light hover:text-blue-light-active cursor-pointer"
5858
>
59-
Code of Conduct
59+
{{ site.footer.coc.title }}
6060
</button>
6161

6262
<button
6363
@click="modal_id=2"
6464
class="text-blue-light hover:text-blue-light-active cursor-pointer"
6565
>
66-
Team Member
66+
{{ site.footer.team_member.title }}
6767
</button>
6868
<a
69-
href="https://ruby.tw"
69+
href="{{ site.footer.rubytw.href}}"
7070
target="_blank"
7171
class="text-blue-light hover:text-blue-light-active"
72-
>Ruby Taiwan</a
72+
>{{ site.footer.rubytw.title }}</a
7373
>
7474
</div>
7575
<div class="flex justify-center space-x-4">
@@ -90,7 +90,7 @@
9090
</a>
9191
</div>
9292
<div class="font-light text-xs text-center text-blue-light">
93-
©Rubyconf Taiwan 2025
93+
{{ site.footer.title }}
9494
</div>
9595
</div>
9696
<!-- code of conduct modal -->
@@ -111,92 +111,11 @@
111111
<div class="relative w-full p-4 bg-white">
112112
<div class="flex flex-col items-center">
113113
<h3 class="text-3xl text-center font-bold text-red-normal">
114-
Code of Conduct
114+
{{ site.footer.coc.title }}
115115
</h3>
116116
<div class="mt-4 text-green-normal space-y-4">
117-
<p>
118-
All attendees, speakers, sponsors and volunteers at our
119-
conference are required to agree to follow the Code of
120-
Conduct. Organizers will enforce this Code of Conduct
121-
throughout the event. We are expecting cooperation from all
122-
participants to help ensure a safe environment for
123-
everybody.
124-
</p>
125-
<p>
126-
Harassment includes offensive verbal comments related to
127-
gender, gender identity and expression, age, sexual
128-
orientation, disability, physical appearance, body size,
129-
race, religion, sexual images in public spaces, deliberate
130-
intimidation, stalking, following, harassing photography or
131-
recording, sustained disruption of talks or other events,
132-
inappropriate physical contact, and unwelcome sexual
133-
attention.
134-
</p>
135-
<p>
136-
Participants asked to stop any harassing behavior are
137-
expected to comply immediately. Sponsors are also subject to
138-
the anti-harassment policy. In particular, sponsors should
139-
not use sexualized images, activities, or other material.
140-
Booth staff (including volunteers) should not use sexualized
141-
clothing/uniforms/customes, or otherwise create a sexualized
142-
environment.
143-
</p>
144-
<p>
145-
If a participant engages in harassing behavior, the
146-
conference organizers may take any action they deem
147-
appropriate, including warning the offender or expulsion
148-
from the conference with no refund. If you are being
149-
harassed, notice that someone else is being harassed, or
150-
have any other concerns, please contact a member of
151-
conference staff immediately. Conference staff will be
152-
visible by their special badges and clothing.
153-
</p>
154-
<p>
155-
Conference staff will be happy to help participants contact
156-
hotel/venue security or local law enforcement, provide
157-
escort, or otherwise assist those experiencing harassment to
158-
feel safe for the duration of the conference. We value your
159-
attendance. We expect participants to follow these rules at
160-
all conference venues and conference-related social events.
161-
</p>
162-
<p>
163-
This Code of Conduct is based off the work done at
164-
<a
165-
target="_blank"
166-
class="underline cursor-pointer text-blue-500"
167-
href="http://confcodeofconduct.com/"
168-
>Conference Code of Conduct</a
169-
>.
170-
</p>
171-
<p>
172-
所有此次活動的聽眾、演講者、贊助商和志工,都必須同意遵守下列行為準則。而主辦單位也將嚴格地執行這些準則,我們期待所有參加者的合作,以確保大家能有一個安全友善的環境。
173-
</p>
174-
<p>
175-
騷擾包括有關性別,性別認同、年齡、性向、殘疾、外貌、體型、種族、宗教的攻擊性言語,或是在公共場合散播色情圖片、蓄意恐嚇、跟踪、騷擾性的攝影或錄影、多次打斷活動、不恰當的身體接觸,和讓人感到不舒服的性關注。參與者必須停止任何騷擾行為並且立即遵守行為準則。
176-
</p>
177-
<p>
178-
贊助商也必須遵守行為準則。贊助商不應該使用帶有性意味的圖像、活動,或其它材料。工作人員(包括志工)不該穿著帶有性意味的衣服/制服/裝扮,或是建立一個具有性意味的環境。
179-
</p>
180-
<p>
181-
如果參與者從事騷擾行為,工作人員會採取其認為適當的任何手段,包括警告或是請離會場,並且不會退費。
182-
如果你被騷擾、看到別人受到騷擾,或有任何其他問題,請立即聯繫會議工作人員,工作人員身上會穿戴可以識別身份的特殊徽章或衣服。
183-
</p>
184-
<p>
185-
工作人員會很樂意幫助參與者聯繫酒店/場地警衛或當地警察、提供護送,或以其他方式幫助那些遇到騷擾的參與者感到安全。我們非常重視您的參與。
186-
</p>
187-
<p>
188-
我們希望參與者在各活動場合、會議有關的社群活動都能遵循這些規則。
189-
</p>
190-
<p>
191-
此行為準則是基於
192-
<a
193-
target="_blank"
194-
class="underline cursor-pointer text-blue-500"
195-
href="http://confcodeofconduct.com/"
196-
>Conference Code of Conduct</a
197-
>
198-
而訂定。
199-
</p>
117+
{% capture coc_content %}{% include posts/coc.md %}{% endcapture %}
118+
{{ coc_content | markdownify }}
200119
</div>
201120
<button
202121
@click="modal_id=0"
@@ -234,44 +153,61 @@ <h3 class="text-3xl text-center font-bold text-red-normal">
234153
<div
235154
class="grid grid-cols-1 md:grid-cols-3 gap-x-4 justify-center items-center text-center"
236155
>
156+
{% for staff in site.staffs %}
237157
<div class="flex flex-col items-center gap-4">
238158
<div class="w-45 h-45 border rounded-full relative">
239159
<div
240160
class="absolute inset-1 rounded-full border border-white z-10"
241161
></div>
242162
<img
243163
class="w-full h-full object-cover rounded-full relative"
244-
src="/assets/images/matz.jpg"
164+
src="{{staff.avatar}}"
245165
alt="Matz"
246166
/>
247167
</div>
248168
<span class="mt-2 text-lg text-blue-normal font-bold"
249-
>Matz</span
169+
>{{staff.name}}</span
250170
>
251171
<div class="flex gap-x-2">
172+
{% if staff.github_id %}
173+
<a
174+
href="https://github.com/{{staff.github_id}}"
175+
target="_blank"
176+
class="text-blue-normal w-7 h-7"
177+
>
178+
{% include icons/github.svg %}
179+
</a>
180+
{% endif %}
181+
{% if staff.x_id %}
252182
<a
253-
href="https://x.com/matz"
183+
href="https://x.com/{{staff.x_id}}"
254184
target="_blank"
255185
class="text-blue-normal w-7 h-7"
256186
>
257187
{% include icons/twitter.svg %}
258188
</a>
189+
{% endif %}
190+
{% if staff.facebook %}
259191
<a
260-
href="https://www.facebook.com/matz"
192+
href="{{staff.facebook}}"
261193
target="_blank"
262194
class="text-blue-normal w-7 h-7"
263195
>
264196
{% include icons/facebook.svg %}
265197
</a>
198+
{% endif %}
199+
{% if staff.ig_id %}
266200
<a
267-
href="https://www.instagram.com/matz"
201+
href="https://www.instagram.com/{{staff.ig_id}}"
268202
target="_blank"
269203
class="text-blue-normal w-7 h-7"
270204
>
271205
{% include icons/instagram.svg %}
272206
</a>
207+
{% endif %}
273208
</div>
274209
</div>
210+
{% endfor %}
275211
</div>
276212
<button
277213
@click="modal_id=0"

assets/images/Xillinna.jpg

5.81 KB
Loading

assets/images/ryudoawaru.jpg

309 KB
Loading

0 commit comments

Comments
 (0)