diff --git a/package.json b/package.json index 91db396..a397085 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@astrojs/mdx": "^4.0.2", "@astrojs/sitemap": "^3.2.1", "@astrojs/tailwind": "^5.1.3", + "@fortawesome/fontawesome-free": "^6.7.2", "@pagefind/default-ui": "^1.2.0", "@tailwindcss/typography": "^0.5.15", "astro": "^5.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ecf42a..73a55e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: '@astrojs/tailwind': specifier: ^5.1.3 version: 5.1.3(astro@5.0.5(@types/node@20.14.9)(jiti@1.21.6)(rollup@4.28.1)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.7.2)))(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.7.2)) + '@fortawesome/fontawesome-free': + specifier: ^6.7.2 + version: 6.7.2 '@pagefind/default-ui': specifier: ^1.2.0 version: 1.2.0 @@ -610,6 +613,10 @@ packages: cpu: [x64] os: [win32] + '@fortawesome/fontawesome-free@6.7.2': + resolution: {integrity: sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==} + engines: {node: '>=6'} + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3392,6 +3399,8 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true + '@fortawesome/fontawesome-free@6.7.2': {} + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 diff --git a/src/assets/gdsc-osaka-logo.jpg b/src/assets/gdsc-osaka-logo.jpg new file mode 100644 index 0000000..07e987f Binary files /dev/null and b/src/assets/gdsc-osaka-logo.jpg differ diff --git a/src/assets/ggc-logo.png b/src/assets/ggc-logo.png new file mode 100644 index 0000000..586f14f Binary files /dev/null and b/src/assets/ggc-logo.png differ diff --git a/src/assets/rainbou-logo.png b/src/assets/rainbou-logo.png new file mode 100644 index 0000000..5961830 Binary files /dev/null and b/src/assets/rainbou-logo.png differ diff --git a/src/assets/robohan-logo.png b/src/assets/robohan-logo.png new file mode 100644 index 0000000..58eb9b3 Binary files /dev/null and b/src/assets/robohan-logo.png differ diff --git a/src/assets/sairibasu-logo.png b/src/assets/sairibasu-logo.png new file mode 100644 index 0000000..545eead Binary files /dev/null and b/src/assets/sairibasu-logo.png differ diff --git a/src/assets/tool-box-logo.jpg b/src/assets/tool-box-logo.jpg new file mode 100644 index 0000000..a9e0764 Binary files /dev/null and b/src/assets/tool-box-logo.jpg differ diff --git a/src/assets/wanihackase-logo.png b/src/assets/wanihackase-logo.png new file mode 100644 index 0000000..8b3b277 Binary files /dev/null and b/src/assets/wanihackase-logo.png differ diff --git a/src/components/layout/nav/Navigation.astro b/src/components/layout/nav/Navigation.astro index f4575e2..3c6401c 100644 --- a/src/components/layout/nav/Navigation.astro +++ b/src/components/layout/nav/Navigation.astro @@ -13,6 +13,7 @@ import DrWani from './DrWani.astro' Join OUCC! 活動紹介 講習会 + OU Techs FAQ お問い合わせ ブログ diff --git a/src/components/ou-techs/CircleList.astro b/src/components/ou-techs/CircleList.astro new file mode 100644 index 0000000..d30a5ad --- /dev/null +++ b/src/components/ou-techs/CircleList.astro @@ -0,0 +1,92 @@ +--- +import type { ComponentProps } from 'astro/types' +import CircleListItem from './CircleListItem.astro' +import OuccLogo from '@/assets/oucc.svg' +import ToolBoxLogo from '@/assets/tool-box-logo.jpg' +import RainbouLogo from '@/assets/rainbou-logo.png' +import SairibasuLogo from '@/assets/sairibasu-logo.png' +import GdscOsakaLogo from '@/assets/gdsc-osaka-logo.jpg' +import GgcLogo from '@/assets/ggc-logo.png' +import WanihackaseLogo from '@/assets/wanihackase-logo.png' +import RobohanLogo from '@/assets/robohan-logo.png' + +const circles: ComponentProps[] = [ + { + name: 'OUCC', + description: + 'OUCC(大阪大学コンピュータクラブ)は、コンピュータを使ったものづくりに関心を持つ学生が交流するサークルです。最近はゲーム制作やアプリ制作を行っています。', + logo: OuccLogo, + homepage: 'https://oucc.org', + github: 'https://github.com/OUCC', + x: 'https://x.com/OUCC', + }, + { + name: 'ToolBox', + description: + '「自由なモノづくり」をテーマにモットーに個性的な作品を製作している、大阪大学公認団体です。電子工作、プログラミングなどをメインに,ハードウェアからソフトウェアまで幅広く自由に活動しています。', + logo: ToolBoxLogo, + homepage: 'https://outoolbox.wixsite.com/tool', + x: 'https://x.com/OuToolbox', + }, + { + name: 'RAINBOU', + description: + 'RAINBOUは、大阪大学の競技プログラミング部で、ICPCなど国内外のコンテストで活躍する学生が集まるサークルです。部内では定期的な勉強会やイベントを通じて技術を磨き、初心者から経験者までが互いに切磎琢磨できる環境が整っています。', + logo: RainbouLogo, + homepage: 'https://rainbou.org', + github: 'https://github.com/rainbou-kpr', + x: 'https://x.com/rainbou_kpr', + }, + { + name: '再履バス同好会 技術部', + description: + '再履バス同好会とは、再履バス (阪大のキャンパス間連絡バス) を愛でながら様々な企画・提案を行っている大阪大学非公認団体です。技術部では条項人数計測装置の開発などを行っています。', + logo: SairibasuLogo, + homepage: 'https://sairibus.com/', + x: 'https://x.com/sairi_doukoukai', + instagram: 'https://www.instagram.com/sairi_doukoukai/', + }, + { + name: 'GDG on Campus Osaka', + description: + 'Google Developersのサポートのもと活動をしている大阪大学支部です。現在GDSCは世界の2100以上の大学に展開しています。', + logo: GdscOsakaLogo, + homepage: 'https://gdsc-osaka.jp/', + github: 'https://github.com/gdsc-osaka', + x: 'https://x.com/GDSC_osaka', + instagram: 'https://www.instagram.com/gdgoc_osaka/', + }, + { + name: 'GGC', + description: + '大阪大学の箕面キャンパスと豊中キャンパスを拠点に活動している言語サークルです。名前のGGCは、語学・言語学サークル(Gogaku Gengogaku Circle)の略です。現在約90名のメンバーが所属しています。', + logo: GgcLogo, + homepage: 'https://oulcggc.org/', + github: 'https://github.com/oulcggc', + x: 'https://x.com/oulcggc', + instagram: 'https://www.instagram.com/oulcggc/', + }, + { + name: 'Wani Hackase', + description: + 'Wani Hackaseは、大阪大学のCTFサークルで、初心者~中級者向けのJeopardy形式CTFや勉強会を通じてサイバーセキュリティ技術を磨く活動を行っています。新入生も年間を通して歓迎されており、興味があれば気軽に参加してスキルアップを目指せる環境が整っています。', + logo: WanihackaseLogo, + homepage: 'https://wanictf.org/about/', + github: 'https://github.com/wani-hackase', + x: 'https://x.com/wanictf', + }, + { + name: 'Robohan', + description: + 'Robohanは、大阪大学公認のロボット製作団体で、NHK学生ロボコンへの出場や特別賞の受賞などの実績を持ち、優勝を目指して日々ロボット製作に取り組んでいます。新入生も参加できる環境が整っており、実践的な技術やチームワークを学びながら、自らの創造性を活かせる絶好の機会です。', + logo: RobohanLogo, + homepage: 'https://www.robohan.net/', + github: 'https://github.com/RobohanOU', + x: 'https://x.com/Robohan_', + }, +] +--- + + + {circles.map((c) => )} + diff --git a/src/components/ou-techs/CircleListItem.astro b/src/components/ou-techs/CircleListItem.astro new file mode 100644 index 0000000..5921fe8 --- /dev/null +++ b/src/components/ou-techs/CircleListItem.astro @@ -0,0 +1,109 @@ +--- +import type { ImageMetadata } from 'astro' +import HouseIcon from '@fortawesome/fontawesome-free/svgs/solid/house.svg' +import GithubIcon from '@fortawesome/fontawesome-free/svgs/brands/github.svg' +import XtwitterIcon from '@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg' +import InstagramIcon from '@fortawesome/fontawesome-free/svgs/brands/instagram.svg' +import { Image } from 'astro:assets' + +type SvgComponent = typeof import('*.svg').default + +interface Props { + logo: ImageMetadata | SvgComponent + name: string + description: string + homepage: string + github?: string + x?: string + instagram?: string +} + +const { + logo: CircleLogo, + name, + description, + homepage, + github, + x, + instagram, +} = Astro.props +--- + + + + { + typeof CircleLogo === 'function' ? ( + + ) : ( + + ) + } + + {name} + + { + ( + + + + ) + } + { + github && ( + + + + ) + } + { + x && ( + + + + ) + } + { + instagram && ( + + + + ) + } + + + + + {description} + diff --git a/src/components/ou-techs/OutechsCirclesSection.astro b/src/components/ou-techs/OutechsCirclesSection.astro new file mode 100644 index 0000000..0e06a94 --- /dev/null +++ b/src/components/ou-techs/OutechsCirclesSection.astro @@ -0,0 +1,12 @@ +--- +import Section from '../common/Section.astro' +import CircleList from './CircleList.astro' +--- + + + 参加団体 + + OU Techsに参加している団体について紹介します。 + + + diff --git a/src/components/ou-techs/OutechsIntroSection.astro b/src/components/ou-techs/OutechsIntroSection.astro new file mode 100644 index 0000000..43343da --- /dev/null +++ b/src/components/ou-techs/OutechsIntroSection.astro @@ -0,0 +1,7 @@ +--- +import Section from '../common/Section.astro' +--- + +OU Techsは阪大の技術系サークルのつながりを深めるため設立されました。勉強資料の共有や交流イベントを行っています。 diff --git a/src/pages/ou-techs.astro b/src/pages/ou-techs.astro new file mode 100644 index 0000000..ada1dc5 --- /dev/null +++ b/src/pages/ou-techs.astro @@ -0,0 +1,18 @@ +--- +import Hero from '@/components/common/Hero.astro' +import OutechsCirclesSection from '@/components/ou-techs/OutechsCirclesSection.astro' +import OutechsIntroSection from '@/components/ou-techs/OutechsIntroSection.astro' +import Layout from '@/layouts/Layout.astro' +--- + + + + + + + +
{description}
+ OU Techsに参加している団体について紹介します。 +