Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix broken docs links #7279

Merged
merged 7 commits into from
Sep 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doc/about/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -826,7 +826,7 @@ This micro-release focuses on a small number of enhancements and rendering relat
- Treat `Tabulator` `row_contents` as real children ensuring layout behaves correctly ([#5292](https://github.com/holoviz/panel/pull/5292))
- Fix `Video` `min_height` and `max_height` ([#5296](https://github.com/holoviz/panel/pull/5296))
- Make `TextEditor` invisible until CSS is loaded ([#5297](https://github.com/holoviz/panel/pull/5297))
- Fix `disabled` parameter on editable sliders ([#5319]((https://github.com/holoviz/panel/pull/5319))
- Fix `disabled` parameter on editable sliders ([#5319](https://github.com/holoviz/panel/pull/5319))

### Compatibility

Expand Down
2 changes: 1 addition & 1 deletion doc/api/cheatsheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ All of Panel's documentation is built from Jupyter notebooks that you can explor

#### ``pn.extension()``

> The Panel extension loads BokehJS, any custom models required, and optionally additional custom JS and CSS in Jupyter notebook environments. It also allows passing any [`pn.config`](#pn.config) variables
> The Panel extension loads BokehJS, any custom models required, and optionally additional custom JS and CSS in Jupyter notebook environments. It also allows passing any [`pn.config`](../api/config.md) variables.

#### ``pn.ipywidget()``

Expand Down
2 changes: 2 additions & 0 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@


extensions = [
'bokeh.sphinxext.bokeh_plot',
philippjfr marked this conversation as resolved.
Show resolved Hide resolved
'myst_parser',
'sphinx_design',
'sphinx.ext.autodoc',
Expand All @@ -95,6 +96,7 @@
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.linkcode',
'sphinx.ext.inheritance_diagram',
philippjfr marked this conversation as resolved.
Show resolved Hide resolved
'sphinx_copybutton',
'sphinxext.rediraffe',
'nbsite.gallery',
Expand Down
2 changes: 1 addition & 1 deletion doc/explanation/comparisons/compare_ipywidgets.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Both Panel and ipywidgets (aka Jupyter Widgets) allow Python users to work with custom widgets and create apps and dashboards from Python, both in Jupyter notebooks and in standalone servers (when paired with Voila. But Panel and ipywidgets are based on different, independently developed technologies for doing so, with some implications:

- Panel is based on Bokeh widgets and layouts, which were developed separately from the Jupyter ecosystem, and designed from the start for standalone deployments. Jupyter widgets, as the name suggests, were first developed specifically for the notebook environment, and only relatively recently (in 2019) adapted for standalone deployment (see [Voila](compare_voila.html)). Nowadays, both technologies have evolved to be well suited to both Jupyter and server contexts, but their different histories are still visible in the types of examples you typically see and in support for less-common operations for each library.
- Panel is based on Bokeh widgets and layouts, which were developed separately from the Jupyter ecosystem, and designed from the start for standalone deployments. Jupyter widgets, as the name suggests, were first developed specifically for the notebook environment, and only relatively recently (in 2019) adapted for standalone deployment (see [Voila](compare_voila.md)). Nowadays, both technologies have evolved to be well suited to both Jupyter and server contexts, but their different histories are still visible in the types of examples you typically see and in support for less-common operations for each library.

- Historically, ipywidgets exposed more of the underlying HTML/CSS styling options, allowing them to be customized more heavily than Bokeh widgets, but since Bokeh 3.0 and Panel 1.0 both types of widgets support similar types of styling.

Expand Down
2 changes: 1 addition & 1 deletion doc/explanation/components/components_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The main objects that Panel provides, and that we are going to call *components*
- *Templates*: templates are components that render multiple Panel objects in an HTML document. The basic template, which you get when you serve an app without setting any template, is basically a blank canvas. Instead when you use one of the built-in templates you can easily improve the design and branding of your app, which will get for free a header, a sidebar, etc.
- *Notifications*: notifications are components that display so called "toasts", designed to mimic the push notifications that have been popularized by mobile and desktop operating systems.

All the Panel components can be visualized on the [Component Gallery](../../reference/index.md).
All the Panel components can be visualized on the [Component Gallery](../../reference/index.rst).

:::{tip}
Components usually have in their docstring a link to their documentation page, use `<component>?` in a notebook or your IDE inspection capabilities to access the link.
Expand Down
6 changes: 3 additions & 3 deletions doc/explanation/components/reactive_html_components.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,19 @@ On the other hand, if you're looking for a **more advanced** approach that gives

## The Name

`ReactiveHTML` is named for its ability to enable reactive programming in HTML. Unlike the static HTML content that the [`HTML`](../../../examples/reference/panes/HTML.ipynb) pane displays, `ReactiveHTML` components can update their view dynamically in response to changes in parameter values and other events.
`ReactiveHTML` is named for its ability to enable reactive programming in HTML. Unlike the static HTML content that the [`HTML`](../../reference/panes/HTML.md) pane displays, `ReactiveHTML` components can update their view dynamically in response to changes in parameter values and other events.

We could also have called the `ReactiveHTML` class for example `BaseComponent`, `HTMLComponent`, `SimpleComponent` or `AnyComponent` to give you the right associations.

It's worth noting that the name `ReactiveHTML` is not related to the JavaScript framework [React](https://react.dev/), although you can still use React with `ReactiveHTML` components.

## How-to Guides

To see `ReactiveHTML` in action and discover how to create your custom components, check out our detailed guide: [How-to > Create Custom Components with ReactiveHTML](../../how_to/custom_components/reactive_html/index.md). It's packed with practical examples to help you get started quickly.
To see `ReactiveHTML` in action and discover how to create your custom components, check out our detailed guide: [How-to > Create Custom Components with ReactiveHTML](../../how_to/custom_components/index.md#reactivehtml-components). It's packed with practical examples to help you get started quickly.

## API Guide

You can find it here [API > ReactiveHTML](../../api/panel.reactive.html#panel.reactive.ReactiveHTML).
You can find it here [API > ReactiveHTML](../../api/panel.reactive.rst#panel.reactive.ReactiveHTML).

## Class Attributes

Expand Down
15 changes: 8 additions & 7 deletions doc/explanation/styling/templates_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ These four areas behave very similarly to other Panel layout components and have

Panel ships with a number of these default themes built on different CSS frameworks:

* **[``MaterialTemplate``](../../reference/templates/Material.ipynb)**: Built on [Material Components for the web](https://material.io/develop/web/)
* **[``BootstrapTemplate``](../../reference/templates/Bootstrap.ipynb)**: Built on [Bootstrap v4](https://getbootstrap.com/docs/4.0/getting-started/introduction/)
* **[``VanillaTemplate``](../../reference/templates/Vanilla.ipynb)**: Built using pure CSS without relying on any specific framework
* **[``FastListTemplate``](../../reference/templates/FastListTemplate.ipynb)**: Built on the [Fast UI](https://fast.design/) framework using a list-like API
* **[``FastGridTemplate``](../../reference/templates/FastGridTemplate.ipynb)**: Built on the [Fast UI](https://fast.design/) framework using grid-like API
* **[``GoldenTemplate``](../../reference/templates/GoldenLayout.ipynb)**: Built on the [Golden Layout](https://golden-layout.com/) framework
* **[``Slidestemplate``](../../reference/templates/Slides.ipynb)**: For presentations, built on [reveal.js](https://revealjs.com/) framework
* **[``MaterialTemplate``](../../reference/templates/Material.md)**: Built on [Material Components for the web](https://material.io/develop/web/)
* **[``BootstrapTemplate``](../../reference/templates/Bootstrap.md)**: Built on [Bootstrap v4](https://getbootstrap.com/docs/4.0/getting-started/introduction/)
* **[``VanillaTemplate``](../../reference/templates/Vanilla.md)**: Built using pure CSS without relying on any specific framework
* **[``FastListTemplate``](../../reference/templates/FastListTemplate.md)**: Built on the [Fast UI](https://fast.design/) framework using a list-like API
* **[``FastGridTemplate``](../../reference/templates/FastGridTemplate.md)**: Built on the [Fast UI](https://fast.design/) framework using grid-like API
* **[``GoldenTemplate``](../../reference/templates/GoldenLayout.md)**: Built on the [Golden Layout](https://golden-layout.com/) framework
* **[``Slidestemplate``](../../reference/templates/Slides.md)**: For presentations, built on [reveal.js](https://revealjs.com/) framework

## Related Resources

- See [How-to > Apply Templates](../../how_to/templates/index.md) for template solutions.
2 changes: 1 addition & 1 deletion doc/how_to/authentication/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ or in Python:
pn.serve(app, oauth_extra_params={'tenant_id': ...}, ...)
```

The `oauth_extra_params` can also be used to provide the authentication URLs for the `'generic'`, `'password'`, and `'auth_code'` OAuth providers. Specifically you can provide a `'AUTHORIZE_URL'`, `'TOKEN_URL'` and `'USER_URL'` as extra parameters. Lastly it may be used to define the [scopes](#Scopes).
The `oauth_extra_params` can also be used to provide the authentication URLs for the `'generic'`, `'password'`, and `'auth_code'` OAuth providers. Specifically you can provide a `'AUTHORIZE_URL'`, `'TOKEN_URL'` and `'USER_URL'` as extra parameters. Lastly it may be used to define the [scopes](#scopes).

## `cookie_secret`

Expand Down
2 changes: 1 addition & 1 deletion doc/how_to/authentication/guest_users.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The simplest way to make authentication optional is to set the `--oauth-optional
panel serve app.py ... --oauth-optional
```

Panel will now let the user access all endpoints without being redirected to the authentication provider or local login page. If specific functionality in your application requires authentication you may then redirect the user to the [login endpoint](./configuration#Endpoints), e.g. by default you would redirect them to `/login`. As an example let's take this app:
Panel will now let the user access all endpoints without being redirected to the authentication provider or local login page. If specific functionality in your application requires authentication you may then redirect the user to the [login endpoint](./configuration#endpoints), e.g. by default you would redirect them to `/login`. As an example let's take this app:

```python
import panel as pn
Expand Down
2 changes: 1 addition & 1 deletion doc/how_to/components/construct_panes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This guide addresses how to construct Pane objects for displaying visible compon

There are two main ways to construct a pane - explicitly or automatically.

To explicitly construct a pane, use one of the pane types listed in the [component gallery](https://panel.holoviz.org/reference/index.md#panes). For example, you can create a Markdown pane as follows:
To explicitly construct a pane, use one of the pane types listed in the [component gallery](../../reference/index.rst#panes). For example, you can create a Markdown pane as follows:

```{pyodide}
import panel as pn
Expand Down
2 changes: 1 addition & 1 deletion doc/how_to/concurrency/sync_to_async.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ Without [`asyncify`](https://asyncer.tiangolo.com/tutorial/asyncify/) the app wo

## Dask

If you run many cpu bound functions you may consider offloading your functions asynchronously to an external compute engine like [Dask](https://www.dask.org/). See our [Dask how-to Guide](../performance/dask.md).
If you run many cpu bound functions you may consider offloading your functions asynchronously to an external compute engine like [Dask](https://www.dask.org/). See our [Dask how-to Guide](../concurrency/dask.md).
2 changes: 1 addition & 1 deletion doc/how_to/custom_components/esm/custom_layout.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Create Custom Layouts using ESM Components

In this guide, we will demonstrate how to build custom, reusable layouts using [`JSComponent`](../../reference/panes/JSComponent.md), [`ReactComponent`](../../reference/panes/ReactComponent.md) or [`AnyWidgetComponent`](../../reference/panes/AnyWidgetComponent.md).
In this guide, we will demonstrate how to build custom, reusable layouts using [`JSComponent`](../../../reference/custom_components/JSComponent.md), [`ReactComponent`](../../../reference/custom_components/ReactComponent.md) or [`AnyWidgetComponent`](../../../reference/custom_components/AnyWidgetComponent.md).

## Layout Two Objects

Expand Down
2 changes: 1 addition & 1 deletion doc/how_to/custom_components/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ How to build custom components that are combinations of existing components.
:::

:::{grid-item-card} {octicon}`pencil;2.5em;sd-mr-1 sd-animate-grow50` Combine Existing Components
:link: python/create_custom widget
:link: python/create_custom_widget
:link-type: doc

How to build a custom widget by subclassing `PyComponent` and `WidgetBase`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,4 @@ pn.FlexBox(

## References

- [PyComponent](../../reference/custom_components/PyComponent.html)
- [PyComponent](../../../reference/custom_components/PyComponent.md)
12 changes: 6 additions & 6 deletions doc/how_to/deployment/pycafe.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,9 @@ Explore the [`panel-org`](https://py.cafe/panel-org) gallery examples below:

### App Gallery

- [Altair Brushing](https://py.cafe/panel-org/altair-brushing) from the [Altair Brushing Tutorial](../../gallery/altair_brushing.ipynb).
- [hvPlot Explorer](https://py.cafe/panel-org/hvplot-explorer) from the [hvPlot Explorer Tutorial](../../gallery/hvplot_explorer.ipynb)
- [NYC Deck.GL](https://py.cafe/panel-org/nyc-deckgl) from the [NYC Deck.Gl Tutorial](../../gallery/nyc_deckgl.ipynb).
- [Penguin Crossfilter](https://py.cafe/panel-org/penguin-crossfilter) from the [Penguin Crossfilter Tutorial](../../gallery/penguin_crossfilter.ipynb)
- [Portfolio Analyzer](https://py.cafe/panel-org/portfolio-analyzer) from the [Portfolio Analyzer Tutorial](../../gallery/portfolio_analyzer.ipynb).
- [VideoStream Interface](https://py.cafe/panel-org/videostream) from the [VideoStream Interface Tutorial](../../gallery/streaming_videostream.ipynb).
- [Altair Brushing](https://py.cafe/panel-org/altair-brushing) from the [Altair Brushing Tutorial](../../gallery/altair_brushing.md).
- [hvPlot Explorer](https://py.cafe/panel-org/hvplot-explorer) from the [hvPlot Explorer Tutorial](../../gallery/hvplot_explorer.md)
- [NYC Deck.GL](https://py.cafe/panel-org/nyc-deckgl) from the [NYC Deck.Gl Tutorial](../../gallery/nyc_deckgl.md).
- [Penguin Crossfilter](https://py.cafe/panel-org/penguin-crossfilter) from the [Penguin Crossfilter Tutorial](../../gallery/penguin_crossfilter.md)
- [Portfolio Analyzer](https://py.cafe/panel-org/portfolio-analyzer) from the [Portfolio Analyzer Tutorial](../../gallery/portfolio_analyzer.md).
- [VideoStream Interface](https://py.cafe/panel-org/videostream) from the [VideoStream Interface Tutorial](../../gallery/streaming_videostream.md).
2 changes: 1 addition & 1 deletion doc/how_to/interactivity/bind_component.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,5 +79,5 @@ In this way we can update both the current `object` and the `styles` **Parameter

## Related Resources

- Learn [how to use generators with `bind`](./bind_generator)
- Learn [how to use generators with `bind`](bind_generators.md)
- Understand [Param](../../explanation/dependencies/param.md)
4 changes: 2 additions & 2 deletions doc/how_to/interactivity/bind_function.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ Internally the layout will create a so called `ParamFunction` component to wrap

## Related Resources

- Learn [how to use reactive functions to update components](./bind_component)
- Learn [how to use reactive generators to generate interactive components ](./bind_generator)
- Learn [how to use reactive functions to update components](bind_component.md)
- Learn [how to use reactive generators to generate interactive components ](bind_generators.md)
- Understand [Param](../../explanation/dependencies/param.md)
2 changes: 1 addition & 1 deletion doc/how_to/interactivity/bind_generators.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,4 @@ pn.Row(slideshow)

## Related Resources

- Learn [how to use async callbacks to perform operations concurrently](../concurrency/async.md)
- Learn [how to use async callbacks to perform operations concurrently](../callbacks/async.md)
8 changes: 4 additions & 4 deletions doc/how_to/interactivity/hvplot_interactive.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Because we've imported `hvplot.pandas`, we can utilize `.hvplot()` to render the
df_rx.hvplot(kind="scatter", x="bill_length_mm", y="bill_depth_mm", by="sex")
```

We can leverage [`panel.ReactiveExpr`](https://panel.holoviz.org/reference/panes/ReactiveExpr.html) to assist in rendering `df_rx`. This allows us to include all widgets related to `df_rx`, while also offering the flexibility to customize the appearance of the widgets. For instance, we can specify `pn.Column` as the `widget_layout` parameter and `top` as the `widget_location` parameter, as shown below:
We can leverage [`panel.ReactiveExpr`](../../reference/panes/ReactiveExpr.md) to assist in rendering `df_rx`. This allows us to include all widgets related to `df_rx`, while also offering the flexibility to customize the appearance of the widgets. For instance, we can specify `pn.Column` as the `widget_layout` parameter and `top` as the `widget_location` parameter, as shown below:

```{pyodide}
pn.ReactiveExpr(
Expand Down Expand Up @@ -81,10 +81,10 @@ pn.Column(
)
```

Finally, if performance is critical, you might want to consider using [Reactive expressions as references](https://panel.holoviz.org/reference/panes/ReactiveExpr.html#reactive-expressions-as-references). For instance, you can try replacing `df_rx` with `df_rx.rx()` in this tutorial.
Finally, if performance is critical, you might want to consider using [Reactive expressions as references](../../reference/panes/ReactiveExpr.md#reactive-expressions-as-references). For instance, you can try replacing `df_rx` with `df_rx.rx()` in this tutorial.

## Related Resources

* [Reactive Functions and Expressions of Param](https://param.holoviz.org/user_guide/Reactive_Expressions.html)
* [Reactive Expressions of Panel](https://panel.holoviz.org/tutorials/basic/pn_rx.html#)
* [panel.ReactiveExpr documentation](https://panel.holoviz.org/reference/panes/ReactiveExpr.html#reactiveexpr)
* [Reactive Expressions of Panel](../../tutorials/basic/pn_rx.md)
* [panel.ReactiveExpr documentation](../../reference/panes/ReactiveExpr.md#reactiveexpr)
Loading
Loading