TL;DR
- ããŒãã ãããéããªããïŒã¬ã³ã¿ã«ãµãŒããŒãåããããªããïŒ
- ããã ïŒCloudflareã䜿ããïŒ
- AIã«äžžæãããããã«AIãšèŠä»¶ããŸãšããã
- èŠä»¶ããã«ã¹ã±ãŒã«ã«ãªã£ãŠããŸããå®éã«ã§ãããµã€ããæ¿éã ã£ããïŒ
- 諊ããŠæ°ã¶æ
- ãã¶ã€ã³ãå€§å¹ ã«å€ãããšãã£ããã«å¥ã®ãã¬ãŒã ã¯ãŒã¯ã§äœãçŽããïŒèŠä»¶ã軜éãªãã®ãããïŒ
- â ä»ãã®ãµã€ã
- ä»åŸã¯Googleã«indexããŠãããã®ãç®æš
ã¯ããã«
ããã«ã¡ã¯ïŒmiyabittiã§ãããã©ããããŒãã§ãã
çªç¶ã§ããã
ãèªåã ãã®ããã°ã欲ããïŒã
ãšæããŸããã ã§ããèªåã¯ããŒããåœç¶ãã€ãããããŠããªãã®ã§æ¬åœã«ãéããããŸããã
ã¬ã³ã¿ã«ãµãŒããŒãåããè³éããç¡ããã©ãã«ãããŠç¡æã§æ§ç¯ããŠã¿ãããšèããŸããã
æ¬æçš¿ã§ã¯ããã®ãµã€ãã®éèšãŸã§ã®äžèº«ã®ãªãæŽå²ãæžããŠãããŸãã
å人éçºã®åŒ·ã峿¹
ããã°ãµã€ããéèšããã«ãããããµãŒããŒã®è²»çšã¯ç®ãçãããšãã§ããŸãããäŸãã°ãåœå 倧æã¬ã³ã¿ã«ãµãŒããŒäŒç€Ÿã®WordPressèŸŒã®æé¡æé㯠¥500 ~ Â¥1500 ã®ãã®ãå€ããä»äºãããŠããæ¹ãªãåé¡ãªãPayã§ããã¬ãã«ã®æéã§ãããããŒãããã«ã¯æ»æŽ»åé¡ã¬ãã«ã®æéã§ãã
ãããªäººã«ãšã£ãŠåŒ·ã峿¹ã§ããç¡æãã¹ãã£ã³ã°ãµãŒãã¹ãæ¢ããšãŸããŸããªçš®é¡ããããŸããã
æåãªãšããã ãšã以äžã®ãããªãµãŒãã¹ããããŸãã
ã§ã¯ããã®äžã§ã©ããéžã¶ã®ãè¯ãã®ãã§ãããéžå®åºæºã¯ç¡ææ ã®å¯å€§ãã«ãªããŸãã
ãšãããã以äžã®è¡šãèŠãŠã¿ãŠãã ãããAIã«ãŸãšããŠããããŸããã
| é ç® | NetlifyïŒFree/StarterïŒ | GitHub PagesïŒFreeïŒ | VercelïŒHobbyïŒ | Firebase HostingïŒSpark/FreeïŒ | Cloudflare PagesïŒFreeïŒ |
|---|---|---|---|---|---|
| 転ééïŒæïŒ | 100GB | 100GB | 100GB | 10GB | ç¡å¶é |
| ãã«ãæé | 300å/æ | 10å/ããã〠| 45å/ããã〠| ç¡å¶é | 500å/æïŒ20åã§ã¿ã€ã ã¢ãŠãïŒ |
| ãããã€ãµã€ãº | äžéãªã | 1GB | 100MBïŒCLIäžéïŒ | åäžãã¡ã€ã«2GBãç·å®¹é10GB | 20,000ãã¡ã€ã«ã1ãã¡ã€ã«25MB |
| åçšå©çš | â å¯èœ | â³ å¶éãã | â äžå¯ | â å¯èœ | â å¯èœ |
| ãã®ä»äž»èŠå¶é | ã»125k颿°åŒã³åºã/æ ã»100äžEdge颿°åŒã³åºã/æ | ã»SaaSã»ECã»æ±ºæžäžå¯ ã»æ å ±æäŸç®çã®ã¿å¯ | ã»ãããžã§ã¯ã200åãŸã§ ã»1æ¥100ãããã€ãŸã§ | ã»è¶
éã§ãµã€ãé
ä¿¡åæ¢ ã»Blazeç§»è¡ã§åŸé課é | ã»100ãããžã§ã¯ãïŒãœããïŒ ã»100ã«ã¹ã¿ã ãã¡ã€ã³/ãããžã§ã¯ã |
ãã®äžã§ãç¡ææ ã®å¯å€§ããèæ
®ããŠæ®ããã®ã¯ãNetlifyãšCloudflare Pagesã§ããã
転éé100GBã¯ããã»ã©ã¢ã¯ã»ã¹ãå€ãããŸãã¯ãŸãã§ãããããããã®ã¯ãœãã«ããŒãžãé
ä¿¡ããªãéãå°éãåŸãªãéãªã®ã§ãåé¡ã«ã¯ãªããŸããã
ãã«ãæéããèªåã®PCã§ãã«ãããŠããŸãã°å¶éã«ã¯ããããŸãããã§ã¯ã©ã¡ãã«ãããâŠ
æçµçã«Cloudflareãéžã³ãŸãããæ±ºãæã¯ãæ¢ã« Hono + Workers ã§ apiãµãŒããŒãæ§ç¯ããããšããã ãšããçç±ã§ããã
èŠä»¶ãå®çŸ©ããã
ããã°ãµã€ããæ§ç¯ãããšãªãã°ãèšäºã管çããããã«ãCMS(ã³ã³ãã³ããããŒãžã¡ã³ãã·ã¹ãã )ãã»ããã§ããæåã¯ç¡æã§äœ¿ãããããã¬ã¹CMSãµãŒãã¹ã®microCMS
ãªã©ã䜿ããããšèããã®ã§ãããå®éã«äœ¿ã£ãŠã¿ããšç¡æã§ã¯éåžžã«æ¡åŒµæ§ã«ä¹ãããã¡ãããšäœ¿ãããšæã£ãã課éããªããšãããŸããã§ããã
ããã§ããã«ãªèªåã¯ãCMSãèªäœãããããšæããŸããèšäºæ¬æã¯Zennã® web editor ã䜿ãããããŠãmdèšæ³ã§æžããããšæã£ãŠããã®ã§ã䜿çšã©ã€ãã©ãªå«ãAIãšå£æã¡ããŠèŠä»¶ã決ããŠãããŸããã
- NextããCloudflareã®CDNãæŽ»çšãã衚瀺ãçéã§ããããš
- Zennã©ã€ã¯ãªãšãã£ã¿ã«ããããš
| ã«ããŽãª | äœ¿çšæè¡ |
|---|---|
| ãã¬ãŒã ã¯ãŒã¯ | Next.js |
| ãã¹ãã£ã³ã° | Cloudflare Pages |
| ã¹ã¿ã€ãªã³ã° | TailwindCSS |
| UIã³ã³ããŒãã³ã | shadcn/ui |
| ã¢ãã¡ãŒã·ã§ã³ | framer-motion |
| ããŒã¯ããŠã³åŠç | ã» react-markdown ã» remark/rehype ã» prism.js |
| webãšãã£ã¿ãŒ | codemirror |
| ããŒã¿ããŒã¹ | Cloudflare D1 + DrizzleORM |
| èªèšŒ | Auth.js |
| ããªããŒã·ã§ã³ | Zod |
| ç»åã¹ãã¬ãŒãž | Cloudflare R2 |
| éçºç°å¢çš | ã» Biome ã» wrangler |
äœãããŠãã®ïŒïŒ
ã¯ããèŠä»¶ããåããéããZenn颚ãæèããããŠããã°ãã©ãããã©ãŒã ã§ãç¡ãã®ã«ãŽãªãŽãªã®Webã¢ããªã±ãŒã·ã§ã³ãäœãããšããŠããŸããã
ãããŠãå®éã«AIã«äžžæãããŠäœãå§ããŸãã
æåã®ãããžã§ã¯ãã»ããã¢ãããAIã«äžžæãããŠããããopen-next(Cloudflare Workersçš)ã®æ¹ã§ã»ããã¢ããããŠããŠãäžæŠãããã€ããŠã¿ãããšããããã¡ã€ã«ãµã€ãºå¶éã®ãšã©ãŒããç¹ã«ãã¯ã©ã€ã¢ã³ãã§ã¬ã³ããªã³ã°ããå¿ èŠããã管çããŒãžãããã¯ã§ããã
ãããããã®æãWorkersã®ãã¡ã€ã«ãµã€ãºå¶éãPagesãšåãã ãšæã£ãŠããããŸãã¯äžå¿ èŠãªäŸåããäŸåã®åçèªã¿èŸŒã¿ã掻çšãããã¡ã€ã«ãµã€ãºãäžããããšããŸããã
ããçµå±ãã¡ã€ã«ãµã€ãºå¶éãåé¿ããããšã¯ã§ãããAIã«çžè«ãããšãããWorkersãšPagesã§ãã¡ã€ã«ãµã€ãºå¶éãéããPagesã®ã»ããç·©ãã®ãšãç¹å¥ãªèšå®ãããªããŠãPagesã§Edge Runtimeãåããããšãå¯èœã ãšããããšãç¥ããnext-on-pagesã«åãæ¿ããŸããã
ãã®åŸãèŠä»¶ãå®è£ ããªãã现ããéšåã®åŸ®ä¿®æ£ãç¶ããŠãå®éã«å®æãããŸããã
AIã«äžžæãããŠããã®ã«ãé¢ããããåºæ¥äžãããŸã§ã«2é±éãèŠããŸããã
âå®éã®ãªããžããª
ãã®åŸãå®éã«éçšããŠã¿ãŸããããèšäºããŒãžãæ¿éããã®ãããããã©ãŒãã³ã¹ãæªããããŒãžé·ç§»é ãã
ãªããããªã£ãã®ã
- ç¡æã§ãã¹ãã£ã³ã°ãããŠããã£ãŠãããããµãŒããŒã®ã¹ããã¯ãäœã
- é¢åãããã£ãŠSSGãããããã®CI/CDãã€ãã©ã€ã³ãäœããªãã£ã â SSRã§åããŒãžãé ä¿¡ãããŠãã
- mermaidãKeXã®ã¬ã³ããªã³ã°ãã¯ã©ã€ã¢ã³ãåŽã§è¡ã£ãŠãã + äžèŠãªèšäºã§ããããã®CSS/JSãèªã¿èŸŒãŸããŠãã
- å€åä»ã«ã倧éã«ãããã ãã©ããããªã
èªåã®PCç°å¢ã§ããã°ãCPUè³æºã最沢ãªããšãD1ãR2ãä»®æ³çã«ããŒã«ã«ã«äœæããŠããã®ã§éä¿¡ã®ãªãŒããŒããããå°ãªãããšãªã©ã衚瀺ã®ããã©ãŒãã³ã¹ãæ°ã«ãªããªãçšåºŠã«ãªã£ãŠãããšèããããŸãããå®ç°å¢ã§ã¯ãããªã«CPUã匷ãããããªããCDNãæŽ»çšããŠããŠãéä¿¡é床ã§ããŒã«ã«ã«åãŠãããããããŸããã
ããããå«ããè€æ°ã®èŠå ããäœæã§ãããã»ã©ã®ããã©ãŒãã³ã¹äœäžãèŠãããã®ã ãšæããŸãã
ç²ãã¡ãã£ã
ããšããšåŒããããã§äœåããªãäžã2é±éãã£ãš10æéãããAIãšãã£ããããŠã«ããã£ãã®äœæ¥ãè¡ã£ãŠäœã£ããµã€ãããŽãã«ã¹ã ã£ãã®ã§ããæ°ããªãããŸããã ã¿ããªã«ã¯èŠãããªããèªåã䜿ãããããã°ãã管çè ã®éšåã«åãå ¥ããŠäœãããã®ãä»ã«ãªã£ãŠæãã°æ¬åœã«ãã«ã®æ¥µã¿ã ã£ããšæããŸãã
ã¯ã³ãã£ã³æŸçœ®ãããGoogleãindexããŠãããªãããªïœã£ãŠæã£ãŠäžå¿SearchConsoleã«ç»é²ã¯ãããã®ã®ãç²ãã¡ãã£ãŠèšäºãå¢ãããªãã£ãã®ã§ãã¯ãã€ã³ããã¯ã¹ã¯ãããâŠ
æ°ãã€ãã°4ã¶æçµã£ãŠ12æã«ãªã£ãŠããŸããã
äœãçŽã
4ã¶æã®éã«ãNextã®ä»£ããã«äœ¿ãã軜éãªãã¬ãŒã ã¯ãŒã¯ãç¡ãã調ã¹ãŠã¯ããŸããã
ããããã®è©±ãããã°ãµã€ãã®ãããªèŠä»¶ã§ããã°ãNextãNuxt(ç¹ã«Next)ã¯æ©èœãããªãŒã¹ãŒããŒãªãŒããŒã¹ããã¯ãããŠãäœèšãªæ©èœã®ãªã³ãã¬ãŒãããã®åãã«ããµã€ãºããã«ããªããã¡ãªã®ã§äœ¿çšãã¹ãã§ã¯ãããŸããã§ãããå®å
šã«SSGçšéã§äœ¿ãã°åŒ·åãªReactãšã³ã·ã¹ãã ã䜿çšã§ããã®ã§ã確ãã«éžæè¢ã«å
¥ãã®ã§ããããã Reactã䜿ãããã ããªããã軜éãªReactRouterããå®ã¯ãã¡ããã¡ãReact(å³å¯ã«ã¯JSX)ã䜿ããHono(ãã¬ãŒã ã¯ãŒã¯ãšããŠHonoX)ãªã©ããããŸãããããã°ãµã€ãã®çšéã§ã¯æåŒ·ã®SSGãã¬ãŒã ã¯ãŒã¯ã§ããAstroã䜿çšã§ããŸãã
ããããèªåãéžãã ã®ã¯SvelteKitã§ããã
ãªãã§SvelteKitïŒ
æåã¯ãã«ããµã€ãºãããå°ããããŠããã©ãŒãã³ã¹ãåäžããããšããã¢ãããŒã·ã§ã³ã§webãšãã£ã¿ãŒéšåãå«ãå®å šã«ç§»æ€ããããšããŠããããšã§ããã
Astroã¯ã³ã³ãã³ã衚瀺äžå¿ã®ãŠã§ããµã€ãã®æ§ç¯ã«æé©ãªã®ã§ãè€éãªãŠãŒã¶ãŒã®æäœã䌎ã管çç»é¢ã®æ§ç¯ã«ã¯åããŠããªãã®ã§ãã
ãŸããSvelteKitã¯ãNextã®ãããªã©ã³ã¿ã€ã ã§ã¯ãªããçŽç²ãªJSã«ãã«ãããã³ã³ãã€ã©ãªã®ã§ããããã«ããµã€ãºãäžããããšãã§ãããšèããããã§ãã
å®éã管çè ç»é¢ãéäžãŸã§å®è£ ããã®ã§ããã
ããããã®éšåã£ãŠå¿ èŠããªâŠïŒãµã€ã衚瀺éšåã ãäœã£ãŠããŒã«ã«ç°å¢ã§mdãã¡ã€ã«ãæžããŠãããã€ããã°ãããªããâŠïŒ
ã£ãŠããããæ°ãã€ããŠãŸãäœãçŽãå§ããã®ãçç±ã§ãã
仿ãã°ãæ°ããèŠä»¶ã§äœãçŽããªãå§åçã«Astroã®ã»ããé©ããŠãããšæããŸããæ¢ã«äœã£ã衚瀺éšåã®Svelteã³ã³ããŒãã³ãã䜿ãããšã ã£ãŠã§ããŸããâŠ
ã§ãã
æºè¶³ã§ãããã®ã«ãªã£ã
Astroã§äœã£ãã»ããè¯ãã£ããªãšçµæçã«ã¯æãã€ã€ããçŸç¶ã®ãã®ãµã€ããååãªããã©ãŒãã³ã¹ãåºãŠãããšæã£ãŠããŸãããSvelteã®èšæ³ãšãã«ããã£ãã§ããã®ã§å匷ã«ããªãè¯ãã£ãã®ããªãšæããŸããããããAstroã§äœã£ãŠãããReactããã®ãŸãŸäœ¿ã£ãŠããã§ããããããã
Svelteã®èãæ¹ã¯VueãšäŒŒãŠããéšåãå€ãããã(Vueã¯è§Šã£ãããšããªãããèããããšãããçšåºŠ)ã®ã§ãããããããVueãNuxtã«ãæãåºããŠã¢ãã³ããã³ããšã³ãã®æžãæ¹ããããã³ã«ãªãããããããŸãããð
è±ç·: Astroã¯å šéšäœ¿ãããïŒ
ã¡ãã£ãšè±ç·è©±ã§ãããAstroã¯äž»èŠãªUIã©ã€ãã©ãªããã¹ãŠãµããŒãããŠããŠãReact,Vue,Svelte,Solid,HTMXã®ã³ã³ããŒãã³ãã§èšè¿°ããããšãã§ããããã§ãã
ãããèªåã®ããã«ããã°ãµã€ããã»ãããšæã£ãŠããŠãããããäœãããæ¹ãããããã²Astroãéžæè¢ã«å ¥ããŠã¿ãŠãã ããïŒå ¬åŒã®ããã°ãã³ãã¬ãŒãããã£ãŠå°å ¥ãç°¡åã§ãã
ãã®ãµã€ãã«ã€ããŠ
äœãçŽããæè¡ã¹ã¿ãã¯ããã ãã£ãéšåã«ã€ããŠç޹ä»ããŸãã
æè¡ã¹ã¿ãã¯
| ã«ããŽãª | äœ¿çšæè¡ |
|---|---|
| ãã¬ãŒã ã¯ãŒã¯ | SvelteKit |
| ãã¹ãã£ã³ã° | Cloudflare Pages |
| ã¹ã¿ã€ãªã³ã° | TailwindCSS v4 |
| ã¢ãã¡ãŒã·ã§ã³ | Three.js, GSAP + ScrollTrigger |
| UIã³ã³ããŒãã³ã | shadcn-svelte |
| ããŒã¯ããŠã³åŠç | mdsvex, remark,rehype |
| ç»åã¹ãã¬ãŒãž | Cloudflare R2 |
| ããã±ãŒãžãããŒãžã£ãŒ | Bun |
ãã¶ã€ã³
倧éšåãAIã«ã€ãã£ãŠããããŸãããèªåã奜ããªè²ã®ãã¹ãã«ãã«ãŒãã¡ã€ã³ã«äœ¿ã£ãŠäžç芳ãšããŠã¯ãâã¢ãã£ãœãããããâãåçŸããŠããããŸãããæ¬åœã«äžéšã®çްããéšåã¯èªåã§èª¿æŽããŠããŸãã
ã§ãããã¹ãã«ã«ã©ãŒã«çœæåã§ã³ã³ãã©ã¹ãã確ä¿ã§ããªããŠæ³£ããã®ã¯å ç·ãèŠãã¥ãããã©èš±ããŠãããð
ããããŒã¢ãã¡ãŒã·ã§ã³
GSAPã䜿ã£ãŠãã¹ã¯ããŒã«ã«å¿ããŠèŠãé ãããã¢ãã¡ãŒã·ã§ã³ãå®è£ ããŠããããŸãããã¹ã¯ããŒã«ããŠã¿ãŠãð
Zenn颚ãç¬èªããŒã¯ããŠã³èšæ³
Zennããã¯ã£åèã«ãããã®ããã£ãã颚衚瀺çšã®ç¬èªããŒã¯ããŠã³èšæ³ãå®è£
ããŠããããŸããã
ã¡ãã»ãŒãžããã¯ã¹
:::message
ããã¯æ
å ±ã¡ãã»ãŒãžã§ããéèŠãªãç¥ããã«äœ¿ããŸãã
::: âå®éã®è¡šç€º
ããã¯æ å ±ã¡ãã»ãŒãžã§ããéèŠãªãç¥ããã«äœ¿ããŸãã
:::message alert
ããã¯èŠåã¡ãã»ãŒãžã§ããæ³šæãå¿
èŠãªå
容ã«äœ¿ããŸãã
::: âå®éã®è¡šç€º
ããã¯èŠåã¡ãã»ãŒãžã§ããæ³šæãå¿ èŠãªå 容ã«äœ¿ããŸãã
æãããã¿ã»ã¯ã·ã§ã³
:::details ã¯ãªãã¯ããŠå±é
é ããã³ã³ãã³ããããã«è¡šç€ºãããŸãã
é·ãã³ãŒããããã¯ãè£è¶³æ
å ±ãé ãã®ã«äŸ¿å©ã§ãã
::: âå®éã®è¡šç€º
ã¯ãªãã¯ããŠå±é
é ããã³ã³ãã³ããããã«è¡šç€ºãããŸãã é·ãã³ãŒããããã¯ãè£è¶³æ å ±ãé ãã®ã«äŸ¿å©ã§ãã
ãã£ãã颚UI
:::chat-left
Hello world!
::: âå®éã®è¡šç€º
Hello world!
:::chat-right
ããã«ã¡ã¯ã仿¥ã¯ã©ã®ãããªèŠä»¶ã§ããïŒ
::: âå®éã®è¡šç€º
ããã«ã¡ã¯ã仿¥ã¯ã©ã®ãããªèŠä»¶ã§ããïŒ
æ°åŒãµããŒã
æ°åŒã¯LaTeXèšæ³ã§èšè¿°ã§ããããã«ããŸããã
$$
E = mc^2
$$
$$
{egin{bmatrix}1&2&4\2&5&6end{bmatrix}}
$$ âå®éã®è¡šç€º
ã€ã³ã©ã€ã³æ°åŒã ã®ããã«æžããŸãã
éçºè ããã·ã¥ããŒã
å·çäœéšãåäžããããããéçºç°å¢å°çšã®ããã·ã¥ããŒããå®è£ ããŠããããŸããã
èšäºç®¡çæ©èœ
- å ¬éèšäºã»äžæžãã®äžèŠ§è¡šç€º
- åèšäºãžã®ã¯ã€ãã¯ã¢ã¯ã»ã¹
- å ¬éç¶æ ã®ãã£ã«ã¿ãªã³ã°
ã¡ãã£ã¢ç®¡çæ©èœ
ç»åãCloudflareR2ãžã¢ããããŒãã§ããããã«å®è£ ããŠããããŸããã以äžã®ãããŒã§ã¢ããããŒããèšäºã§äœ¿çšã§ããããã«ããŠããŸãã
- ãã©ãã°&ãããããŸãã¯éžæã§ã¢ããããŒã
- sharp.jsã䜿çšããWebP倿çšãšã³ããã€ã³ãã§ãã¡ã€ã«ãµã€ãºåæž
- Cloudflare R2 ãžã®èªåä¿å
- ã¯ã³ã¯ãªãã¯ã§Markdown圢åŒãã³ããŒ
èšäºã®å ¬éãããŒ
èšäºã®å
¬é㯠frontmatter ã® published ãã©ã°ã§å¶åŸ¡ããŠããŸãã
---
title: "èšäºã¿ã€ãã«"
published: false # true ã«ãããšå
Ž
--- éçºç°å¢ã§ã¯äžæžãèšäºããã¬ãã¥ãŒã§ããæ¬çªç°å¢ã§ã¯èªåçã«é衚瀺ã«ãªããŸãã
ãã³ãã¬ãŒãçæã¹ã¯ãªãã
æ°ããèšäºã®ãã³ãã¬ãŒããäœæããã¹ã¯ãªãããæžããŠããããŸããã以äžã®ã³ãã³ãã§äœ¿çšã§ããŸãã
bun run new-article --slug my-article-slug ããã«ãããããã©ã«ãã® frontmatter ãå«ãŸãããã³ãã¬ãŒããã¡ã€ã«ãçæãããŸãã
ä»åŸã«ã€ããŠ
ãã®èšäºãå«ãããµã€ãå šäœãã¿ããªã«èŠãŠããããããã«Googleå çã«indexããŠãããããšãç®æšã§ãã SEOã«ã€ããŠã¯æ¬åœã«äœãç¥ããªãã®ã§ãã³ã³ãã³ãã®æžãæ¹ãåŠãã§èšäºãå¢ããããããŠè²ãŠãŠãããšãšãã«ãå匷ãé²ããããšæã£ãŠããŸãã
AIæ€çŽ¢æä»£ã«éè¡ããŠããããã§ã¯ãããŸãããGoogleã«indexããŠããããªããã°AIæ€çŽ¢ããŒã«ã®åç §å ã«ããªããªãã®ã§ããããç®æšã«ãã®ãµã€ããæé·ã§ããããããªãšæã£ãŠããŸãã
ãŸããã®ãã¡ã€ã³ãåã£ãã°ã£ãããªã®ããã£ãŠãã°ããæéãããããšæããŸãããæ°æ¥œã«æ°é·ã«éçšããŠãããŸãã®ã§ããããã®èšäºãèŠã€ããããšãã§ãããå ±æããŠããããšå¬ããã§ãã

