@inditextech/docouture-cli 0.1.0-SNAPSHOT.41.1 → 0.1.0-SNAPSHOT.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/commands/new.js +21 -42
- package/build/commands/upgrade.js +15 -15
- package/build/lib/agents-md.js +1 -1
- package/build/lib/doctor-checks.js +15 -25
- package/build/templates/agent-support/AGENTS.md +28 -13
- package/package.json +3 -3
- package/build/templates/agent-support/.claude/skills/docs-internals/SKILL.md +0 -53
- package/build/templates/agent-support/.claude/skills/docs-internals/reference/antora-extensions.md +0 -54
- package/build/templates/agent-support/.claude/skills/docs-internals/reference/naming.md +0 -41
- package/build/templates/agent-support/.claude/skills/docs-internals/reference/page-patterns.md +0 -238
- package/build/templates/agent-support/.claude/skills/docs-versioning.versioned/SKILL.md +0 -37
- package/build/templates/agent-support/.claude/skills/docs-versioning.versioned/reference/releasing.md +0 -106
- package/build/templates/agent-support/.claude/skills/documenting-your-repo/SKILL.md +0 -55
- package/build/templates/agent-support/.claude/skills/documenting-your-repo/reference/content-sourcing.md +0 -55
- package/build/templates/agent-support/.claude/skills/documenting-your-repo/reference/maintenance-loop.md +0 -68
- package/build/templates/agent-support/.claude/skills/documenting-your-repo/reference/structure-planning.md +0 -102
- package/build/templates/agent-support/.claude/skills/writing-docs-pages/SKILL.md +0 -112
- package/build/templates/agent-support/.claude/skills/writing-docs-pages/reference/docouture-blocks.md +0 -170
- package/build/templates/agent-support/.claude/skills/writing-docs-pages/reference/language-basics.md +0 -402
- package/build/templates/agent-support/.opencode/skills/docs-internals/SKILL.md +0 -53
- package/build/templates/agent-support/.opencode/skills/docs-internals/reference/antora-extensions.md +0 -54
- package/build/templates/agent-support/.opencode/skills/docs-internals/reference/naming.md +0 -41
- package/build/templates/agent-support/.opencode/skills/docs-internals/reference/page-patterns.md +0 -238
- package/build/templates/agent-support/.opencode/skills/docs-versioning.versioned/SKILL.md +0 -37
- package/build/templates/agent-support/.opencode/skills/docs-versioning.versioned/reference/releasing.md +0 -106
- package/build/templates/agent-support/.opencode/skills/documenting-your-repo/SKILL.md +0 -55
- package/build/templates/agent-support/.opencode/skills/documenting-your-repo/reference/content-sourcing.md +0 -55
- package/build/templates/agent-support/.opencode/skills/documenting-your-repo/reference/maintenance-loop.md +0 -68
- package/build/templates/agent-support/.opencode/skills/documenting-your-repo/reference/structure-planning.md +0 -102
- package/build/templates/agent-support/.opencode/skills/writing-docs-pages/SKILL.md +0 -112
- package/build/templates/agent-support/.opencode/skills/writing-docs-pages/reference/docouture-blocks.md +0 -170
- package/build/templates/agent-support/.opencode/skills/writing-docs-pages/reference/language-basics.md +0 -402
|
@@ -1,402 +0,0 @@
|
|
|
1
|
-
# AsciiDoc language basics
|
|
2
|
-
|
|
3
|
-
Ordered by how often it comes up, not by upstream nav order. Antora-specific behaviour is
|
|
4
|
-
called out inline; everything else is plain AsciiDoc as Asciidoctor implements it.
|
|
5
|
-
|
|
6
|
-
Upstream base URL for every link below: `https://docs.asciidoctor.org/asciidoc/latest/`
|
|
7
|
-
|
|
8
|
-
## Document structure
|
|
9
|
-
|
|
10
|
-
A page is a header (optional), then blocks. The header is everything above the first
|
|
11
|
-
blank line.
|
|
12
|
-
|
|
13
|
-
```adoc
|
|
14
|
-
= Page Title
|
|
15
|
-
:description: Shown in the meta description and in search results.
|
|
16
|
-
:page-tags: one, two
|
|
17
|
-
|
|
18
|
-
Preamble paragraph — content before the first section title.
|
|
19
|
-
|
|
20
|
-
== First Section
|
|
21
|
-
|
|
22
|
-
Body.
|
|
23
|
-
|
|
24
|
-
=== Nested Section
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
- **One level-0 title per page.** `=` is the document title; `==` is the first real
|
|
28
|
-
section. A second `=` is an error in `doctype: article` (the default).
|
|
29
|
-
- Section levels must not skip: `==` then `====` is a warning, and a warning fails the
|
|
30
|
-
build here.
|
|
31
|
-
- Attribute entries (`:name: value`) in the header apply to the whole page. Placed in the
|
|
32
|
-
body they apply from that point on.
|
|
33
|
-
- `page-*` attributes are Antora's convention: they are lifted onto the UI model and are
|
|
34
|
-
available to templates rather than to the content.
|
|
35
|
-
|
|
36
|
-
`document-structure/`, `document/header/`, `sections/titles-and-levels/`
|
|
37
|
-
|
|
38
|
-
## Blocks
|
|
39
|
-
|
|
40
|
-
A block is delimited by four or more repeated characters, or implied by a blank line
|
|
41
|
-
(paragraph).
|
|
42
|
-
|
|
43
|
-
| delimiter | block |
|
|
44
|
-
| --------- | --------------------------------------- |
|
|
45
|
-
| `----` | listing / source |
|
|
46
|
-
| `....` | literal |
|
|
47
|
-
| `====` | example (and, with a style, admonition) |
|
|
48
|
-
| `****` | sidebar |
|
|
49
|
-
| `____` | quote |
|
|
50
|
-
| `--` | open (exactly two hyphens) |
|
|
51
|
-
| `\|===` | table |
|
|
52
|
-
| `++++` | passthrough |
|
|
53
|
-
| `////` | comment |
|
|
54
|
-
|
|
55
|
-
Metadata sits directly above the delimiter, no blank line between:
|
|
56
|
-
|
|
57
|
-
```adoc
|
|
58
|
-
.A block title
|
|
59
|
-
[#custom-id.role-one.role-two%option,attr=value]
|
|
60
|
-
----
|
|
61
|
-
content
|
|
62
|
-
----
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
- `.Title` — block title.
|
|
66
|
-
- `#id` — the ID, in the attribute list shorthand.
|
|
67
|
-
- `.role` — a CSS class. Repeatable.
|
|
68
|
-
- `%option` — an option, e.g. `%collapsible`, `%header`, `%autowidth`.
|
|
69
|
-
- The first positional attribute is the **block style**, which can make one delimiter
|
|
70
|
-
behave as another (`[quote]` on `====`, `[source]` on `----`). This is _block
|
|
71
|
-
masquerading_.
|
|
72
|
-
|
|
73
|
-
`blocks/`, `blocks/delimited/`, `attributes/element-attributes/`, `blocks/masquerading/`
|
|
74
|
-
|
|
75
|
-
## Text formatting
|
|
76
|
-
|
|
77
|
-
| markup | result | note |
|
|
78
|
-
| ------------------------------- | ----------------------- | ---------------------------------- |
|
|
79
|
-
| `*bold*` / `**bold**` | bold | double form required mid-word |
|
|
80
|
-
| `_italic_` / `__italic__` | italic | same |
|
|
81
|
-
| `` `mono` `` | monospace | subs still apply inside |
|
|
82
|
-
| `` `+literal+` `` | monospace, no subs | use for anything with `{}` or `<>` |
|
|
83
|
-
| `#highlight#` / `##highlight##` | mark | |
|
|
84
|
-
| `[.role]#text#` | span with a class | the general escape hatch |
|
|
85
|
-
| `~sub~` / `^sup^` | subscript / superscript | |
|
|
86
|
-
|
|
87
|
-
The single-mark ("constrained") form only applies when the marks sit at a word boundary.
|
|
88
|
-
`hard*coded*text` is literal asterisks; `hard**coded**text` is bold. This is the single
|
|
89
|
-
most common formatting surprise.
|
|
90
|
-
|
|
91
|
-
`text/`, `text/troubleshoot-unconstrained-formatting/`
|
|
92
|
-
|
|
93
|
-
## Lists
|
|
94
|
-
|
|
95
|
-
```adoc
|
|
96
|
-
* first
|
|
97
|
-
* second
|
|
98
|
-
** nested
|
|
99
|
-
+
|
|
100
|
-
Attached paragraph — the `+` continuation binds it to the item above.
|
|
101
|
-
|
|
102
|
-
. ordered
|
|
103
|
-
. ordered
|
|
104
|
-
|
|
105
|
-
term:: definition
|
|
106
|
-
another term:: definition
|
|
107
|
-
|
|
108
|
-
* [ ] unchecked task
|
|
109
|
-
* [x] checked task
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
- Nesting is marker repetition (`*`, `**`, `***`), not indentation.
|
|
113
|
-
- A blank line alone does not end a list; adjacent non-list content does. Two adjacent
|
|
114
|
-
lists that should stay separate need `//-` (an empty comment line) between them.
|
|
115
|
-
- Anything other than a plain paragraph attached to an item needs `+` on its own line
|
|
116
|
-
before it — including nested blocks, source blocks and admonitions.
|
|
117
|
-
|
|
118
|
-
`lists/unordered/`, `lists/ordered/`, `lists/description/`, `lists/continuation/`,
|
|
119
|
-
`lists/checklist/`, `lists/separating/`
|
|
120
|
-
|
|
121
|
-
## Links and cross references
|
|
122
|
-
|
|
123
|
-
```adoc
|
|
124
|
-
https://example.com[Link text]
|
|
125
|
-
https://example.com[Link text^] open in a new tab
|
|
126
|
-
link:https://example.com[Text] explicit macro; needed when the URL is not bare
|
|
127
|
-
mailto:a@example.com[Mail us]
|
|
128
|
-
|
|
129
|
-
xref:page.adoc[Text] Antora resource ID — see writing-docs-pages SKILL.md
|
|
130
|
-
xref:page.adoc#section-id[Text]
|
|
131
|
-
xref:#local-section[Text] same page
|
|
132
|
-
<<local-section,Text>> same page, alternate form
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
- Empty xref text (`xref:page.adoc[]`) renders the target page's title. Prefer it — it
|
|
136
|
-
stays correct when the title changes.
|
|
137
|
-
- A URL containing `[`, `]` or a trailing `.` needs the `link:` macro or attribute
|
|
138
|
-
wrapping.
|
|
139
|
-
- Antora validates every xref. An unresolved one fails the build.
|
|
140
|
-
|
|
141
|
-
`macros/links/`, `macros/xref/`, `macros/inter-document-xref/`
|
|
142
|
-
|
|
143
|
-
## Images and icons
|
|
144
|
-
|
|
145
|
-
```adoc
|
|
146
|
-
image::name.png[Alt text,640,480] block image
|
|
147
|
-
image:name.png[Alt text,24,24] inline image (single colon)
|
|
148
|
-
image::name.png[Alt,link=https://example.com]
|
|
149
|
-
icon:check[] font icon — icons=font is set
|
|
150
|
-
kbd:[Ctrl+C] requires experimental (it is set)
|
|
151
|
-
btn:[Save]
|
|
152
|
-
menu:File[Save As]
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
Antora resolves `image::name.png[]` against the module's `images/` directory. Do not
|
|
156
|
-
write `../images/name.png` and do not set `:imagesdir:` — Antora manages it.
|
|
157
|
-
|
|
158
|
-
`macros/images/`, `macros/icons/`, `macros/keyboard-macro/`, `macros/ui-macros/`
|
|
159
|
-
|
|
160
|
-
## Source blocks
|
|
161
|
-
|
|
162
|
-
```adoc
|
|
163
|
-
[source,typescript]
|
|
164
|
-
----
|
|
165
|
-
const answer = 42
|
|
166
|
-
----
|
|
167
|
-
|
|
168
|
-
[source,json,highlight=2..3]
|
|
169
|
-
----
|
|
170
|
-
{ "a": 1 }
|
|
171
|
-
----
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
- `source-highlighter=highlight.js` is Antora's default and is in force here. The
|
|
175
|
-
language token must be one highlight.js knows.
|
|
176
|
-
- `[,typescript]` (empty first positional) is shorthand for `[source,typescript]`.
|
|
177
|
-
- Callouts mark lines with `<1>` and are explained in a following colon list:
|
|
178
|
-
|
|
179
|
-
```adoc
|
|
180
|
-
[source,js]
|
|
181
|
-
----
|
|
182
|
-
const x = 1 // <1>
|
|
183
|
-
----
|
|
184
|
-
<1> Explanation.
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
- Attribute references are **not** substituted inside a source block unless the block
|
|
188
|
-
carries `subs=attributes+`.
|
|
189
|
-
|
|
190
|
-
`verbatim/source-blocks/`, `verbatim/callouts/`, `verbatim/highlight-lines/`
|
|
191
|
-
|
|
192
|
-
## Admonitions
|
|
193
|
-
|
|
194
|
-
```adoc
|
|
195
|
-
NOTE: One-line form.
|
|
196
|
-
|
|
197
|
-
[WARNING]
|
|
198
|
-
====
|
|
199
|
-
Multi-line form. Any blocks can go inside.
|
|
200
|
-
====
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Five types only: `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`. A custom type needs a
|
|
204
|
-
role plus CSS.
|
|
205
|
-
|
|
206
|
-
`blocks/admonitions/`
|
|
207
|
-
|
|
208
|
-
## Tables
|
|
209
|
-
|
|
210
|
-
```adoc
|
|
211
|
-
.Optional title
|
|
212
|
-
[cols="1,2,1",options="header",%autowidth]
|
|
213
|
-
|===
|
|
214
|
-
|Column A |Column B |Column C
|
|
215
|
-
|
|
216
|
-
|cell
|
|
217
|
-
|cell
|
|
218
|
-
|cell
|
|
219
|
-
|===
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
- `cols` takes proportional widths (`1,2,1`), percentages (`25%,50%,25%`), or a repeat
|
|
223
|
-
(`3*` = three equal columns).
|
|
224
|
-
- A column or cell specifier prefixes the width: alignment `<` `^` `>` (horizontal),
|
|
225
|
-
`.<` `.^` `.>` (vertical), and a style suffix:
|
|
226
|
-
|
|
227
|
-
| suffix | cell content treated as |
|
|
228
|
-
| ------ | ------------------------------------------------ |
|
|
229
|
-
| `a` | AsciiDoc — the only way to nest blocks in a cell |
|
|
230
|
-
| `l` | literal |
|
|
231
|
-
| `m` | monospace |
|
|
232
|
-
| `h` | header |
|
|
233
|
-
| `s` | strong |
|
|
234
|
-
| `d` | default (prose) |
|
|
235
|
-
|
|
236
|
-
- Spans: `2+|` spans two columns, `.3+|` three rows, `2.3+|` both. `3*|` duplicates a
|
|
237
|
-
cell across three columns.
|
|
238
|
-
- A cell containing a `|` needs it escaped as `\|`.
|
|
239
|
-
|
|
240
|
-
`tables/build-a-basic-table/`, `tables/format-column-content/`, `tables/span-cells/`,
|
|
241
|
-
`tables/table-ref/`
|
|
242
|
-
|
|
243
|
-
## Includes
|
|
244
|
-
|
|
245
|
-
```adoc
|
|
246
|
-
include::partial$intro.adoc[]
|
|
247
|
-
include::example$config.json[]
|
|
248
|
-
include::partial$file.adoc[tag=setup]
|
|
249
|
-
include::example$app.ts[lines=10..20]
|
|
250
|
-
include::partial$chapter.adoc[leveloffset=+1]
|
|
251
|
-
include::example$snippet.js[indent=0]
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
Tagged regions are marked in the _included_ file with comments in that file's own comment
|
|
255
|
-
syntax:
|
|
256
|
-
|
|
257
|
-
```js
|
|
258
|
-
// tag::setup[]
|
|
259
|
-
const app = createApp()
|
|
260
|
-
// end::setup[]
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
- `leveloffset=+1` demotes every section title in the included file — required when
|
|
264
|
-
including a file that has its own `=` title.
|
|
265
|
-
- `indent=0` normalises leading whitespace, so a tagged region extracted from indented
|
|
266
|
-
code renders flush left.
|
|
267
|
-
- Antora restricts targets to the resource families. `include::../other.adoc[]` and
|
|
268
|
-
`include::https://…[]` do not work.
|
|
269
|
-
|
|
270
|
-
`directives/include/`, `directives/include-tagged-regions/`,
|
|
271
|
-
`directives/include-lines/`, `directives/include-with-leveloffset/`
|
|
272
|
-
|
|
273
|
-
## Conditionals
|
|
274
|
-
|
|
275
|
-
```adoc
|
|
276
|
-
ifdef::experimental[]
|
|
277
|
-
Shown when the attribute is set.
|
|
278
|
-
endif::[]
|
|
279
|
-
|
|
280
|
-
ifndef::backend-html5[]
|
|
281
|
-
Shown when it is not set.
|
|
282
|
-
endif::[]
|
|
283
|
-
|
|
284
|
-
ifeval::[{sectnumlevels} > 2]
|
|
285
|
-
Shown when the expression is true.
|
|
286
|
-
endif::[]
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
`ifdef::attr-one,attr-two[]` is OR; `ifdef::attr-one+attr-two[]` is AND. The single-line
|
|
290
|
-
form `ifdef::attr[content]` exists for one line of content.
|
|
291
|
-
|
|
292
|
-
`directives/conditionals/`, `directives/ifdef-ifndef/`, `directives/ifeval/`
|
|
293
|
-
|
|
294
|
-
## Substitutions
|
|
295
|
-
|
|
296
|
-
Applied to normal blocks in this fixed order:
|
|
297
|
-
|
|
298
|
-
1. `specialchars` — `<`, `>`, `&` escaped
|
|
299
|
-
2. `quotes` — the formatting marks above
|
|
300
|
-
3. `attributes` — `{name}` references resolved
|
|
301
|
-
4. `replacements` — `(C)`, `--`, `...` and friends
|
|
302
|
-
5. `macros` — link, image, icon, xref
|
|
303
|
-
6. `post_replacements` — the `+` line break
|
|
304
|
-
|
|
305
|
-
Verbatim blocks (`----`, `....`) get `specialchars` and `callouts` only. Passthrough gets
|
|
306
|
-
nothing.
|
|
307
|
-
|
|
308
|
-
Override per block or per inline span:
|
|
309
|
-
|
|
310
|
-
```adoc
|
|
311
|
-
[subs="attributes+"] incremental — add to the defaults
|
|
312
|
-
[subs="+macros,-callouts"] add one, remove another
|
|
313
|
-
[subs="verbatim,quotes"] absolute — replaces the defaults entirely
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
Escape a single substitution with a leading backslash (`\{attr}`, `\*not bold*`), or use
|
|
317
|
-
an inline passthrough:
|
|
318
|
-
|
|
319
|
-
```adoc
|
|
320
|
-
+literal text+ no subs
|
|
321
|
-
pass:[<b>raw</b>] no subs, raw output
|
|
322
|
-
pass:attributes[{version}] only the listed subs
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
`subs/`, `subs/apply-subs-to-blocks/`, `subs/prevent/`, `pass/`
|
|
326
|
-
|
|
327
|
-
## Attributes
|
|
328
|
-
|
|
329
|
-
```adoc
|
|
330
|
-
:name: value
|
|
331
|
-
:name!: unset
|
|
332
|
-
:!name: unset, alternate form
|
|
333
|
-
:name: {other} suffix references resolve at definition time
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
Precedence, highest first: CLI/API → playbook `asciidoc.attributes` → `antora.yml` →
|
|
337
|
-
page header. A playbook attribute ending in `@` becomes _soft-set_ and can be overridden
|
|
338
|
-
by a page; without `@` it cannot.
|
|
339
|
-
|
|
340
|
-
`attributes/document-attributes/`, `attributes/assignment-precedence/`,
|
|
341
|
-
`attributes/document-attributes-ref/`
|
|
342
|
-
|
|
343
|
-
## Other blocks worth knowing
|
|
344
|
-
|
|
345
|
-
```adoc
|
|
346
|
-
[%collapsible]
|
|
347
|
-
====
|
|
348
|
-
Rendered as a <details> element.
|
|
349
|
-
====
|
|
350
|
-
|
|
351
|
-
[quote,Author,Source]
|
|
352
|
-
____
|
|
353
|
-
Quotation.
|
|
354
|
-
____
|
|
355
|
-
|
|
356
|
-
[sidebar] or ****
|
|
357
|
-
****
|
|
358
|
-
Aside content.
|
|
359
|
-
****
|
|
360
|
-
|
|
361
|
-
--
|
|
362
|
-
An open block — groups content with no semantics of its own. The usual way to
|
|
363
|
-
attach several blocks to one list item.
|
|
364
|
-
--
|
|
365
|
-
|
|
366
|
-
toc::[] macro TOC; needs :toc: in the header
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
`blocks/collapsible/`, `blocks/blockquotes/`, `blocks/sidebars/`, `blocks/open-blocks/`,
|
|
370
|
-
`toc/`
|
|
371
|
-
|
|
372
|
-
## URL index — the long tail
|
|
373
|
-
|
|
374
|
-
Not summarised above; fetch when needed.
|
|
375
|
-
|
|
376
|
-
| topic | page |
|
|
377
|
-
| ------------------------------------------------------------- | --------------------------------------- |
|
|
378
|
-
| Syntax quick reference | `syntax-quick-reference/` |
|
|
379
|
-
| Document attributes reference (every built-in) | `attributes/document-attributes-ref/` |
|
|
380
|
-
| Character replacements (`(C)`, `->`, …) | `attributes/character-replacement-ref/` |
|
|
381
|
-
| Text span and built-in roles | `text/text-span-built-in-roles/` |
|
|
382
|
-
| Quotation marks and apostrophes | `text/quotation-marks-and-apostrophes/` |
|
|
383
|
-
| Footnotes | `macros/footnote/` |
|
|
384
|
-
| Audio and video | `macros/audio-and-video/` |
|
|
385
|
-
| SVG images | `macros/image-svg/` |
|
|
386
|
-
| Image sizing / positioning reference | `macros/image-ref/` |
|
|
387
|
-
| STEM (equations, formulas) | `stem/` |
|
|
388
|
-
| Docinfo files | `docinfo/` |
|
|
389
|
-
| Book parts, chapters, appendix, glossary, bibliography, index | `sections/styles/` |
|
|
390
|
-
| Special section titles and numbering | `sections/special-section-titles/` |
|
|
391
|
-
| Verses | `blocks/verses/` |
|
|
392
|
-
| CSV / TSV / DSV table data | `tables/data-format/` |
|
|
393
|
-
| Nested tables | `tables/nested/` |
|
|
394
|
-
| Hard line breaks | `blocks/hard-line-breaks/` |
|
|
395
|
-
| Discrete headings | `blocks/discrete-headings/` |
|
|
396
|
-
| Preamble and lead style | `blocks/preamble-and-lead/` |
|
|
397
|
-
| AsciiDoc vs Markdown | `asciidoc-vs-markdown/` |
|
|
398
|
-
| Glossary of terms | `glossary/` |
|
|
399
|
-
| FAQ | `faq/` |
|
|
400
|
-
|
|
401
|
-
Antora's own layer — resource IDs, families, nav, page attributes, the content catalog —
|
|
402
|
-
is documented separately at `https://docs.antora.org/antora/latest/`.
|