| name | workshop-standardization |
| description | Standardize a hands-on workshop into this site's common step-viewer format. USE WHEN docs/workshops/workshops.md is edited and a workshop entry contains `included: true`, or when the user asks to ํ์คํ/standardize a workshop. Reads the workshop's GitHub repo, generates docs/workshops/<slug>/index.md (step manifest), wires `folder: <slug>` in workshops.md, and updates the SEO files. DO NOT USE FOR solution pages (solutions/) or unrelated content.
|
Workshop standardization
์ด ์คํฌ์ docs/workshops/workshops.md ์ ์ํฌ์ต ํญ๋ชฉ์ ์ฌ์ดํธ ๊ณตํต ๋จ๊ณํ(step) ํฌ๋งท์ผ๋ก
ํ์คํํฉ๋๋ค. ํธ๋ฆฌ๊ฑฐ๋ ์ํฌ์ต ํญ๋ชฉ์ included: true ๋ง์ปค์
๋๋ค.
ํธ๋ฆฌ๊ฑฐ ํ๋ณ
docs/workshops/workshops.md ์์ ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ### ์ํฌ์ต ์ ๋ชฉ ํญ๋ชฉ์ด ๋์์
๋๋ค.
included: true ์ค์ด ์์
- ๊ฐ์ ํญ๋ชฉ์ GitHub ๋ ํฌ ๋งํฌ(
https://github.com/<owner>/<repo>)๊ฐ ์์
์ด๋ฏธ docs/workshops/<slug>/index.md ๊ฐ ์ต์ ์ํ๋ผ๋ฉด ๊ฑด๋๋๋๋ค(์ค๋ณต ์์ฑ ๊ธ์ง).
์ฌ๋ฌ๊ทธ(slug) ๊ฒฐ์
- ํญ๋ชฉ์
folder: <slug> ๊ฐ ์์ผ๋ฉด ๊ทธ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- ์์ผ๋ฉด ๋ ํฌ ์ด๋ฆ์ kebab-case ๋ก ๋ณํํด ์ฌ๋ฌ๊ทธ๋ฅผ ๋ง๋ค๊ณ (
AzureBasicWorkshop โ azure-basic-workshop),
ํ์คํ ํ folder: <slug> ๋ฅผ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค.
์ฌ๋ฌ๊ทธ๋ [a-z0-9-] ๋ง ์ฌ์ฉํฉ๋๋ค.
๋จ๊ณ(step) ์์ง
๋์ ๋ ํฌ์ ๊ธฐ๋ณธ ๋ธ๋์น ํธ๋ฆฌ(https://api.github.com/repos/<owner>/<repo>/git/trees/<branch>?recursive=1)๋ฅผ
์กฐํํ ๋ค, ์๋ ์ฐ์ ์์๋ก ๋จ๊ณ ๊ตฌ์กฐ๋ฅผ ํ๋ณํฉ๋๋ค. ์ฒซ ๋จ๊ณ๋ ํญ์ '๊ฐ์'๋ก ํต์ผํ๊ณ ,
๊ฐ์ ๋ค์๋ถํฐ ์ค์ ์ค์ต ๋จ๊ณ๋ฅผ ๋ฐฐ์นํฉ๋๋ค.
์ ํ A โ ๋จ๊ณ ํด๋ ๋ฐฉ์ (์: Azure Basic Workshop)
- ์ต์์์
README.md ๋ฅผ ๊ฐ์ง ํด๋๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒฝ์ฐ.
๋ณดํต 1. โฆ, 2. โฆ ์ฒ๋ผ ์ซ์๋ก ์์ํฉ๋๋ค.
- ํด๋ ์ด๋ฆ ์์ ์ซ์ ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ก ์์๋ฅผ ์ ํฉ๋๋ค.
- ๊ฐ ๋จ๊ณ source:
https://raw.githubusercontent.com/<owner>/<repo>/<branch>/<ํด๋๋ช
>/README.md
์ ํ B โ ๋จ๊ณ .md ํ์ผ ๋ฐฉ์ (์: Azure Landing Zone Workshop)
- ์ต์์์ ๋จ๊ณ๋ณ
.md ํ์ผ์ด ์ฌ๋ฌ ๊ฐ ์๊ณ ํด๋ ๋ถ๋ฆฌ๋ ์๋ ๊ฒฝ์ฐ.
- ์์๋ ๋ฃจํธ
README.md ํ๋จ์ ## Contents(๋ชฉ์ฐจ) ๋ชฉ๋ก์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค.
์: 1. Network Resource Deployment โ Network Resource Deployment.md.
Contents ํญ๋ชฉ ์ด๋ฆ๊ณผ ํ์ผ๋ช
์ ๋งค์นญํฉ๋๋ค(๋์๋ฌธ์ยท๊ณต๋ฐฑ ๋ฌด์ํ๊ณ ๊ทผ์ ๋งค์นญ).
- Contents ๊ฐ ์์ผ๋ฉด ํ์ผ๋ช
์ ์ฌ๋์ด ์ฝ๊ธฐ ์ข์ ์์(์ซ์ ์ ๋ โ ์ด๋ฆ)๋ก ์ ๋ ฌํฉ๋๋ค.
- ๊ฐ ๋จ๊ณ source:
https://raw.githubusercontent.com/<owner>/<repo>/<branch>/<ํ์ผ๋ช
>.md
(๊ฒฝ๋ก/ํ์ผ๋ช
์ ๊ณต๋ฐฑ์ %20 ๋ก URL ์ธ์ฝ๋ฉ)
- ๋ฃจํธ
README.md ๋ ๋จ๊ณ๋ก ๋ฃ์ง ์๊ณ ๊ฐ์์ ์ถ์ฒ๋ก๋ง ์ฌ์ฉํฉ๋๋ค.
์ ํ C โ ๊ตฌ์กฐ๊ฐ ๋ถ๋ช
ํํ ๊ฒฝ์ฐ (๋ถ์ ํ์)
- ํด๋/๋ชฉ์ฐจ/๋ค์ค md ๋ก ๋จ๊ณ๊ฐ ๋ช
ํํ ๋๋์ง ์์ผ๋ฉด, README ์ ์ฃผ์ ๋ฌธ์๋ฅผ ์ฝ์ด
์ํฌ์ต์ ๋ถ์ํ ๋ค ๋
ผ๋ฆฌ์ ๋จ๊ณ(์: ์ค๋น โ ๋ฐฐํฌ โ ๊ฒ์ฆ โ ์ ๋ฆฌ)๋ฅผ ์ง์ ๊ตฌ์ฑํฉ๋๋ค.
- ์ด๋๋ ์ฒซ ๋จ๊ณ๋ ๊ฐ์์ด๋ฉฐ, ๊ฐ ๋จ๊ณ ๋ณธ๋ฌธ์ด ์๋ณธ ํน์ ํ์ผ์ ๋์๋๋ฉด ๊ทธ ํ์ผ์ source ๋ก,
๋์ ํ์ผ์ด ์์ผ๋ฉด source ์์ด ๋ถ์ํ ์์ฝ์ ๋จ๊ณ ๋ณธ๋ฌธ์ผ๋ก ์์ฑํฉ๋๋ค.
๋งค๋ํ์คํธ ์์ฑ: docs/workshops//index.md
docs/workshops/_template/index.md ํ์์ ๋ฐ๋ฆ
๋๋ค. ๊ฐ์๋ ๋งค๋ํ์คํธ ๋ณธ๋ฌธ(์ฒซ ## ์ด์ )์
์์ฑํ๋ฉฐ, ๋ทฐ์ด๊ฐ ์ด๋ฅผ ์ผ์ชฝ์ ์ฒซ ํญ๋ชฉ '๊ฐ์'๋ก ํ์ํฉ๋๋ค(์ฒซ ๋จ๊ณ = ๊ฐ์ ํต์ผ).
# <์ํฌ์ต ์ ๋ชฉ>
repo: https://github.com/<owner>/<repo>
> <ํ ์ค ์์ฝ>
<๊ฐ์ 1~2 ๋ฌธ๋จ> โ ๋ฃจํธ README ์ ์๊ฐ๋ฅผ ๋ถ์ยท์์ฝ
### ์ค์ต ๋ชฉํ
- โฆ โ ์ํฌ์ต์ ๋ถ์ํด 3๊ฐ ๋ด์ธ๋ก ์์ฑ
### ์ค์ต ์ ์ค๋น์ฌํญ
- โฆ
### ์งํ ๋ฐฉ๋ฒ
์ผ์ชฝ์ ์ค์ต ๋จ๊ณ๋ฅผ ์์๋๋ก ์งํํฉ๋๋ค. โฆ
## <1๋ฒ์งธ ์ค์ต ๋จ๊ณ ์ ๋ชฉ>
source: https://raw.githubusercontent.com/<owner>/<repo>/<branch>/<ํด๋ ๋๋ ํ์ผ>
<๋จ๊ณ ํ ์ค ์ค๋ช
> โ ํด๋น ๋ฌธ์๋ฅผ ๋ถ์ํด ํ ์ค๋ก ์์ฝ
## <2๋ฒ์งธ โฆ>
source: โฆ
โฆ
๊ท์น:
## ๋จ๊ณ ์ ๋ชฉ ์ ์ฌ๋์ด ์ฝ๊ธฐ ์ข์ ํ๊ตญ์ด ์ ๋ชฉ์ ์ฌ์ฉํฉ๋๋ค(์๋ณธ ํด๋/ํ์ผ๋ช
์ ์๋ฏธ๋ฅผ ๋ฐ์,
ํ์ํ๋ฉด 1., 2. ๋ฒํธ๋ฅผ ๋ถ์
๋๋ค). ๊ฐ์๋ ## ๋จ๊ณ๊ฐ ์๋๋ผ ๋ณธ๋ฌธ์ผ๋ก ๋ก๋๋ค.
- ๋ณธ๋ฌธ์ ์์ผ๋ก ์ฎ๊ธฐ์ง ์์ต๋๋ค.
source: ๋ง ์ง์ ํ๋ฉด ๋ทฐ์ด๊ฐ ์๋ณธ์ ์ค์๊ฐ ๋ ๋๋งํ๊ณ
์ด๋ฏธ์ง/๋งํฌ ์๋ ๊ฒฝ๋ก๋ฅผ ์๋ ๋ณด์ ํฉ๋๋ค.
- ๊ฐ ๋จ๊ณ์ 'ํ ์ค ์ค๋ช
'์ ํด๋น ๋ฌธ์๋ฅผ ๋ถ์ํด ์์ฑํฉ๋๋ค(ํ์ผ๋ช
๊ทธ๋๋ก ๋์ง ์์).
- ์๋ณธ์ ๋จ๊ณ๊ฐ ํ๋๋ฟ์ด๋ฉด ๊ฐ์ + ๋จ๊ณ ํ๋(
## ์ค์ต)๋ก ๊ตฌ์ฑํฉ๋๋ค.
- Azure Basic Workshop / Azure Landing Zone Workshop ์ index.md ๋ฅผ ์ฐธ๊ณ ์์๋ก ์ผ์
๋์ผํ ํคยท๊ตฌ์กฐ๋ฅผ ์ ์งํฉ๋๋ค.
workshops.md ์ฐ๊ฒฐ
๋์ ํญ๋ชฉ์ ์๋๊ฐ ์๋์ง ํ์ธํ๊ณ , ์์ผ๋ฉด ์ถ๊ฐํฉ๋๋ค(์์ ๋ฌด๊ด).
### <์ํฌ์ต ์ ๋ชฉ> (๋ฐฐ์ง)
included: true
folder: <slug>
<์นด๋ ์ค๋ช
>
https://github.com/<owner>/<repo>
folder: <slug> ๊ฐ ์์ด์ผ ์นด๋์ '์ํฌ์ต ๋ฐ๋ก๊ฐ๊ธฐ' ๊ฐ workshop.html?slug=<slug> ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
- GitHub ๋งํฌ๋ ์ ์งํฉ๋๋ค('์ค์ต ๋ ํฌ' ๋ฒํผ์ผ๋ก๋ ๋
ธ์ถ).
SEO / ๋ถ์ ๋ฐ์ (ํ์)
์ ๋ทฐ์ด URL ์ด ์๊ธฐ๋ฏ๋ก ์๋๋ฅผ ํจ๊ป ๊ฐฑ์ ํฉ๋๋ค. ์ ์ ํธ์คํธ๋
https://microsoft.github.io/azure-solution-hub/ ์
๋๋ค.
docs/sitemap.xml โ <loc>โฆ/workshop.html?slug=<slug></loc> ํญ๋ชฉ ์ถ๊ฐ/<lastmod> ๊ฐฑ์ .
docs/llms.txt โ "Hands-on Workshops" ๋ชฉ๋ก์ ๋งํฌ ์ถ๊ฐ.
docs/workshop.html ์๋ Clarity/GA4 ์ค๋ํซ์ด ์ด๋ฏธ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋ณ๋ ์์
๋ถํ์.
๊ฒ์ฆ
get_errors ๋ก ํธ์งํ ํ์ผ ํ์ธ.
- ๋ก์ปฌ ํ๋ฆฌ๋ทฐ(live-server)์์
workshop.html?slug=<slug> ๋ฅผ ์ด์ด
์ข์ธก ๋จ๊ณ ๋ค๋น + ๊ฐ ๋จ๊ณ ์๋ณธ ๋ ๋๋ง์ ํ์ธํฉ๋๋ค.
์๋ ์คํ (workshops.md ๋ณ๊ฒฝ ์)
๋ ํฌ์๋ docs/workshops/workshops.md ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํ์คํ๋ฅผ ์ํํ๋ ์๋ํ๊ฐ ์์ต๋๋ค.
- ์ํฌํ๋ก:
.github/workflows/standardize-workshops.yml
(push ์ docs/workshops/workshops.md ๊ฒฝ๋ก ๋ณ๊ฒฝ ๊ฐ์ง, ์๋ ์คํ ๊ฐ๋ฅ)
- ์คํฌ๋ฆฝํธ:
scripts/standardize-workshops.mjs
(included: true ํญ๋ชฉ์ ์ฐพ์ ๋ ํฌ๋ฅผ ๋ถ์ํ๊ณ docs/workshops/<slug>/index.md ๋ฅผ
baseline ์ผ๋ก ์์ฑ, folder: ์ฐ๊ฒฐ, sitemap/llms ๊ฐฑ์ ํ ์ปค๋ฐ)
์ญํ ๋ถ๋ด:
- ์คํฌ๋ฆฝํธ(์๋) โ ์ ํ A/B ๋ฅผ ํ๋ณํด ๋จ๊ณ ๊ณจ๊ฒฉ์ ๋ง๋ค๊ณ ๋งํฌ/SEO ๋ฅผ ๋ง์ถฅ๋๋ค.
์ด๋ฏธ
index.md ๊ฐ ์์ผ๋ฉด ์ฝํ
์ธ ๋ ๊ฑด๋๋ฆฌ์ง ์๊ณ ์ฐ๊ฒฐ๋ง ๋ณด์ ํฉ๋๋ค.
- ์ด ์คํฌ(์์ด์ ํธ) โ baseline ๊ฐ์/๋จ๊ณ ์ค๋ช
์ ํ๊ตญ์ด๋ก ๋ค๋ฌ๊ณ , ์ ํ C(๊ตฌ์กฐ ๋ถ๋ช
ํ)
์ฒ๋ผ ๋ถ์์ด ํ์ํ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ํ์ง ๊ธฐ์ค์ Basic/Landing Zone ์์๋ฅผ ๋ฐ๋ฆ
๋๋ค.
๋ก์ปฌ์์ ์ง์ ๋๋ฆฌ๋ ค๋ฉด: node scripts/standardize-workshops.mjs
ํ์ง ๋ง ๊ฒ
- ์๋ณธ README ๋ณธ๋ฌธ/์ด๋ฏธ์ง๋ฅผ ๋ก์ปฌ๋ก ๋ณต์ ํ์ง ์์ต๋๋ค(
source: ๋ก ์ค์๊ฐ ๋ ๋๋ง).
- solutions/ ์ชฝ์๋ ๋ฑ๋กํ์ง ์์ต๋๋ค(์ํฌ์ต ์ ์ฉ).
- ์ฝํ
์ธ ๋ฅผ ์์๋ก ์ฌ์์ฑํ์ง ์์ต๋๋ค. ๊ฐ์ ์์ฝ๊ณผ ๋จ๊ณ ํ ์ค ์ค๋ช
๋ง ์์ฑํฉ๋๋ค.