Skip to content

Commit f4655ef

Browse files
authored
Merge pull request #178 from OUCC/add-outechs-page
OU Techsの 紹介ページを追加
2 parents c102c43 + 173a0ec commit f4655ef

15 files changed

+249
-0
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"@astrojs/mdx": "^4.0.2",
2626
"@astrojs/sitemap": "^3.2.1",
2727
"@astrojs/tailwind": "^5.1.3",
28+
"@fortawesome/fontawesome-free": "^6.7.2",
2829
"@pagefind/default-ui": "^1.2.0",
2930
"@tailwindcss/typography": "^0.5.15",
3031
"astro": "^5.0.5",

pnpm-lock.yaml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/assets/gdsc-osaka-logo.jpg

7.57 KB
Loading

src/assets/ggc-logo.png

21.8 KB
Loading

src/assets/rainbou-logo.png

8.85 KB
Loading

src/assets/robohan-logo.png

1.28 KB
Loading

src/assets/sairibasu-logo.png

5.62 KB
Loading

src/assets/tool-box-logo.jpg

17.1 KB
Loading

src/assets/wanihackase-logo.png

1.9 KB
Loading

src/components/layout/nav/Navigation.astro

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import DrWani from './DrWani.astro'
1313
<NavigationListItem to="/join/">Join OUCC!</NavigationListItem>
1414
<NavigationListItem to="/activity/">活動紹介</NavigationListItem>
1515
<NavigationListItem to="/workshop/">講習会</NavigationListItem>
16+
<NavigationListItem to="/ou-techs/">OU Techs</NavigationListItem>
1617
<NavigationListItem to="/faq/">FAQ</NavigationListItem>
1718
<NavigationListItem to="/contact/">お問い合わせ</NavigationListItem>
1819
<NavigationListItem to="/blog/">ブログ</NavigationListItem>
+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
import type { ComponentProps } from 'astro/types'
3+
import CircleListItem from './CircleListItem.astro'
4+
import OuccLogo from '@/assets/oucc.svg'
5+
import ToolBoxLogo from '@/assets/tool-box-logo.jpg'
6+
import RainbouLogo from '@/assets/rainbou-logo.png'
7+
import SairibasuLogo from '@/assets/sairibasu-logo.png'
8+
import GdscOsakaLogo from '@/assets/gdsc-osaka-logo.jpg'
9+
import GgcLogo from '@/assets/ggc-logo.png'
10+
import WanihackaseLogo from '@/assets/wanihackase-logo.png'
11+
import RobohanLogo from '@/assets/robohan-logo.png'
12+
13+
const circles: ComponentProps<typeof CircleListItem>[] = [
14+
{
15+
name: 'OUCC',
16+
description:
17+
'OUCC(大阪大学コンピュータクラブ)は、コンピュータを使ったものづくりに関心を持つ学生が交流するサークルです。最近はゲーム制作やアプリ制作を行っています。',
18+
logo: OuccLogo,
19+
homepage: 'https://oucc.org',
20+
github: 'https://github.com/OUCC',
21+
x: 'https://x.com/OUCC',
22+
},
23+
{
24+
name: 'ToolBox',
25+
description:
26+
'「自由なモノづくり」をテーマにモットーに個性的な作品を製作している、大阪大学公認団体です。電子工作、プログラミングなどをメインに,ハードウェアからソフトウェアまで幅広く自由に活動しています。',
27+
logo: ToolBoxLogo,
28+
homepage: 'https://outoolbox.wixsite.com/tool',
29+
x: 'https://x.com/OuToolbox',
30+
},
31+
{
32+
name: 'RAINBOU',
33+
description:
34+
'RAINBOUは、大阪大学の競技プログラミング部で、ICPCなど国内外のコンテストで活躍する学生が集まるサークルです。部内では定期的な勉強会やイベントを通じて技術を磨き、初心者から経験者までが互いに切磎琢磨できる環境が整っています。',
35+
logo: RainbouLogo,
36+
homepage: 'https://rainbou.org',
37+
github: 'https://github.com/rainbou-kpr',
38+
x: 'https://x.com/rainbou_kpr',
39+
},
40+
{
41+
name: '再履バス同好会 技術部',
42+
description:
43+
'再履バス同好会とは、再履バス (阪大のキャンパス間連絡バス) を愛でながら様々な企画・提案を行っている大阪大学非公認団体です。技術部では条項人数計測装置の開発などを行っています。',
44+
logo: SairibasuLogo,
45+
homepage: 'https://sairibus.com/',
46+
x: 'https://x.com/sairi_doukoukai',
47+
instagram: 'https://www.instagram.com/sairi_doukoukai/',
48+
},
49+
{
50+
name: 'GDG on Campus Osaka',
51+
description:
52+
'Google Developersのサポートのもと活動をしている大阪大学支部です。現在GDSCは世界の2100以上の大学に展開しています。',
53+
logo: GdscOsakaLogo,
54+
homepage: 'https://gdsc-osaka.jp/',
55+
github: 'https://github.com/gdsc-osaka',
56+
x: 'https://x.com/GDSC_osaka',
57+
instagram: 'https://www.instagram.com/gdgoc_osaka/',
58+
},
59+
{
60+
name: 'GGC',
61+
description:
62+
'大阪大学の箕面キャンパスと豊中キャンパスを拠点に活動している言語サークルです。名前のGGCは、語学・言語学サークル(Gogaku Gengogaku Circle)の略です。現在約90名のメンバーが所属しています。',
63+
logo: GgcLogo,
64+
homepage: 'https://oulcggc.org/',
65+
github: 'https://github.com/oulcggc',
66+
x: 'https://x.com/oulcggc',
67+
instagram: 'https://www.instagram.com/oulcggc/',
68+
},
69+
{
70+
name: 'Wani Hackase',
71+
description:
72+
'Wani Hackaseは、大阪大学のCTFサークルで、初心者~中級者向けのJeopardy形式CTFや勉強会を通じてサイバーセキュリティ技術を磨く活動を行っています。新入生も年間を通して歓迎されており、興味があれば気軽に参加してスキルアップを目指せる環境が整っています。',
73+
logo: WanihackaseLogo,
74+
homepage: 'https://wanictf.org/about/',
75+
github: 'https://github.com/wani-hackase',
76+
x: 'https://x.com/wanictf',
77+
},
78+
{
79+
name: 'Robohan',
80+
description:
81+
'Robohanは、大阪大学公認のロボット製作団体で、NHK学生ロボコンへの出場や特別賞の受賞などの実績を持ち、優勝を目指して日々ロボット製作に取り組んでいます。新入生も参加できる環境が整っており、実践的な技術やチームワークを学びながら、自らの創造性を活かせる絶好の機会です。',
82+
logo: RobohanLogo,
83+
homepage: 'https://www.robohan.net/',
84+
github: 'https://github.com/RobohanOU',
85+
x: 'https://x.com/Robohan_',
86+
},
87+
]
88+
---
89+
90+
<ul class="grid grid-cols-[repeat(auto-fit,minmax(20rem,1fr))] gap-5">
91+
{circles.map((c) => <CircleListItem {...c} />)}
92+
</ul>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
import type { ImageMetadata } from 'astro'
3+
import HouseIcon from '@fortawesome/fontawesome-free/svgs/solid/house.svg'
4+
import GithubIcon from '@fortawesome/fontawesome-free/svgs/brands/github.svg'
5+
import XtwitterIcon from '@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg'
6+
import InstagramIcon from '@fortawesome/fontawesome-free/svgs/brands/instagram.svg'
7+
import { Image } from 'astro:assets'
8+
9+
type SvgComponent = typeof import('*.svg').default
10+
11+
interface Props {
12+
logo: ImageMetadata | SvgComponent
13+
name: string
14+
description: string
15+
homepage: string
16+
github?: string
17+
x?: string
18+
instagram?: string
19+
}
20+
21+
const {
22+
logo: CircleLogo,
23+
name,
24+
description,
25+
homepage,
26+
github,
27+
x,
28+
instagram,
29+
} = Astro.props
30+
---
31+
32+
<li
33+
class="row-span-2 grid grid-rows-subgrid gap-2 rounded-xl border border-slate-300 bg-white p-5 drop-shadow"
34+
>
35+
<div class="flex items-center gap-x-2">
36+
{
37+
typeof CircleLogo === 'function' ? (
38+
<CircleLogo
39+
class="m-1"
40+
height={48}
41+
width={(CircleLogo.width * 48) / CircleLogo.height}
42+
/>
43+
) : (
44+
<Image
45+
class="m-1"
46+
src={CircleLogo}
47+
height={48}
48+
width={(CircleLogo.width * 48) / CircleLogo.height}
49+
alt={`${name}のアイコン`}
50+
/>
51+
)
52+
}
53+
<div>
54+
<h2 class="text-xl font-bold">{name}</h2>
55+
<div class="flex gap-1 align-middle">
56+
{
57+
(
58+
<a
59+
href={homepage}
60+
target="_blank"
61+
class="aspect-square rounded-full p-1 hover:bg-gray-200/100"
62+
title={`${name}公式サイト`}
63+
>
64+
<HouseIcon size={18} />
65+
</a>
66+
)
67+
}
68+
{
69+
github && (
70+
<a
71+
href={github}
72+
target="_blank"
73+
class="aspect-square rounded-full p-1 hover:bg-gray-200/100"
74+
title={`${name}のGitHub Organization`}
75+
>
76+
<GithubIcon size={18} />
77+
</a>
78+
)
79+
}
80+
{
81+
x && (
82+
<a
83+
href={x}
84+
target="_blank"
85+
class="aspect-square rounded-full p-1 hover:bg-gray-200/100"
86+
title={`${name}のX`}
87+
>
88+
<XtwitterIcon size={18} />
89+
</a>
90+
)
91+
}
92+
{
93+
instagram && (
94+
<a
95+
href={instagram}
96+
target="_blank"
97+
class="aspect-square rounded-full p-1 hover:bg-gray-200/100"
98+
title={`${name}のInstagram`}
99+
>
100+
<InstagramIcon size={18} />
101+
</a>
102+
)
103+
}
104+
</div>
105+
</div>
106+
</div>
107+
108+
<p class="text-justify-ja">{description}</p>
109+
</li>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
import Section from '../common/Section.astro'
3+
import CircleList from './CircleList.astro'
4+
---
5+
6+
<Section background="white">
7+
<Fragment slot="title">参加団体</Fragment>
8+
<p class="text-justify-ja pb-2">
9+
OU Techsに参加している団体について紹介します。
10+
</p>
11+
<CircleList />
12+
</Section>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
import Section from '../common/Section.astro'
3+
---
4+
5+
<Section background="secondary"
6+
>OU&nbsp;Techsは阪大の技術系サークルのつながりを深めるため設立されました。勉強資料の共有や交流イベントを行っています。</Section
7+
>

src/pages/ou-techs.astro

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
import Hero from '@/components/common/Hero.astro'
3+
import OutechsCirclesSection from '@/components/ou-techs/OutechsCirclesSection.astro'
4+
import OutechsIntroSection from '@/components/ou-techs/OutechsIntroSection.astro'
5+
import Layout from '@/layouts/Layout.astro'
6+
---
7+
8+
<Layout
9+
title="OU Techs"
10+
description="阪大の技術系サークルでイベントを開催する団体です"
11+
showJoinLink
12+
>
13+
<Hero title="OU Techs" copy="OU Techs とは?" compact />
14+
<main>
15+
<OutechsIntroSection />
16+
<OutechsCirclesSection />
17+
</main>
18+
</Layout>

0 commit comments

Comments
 (0)