Authors and tags
Credit each entry to an author, who then appears in the byline, in an author box and in the page's structured data. Label entries with tags, which each content type keeps as its own colored list.
What it is
| Authors | Content tags | |
|---|---|---|
| Scope | One list for the whole site | One list per content type |
| Managed in | Content > Authors (/admin/authors) | Content > Content types, a type's Manage Tags action, and inline in the editor |
| An entry holds | One author (authorId, with the name copied to authorName) | Any number of tags (tags, and tagsWithColors) |
| On the page | Byline, author box, the Article's schema.org author | Tag pills, the schema.org keywords, related entries |
An author is not a user account: guest and past writers need no sign-in, and the author record holds only public details.
Content tags are not contact tags. Contact tags label people in your audience (Audience), and signup form tags label people who joined a form (Signup forms). The three lists are separate.
Turn it on or off
Authors and content tags are part of the Content feature (content). With content off, Content > Authors and the tag screens go, and /admin/authors shows the not-found page. The Authors and Tags_{slug} data stays.
Set it up
Nothing is required. The first time an admin opens the content editor or the Authors page on a site with no authors, that admin becomes the first author and the default. To add others:
Open Content > Authors and choose New author.
Fill in the name (the only required field), job title, a short bio, a photo URL, the author's own site, and profile links (one URL per line).
Use the star (Use as default for new content) to make an author the default: new entries start with that author selected. The first author you add on an empty site becomes the default.
For a website's author and tag plan, see Add authors and tags.
Use it
Credit an author
In the editor, pick the author on the Basic tab, then publish. The published page gets:
- the byline (
{{ authorName }}) at the top and on list cards; - the author box at the end, with photo, job title, bio and a link to the author's URL, shown only when the entry has an author;
- a schema.org
Personas the Article'sauthor, with the profile links assameAs(see SEO and discoverability).
The default detail template already has the author box. In your own template, use the author.* bindings listed on Templates and hide the box with data-arc-if="author.name".
A bulk import can name authors in an Author column: each name is matched to an existing author, ignoring case and extra spaces, or a new author is created.
Tag an entry
In the editor, type in the tags box and pick a tag, or type a new one and press Enter (or choose Create) to add it to the type's list with a color chosen for you. The new tag goes on the entry straight away and is stored with the entry when it is saved. Tags show as colored pills: a template loops them with data-arc-loop="tags" ({{ name }}, {{ color }}), or uses tagsHtml and tagsDisplay on list cards. Tags also feed the search for related entries.
To manage a type's tags (rename, recolor, delete, see usage), open Content > Content types and choose Manage Tags on the type.
An entry keeps its own copy of each tag's name and color. Renaming, recoloring or deleting a tag changes the tag list only: entries tagged earlier keep the old name and color until you edit and publish them again.
Edit or delete an author
Edits reach a page the next time it is published. Deleting an author keeps the name stored on each entry as plain text: the byline (authorName) and list cards still show it, while the author box (author.*) and the author in the page's structured data disappear from pages published after that. Deleting the default author clears the default.
Extend it
- Author and tag data is public to read, so pages in
src/custom/can list authors fromAuthors, or a type's tags fromTags_{slug}. See Add pages and routes. - New author fields are a core change: the admin form,
src/shared/models/author.model.tsandfunctions/src/shared/authors.tsmust agree.
What it stores
| Where | What |
|---|---|
Authors/{id} | name, slug (derived from the name), bio, photoUrl, jobTitle, url, sameAs (list of http and https URLs) |
Settings/discoverability, field defaultAuthorId | The default author |
Tags_{slug}/{id} | label, color, contentTypeSlug, usageCount |
| Each entry | authorId, authorName; tags (names) and tagsWithColors ({ name, color }) |
Deleting a content type deletes its Tags_{slug} collection, unless another type still uses the slug. Authors and tags have no Cloud Functions of their own; publishing reads them (functions/src/shared/authors.ts).
Who can do what
| Data | Read | Write |
|---|---|---|
Authors | Anyone | Admins |
Tags_{slug} | Anyone | Admins (and the reserved editor role) |
Settings/discoverability | Admins | Admins |
See Roles and claims.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| No author box on a published page | The entry has no author, the author was deleted, or the page was published before the author was set. Pick an author and publish again. A custom template needs the author box markup. |
| An author's new photo or bio is not on the site | Published pages keep what they were built with. Publish the entries again, or rebuild all pages with npm run seed:dev (seed:prod for production). Publishing may take up to five minutes to see an author change. |
| The Authors page shows an error and an empty list | The Firestore rules for Authors are not deployed. |
| A renamed tag still shows its old name | See the trap under Tag an entry. |
| An author's profile link is missing | Only URLs that start with http:// or https:// are kept. |