diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-13 23:56:29 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-13 23:56:29 +0900 |
| commit | aa9c29c190ea8b15f6dbb1a38a1c554e1ade77b7 (patch) | |
| tree | 566437988e31466b480eeec1b24264d9485b6283 | |
| parent | 5707cc3dd6e69b94effad1711147ad51117acd7c (diff) | |
| download | nsfisis.dev-aa9c29c190ea8b15f6dbb1a38a1c554e1ade77b7.tar.gz nsfisis.dev-aa9c29c190ea8b15f6dbb1a38a1c554e1ade77b7.tar.zst nsfisis.dev-aa9c29c190ea8b15f6dbb1a38a1c554e1ade77b7.zip | |
feat(about): add conference staff section to about page
| -rw-r--r-- | services/nuldoc/content/about/staff.toml | 54 | ||||
| -rw-r--r-- | services/nuldoc/content/posts/2023-12-31/2023-reflections.md | 2 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc.rb | 2 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc/about/parse.rb | 32 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc/about/staff_record.rb | 7 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc/commands/build.rb | 4 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc/commands/serve.rb | 2 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc/generators/about.rb | 5 | ||||
| -rw-r--r-- | services/nuldoc/lib/nuldoc/pages/about_page.rb | 21 | ||||
| -rw-r--r-- | services/nuldoc/public/about/index.html | 38 | ||||
| -rw-r--r-- | services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md | 2 |
11 files changed, 162 insertions, 7 deletions
diff --git a/services/nuldoc/content/about/staff.toml b/services/nuldoc/content/about/staff.toml new file mode 100644 index 00000000..94c7b782 --- /dev/null +++ b/services/nuldoc/content/about/staff.toml @@ -0,0 +1,54 @@ +[[staff]] +date = { from = "2023-03-23", to = "2023-03-25" } +event = "PHPerKaigi 2023" +role = "当日スタッフ" + +[[staff]] +date = { from = "2024-03-07", to = "2024-03-09" } +event = "PHPerKaigi 2024" +role = "コアスタッフ" + +[[staff]] +date = "2024-04-13" +event = "PHP カンファレンス小田原 2024" +role = "当日スタッフ" + +[[staff]] +date = { from = "2024-08-22", to = "2024-08-24" } +event = "iOSDC Japan 2024" +role = "コアスタッフ" + +[[staff]] +date = "2024-12-22" +event = "PHP カンファレンス 2024" +role = "当日スタッフ" + +[[staff]] +date = { from = "2025-03-21", to = "2025-03-23" } +event = "PHPerKaigi 2025" +role = "コアスタッフ" + +[[staff]] +date = "2025-04-12" +event = "PHP カンファレンス小田原 2025" +role = "コアスタッフ" + +[[staff]] +date = { from = "2025-09-19", to = "2025-09-21" } +event = "iOSDC Japan 2025" +role = "コアスタッフ" + +[[staff]] +date = { from = "2026-03-20", to = "2026-03-22" } +event = "PHPerKaigi 2026" +role = "コアスタッフ" + +[[staff]] +date = "2025-04-11" +event = "PHP カンファレンス小田原 2026" +role = "コアスタッフ" + +[[staff]] +date = "2026-10-03" +event = "PHP カンファレンス愛媛 2026" +role = "コアスタッフ" diff --git a/services/nuldoc/content/posts/2023-12-31/2023-reflections.md b/services/nuldoc/content/posts/2023-12-31/2023-reflections.md index daa0a037..a897de9a 100644 --- a/services/nuldoc/content/posts/2023-12-31/2023-reflections.md +++ b/services/nuldoc/content/posts/2023-12-31/2023-reflections.md @@ -33,7 +33,7 @@ LT 等も含めて計 11 回の登壇をおこなった。 * [トークン解説セッション](/slides/2023-03-25/phperkaigi-2023-tokens/) * PHPerKaigi 2023 での当日スタッフ業 -* [非公式でおこなわれた PHP カンファレンス福岡 2023 の 前夜祭イベントでの登壇](/slides/2023-06-23/phpconfuk-2023-eve/) +* [非公式でおこなわれた PHP カンファレンス福岡 2023 の 前夜祭イベントでの登壇](/slides/2023-06-23/phpconfuk-2023-eve/) * PHPerKaigi 2024 でのコアスタッフ業 # 書いた記事 {#articles} diff --git a/services/nuldoc/lib/nuldoc.rb b/services/nuldoc/lib/nuldoc.rb index cb94051d..57431bec 100644 --- a/services/nuldoc/lib/nuldoc.rb +++ b/services/nuldoc/lib/nuldoc.rb @@ -29,6 +29,8 @@ require_relative 'nuldoc/markdown/parse' require_relative 'nuldoc/markdown/transform' require_relative 'nuldoc/slide/slide' require_relative 'nuldoc/slide/parse' +require_relative 'nuldoc/about/staff_record' +require_relative 'nuldoc/about/parse' require_relative 'nuldoc/components/utils' require_relative 'nuldoc/components/page_layout' require_relative 'nuldoc/components/global_footer' diff --git a/services/nuldoc/lib/nuldoc/about/parse.rb b/services/nuldoc/lib/nuldoc/about/parse.rb new file mode 100644 index 00000000..9236807c --- /dev/null +++ b/services/nuldoc/lib/nuldoc/about/parse.rb @@ -0,0 +1,32 @@ +require 'toml-rb' + +module Nuldoc + class StaffParser + def initialize(file_path) + @file_path = file_path + end + + def parse + data = TomlRB.load_file(@file_path) + (data['staff'] || []).map do |entry| + StaffRecord.new( + date: parse_date(entry['date']), + event: entry['event'], + role: entry['role'] + ) + end + end + + private + + def parse_date(value) + if value.is_a?(Hash) + from = Revision.string_to_date(value['from']) + to = Revision.string_to_date(value['to']) + from..to + else + Revision.string_to_date(value) + end + end + end +end diff --git a/services/nuldoc/lib/nuldoc/about/staff_record.rb b/services/nuldoc/lib/nuldoc/about/staff_record.rb new file mode 100644 index 00000000..ea456153 --- /dev/null +++ b/services/nuldoc/lib/nuldoc/about/staff_record.rb @@ -0,0 +1,7 @@ +module Nuldoc + StaffRecord = Data.define(:date, :event, :role) do + def sort_date + date.is_a?(Range) ? date.begin : date + end + end +end diff --git a/services/nuldoc/lib/nuldoc/commands/build.rb b/services/nuldoc/lib/nuldoc/commands/build.rb index bec741d9..aaeda537 100644 --- a/services/nuldoc/lib/nuldoc/commands/build.rb +++ b/services/nuldoc/lib/nuldoc/commands/build.rb @@ -96,7 +96,9 @@ module Nuldoc end def build_about_page(slides) - write_page(Generators::About.new(slides, @config).generate) + staff_file = File.join(Dir.pwd, @config.locations.content_dir, 'about', 'staff.toml') + staff_records = StaffParser.new(staff_file).parse + write_page(Generators::About.new(slides, staff_records, @config).generate) end def build_not_found_page(site) diff --git a/services/nuldoc/lib/nuldoc/commands/serve.rb b/services/nuldoc/lib/nuldoc/commands/serve.rb index c9fdf1af..8bcccf02 100644 --- a/services/nuldoc/lib/nuldoc/commands/serve.rb +++ b/services/nuldoc/lib/nuldoc/commands/serve.rb @@ -26,7 +26,7 @@ module Nuldoc redirect_dest = redirect_path(site_name, pathname) if redirect_dest - res.status = 301 + res.status = 302 res['Location'] = redirect_dest next end diff --git a/services/nuldoc/lib/nuldoc/generators/about.rb b/services/nuldoc/lib/nuldoc/generators/about.rb index d5b9dec4..59d68070 100644 --- a/services/nuldoc/lib/nuldoc/generators/about.rb +++ b/services/nuldoc/lib/nuldoc/generators/about.rb @@ -1,13 +1,14 @@ module Nuldoc module Generators class About - def initialize(slides, config) + def initialize(slides, staff_records, config) @slides = slides + @staff_records = staff_records @config = config end def generate - html = Pages::AboutPage.new(slides: @slides, config: @config).render + html = Pages::AboutPage.new(slides: @slides, staff_records: @staff_records, config: @config).render Page.new( root: html, diff --git a/services/nuldoc/lib/nuldoc/pages/about_page.rb b/services/nuldoc/lib/nuldoc/pages/about_page.rb index d2d3dfba..6c72ec09 100644 --- a/services/nuldoc/lib/nuldoc/pages/about_page.rb +++ b/services/nuldoc/lib/nuldoc/pages/about_page.rb @@ -1,14 +1,16 @@ module Nuldoc module Pages class AboutPage - def initialize(slides:, config:) + def initialize(slides:, staff_records:, config:) @slides = slides + @staff_records = staff_records @config = config end def render config = @config sorted_slides = @slides.sort_by { |s| GeneratorUtils.published_date(s) }.reverse + sorted_staff = @staff_records.sort_by(&:sort_date).reverse Components::PageLayout.new( meta_copyright_year: config.site.copyright_year, @@ -77,6 +79,23 @@ module Nuldoc end end end + section do + h2 { text 'カンファレンススタッフ' } + ul do + sorted_staff.each do |record| + li do + if record.date.is_a?(Range) + from_str = Revision.date_to_string(record.date.begin) + to_str = Revision.date_to_string(record.date.end) + text "#{from_str}〜#{to_str}: #{record.event} (#{record.role})" + else + date_str = Revision.date_to_string(record.date) + text "#{date_str}: #{record.event} (#{record.role})" + end + end + end + end + end end end end diff --git a/services/nuldoc/public/about/index.html b/services/nuldoc/public/about/index.html index 65b83d9d..ddbbadeb 100644 --- a/services/nuldoc/public/about/index.html +++ b/services/nuldoc/public/about/index.html @@ -140,6 +140,44 @@ </li> </ul> </section> + <section> + <h2>カンファレンススタッフ</h2> + <ul> + <li> + 2026-10-03: PHP カンファレンス愛媛 2026 (コアスタッフ) + </li> + <li> + 2026-03-20〜2026-03-22: PHPerKaigi 2026 (コアスタッフ) + </li> + <li> + 2025-09-19〜2025-09-21: iOSDC Japan 2025 (コアスタッフ) + </li> + <li> + 2025-04-12: PHP カンファレンス小田原 2025 (コアスタッフ) + </li> + <li> + 2025-04-11: PHP カンファレンス小田原 2026 (コアスタッフ) + </li> + <li> + 2025-03-21〜2025-03-23: PHPerKaigi 2025 (コアスタッフ) + </li> + <li> + 2024-12-22: PHP カンファレンス 2024 (当日スタッフ) + </li> + <li> + 2024-08-22〜2024-08-24: iOSDC Japan 2024 (コアスタッフ) + </li> + <li> + 2024-04-13: PHP カンファレンス小田原 2024 (当日スタッフ) + </li> + <li> + 2024-03-07〜2024-03-09: PHPerKaigi 2024 (コアスタッフ) + </li> + <li> + 2023-03-23〜2023-03-25: PHPerKaigi 2023 (当日スタッフ) + </li> + </ul> + </section> </div> </article> </main> diff --git a/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md b/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md index daa0a037..a897de9a 100644 --- a/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md +++ b/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md @@ -33,7 +33,7 @@ LT 等も含めて計 11 回の登壇をおこなった。 * [トークン解説セッション](/slides/2023-03-25/phperkaigi-2023-tokens/) * PHPerKaigi 2023 での当日スタッフ業 -* [非公式でおこなわれた PHP カンファレンス福岡 2023 の 前夜祭イベントでの登壇](/slides/2023-06-23/phpconfuk-2023-eve/) +* [非公式でおこなわれた PHP カンファレンス福岡 2023 の 前夜祭イベントでの登壇](/slides/2023-06-23/phpconfuk-2023-eve/) * PHPerKaigi 2024 でのコアスタッフ業 # 書いた記事 {#articles} |
