You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/get-started/basic-content.qmd
+16-18Lines changed: 16 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -7,20 +7,20 @@ jupyter:
7
7
name: python3
8
8
---
9
9
10
-
Individual content entries (e.g. a function to be documented) can also be customized.
10
+
Individual content entries (e.g. a function to be documented) can be customized.
11
11
For example, if you are documenting a Python class, you may want to include or exclude
12
12
documentation on specific methods on that class.
13
13
14
-
Specify content options by setting `name: <content name>`, along with any additional options.
14
+
Specify content options by setting `name: <content name>` followed by any additional options.
15
15
16
-
For example, below is a piece of content, MdRenderer, specified without options.
16
+
For example, below is a single content element, `MdRenderer`, without additional options.
17
17
18
18
```yaml
19
19
contents:
20
20
- MdRenderer
21
21
```
22
22
23
-
We set it to only document its render method, by setting `name: MdRenderer` followed by the `members` option.
23
+
Instead of documenting the entire `MdRenderer` class, we can only document the `MdRenderer.render` method by setting `name: MdRenderer` followed by the `members` option:
24
24
25
25
```yaml
26
26
contents:
@@ -36,10 +36,10 @@ In the following sections, we'll discuss different options for configuring conte
36
36
37
37
Finding Python objects to document involves two pieces of configuration:
38
38
39
-
* the package name.
40
-
* a list of objects for content.
39
+
1. the package name.
40
+
2. a list of objects for content.
41
41
42
-
Note that quartodoc can look up anything---whether functions, modules, classes, attributes, or methods.
42
+
quartodoc can look up a wide variety of objects, including functions, modules, classes, attributes, and methods:
43
43
44
44
```yaml
45
45
quartodoc:
@@ -55,13 +55,13 @@ quartodoc:
55
55
- renderers # module: quartodoc.renderers
56
56
```
57
57
58
-
The functions listed in `contents` are assumed to be imported from the package.
58
+
The functions listed in `contents` are those that are available for import from the package (`quartodoc` in this instance).
59
59
60
60
## Module and class members
61
61
62
-
Documentation for modules and classes can automatically include their members (e.g. class methods and attributes; everything defined inside a module).
62
+
Documentation for classes and modules can automatically include their members (e.g. class methods and attributes or everything defined inside a module, respectively).
63
63
64
-
By default, all attributes and functions (including methods on a class) are documented by embedding them inside the module or class documentation.
64
+
By default, all attributes and functions (including methods on a class) are presented in the `embedded` style, which means their documentation is located inside their respective module's or class's documentation.
65
65
66
66
There are four styles for presenting child members:
67
67
@@ -82,7 +82,7 @@ res = extract_type(DocstringSectionAttributes, choices.docstring.parsed)[0]
82
82
print(renderer.render(res))
83
83
```
84
84
85
-
You can specify a style by setting the `children` option in the config:
85
+
You can specify a style for displaying members by setting the `children` option in the config:
86
86
87
87
```yaml
88
88
quartodoc:
@@ -102,12 +102,11 @@ quartodoc:
102
102
103
103
## Setting default options
104
104
105
-
The section above showed how you can set options like `members:` and `children:` on content.
106
-
When specifying API documentation, you may need to specify the same options across multiple pieces of content.
105
+
The section above showed how you can set options like `members:` (which is a list of the items you want to show) and `children:` (the style for presenting `members`) on content.
107
106
108
-
Use the `options:` field in a section to specify options to apply across all content in that section.
107
+
However, you may desire to set the same options across multiple pieces of content. In this case, you can set default options for a section that applies to all content in that section. You can use the `options:` field to accomplish this.
109
108
110
-
For example, the config blocks below show how to document multiple classes without their members.
109
+
For example, the config below shows how to document multiple classes _without_ any child members. On the left, you can see the config without setting the default option, and on the right, you can see the config with the default option set.
111
110
112
111
:::::: {.columns}
113
112
::: {.column}
@@ -151,12 +150,11 @@ quartodoc:
151
150
:::
152
151
::::::
153
152
154
-
Note that the **with options** block sets `members: []` inside `options`.
155
-
This sets `members: []` as the default for each piece of content.
153
+
By setting `members: []` in the options block, we are telling quartodoc to not include any members for each piece of content.
156
154
157
155
### Reusing options
158
156
159
-
Options can be given a name, and re-used in multiple sections:
157
+
Options can be given a name and re-used in multiple sections:
Copy file name to clipboardExpand all lines: docs/get-started/dev-big-picture.qmd
+18-10Lines changed: 18 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ The code below shows a Builder object being loaded from a `_quarto.yml` config (
28
28
```{python}
29
29
import yaml
30
30
31
-
from quartodoc import Builder, preview, blueprint, collect, MdRenderer
31
+
from quartodoc import Builder, blueprint, collect, MdRenderer
32
32
33
33
cfg = yaml.safe_load("""
34
34
quartodoc:
@@ -48,7 +48,7 @@ builder
48
48
```
49
49
50
50
Note that .from_quarto_config used the `style:` field to decide which Builder to create
51
-
(in this case, PkgdownBuilder).
51
+
(in this case, `BuilderPkgdown`).
52
52
53
53
We can view the config as a [layout.Layout](`quartodoc.layout.Layout`), by looking at the `.layout` attribute.
54
54
@@ -59,6 +59,7 @@ builder.layout
59
59
This can be a bit difficult to read, so quartodoc implements a [preview](`quartodoc.preview`) function, which spaces things out.
60
60
61
61
```{python}
62
+
from quartodoc import preview
62
63
preview(builder.layout)
63
64
```
64
65
@@ -69,14 +70,14 @@ a pipe connecting it to each of its arguments.
69
70
* The content entry `MdRenderer` is represented by an [Auto](`quartodoc.Auto`) class.
70
71
This specifies a Python object to look up and document.
71
72
72
-
We can follow the path in the preview above, to pull out just the contents piece:
73
+
We can follow the path in the preview above, to pull out just this first piece of content containing `MdRenderer`:
73
74
74
75
```{python}
75
76
content = builder.layout.sections[0].contents[0]
76
77
preview(content)
77
78
```
78
79
79
-
Next, we'll look at `blueprint()`, which processes the layout, including transforming `Auto` objects into more concrete instructions.
80
+
Next, we'll look at `blueprint()`, which processes the layout, including transforming `Auto` objects (like the one representing the `MdRenderer` above) into more concrete instructions.
80
81
81
82
## From config to blueprint
82
83
@@ -96,7 +97,7 @@ Notice two key pieces:
96
97
This element holds everything needed to render this doc, including the class signature
97
98
and parsed docstring.
98
99
99
-
Importantly, the `.members` attribute specifies how to render the class methods we specified (`.render()` and `.summarize()`).
100
+
Importantly, the `.members` attribute stores how to render the class methods we listed in our configuration yaml, `.render()` and `.summarize()`:
@@ -112,7 +113,7 @@ Before to building the site, we need to `collect()` all the pages.
112
113
The [collect](`quartodoc.collect`) function pulls out two important pieces of information:
113
114
114
115
***pages** - each page to be rendered.
115
-
***items** - information on where each documented object lives in the site.
116
+
***items** - information on where each documented object lives in the site, which is used for things like [interlinks](interlinks.qmd).
116
117
117
118
```{python}
118
119
pages, items = collect(bp, builder.dir)
@@ -130,21 +131,28 @@ Notice that if you wanted to look up `quartodoc.MdRenderer.render`, the first it
130
131
131
132
## Rendering and writing
132
133
133
-
A `Builder` instantiates a `Renderer` (like [MdRenderer](`quartodoc.MdRenderer`)).
134
-
Use the `.renderer` attribute to access it.
134
+
A `Builder` instantiates a `Renderer` (like [](`~quartodoc.MdRenderer`)).
135
+
Use the `.renderer` attribute to access it:
135
136
136
137
```{python}
137
138
builder.renderer
138
139
```
139
140
141
+
The `render` method of of the [](`~quartodoc.MdRenderer`) returns a markdown string that can be rendered by Quarto:
140
142
```{python}
141
143
print(builder.renderer.render(pages[0]))
142
-
143
144
```
144
145
146
+
:::{.callout-note}
147
+
### Cross References
148
+
149
+
The `{ #quartodoc.MdRenderer.render }` in the output above is extended Quarto markdown that is a [cross reference](https://quarto.org/docs/authoring/cross-references.html).
150
+
151
+
:::
152
+
145
153
## Writing pages
146
154
147
-
The builder has a number of methods it uses during build.
155
+
The builder has a number of methods it uses while materializing files that will be rendered by Quarto.
148
156
The main method is [.build()](`quartodoc.Builder.build`).
149
157
See the [Builder section of the API](#api-builders) for a list of methods,
150
158
or this [giant build process diagram](/get-started/extra-build-sequence.qmd) for a full breakdown.
0 commit comments