2.2 KiB
| title | status | type | priority | created_at | updated_at |
|---|---|---|---|---|---|
| Add contact footer to all service front-ends | todo | task | low | 2026-03-10T23:29:17Z | 2026-03-10T23:29:17Z |
Background
The root TODO.md calls for a footer on every service front-end with contact info:
Contact:
<site>@elijah.run
Where <site> depends on the service.
Target services and email addresses
| Service | Front-end type | Contact email |
|---|---|---|
quotesdb |
Yew (Rust/Wasm) | quotes@elijah.run |
edu |
mdbook static site | vibedbooks@elijah.run |
| Blog editor | Yew (not yet built) | editor@elijah.run |
Implementation
quotesdb/ui
Add a Footer component to the Yew app:
- Create
quotesdb/ui/src/components/footer.rs(or add inline toapp.rs). - Render a
<footer>element at the bottom of every page with the text:Contact: quotes@elijah.run - Use an
<a href="mailto:quotes@elijah.run">tag so it is clickable. - Include the footer in the top-level layout so every route shows it.
edu (mdbook)
mdbook supports injecting HTML before/after the content via the [output.html] table in book.toml:
[output.html]
additional-js = []
additional-css = []
Or use the before-content / after-content HTML templates. More precisely, create edu/theme/footer.hbs with the footer markup and register it in book.toml.
Alternatively (simpler): add a theme/ directory with an index.hbs that extends the default template and appends the footer. The mdbook docs for custom theming describe this approach.
Simplest option: add footer.html fragment via [output.html] additional-js hack, or just add a sentence at the bottom of each page — but that is not scalable.
Recommended approach for mdbook: Use mdbook's theme/index.hbs override (copy the default from the mdbook source) and add the footer HTML before the closing </body> tag:
<footer style="text-align:center;padding:1em;opacity:0.6">
Contact: <a href="mailto:vibedbooks@elijah.run">vibedbooks@elijah.run</a>
</footer>
Files involved
edu/theme/index.hbs(new — copy from mdbook default, add footer)edu/book.toml(may need[output.html] theme = "theme"entry)quotesdb/ui/src/components/footer.rs(new) or similar