Skip to content

Project Documentation ​

This project uses VitePress to power its documentation site.

Getting Started ​

Follow the steps below to install dependencies and run the VitePress dev server.

1. Install dependencies ​

Ensure you have Node.js installed (version 16 or higher is recommended).

Then run:

bash
npm install

Start dev server

bash
npm run docs:dev

Sender setup docs ​

The sender guides in dmarc-manager/senders/ are authored in Notion and pulled into this repo, then translated into the locale trees (de, es, fr, it, ja, ko, pt_BR, zh_TW).

1. Pull from Notion ​

Create a .env with a Notion integration token, and share the parent Notion page with that integration:

NOTION_TOKEN=secret_...
# optional overrides
NOTION_PAGE_ID=3c684b281bbf80b59f09d7d1400ee7fc
APP_NAME=DMARC Manager
bash
npm run notion:pull-sender-docs -- --dry   # preview, writes nothing
npm run notion:pull-sender-docs            # write dmarc-manager/senders/*.md

Every child page of the root page becomes one Markdown file, named from a slug of its title (How to configure SPF and DKIM for MailCamp → mailcamp.md). $APP_NAME in the Notion copy is substituted. Existing files are overwritten, so review the diff before committing.

2. Translate ​

Translation runs in Claude Code via the project skill in .claude/skills/translate-sender-docs/:

/translate-sender-docs                 # all senders, all locales
/translate-sender-docs de fr           # all senders, those locales
/translate-sender-docs mailcamp        # that sender, all locales
/translate-sender-docs mailcamp de     # that sender, that locale

Each translated file ends with a <!-- translated-from: <git blob sha> --> marker naming the English source it was made from. That marker is the only state: a missing target gets a full translation, a stale marker gets a diff-only translation of the changed passages, a matching marker is skipped. So commit the English source before translating — the sha must be reachable in git for the diff path to work.