AI Implementation feature(849): Landing Page and Login/Register Modal 1.00 (#12)

This commit was merged in pull request #12.
This commit is contained in:
2026-07-21 18:46:14 +00:00
parent 685a8bca84
commit cd97e40030
8 changed files with 88 additions and 365 deletions
+7 -3
View File
@@ -3,7 +3,7 @@ type: guide
title: Landing Page
description: How the public landing page renders, how the login + registration modal is opened, and what each form does.
tags: [guide, landing, login, register, ui]
timestamp: 2026-07-21T18:28:00Z
timestamp: 2026-07-21T18:45:54Z
---
# What you see
@@ -20,9 +20,13 @@ On a fresh visit the page shows, in order:
2. **Page title**`<h1 data-testid="landing-title">` rendered from
`BootstrapService.payload().pageTitle` (defaults to `HIPCTF`).
3. **Welcome card**`<article data-testid="landing-welcome">` whose
`innerHTML` is the sanitized render of
`innerHTML` is bound to the computed signal `welcomeHtml()`, i.e. the
sanitized HTML render of
`BootstrapService.payload().welcomeMarkdown` (via
`MarkdownService.render``marked` + `DOMPurify`).
`MarkdownService.render``renderMarkdownToHtml` `marked` +
`DOMPurify`). The binding **must** invoke the signal (`welcomeHtml()`),
not the signal object — see [Key Files Index](/architecture/key-files.md)
for the `landing.component.html` entry that pins this.
4. **Login button**`<button data-testid="landing-open-login">`.
5. **Blog list**`<section data-testid="landing-blog">` listing every
row returned by `GET /api/v1/blog/posts` (only `status='published'`