Skip to content

Commit a4de527

Browse files
authored
docs: fix remaining broken relative links in versioned docs and quick-start (#997)
Follow-up to #994, fixing the broken relative links it didn't cover. Verified with a full `onBrokenLinks: 'throw'` docs build (0 broken links). - **Versioned reference links (1.7, 2.7):** `../../reference/...` over-traversed because these versions are served under a `/docs/<version>/` URL prefix. Corrected to `../../../reference/...`. - **Quick-start outbound links (all versions):** #994's new `slug: /quick-start` flattened these pages one level up, so their own `../concepts/...` and `../guides/...` links over-traversed. Corrected to `./concepts/...` / `./guides/...` (the same fix #994 applied to the overview page). - **Quick-start platform links (current + 3.4):** bare `/platform/...` resolved to a non-existent path under the `/sdk/python` baseUrl. Changed to absolute `https://docs.apify.com/platform/...`.
1 parent 81b0110 commit a4de527

26 files changed

Lines changed: 200 additions & 200 deletions

docs/01_introduction/quick-start.mdx

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import UnderscoreMainExample from '!!raw-loader!./code/actor_structure/__main__.
1818

1919
## Step 1: Create Actors
2020

21-
To create and run Actors in [Apify Console](https://docs.apify.com/platform/console), refer to the [Console documentation](/platform/actors/development/quick-start/web-ide).
21+
To create and run Actors in [Apify Console](https://docs.apify.com/platform/console), refer to the [Console documentation](https://docs.apify.com/platform/actors/development/quick-start/web-ide).
2222

2323
To create a new Apify Actor on your computer, you can use the [Apify CLI](/cli), and select one of the [Python Actor templates](https://apify.com/templates?category=python).
2424

@@ -53,7 +53,7 @@ The Actor input, for example, will be in `storage/key_value_stores/default/INPUT
5353

5454
All Python Actor templates follow the same structure.
5555

56-
The `.actor` directory contains the [Actor configuration](/platform/actors/development/actor-config), such as the Actor's definition and input schema, and the Dockerfile necessary to run the Actor on the Apify platform.
56+
The `.actor` directory contains the [Actor configuration](https://docs.apify.com/platform/actors/development/actor-config), such as the Actor's definition and input schema, and the Dockerfile necessary to run the Actor on the Apify platform.
5757

5858
The Actor's runtime dependencies are specified in the `requirements.txt` file, which follows the [standard requirements file format](https://pip.pypa.io/en/stable/reference/requirements-file-format/).
5959

@@ -86,35 +86,35 @@ Now that you can create and run an Actor locally, explore the rest of the SDK's
8686

8787
To learn more about the features of the Apify SDK and how to use them, check out the Concepts section in the sidebar:
8888

89-
- [Actor lifecycle](../concepts/actor-lifecycle)
90-
- [Actor input](../concepts/actor-input)
91-
- [Storages](../concepts/storages)
92-
- [Actor events & state persistence](../concepts/actor-events)
93-
- [Proxy management](../concepts/proxy-management)
94-
- [Interacting with other Actors](../concepts/interacting-with-other-actors)
95-
- [Creating webhooks](../concepts/webhooks)
96-
- [Accessing Apify API](../concepts/access-apify-api)
97-
- [Logging](../concepts/logging)
98-
- [Actor configuration](../concepts/actor-configuration)
99-
- [Pay-per-event monetization](../concepts/pay-per-event)
100-
- [Storage clients](../concepts/storage-clients)
89+
- [Actor lifecycle](./concepts/actor-lifecycle)
90+
- [Actor input](./concepts/actor-input)
91+
- [Storages](./concepts/storages)
92+
- [Actor events & state persistence](./concepts/actor-events)
93+
- [Proxy management](./concepts/proxy-management)
94+
- [Interacting with other Actors](./concepts/interacting-with-other-actors)
95+
- [Creating webhooks](./concepts/webhooks)
96+
- [Accessing Apify API](./concepts/access-apify-api)
97+
- [Logging](./concepts/logging)
98+
- [Actor configuration](./concepts/actor-configuration)
99+
- [Pay-per-event monetization](./concepts/pay-per-event)
100+
- [Storage clients](./concepts/storage-clients)
101101

102102
### Guides
103103

104104
To see how you can integrate the Apify SDK with popular scraping libraries and frameworks, check out these guides:
105105

106-
- [Scraping with BeautifulSoup and HTTPX](../guides/beautifulsoup-httpx)
107-
- [Scraping with Parsel and Impit](../guides/parsel-impit)
108-
- [Browser automation with Playwright](../guides/playwright)
109-
- [Browser automation with Selenium](../guides/selenium)
110-
- [Building crawlers with Crawlee](../guides/crawlee)
111-
- [Building crawlers with Scrapy](../guides/scrapy)
112-
- [Adaptive scraping with Scrapling](../guides/scrapling)
113-
- [LLM-ready scraping with Crawl4AI](../guides/crawl4ai)
114-
- [Browser AI agents with Browser Use](../guides/browser-use)
106+
- [Scraping with BeautifulSoup and HTTPX](./guides/beautifulsoup-httpx)
107+
- [Scraping with Parsel and Impit](./guides/parsel-impit)
108+
- [Browser automation with Playwright](./guides/playwright)
109+
- [Browser automation with Selenium](./guides/selenium)
110+
- [Building crawlers with Crawlee](./guides/crawlee)
111+
- [Building crawlers with Scrapy](./guides/scrapy)
112+
- [Adaptive scraping with Scrapling](./guides/scrapling)
113+
- [LLM-ready scraping with Crawl4AI](./guides/crawl4ai)
114+
- [Browser AI agents with Browser Use](./guides/browser-use)
115115

116116
For other aspects of Actor development, explore these guides:
117117

118-
- [Project management with uv](../guides/uv)
119-
- [Input validation with Pydantic](../guides/input-validation)
120-
- [Running a web server](../guides/running-webserver)
118+
- [Project management with uv](./guides/uv)
119+
- [Input validation with Pydantic](./guides/input-validation)
120+
- [Running a web server](./guides/running-webserver)

website/versioned_docs/version-0.2/01-introduction/quick-start.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ If you want to modify the Actor structure, you need to make sure that your Actor
8181

8282
To learn more about the features of the Apify SDK and how to use them, check out the Concepts section, especially:
8383

84-
- [Actor lifecycle](../concepts/actor-lifecycle)
85-
- [Working with storages](../concepts/storages)
86-
- [Working with proxies](../concepts/proxy-management)
87-
- [Managing Actor events](../concepts/actor-events)
88-
- [Direct access to the Apify API](../concepts/access-apify-api)
84+
- [Actor lifecycle](./concepts/actor-lifecycle)
85+
- [Working with storages](./concepts/storages)
86+
- [Working with proxies](./concepts/proxy-management)
87+
- [Managing Actor events](./concepts/actor-events)
88+
- [Direct access to the Apify API](./concepts/access-apify-api)

website/versioned_docs/version-1.7/01-introduction/quick-start.mdx

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ The Actor's runtime dependencies are specified in the `requirements.txt` file, w
5959
The Actor's source code is in the `src` folder. This folder contains two important files:
6060

6161
- `main.py` - which contains the main function of the Actor
62-
- `__main__.py` - which is the entrypoint of the Actor package, setting up the Actor [logger](../concepts/logging) and executing the Actor's main function via [`asyncio.run()`](https://docs.python.org/3/library/asyncio-runner.html#asyncio.run).
62+
- `__main__.py` - which is the entrypoint of the Actor package, setting up the Actor [logger](./concepts/logging) and executing the Actor's main function via [`asyncio.run()`](https://docs.python.org/3/library/asyncio-runner.html#asyncio.run).
6363

6464
<Tabs>
6565
<TabItem value="main.py" label="main.py" default>
@@ -109,24 +109,24 @@ python -m pip install -r requirements.txt
109109

110110
To learn more about the features of the Apify SDK and how to use them, check out the Concepts section in the sidebar:
111111

112-
- [Actor lifecycle](../concepts/actor-lifecycle)
113-
- [Actor input](../concepts/actor-input)
114-
- [Working with storages](../concepts/storages)
115-
- [Handling Actor events & persisting state](../concepts/actor-events)
116-
- [Proxy management](../concepts/proxy-management)
117-
- [Interacting with other Actors](../concepts/interacting-with-other-actors)
118-
- [Creating webhooks](../concepts/webhooks)
119-
- [Accessing the Apify API](../concepts/access-apify-api)
120-
- [Logging](../concepts/logging)
121-
- [Actor configuration and environment variables](../concepts/configuration)
112+
- [Actor lifecycle](./concepts/actor-lifecycle)
113+
- [Actor input](./concepts/actor-input)
114+
- [Working with storages](./concepts/storages)
115+
- [Handling Actor events & persisting state](./concepts/actor-events)
116+
- [Proxy management](./concepts/proxy-management)
117+
- [Interacting with other Actors](./concepts/interacting-with-other-actors)
118+
- [Creating webhooks](./concepts/webhooks)
119+
- [Accessing the Apify API](./concepts/access-apify-api)
120+
- [Logging](./concepts/logging)
121+
- [Actor configuration and environment variables](./concepts/configuration)
122122

123123
### Guides
124124

125125
To see how you can integrate the Apify SDK with popular web scraping libraries, check out our guides:
126126

127-
- [Requests and HTTPX](../guides/requests-and-httpx)
128-
- [Beautiful Soup](../guides/beautiful-soup)
129-
- [Playwright](../guides/playwright)
130-
- [Selenium](../guides/selenium)
131-
- [Scrapy](../guides/scrapy)
132-
- [Running webserver](../guides/running-webserver)
127+
- [Requests and HTTPX](./guides/requests-and-httpx)
128+
- [Beautiful Soup](./guides/beautiful-soup)
129+
- [Playwright](./guides/playwright)
130+
- [Selenium](./guides/selenium)
131+
- [Scrapy](./guides/scrapy)
132+
- [Running webserver](./guides/running-webserver)

website/versioned_docs/version-1.7/02-guides/01-requests-and-httpx.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ async def main():
3232
### Using proxies with requests
3333

3434
To use Apify Proxy with `requests`,
35-
you can just generate a proxy URL through [`Actor.create_proxy_configuration()`](../../reference/class/Actor#create_proxy_configuration),
35+
you can just generate a proxy URL through [`Actor.create_proxy_configuration()`](../../../reference/class/Actor#create_proxy_configuration),
3636
and pass it to `requests` using the [`proxies` argument](https://requests.readthedocs.io/en/latest/user/advanced/#proxies):
3737

3838
```python title="src/main.py"
@@ -85,7 +85,7 @@ async def main():
8585
### Using proxies with HTTPX
8686

8787
To use Apify Proxy with `httpx`,
88-
you can just generate a proxy URL through [`Actor.create_proxy_configuration()`](../../reference/class/Actor#create_proxy_configuration),
88+
you can just generate a proxy URL through [`Actor.create_proxy_configuration()`](../../../reference/class/Actor#create_proxy_configuration),
8989
and pass it to `httpx` using the [`proxies` argument](https://requests.readthedocs.io/en/latest/user/advanced/#proxies):
9090

9191
```python title="src/main.py"

website/versioned_docs/version-1.7/03-concepts/01-actor-lifecycle.mdx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ The Apify SDK provides several options on how to manage this.
1313

1414
#### `Actor.init()` and `Actor.exit()`
1515

16-
The [`Actor.init()`](../../reference/class/Actor#init) method initializes the Actor,
16+
The [`Actor.init()`](../../../reference/class/Actor#init) method initializes the Actor,
1717
the event manager which processes the Actor events from the platform event websocket,
1818
and the storage client used in the execution environment.
1919
It should be called before performing any other Actor operations.
2020

21-
The [`Actor.exit()`](../../reference/class/Actor#exit) method then exits the Actor cleanly,
21+
The [`Actor.exit()`](../../../reference/class/Actor#exit) method then exits the Actor cleanly,
2222
tearing down the event manager and the storage client.
23-
There is also the [`Actor.fail()`](../../reference/class/Actor#fail) method, which exits the Actor while marking it as failed.
23+
There is also the [`Actor.fail()`](../../../reference/class/Actor#fail) method, which exits the Actor while marking it as failed.
2424

2525
```python title="src/main.py"
2626
from apify import Actor
@@ -40,10 +40,10 @@ async def main():
4040

4141
#### Context manager
4242

43-
So that you don't have to call the lifecycle methods manually, the [`Actor`](../../reference/class/Actor) class provides a context manager,
44-
which calls the [`Actor.init()`](../../reference/class/Actor#init) method on enter,
45-
the [`Actor.exit()`](../../reference/class/Actor#exit) method on a clean exit,
46-
and the [`Actor.fail()`](../../reference/class/Actor#fail) method when there is an exception during the run of the Actor.
43+
So that you don't have to call the lifecycle methods manually, the [`Actor`](../../../reference/class/Actor) class provides a context manager,
44+
which calls the [`Actor.init()`](../../../reference/class/Actor#init) method on enter,
45+
the [`Actor.exit()`](../../../reference/class/Actor#exit) method on a clean exit,
46+
and the [`Actor.fail()`](../../../reference/class/Actor#fail) method when there is an exception during the run of the Actor.
4747

4848
This is the recommended way to work with the `Actor` class.
4949

@@ -59,7 +59,7 @@ async def main():
5959

6060
#### Main function
6161

62-
Another option is to pass a function to the Actor via the [`Actor.main(main_func)`](../../reference/class/Actor#main) method,
62+
Another option is to pass a function to the Actor via the [`Actor.main(main_func)`](../../../reference/class/Actor#main) method,
6363
which causes the Actor to initialize, run the main function, and exit, catching any runtime errors in the passed function.
6464

6565
```python title="src/main.py"
@@ -77,7 +77,7 @@ async def main():
7777
### Rebooting an Actor
7878

7979
Sometimes, you want to restart your Actor to make it run from the beginning again.
80-
To do that, you can use the [`Actor.reboot()`](../../reference/class/Actor#reboot) method.
80+
To do that, you can use the [`Actor.reboot()`](../../../reference/class/Actor#reboot) method.
8181
When you call it, the Apify platform stops the container of the run,
8282
and starts a new container of the same Actor with the same run ID and storages.
8383

@@ -98,7 +98,7 @@ To inform you or the users running your Actors about the progress of their runs,
9898
you can set the status message for the run, which will then be visible in the run detail in Apify Console,
9999
or accessible through the Apify API.
100100

101-
To set the status message for the Actor run, you can use the [`Actor.set_status_message()`](../../reference/class/Actor#set_status_message) method.
101+
To set the status message for the Actor run, you can use the [`Actor.set_status_message()`](../../../reference/class/Actor#set_status_message) method.
102102

103103
```python title="src/main.py"
104104
from apify import Actor

website/versioned_docs/version-1.7/03-concepts/02-actor-input.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sidebar_label: Actor input
66
The Actor gets its [input](https://docs.apify.com/platform/actors/running/input) from the input record in its default key-value store.
77

88
To access it, instead of reading the record manually,
9-
you can use the [`Actor.get_input()`](../../reference/class/Actor#get_input) convenience method.
9+
you can use the [`Actor.get_input()`](../../../reference/class/Actor#get_input) convenience method.
1010
It will get the input record key from the Actor configuration,
1111
read the record from the default key-value store,
1212
and decrypt any [secret input fields](https://docs.apify.com/platform/actors/development/secret-input).

0 commit comments

Comments
 (0)