> For the complete documentation index, see [llms.txt](https://ascribed-dev.com/docs/llms.txt). This documentation describes Ascribe 0.4.4. Anything marked in main, not yet released isn't in that release yet.

# A page in the site output

> Reference · What ascribe resolve --emit site writes: a page as the site output gives it to a site, its frontmatter, a line of a versioned build, and how to read its elements without their script.

[`ascribe resolve PAGE --emit site`](https://ascribed-dev.com/docs/command/questions.md#ascribe-resolve) writes one page as the site output writes it, Ascribe's elements and all, without building the project: the file `ascribe build --emit site` writes for the page, which `@ascribed/astro` receives. This page says what's in it, for a writer asking what a directive becomes, an agent checking what a reader of the site gets, or a test of a site's integration.

## Its frontmatter

The site form has no `#` title: the title is in its frontmatter, which `--frontmatter` adds. That's the site output's frontmatter, which an Astro content collection reads, not the page's as the plain form writes it: with the [keys](https://ascribed-dev.com/docs/astro/reference.md#components) the site output adds, such as `formatted`, a title's formatted form as HTML, `available`, as a list of targets with their states, versions, and text, and `source`, the page's path from the content root. From `examples/astro-site`, whose titles can show code:

````markdown
---
type: page
title: loom.yaml options
description: Every Loom option.
permalink: options
formatted:
  title: <code>loom.yaml</code> options
source: Reference/Options.md
---

<ascribe-for-agents>

For AI agents: the documentation index is at [llms.txt](/docs/llms.txt), and this page is available as [Markdown](/docs/reference/options.md).

</ascribe-for-agents>

## Weave options <ascribe-attributes id="weave-options"></ascribe-attributes>

To use them, follow [the weave configuration section](/docs/guides/my-setup#weave-config) of the setup guide.

![The weave diagram](./weave.png)<ascribe-attributes width="120"></ascribe-attributes>

```yaml title="loom.yaml"
weave:
  threads: 4
```
````

Tested with ascribe 0.4.4 on Linux.

For a line of a versioned build, the page's links are the line's, under its base path, and `available` is the page's targets. From `examples/quill`, `ascribe resolve upgrade.md --build site@3.4 --emit site --frontmatter`:

```markdown
---
type: page
title: Upgrade the agent
description: What each release of self-managed Quill changes, and what to do when you upgrade.
available:
- target: self-managed
  dimension: deployment
  states:
  - ga
  text: self-managed (GA)
source: upgrade.md
---

Each release of self-managed Quill adds to the agent. 3.5 adds [webhooks](/webhooks/)<ascribe-attributes data-ascribe-release-line="3.5"></ascribe-attributes>, and reads its settings from a new place: see [Set the API key](/3.4/configure-legacy/#set-the-api-key).
```

Tested with ascribe 0.4.4 on Linux.

## Assets and anchors

The site form has no source anchors, as `ascribe build` writes none without `--anchors`. Images and linked files are referred to as the site output refers to them, relative to the page's file, and none is copied: a path under `_ascribe/` names where a build would put the file, which doesn't exist until one does.

## Reading the site output

The site output's elements are custom elements that `@ascribed/elements` defines, and their Markdown reads without the script. What a reader of `--emit site`, such as an agent, should know:

- **`<ascribe-for-agents>` is the site's note for agents, not the page's text.** It opens each page, when the build publishes the outputs for agents, and points to `llms.txt` and the page's Markdown; the element library hides it from sight.

- **Tabs hold every panel,** as a page without JavaScript shows them. A reader of the site sees one `<ascribe-tab>` at a time, chosen by its `<ascribe-tabs>`'s `sync` [dimension](https://ascribed-dev.com/docs/glossary.md#dimension).

- **An attribute marker isn't content.** `<ascribe-attributes id="connect"></ascribe-attributes>` after a heading or an image carries its attributes for the site to apply; the heading's text ends before it.

- **A glossary link's `title` is the term's definition,** written so a reader sees it on hover, beside a marker naming the term:

  ```markdown
  A [rollout](/reference/glossary/#rollout "A plan for turning a flag on for a growing share of users: by percentage, by segment, or on a schedule.")<ascribe-attributes data-ascribe-term="rollout"></ascribe-attributes> turns a flag on for more users over time, so a problem reaches a few users instead of all of them.
  ```

  Tested with ascribe 0.4.4 on Linux.

- **An [availability](https://ascribed-dev.com/docs/glossary.md#availability) badge** is an `<ascribe-availability>` element of `<ascribe-availability-target>`s, each with its target, dimension, and states as attributes, and its text as the reader sees it.
