Every page's browser tab read "Webhooker" because parsePageTemplate parsed the page file before htmlheader.html. In html/template a later definition of a template name replaces an earlier one, except that an empty one never does, so the header's {{block "title"}} fallback replaced each page's {{define "title"}}. Page content was never affected only because base.html's {{block "content"}} is empty.
The page file is now parsed last. The set is created with template.New(pageFile), so it is still named after the page and the page's {{template "base" .}} is still what Execute runs; the comment that required the page file to be listed first is replaced to match.
TestEveryPageRendersItsOwnTitle renders every page template through the real template set and checks the tab title the page declares. A page that fails to render shows the error page's title instead, so it fails there too. TestTitleFallbackIsWebhooker checks the "Webhooker" fallback.
Judgement call: the fallback is checked on htmlheader.html alone, not through a page set, because every page declares a title and a test-only page would be needed otherwise.
Deviation: the issue's request for a cache-defeated script/cibuild run was dropped by the repo manager; it was not run.
Model: opus-5-5
Every page's browser tab read "Webhooker" because `parsePageTemplate` parsed the page file before `htmlheader.html`. In `html/template` a later definition of a template name replaces an earlier one, except that an empty one never does, so the header's `{{block "title"}}` fallback replaced each page's `{{define "title"}}`. Page content was never affected only because `base.html`'s `{{block "content"}}` is empty.
The page file is now parsed last. The set is created with `template.New(pageFile)`, so it is still named after the page and the page's `{{template "base" .}}` is still what `Execute` runs; the comment that required the page file to be listed first is replaced to match.
`TestEveryPageRendersItsOwnTitle` renders every page template through the real template set and checks the tab title the page declares. A page that fails to render shows the error page's title instead, so it fails there too. `TestTitleFallbackIsWebhooker` checks the "Webhooker" fallback.
Judgement call: the fallback is checked on `htmlheader.html` alone, not through a page set, because every page declares a title and a test-only page would be needed otherwise.
Deviation: the issue's request for a cache-defeated `script/cibuild` run was dropped by the repo manager; it was not run.
Model: opus-5-5
parsePageTemplate parsed the page file before htmlheader.html. A later
definition of a template name replaces an earlier one (an empty one
never does), so htmlheader.html's {{block "title"}} replaced every
page's {{define "title"}} and every tab read "Webhooker". The page file
is now parsed last, into a set named after it, so it stays the entry
point.
A new test renders every page template and checks its title; the
"Webhooker" fallback is checked on htmlheader.html alone, since every
page declares a title.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Every page's browser tab read "Webhooker" because
parsePageTemplateparsed the page file beforehtmlheader.html. Inhtml/templatea later definition of a template name replaces an earlier one, except that an empty one never does, so the header's{{block "title"}}fallback replaced each page's{{define "title"}}. Page content was never affected only becausebase.html's{{block "content"}}is empty.The page file is now parsed last. The set is created with
template.New(pageFile), so it is still named after the page and the page's{{template "base" .}}is still whatExecuteruns; the comment that required the page file to be listed first is replaced to match.TestEveryPageRendersItsOwnTitlerenders every page template through the real template set and checks the tab title the page declares. A page that fails to render shows the error page's title instead, so it fails there too.TestTitleFallbackIsWebhookerchecks the "Webhooker" fallback.Judgement call: the fallback is checked on
htmlheader.htmlalone, not through a page set, because every page declares a title and a test-only page would be needed otherwise.Deviation: the issue's request for a cache-defeated
script/cibuildrun was dropped by the repo manager; it was not run.Model: opus-5-5
parsePageTemplate parsed the page file before htmlheader.html. A later definition of a template name replaces an earlier one (an empty one never does), so htmlheader.html's {{block "title"}} replaced every page's {{define "title"}} and every tab read "Webhooker". The page file is now parsed last, into a set named after it, so it stays the entry point. A new test renders every page template and checks its title; the "Webhooker" fallback is checked on htmlheader.html alone, since every page declares a title. Model: opus-5-5Review passed: each page now shows its own title in the browser tab, as #117 asks.
Model: opus-5-5