Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
node-version: "22"
cache: npm

- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/refresh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
node-version: "22"
cache: npm

- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20
22
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Local checks

Use Node.js 20 or newer.
Use Node.js 22 or newer.

```bash
npm ci
Expand Down
34 changes: 30 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

EngineerProfile builds a local engineering portfolio from public repository data.
It stores repository metadata, commits, releases, privacy settings, and preview
paths in SQLite. It publishes a static site from these records.
paths in SQLite. It publishes a static site from these records with a named theme.

## Value

Expand Down Expand Up @@ -43,15 +43,16 @@ flowchart LR
| `src/changelog/` | Prefer release notes and fall back to commit groups. |
| `src/privacy/` | Hide projects and block sensitive commit messages. |
| `src/preview/` | Capture fixed viewport screenshots with Playwright. |
| `src/publish/` | Render HTML, changelog files, and preview assets. |
| `src/publish/site.ts` | Render HTML, changelog files, and preview assets. |
| `src/publish/themes.ts` | Register named themes and resolve presentation settings. |
| `fixtures/` | Provide deterministic demo data and local preview pages. |

The refresh command runs each stage in a fixed order.
If a preview fails, the command reports the skip and keeps the rest of the snapshot.

## Setup

Use Node.js 20 or newer.
Use Node.js 22 or newer.

```bash
npm ci
Expand All @@ -74,6 +75,10 @@ The loader accepts repository limits from 1 through 100.
It rejects malformed values before network access.
CLI `--config`, `--data`, and `--output` options override file values.

The `theme` field selects a named presentation.
Valid names are `default` and `light`.
Omit the field to use the default theme.

Run a network-backed refresh with the checked-in settings:

```bash
Expand All @@ -94,6 +99,22 @@ npm run refresh
Do not put a token in repository files.
Use `.env.example` as a variable reference.

## Themes

Each theme defines the color scheme and CSS variables for the published site.
The `default` theme uses a dark palette with blue accents.
The `light` theme uses pale panels with dark text.

Build the demo in the light theme:

```bash
npm run demo -- --theme light
```

The `--theme` option works on the `demo`, `publish`, and `refresh` commands.
It overrides the theme from the configuration file.
An unknown theme name fails the command before any output is written.

## Sample output

The fixture set contains `signal-router` and `metrics-kit`.
Expand All @@ -119,6 +140,7 @@ Build before direct CLI commands.
| Command | Result |
| --- | --- |
| `npm run demo` | Run the complete fixture pipeline. |
| `npm run demo -- --theme light` | Run the demo with the light theme. |
| `npm run ingest -- octocat --limit 3` | Load public repository evidence. |
| `npm run ingest -- --fixture` | Load fixture records only. |
| `npm run capture -- --fixture` | Capture local fixture pages. |
Expand Down Expand Up @@ -172,6 +194,7 @@ The test suite covers these core behaviors:
- Configured refresh orchestration.
- Release source links.
- Deterministic HTML output.
- Theme resolution and deterministic themed publishing.
- Playwright screenshot capture.

Run the local checks:
Expand Down Expand Up @@ -205,9 +228,12 @@ The fixture pipeline provides deterministic data for repeatable checks.
| --- | --- | --- |
| v0.1 | Complete | Fixture demo, GitHub ingest, changelog, capture, publish, and privacy controls. |
| v0.2 | Complete | Checked-in configuration, coordinated refresh command, and scheduled artifact workflow. |
| v0.3 | Next | Custom themes and deployment adapters. |
| v0.3 | In progress | Named themes shipped. Deployment adapters remain. |
| v0.4 | Later | Commit-diff summaries and an RSS feed. |

v0.3 ships the `default` and `light` themes.
Deployment adapters are the remaining part of v0.3.

## License

MIT. See [LICENSE](LICENSE).
1 change: 1 addition & 0 deletions engineer-profile.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"repositoryLimit": 5,
"dataDir": "data",
"outputDir": "output",
"theme": "default",
"privacy": {
"hiddenProjects": [],
"redactEmails": true,
Expand Down
Loading
Loading