Skip to main content

Update Header

Refresh the header in your README.md from nova.config.json.

Summary

The update-header recipe rewrites the header of a README.md file so the project title, logo, and homepage link stay in sync with nova.config.json. It reuses the exact builder the generate must-haves read-me command uses, so the spliced header is byte-identical to a freshly generated region.

The recipe only touches the marked region. Everything before the <!-- nova-region: header --> marker and everything after the <!-- nova-region-end: header --> marker is left byte-identical, so hand-written prose around the header is never disturbed.

Prerequisites

  • An existing README.md — The recipe updates a file in the project root; it does not create one. Use generate must-haves read-me to create the initial file.
  • The header region markers — The README.md must contain the <!-- nova-region: header --> and <!-- nova-region-end: header --> markers. A generate must-haves read-me file has them by default.
  • A project titleproject.name.title in nova.config.json so there is a header to render. The urls.homepage and urls.logo values are used when present.

Behavior

The recipe follows an in-place splice so it can only ever rewrite the region it owns.

  • Region gate — The header region markers must both be present and correctly ordered. If the markers are absent, misordered, or the README.md was not generated by Nova, the recipe warns that the region markers were not found and returns without writing.
  • Region-only splice — Only the content between the markers is replaced. The markers and all content outside them are preserved exactly.
  • Not applicable — When the current nova.config.json yields no header, the recipe warns and returns without touching the file.
  • Idempotent — When the regenerated header already matches the file on disk, the recipe reports that the header is already up to date and makes no write.

Settings

Settings are configured in nova.config.json under the recipes.read-me key. The update-header recipe is controlled by a single enabled toggle:

json
{
  "recipes": {
    "read-me": {
      "update-header": {
        "enabled": true
      }
    }
  }
}

When the recipe is not enabled, it warns and returns without touching any files.

Usage

Options

FlagDescription
-d, --dry-runRun without writing any files.
-r, --replace-fileReplace the original file without creating a backup.