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 5 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
philippjfr marked this conversation as resolved.
Show resolved Hide resolved
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/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/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)
16 changes: 8 additions & 8 deletions doc/how_to/migrate/anywidget/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This guide addresses how to convert [AnyWidget](https://anywidget.dev/) widgets to custom `JSComponent` or `ReactComponent` widgets.

Please note that AnyWidget widgets are [`ipywidgets`](https://ipywidgets.readthedocs.io/en/stable/) and can be used directly in Panel via the [`IpyWidgets`](../../reference/panes/IPyWidget.ipynb) pane and the `Traitlets` `@observe` API without a conversion. We recommend trying this option first. If it does not work for your use case, please consider contributing to the existing `AnyWidget` before converting it to a Panel widget.
Please note that AnyWidget widgets are [`ipywidgets`](https://ipywidgets.readthedocs.io/en/stable/) and can be used directly in Panel via the [`IpyWidgets`](../../../reference/panes/Image.md) pane and the `Traitlets` `@observe` API without a conversion. We recommend trying this option first. If it does not work for your use case, please consider contributing to the existing `AnyWidget` before converting it to a Panel widget.

Some reasons you might still want to convert an `AnyWidget` to a custom Panel widget are:

Expand All @@ -18,7 +18,7 @@ The high-level steps needed for converting `AnyWidgets` components to Panel comp

#### Step 1: Base Class Conversion

Convert from the `AnyWidget` base class to the Panel [`JSComponent`](../../reference/panes/JSComponent.ipynb) base class. If the `_esm` script is based on [React](https://react.dev/), use the [`ReactComponent`](../../reference/panes/ReactComponent.ipynb).
Convert from the `AnyWidget` base class to the Panel [`JSComponent`](../../../reference/custom_components/JSComponent.md) base class. If the `_esm` script is based on [React](https://react.dev/), use the [`ReactComponent`](../../../reference/custom_components/ReactComponent.md).

#### Step 2: Attribute Conversion

Expand Down Expand Up @@ -169,24 +169,24 @@ CounterButton().servable()

### Mario Button

Check out our [Custom Components Tutorial](../../../tutorials/expert/custom_components.md) to see a converted version of the [ipymario](https://github.com/manzt/ipymario) widget.
Check out our [Custom Components Tutorial](../../../tutorials/expert/custom_anywidget_components.md) to see a converted version of the [ipymario](https://github.com/manzt/ipymario) widget.

[![Mario Button](https://assets.holoviz.org/panel/tutorials/ipymario.gif)](../../../tutorials/expert/custom_components.md)
[![Mario Button](https://assets.holoviz.org/panel/tutorials/ipymario.gif)](../../../tutorials/expert/custom_anywidget_components.md)

## References

### Tutorials

- [Build Custom Components](../../../how_to/custom_components/reactive_esm/reactive_esm_layout.md)
- [Build Custom AnyWidget Components](../../../tutorials/expert/custom_anywidget_components.md)

### How-To Guides

- [Convert `AnyWidget` widgets](../../../how_to/migrate/anywidget/index.md)

### Reference Guides

- [`JSComponent`](../../../reference/panes/JSComponent.md)
- [`ReactComponent`](../../../reference/panes/ReactComponent.md)
- [`PreactComponent`](../../../reference/panes/PreactComponent.md)
- [`JSComponent`](../../../reference/custom_components/JSComponent.md)
- [`ReactComponent`](../../../reference/custom_components/ReactComponent.md)
- [`AnyWidgetComponent`](../../../reference/custom_components/AnyWidgetComponent.md)

With these skills, you are now equipped to pioneer and push the boundaries of what can be achieved with Panel. Happy coding!
2 changes: 1 addition & 1 deletion doc/how_to/notebook/jupyterlabpreview.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ The *Preview* offers two update modes that are configurable in the preview tab:
- automatic: toggle the *Render on save* checkbox ({far}`square-check`) for the app to be automatically re-rendered when you save your notebook.

:::{tip}
Panel [built-in templates](https://panel.holoviz.org/reference/index.md#templates) don't render necessarily well in a notebook as their styling can badly interact with the notebook built-in styling. Using the *Preview* is a good way to circumvent this issue, while still being able to work within JupyterLab .
Panel [built-in templates](../../reference/index.rst#templates) don't render necessarily well in a notebook as their styling can badly interact with the notebook built-in styling. Using the *Preview* is a good way to circumvent this issue, while still being able to work within JupyterLab .
:::

## Related Resources
2 changes: 1 addition & 1 deletion doc/how_to/notebook/layout_builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,4 +160,4 @@ This command will automatically restore the persisted layout data from the noteb

### Component Gallery

- [EditableTemplate](../../reference/templates/EditableTemplate.ipynb)
- [EditableTemplate](../../reference/templates/EditableTemplate.md)
Loading
Loading