# new-site

> **Tool `scripts/new-site.sh`** (script, Scripts). Start a website for a project: a VitePress site that logs the work and shows what it found.

Run it as `scripts/new-site.sh`. [Source on GitHub](https://github.com/tanepiper/game-frame/blob/main/scripts/new-site.sh).

## Its own help

This is the help text in the tool itself, as `./gameframe tool new-site` prints it.

```text
Start a website for a project: a VitePress site that logs the work and shows what it found.

  scripts/new-site.sh NAME "Title" ["One-sentence description"] [--single] [--manual] [--repo URL]
  ./gameframe run new-site NAME "Title" ...          the same, from a project made with GameFrame

Writes sites/NAME/ in the project (with --single, site/ instead, for a project that will only
ever have one site):
  .vitepress/config.mts   the title, the navigation, the diary in the sidebar, local search
  .vitepress/theme/       the default theme with the project's colours: set them from the game
  public/                 the diary's pictures and diagrams (WebP and SVG), from the first entry
  index.md                the front page; replace each TODO(site) line
  findings.md, status.md  docs/FINDINGS.md and docs/CHECKLIST.md, shown with @include (one copy)
  diary/                  the index of dated entries (YYYY-MM-DD-slug.md); write the first one
  package.json, .gitignore
and .github/workflows/sites.yml, which builds every site and publishes it on GitHub Pages,
when the project does not have it yet. With --manual the workflow runs only when started by
hand (the Actions tab or `gh workflow run sites.yml`), not on every push, to save Actions
minutes. The re-site skill says what goes on each page.
tools/site/check.py checks a site: includes, game material, diary entries, leftover TODOs.
It writes nothing if the folder exists. It does not run npm: run `npm install` in the folder.
```

## Named by

Skills: [re-site](/skills/re-site).
