diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml new file mode 100644 index 0000000..18835dc --- /dev/null +++ b/.github/workflows/verify.yml @@ -0,0 +1,21 @@ +name: Verify public site + +on: + pull_request: + push: + branches: [main] + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + - run: npm ci --ignore-scripts + - run: npm test diff --git a/.gitignore b/.gitignore index 37a08c3..974e4c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .worktrees/ .playwright-cli/ +node_modules/ diff --git a/index.html b/index.html index ae73fb8..536d62a 100644 --- a/index.html +++ b/index.html @@ -3,33 +3,34 @@ - devslab 오픈소스 — 라이브 데모 허브 + 데브스랩(DevsLab) 오픈소스 — 라이브 데모 허브 - + - + - + + @@ -376,12 +377,12 @@

// open-source

- devslab 오픈소스 + 데브스랩(DevsLab) 오픈소스
라이브 데모 허브

- 저희 SaaS 프로덕션에서 먼저 검증하고 커뮤니티에 공개하는 + 데브스랩(DevsLab)의 SaaS 프로덕션에서 먼저 검증하고 커뮤니티에 공개하는 라이브러리들입니다. 라이브 데모와 문서, 설치 링크를 한곳에 모았습니다.

@@ -534,7 +535,11 @@

devslab-examples

Open source by DevsLab
@@ -543,7 +548,7 @@

devslab-examples

\n`; +const source = readFileSync(target, 'utf8'); +const marker = /[\s\S]*?/g; +if ([...source.matchAll(marker)].length !== 1) throw new Error('Expected exactly one publisher block'); +const output = source.replace(marker, block); +if (process.argv.includes('--check')) { + if (source.replaceAll('\r\n', '\n') !== output.replaceAll('\r\n', '\n')) throw new Error('Run npm run build:publisher to refresh site-kit attribution'); +} else writeFileSync(target, output);