diff --git a/.gitattributes b/.gitattributes
index 14a33c8..6377a04 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,8 +1,11 @@
-* text=auto
+* text=auto
-*.md text eol=lf
-*.yml text eol=lf
-*.yaml text eol=lf
-*.json text eol=lf
+*.md text eol=lf
+*.xml text eol=lf
+*.yml text eol=lf
+*.yaml text eol=lf
+*.json text eol=lf
-pnpm-lock.yaml text eol=lf linguist-generated
+pnpm-lock.yaml text eol=lf linguist-generated
+
+.run/* linguist-generated
diff --git a/.gitignore b/.gitignore
index 9041e00..baf2f40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,8 @@
.idea/
.vscode/*
+!.vscode/extensions.json
+!.vscode/launch.json
+!.vscode/tasks.json
.claude/worktrees/
diff --git a/.prettierignore b/.prettierignore
index 4dfd8f9..fbe32c1 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -14,4 +14,6 @@ pnpm-lock.yaml
.idea/
.vscode/*
-.vscode/extensions.json
+!.vscode/extensions.json
+!.vscode/launch.json
+!.vscode/tasks.json
diff --git a/.run/format-check.run.xml b/.run/format-check.run.xml
new file mode 100644
index 0000000..6eb628b
--- /dev/null
+++ b/.run/format-check.run.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/format.run.xml b/.run/format.run.xml
new file mode 100644
index 0000000..ecc8208
--- /dev/null
+++ b/.run/format.run.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/lint-md.run.xml b/.run/lint-md.run.xml
new file mode 100644
index 0000000..3b090ec
--- /dev/null
+++ b/.run/lint-md.run.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..61d1898
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["esbenp.prettier-vscode", "editorconfig.editorconfig", "davidanson.vscode-markdownlint"]
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..e37a8d6
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,4 @@
+{
+ "version": "0.2.0",
+ "configurations": []
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..5d4f962
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,26 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "type": "npm",
+ "script": "format",
+ "label": "format",
+ "detail": "prettier -w .",
+ "problemMatcher": []
+ },
+ {
+ "type": "npm",
+ "script": "format-check",
+ "label": "format-check",
+ "detail": "prettier -l .",
+ "problemMatcher": []
+ },
+ {
+ "type": "npm",
+ "script": "lint-md",
+ "label": "lint-md",
+ "detail": "markdownlint-cli2",
+ "problemMatcher": []
+ }
+ ]
+}
diff --git a/README.md b/README.md
index dc3adad..26bd456 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,10 @@
Template repository for bootstrapping new `dnd-mapp` repositories, with shared tooling and CI pre-configured.
+## Prerequisites
+
+- [mise](https://mise.jdx.dev/) (recommended): manages the Node.js and pnpm versions this repo pins in `package.json`'s `devEngines` field. Run `mise install` after installing it to pick up matching versions automatically.
+
## Installation
Click **Use this template** on GitHub to create a new repository from this one. In the new repository, install dependencies and set up the Husky git hooks:
@@ -12,6 +16,21 @@ pnpm install
Then update `package.json`'s `name` and `description`, and this README, to match the new repository.
+## Editor setup
+
+Configure your editor to run Prettier on save, so files match this repo's `.prettierrc.json` without needing `pnpm format` before every commit.
+
+- **VS Code**: install the recommended [Prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) (VS Code prompts for it automatically via `.vscode/extensions.json`), then add to your `settings.json`:
+
+ ```json
+ {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": true
+ }
+ ```
+
+- **WebStorm**: open Settings → Languages & Frameworks → JavaScript → Prettier, and check **Run on save**. WebStorm auto-detects the local `prettier` package and this repo's config.
+
## Usage
```bash