Skip to content

Commit 0631997

Browse files
committed
docs: use interlinks filter
1 parent dd95f79 commit 0631997

File tree

6 files changed

+42
-17
lines changed

6 files changed

+42
-17
lines changed

docs/1_generate_api.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
__version__,
1010
)
1111

12+
# Settings --------------------------------------------------------------------
13+
1214
FUNCTIONS = [
1315
"get_object",
1416
"create_inventory",
@@ -17,16 +19,17 @@
1719
]
1820

1921
PACKAGE = "quartodoc"
22+
API_FOLDER = "api"
2023

2124
# +
2225
root = Path(sys.argv[0]).parent
2326
renderer = MdRenderer(header_level=1)
2427

25-
p = root / "api"
28+
p = root / API_FOLDER
2629
p.mkdir(exist_ok=True)
2730
# -
2831

29-
# Stage 1: inventory file ----
32+
# Stage 1: inventory file -----------------------------------------------------
3033
all_objects = []
3134
for name in FUNCTIONS:
3235
all_objects.append(get_object(PACKAGE, name))
@@ -35,12 +38,12 @@
3538
PACKAGE,
3639
__version__,
3740
all_objects,
38-
uri=lambda s: f"api/#{s.name}",
41+
uri=lambda s: f"{API_FOLDER}/#{s.name}",
3942
dispname=lambda s: f"{s.name}",
4043
)
4144
convert_inventory(inv, "objects.json")
4245

43-
# Stage 2: render api pages ----
46+
# Stage 2: render api pages ---------------------------------------------------
4447
all_content = []
4548
for f_obj in all_objects:
4649
print(f_obj.name)

docs/_extensions/interlinks

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../_extensions/interlinks

docs/_quarto.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@ project:
44
resources:
55
- objects.json
66

7+
filters:
8+
- "interlinks"
9+
10+
interlinks:
11+
sources:
12+
quartodoc:
13+
# TODO: how to have it be "site root"?
14+
url: "/"
15+
inv: null
16+
fallback: objects.json
17+
718
website:
819
title: "quartodoc"
920
navbar:

docs/api/index.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# get_object {#sec-get_object}
1+
# get_object {#get_object}
22

33
`get_object(module: str, object_name: str, parser: str = 'numpy')`
44

@@ -23,21 +23,21 @@ get_function: a deprecated function.
2323
<Function('get_function', ...
2424
```
2525

26-
# create_inventory {#sec-create_inventory}
26+
# create_inventory {#create_inventory}
2727

28-
`create_inventory(project: str, version: str, items: list[dc.Object | dc.Alias], uri: str | Callable[dc.Object, str] = <function <lambda> at 0x105878700>, dispname: str | Callable[dc.Object, str] = '-')`
28+
`create_inventory(project: str, version: str, items: list[dc.Object | dc.Alias], uri: str | Callable[dc.Object, str] = lambda s: f'{s.canonical_path}.html', dispname: str | Callable[dc.Object, str] = '-')`
2929

3030
Return a sphinx inventory file.
3131

3232
## Parameters
3333

34-
| Name | Type | Description | Default |
35-
|------------|--------------------------------|----------------------------------------------------------------|--------------------------------------|
36-
| `project` | str | Name of the project (often the package name). | required |
37-
| `version` | str | Version of the project (often the package version). | required |
38-
| `items` | list[dc.Object | dc.Alias] | A docstring parser to use. | required |
39-
| `uri` | str | Callable[dc.Object, str] | Link relative to the docs where the items documentation lives. | `<function <lambda> at 0x105878700>` |
40-
| `dispname` | str | Callable[dc.Object, str] | Name to be shown when a link to the item is made. | `'-'` |
34+
| Name | Type | Description | Default |
35+
|------------|--------------------------------|----------------------------------------------------------------|----------------------------------------|
36+
| `project` | str | Name of the project (often the package name). | required |
37+
| `version` | str | Version of the project (often the package version). | required |
38+
| `items` | list[dc.Object | dc.Alias] | A docstring parser to use. | required |
39+
| `uri` | str | Callable[dc.Object, str] | Link relative to the docs where the items documentation lives. | `lambda s: f'{s.canonical_path}.html'` |
40+
| `dispname` | str | Callable[dc.Object, str] | Name to be shown when a link to the item is made. | `'-'` |
4141

4242
## Examples
4343

@@ -63,7 +63,7 @@ To preview the inventory, we can convert it to a dictionary:
6363
'dispname': '-'}]}
6464
```
6565

66-
# convert_inventory {#sec-convert_inventory}
66+
# convert_inventory {#convert_inventory}
6767

6868
`convert_inventory(in_name: Union[str, soi.Inventory], out_name=None)`
6969

@@ -76,7 +76,7 @@ Convert a sphinx inventory file to json.
7676
| `in_name` | Union[str, soi.Inventory] | Name of inventory file. | required |
7777
| `out_name` | | Output file name. | `None` |
7878

79-
# MdRenderer {#sec-MdRenderer}
79+
# MdRenderer {#MdRenderer}
8080

8181
`MdRenderer(self, header_level: int = 2, show_signature: bool = True, hook_pre=None)`
8282

docs/get-started/crossrefs.qmd

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ jupyter:
99

1010
Coming soon!
1111

12+
| style | link text | syntax | output |
13+
| ----- | ---- | ------ | ------ |
14+
| manual | | `[a link](../api/#get_object)` | [a link](../api/#get_object) |
15+
| md | custom | `` [some explanation](`quartodoc.get_object`) `` | [some explanation](`quartodoc.get_object`) |
16+
| md | default | `` [](`quartodoc.get_object`) `` | [](`quartodoc.get_object`) |
17+
| md | shortened | `` [](`~quartodoc.get_object`) `` | [](`~quartodoc.get_object`) |
18+
| rst | custom | `` :ref:`some explanation <quartodoc.get_object>` `` | :ref:`some explanation <quartodoc.get_object>` |
19+
| rst | default | `` :ref:`quartodoc.get_object` `` | :ref:`quartodoc.get_object` |
20+
| rst | shortened | `` :ref:`~quartodoc.get_object` `` | :ref:`~quartodoc.get_object` |
21+
1222
## Link within a doc
1323

1424
* `@sec-get_object` doesn't seem to work: @sec-get-_object.

docs/objects.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"project": "quartodoc", "version": "0.0.3.dev4+gb8c1275.d20221122", "count": 4, "items": [{"name": "quartodoc.get_object", "domain": "py", "role": "function", "priority": "1", "uri": "api/#get_object", "dispname": "get_object"}, {"name": "quartodoc.create_inventory", "domain": "py", "role": "function", "priority": "1", "uri": "api/#create_inventory", "dispname": "create_inventory"}, {"name": "quartodoc.convert_inventory", "domain": "py", "role": "function", "priority": "1", "uri": "api/#convert_inventory", "dispname": "convert_inventory"}, {"name": "quartodoc.MdRenderer", "domain": "py", "role": "class", "priority": "1", "uri": "api/#MdRenderer", "dispname": "MdRenderer"}]}
1+
{"project": "quartodoc", "version": "0.0.4.dev2+g7f17155", "count": 4, "items": [{"name": "quartodoc.get_object", "domain": "py", "role": "function", "priority": "1", "uri": "api/#get_object", "dispname": "get_object"}, {"name": "quartodoc.create_inventory", "domain": "py", "role": "function", "priority": "1", "uri": "api/#create_inventory", "dispname": "create_inventory"}, {"name": "quartodoc.convert_inventory", "domain": "py", "role": "function", "priority": "1", "uri": "api/#convert_inventory", "dispname": "convert_inventory"}, {"name": "quartodoc.MdRenderer", "domain": "py", "role": "class", "priority": "1", "uri": "api/#MdRenderer", "dispname": "MdRenderer"}]}

0 commit comments

Comments
 (0)