Research
The parts every paper page needs: a header, figures, equations, citations, BibTeX, and a publication list.
Experimental May change in any minor version before 1.0.
In this chapter 14 pages
Paper header
Example title: Higher-order message passing on cell complexes
- 1 Example University
- 2 Another Institute
Example Venue 2026
<PaperHeader
venue="NeurIPS 2026"
title="..."
authors={[{ name: "John Doe", affiliations: [1], equal: true }, ...]}
affiliations={["Example University"]}
me="John Doe"
links={[{ label: "Paper", href: "/paper.pdf", icon: "paper" }, { label: "Code", href: repo, icon: "code" }]}
/>The title is the page's h1. When the header sits inside another page, as it does above, pass level=2. Pass me with your name as it reads in authors to set it in bold, as on the publication wall; the other names drop to regular weight. In plain HTML, give your li the class ply-me.
The title sizes to the header's own width, not the window's, so it sets the same in a column beside an exhibit as across the page. It runs about 22 characters to a line, and longer lines for a long title, so most titles keep to three lines. A title with a subtitle (the part after the first colon) sets the name in wood type and the subtitle under it in the text face. The colon stays in the heading, hidden, so screen readers and copies keep the whole title. Pass split={false} to keep the whole title in wood type. In plain HTML, write the subtitle as <span class="ply-visually-hidden">: </span><span class="ply-paper__subtitle">...</span> inside the heading, and set --_len (the length of the name) and --_chars (its longest word) on the heading, as the component does.
Equations
KaTeX renders math at build time, so pages ship HTML and MathML and no math script. The Hodge Laplacian on -simplices combines a down and an up part:
<p>... on <M tex="k" />-simplices ...</p>
<Equation tex={String.raw`L_k = B_k^{\top} B_k + B_{k+1} B_{k+1}^{\top}`} num={1} />Equation and M bring KaTeX's stylesheet, so only pages with math load it. When the TeX contains a backslash, pass it as tex={String.raw`...`}: Astro 7 reads backslash sequences inside quoted attributes as escape characters, so \binom in quotes arrives as a backspace and inom. The components stop the build with a clear message if that happens.
Citations
Hover or focus a citation to see the reference without leaving the sentence[1]Example reference title
E. Author, F. Author
Example Journal, 2024. The number links to the reference list.
- E. Author, F. Author. Example reference title. Example Journal, 2024.
<Cite n={1} title="..." authors="..." venue="..." year={2024} />The card stays open while the pointer is on it and closes with Escape. In plain HTML, load js/cite.js (it is part of js/all.js).
Figures
On an article page, margin puts a small figure in the margin after the text, beside the paragraph after it. On narrow screens it stays in the text. Every other figure keeps to the text column, even with wide, which runs a figure past the text only on a docs page.
<Figure num={2} margin>
<img src={plot.src} alt="..." />
<Fragment slot="caption">What the figure shows, then how to read it.</Fragment>
</Figure>BibTeX
@inproceedings{author2026example,
title = {Example title: Higher-order message passing on cell complexes},
author = {Author, A. and Doe, John and Author, B.},
booktitle = {Example Venue},
year = {2026}
}Publication wall
Publications grouped by year, the year in wood type, the site owner's name in bold in each author list.
2026
2025
Example title: an earlier preprint
arXiv preprint
<PubList pubs={pubs} me="John Doe" />