From 1e22b0b02840143f590669e25d79c39a86ea68d0 Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Sun, 15 Sep 2024 08:22:15 +0000 Subject: [PATCH 1/6] fix inheritance issue --- doc/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/conf.py b/doc/conf.py index 6e0d2bac55..b5787a44ea 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -95,6 +95,7 @@ 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', 'sphinx.ext.linkcode', + 'sphinx.ext.inheritance_diagram', 'sphinx_copybutton', 'sphinxext.rediraffe', 'nbsite.gallery', From b5df2a069f63f077123ab1f4239c07349315335e Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Sun, 15 Sep 2024 09:40:41 +0000 Subject: [PATCH 2/6] fix broken links --- doc/about/releases.md | 2 +- doc/api/cheatsheet.md | 2 +- .../comparisons/compare_ipywidgets.md | 2 +- .../components/components_overview.md | 2 +- .../components/reactive_html_components.md | 6 +++--- doc/explanation/styling/templates_overview.md | 14 +++++++------- doc/how_to/components/construct_panes.md | 2 +- .../custom_components/esm/custom_layout.md | 2 +- doc/how_to/custom_components/index.md | 2 +- .../python/create_custom_widget.md | 2 +- doc/how_to/deployment/pycafe.md | 12 ++++++------ doc/how_to/interactivity/bind_component.md | 2 +- doc/how_to/interactivity/bind_function.md | 4 ++-- doc/how_to/interactivity/bind_generators.md | 2 +- doc/how_to/interactivity/hvplot_interactive.md | 8 ++++---- doc/how_to/migrate/anywidget/index.md | 16 ++++++++-------- doc/how_to/notebook/jupyterlabpreview.md | 2 +- doc/how_to/notebook/layout_builder.md | 2 +- doc/how_to/notebook/other_nb.md | 2 +- doc/how_to/profiling/profile.md | 2 +- doc/how_to/streamlit_migration/activity.md | 2 +- doc/how_to/streamlit_migration/layouts.md | 2 +- doc/how_to/streamlit_migration/panes.md | 4 ++-- doc/how_to/streamlit_migration/templates.md | 4 ++-- doc/how_to/streamlit_migration/widgets.md | 2 +- doc/how_to/styling/echarts.md | 2 +- doc/how_to/styling/matplotlib.md | 2 +- doc/how_to/styling/plotly.md | 2 +- doc/how_to/styling/vega.md | 2 +- doc/tutorials/basic/build_animation.md | 2 +- doc/tutorials/basic/build_chatbot.md | 2 +- doc/tutorials/basic/indicators_performance.md | 4 ++-- doc/tutorials/basic/layouts.md | 2 +- doc/tutorials/basic/panes.md | 10 +++++----- doc/tutorials/basic/pn_panel.md | 2 +- doc/tutorials/basic/templates.md | 6 +++--- doc/tutorials/basic/widgets.md | 2 +- .../expert/custom_anywidget_components.md | 8 ++++---- doc/tutorials/expert/custom_js_components.md | 8 ++++---- 39 files changed, 78 insertions(+), 78 deletions(-) diff --git a/doc/about/releases.md b/doc/about/releases.md index 22b6ce5041..c661cbd5e5 100644 --- a/doc/about/releases.md +++ b/doc/about/releases.md @@ -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 diff --git a/doc/api/cheatsheet.md b/doc/api/cheatsheet.md index f7a1431e37..37500ee1b5 100644 --- a/doc/api/cheatsheet.md +++ b/doc/api/cheatsheet.md @@ -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()`` diff --git a/doc/explanation/comparisons/compare_ipywidgets.md b/doc/explanation/comparisons/compare_ipywidgets.md index 68a4e86755..f3c8c5caec 100644 --- a/doc/explanation/comparisons/compare_ipywidgets.md +++ b/doc/explanation/comparisons/compare_ipywidgets.md @@ -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. diff --git a/doc/explanation/components/components_overview.md b/doc/explanation/components/components_overview.md index 67d0ea7cea..f8bae22beb 100644 --- a/doc/explanation/components/components_overview.md +++ b/doc/explanation/components/components_overview.md @@ -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 `?` in a notebook or your IDE inspection capabilities to access the link. diff --git a/doc/explanation/components/reactive_html_components.md b/doc/explanation/components/reactive_html_components.md index a74db5ef99..5c79948f0d 100644 --- a/doc/explanation/components/reactive_html_components.md +++ b/doc/explanation/components/reactive_html_components.md @@ -41,7 +41,7 @@ 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. @@ -49,11 +49,11 @@ It's worth noting that the name `ReactiveHTML` is not related to the JavaScript ## 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 diff --git a/doc/explanation/styling/templates_overview.md b/doc/explanation/styling/templates_overview.md index 2d7dd3d122..752f6dda7b 100644 --- a/doc/explanation/styling/templates_overview.md +++ b/doc/explanation/styling/templates_overview.md @@ -23,13 +23,13 @@ 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. diff --git a/doc/how_to/components/construct_panes.md b/doc/how_to/components/construct_panes.md index 8fe92d120c..18a0854862 100644 --- a/doc/how_to/components/construct_panes.md +++ b/doc/how_to/components/construct_panes.md @@ -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 diff --git a/doc/how_to/custom_components/esm/custom_layout.md b/doc/how_to/custom_components/esm/custom_layout.md index 5add55d17d..05949ddbe2 100644 --- a/doc/how_to/custom_components/esm/custom_layout.md +++ b/doc/how_to/custom_components/esm/custom_layout.md @@ -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 diff --git a/doc/how_to/custom_components/index.md b/doc/how_to/custom_components/index.md index 1065647a70..e406e61b38 100644 --- a/doc/how_to/custom_components/index.md +++ b/doc/how_to/custom_components/index.md @@ -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`. diff --git a/doc/how_to/custom_components/python/create_custom_widget.md b/doc/how_to/custom_components/python/create_custom_widget.md index 514ebf8292..8eefb026d8 100644 --- a/doc/how_to/custom_components/python/create_custom_widget.md +++ b/doc/how_to/custom_components/python/create_custom_widget.md @@ -171,4 +171,4 @@ pn.FlexBox( ## References -- [PyComponent](../../reference/custom_components/PyComponent.html) +- [PyComponent](../../../reference/custom_components/PyComponent.md) diff --git a/doc/how_to/deployment/pycafe.md b/doc/how_to/deployment/pycafe.md index 92b0fec6b8..b72b092d87 100644 --- a/doc/how_to/deployment/pycafe.md +++ b/doc/how_to/deployment/pycafe.md @@ -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). diff --git a/doc/how_to/interactivity/bind_component.md b/doc/how_to/interactivity/bind_component.md index 71ede5fb3f..d8e3cd3f33 100644 --- a/doc/how_to/interactivity/bind_component.md +++ b/doc/how_to/interactivity/bind_component.md @@ -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) diff --git a/doc/how_to/interactivity/bind_function.md b/doc/how_to/interactivity/bind_function.md index b2b6fda472..1ee8586526 100644 --- a/doc/how_to/interactivity/bind_function.md +++ b/doc/how_to/interactivity/bind_function.md @@ -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) diff --git a/doc/how_to/interactivity/bind_generators.md b/doc/how_to/interactivity/bind_generators.md index f64fd98729..7292dc58d2 100644 --- a/doc/how_to/interactivity/bind_generators.md +++ b/doc/how_to/interactivity/bind_generators.md @@ -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) diff --git a/doc/how_to/interactivity/hvplot_interactive.md b/doc/how_to/interactivity/hvplot_interactive.md index 4b138eac22..dbe9edd997 100644 --- a/doc/how_to/interactivity/hvplot_interactive.md +++ b/doc/how_to/interactivity/hvplot_interactive.md @@ -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( @@ -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) diff --git a/doc/how_to/migrate/anywidget/index.md b/doc/how_to/migrate/anywidget/index.md index 3b9655aab3..576749bb42 100644 --- a/doc/how_to/migrate/anywidget/index.md +++ b/doc/how_to/migrate/anywidget/index.md @@ -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: @@ -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 @@ -169,15 +169,15 @@ 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 @@ -185,8 +185,8 @@ Check out our [Custom Components Tutorial](../../../tutorials/expert/custom_comp ### 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! diff --git a/doc/how_to/notebook/jupyterlabpreview.md b/doc/how_to/notebook/jupyterlabpreview.md index 489ec068db..fdd1715a31 100644 --- a/doc/how_to/notebook/jupyterlabpreview.md +++ b/doc/how_to/notebook/jupyterlabpreview.md @@ -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 diff --git a/doc/how_to/notebook/layout_builder.md b/doc/how_to/notebook/layout_builder.md index 65182b4eb4..f3d98ffd1c 100644 --- a/doc/how_to/notebook/layout_builder.md +++ b/doc/how_to/notebook/layout_builder.md @@ -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) diff --git a/doc/how_to/notebook/other_nb.md b/doc/how_to/notebook/other_nb.md index 6b92ec5c31..f5b1b50d3d 100644 --- a/doc/how_to/notebook/other_nb.md +++ b/doc/how_to/notebook/other_nb.md @@ -27,7 +27,7 @@ Please note that in Colab rendering for each notebook cell is isolated, which me ::: :::{warning} -The [IpyWidgets](../../reference/panes/IpyWidget.ipynb) pane does not work in Google Colab. Thus you cannot use IpyWidgets with Panel in Colab. +The [IpyWidgets](../../reference/panes/IPyWidget.md) pane does not work in Google Colab. Thus you cannot use IpyWidgets with Panel in Colab. ::: ## PyCharm Notebook diff --git a/doc/how_to/profiling/profile.md b/doc/how_to/profiling/profile.md index 9ef2919913..41e8c2eea6 100644 --- a/doc/how_to/profiling/profile.md +++ b/doc/how_to/profiling/profile.md @@ -21,7 +21,7 @@ Once enabled the launch profiler will profile each application separately and pr ## User profiling -In addition to profiling the launch step of an application it is often also important to get insight into the interactive performance of an application. For that reason Panel also provides the `pn.io.profile` decorator that can be added to any callback and will report the profiling results in the [`/admin` panel](../profiling/admin.html). The `profile` helper takes two arguments, the name to record the profiling results under and the profiling `engine` to use. +In addition to profiling the launch step of an application it is often also important to get insight into the interactive performance of an application. For that reason Panel also provides the `pn.io.profile` decorator that can be added to any callback and will report the profiling results in the [`/admin` panel](../profiling/admin.md). The `profile` helper takes two arguments, the name to record the profiling results under and the profiling `engine` to use. ```python @pn.io.profile('clustering', engine='snakeviz') diff --git a/doc/how_to/streamlit_migration/activity.md b/doc/how_to/streamlit_migration/activity.md index f69a26297d..6cfd7dd0f6 100644 --- a/doc/how_to/streamlit_migration/activity.md +++ b/doc/how_to/streamlit_migration/activity.md @@ -2,7 +2,7 @@ Panel supports many ways of indicating activity -- Indicators. See the [Indicators Section](../../reference/index.md#indicators) of the [Component Gallery](../../reference/index.md). +- Indicators. See the [Indicators Section](../../reference/indicators/index.rst#indicators) of the [Component Gallery](../../reference/index.rst). - `disabled`/ `loading` parameters on Panel components - `loading_indicator` parameter for `pn.panel` or `pn.config`. If `True` a loading indicator will be shown on your *bound functions* when they are re-run. diff --git a/doc/how_to/streamlit_migration/layouts.md b/doc/how_to/streamlit_migration/layouts.md index 2188387653..2212e8607f 100644 --- a/doc/how_to/streamlit_migration/layouts.md +++ b/doc/how_to/streamlit_migration/layouts.md @@ -13,7 +13,7 @@ To migrate your layouts to Panel - replace your Streamlit `st.some_layout` *snake cased* function with the corresponding Panel `pn.SomeLayout` *CamelCased* class. -You can identify the relevant layout to migrate to in the [Layouts Section](../../reference/index.md#layouts) of the [Component Gallery](../../reference/index.md). +You can identify the relevant layout to migrate to in the [Layouts Section](../../reference/index.rst#layouts) of the [Component Gallery](../../reference/index.rst). ## Example diff --git a/doc/how_to/streamlit_migration/panes.md b/doc/how_to/streamlit_migration/panes.md index 4bbd81d95a..5ac58eae06 100644 --- a/doc/how_to/streamlit_migration/panes.md +++ b/doc/how_to/streamlit_migration/panes.md @@ -5,7 +5,7 @@ In Panel the objects that can display your Python objects are called *panes*. Wi - Get notifications about interactions like click events on your plots and tables and react to them. - Use unique data visualization ecosystems like HoloViz, ipywidgets and VTK. -Check out the [Panes Section](../../reference/index.md#panes) of the [Component Gallery](../../reference/index.md) for the full list of *panes*. +Check out the [Panes Section](../../reference/index.rst#panes) of the [Component Gallery](../../reference/index.rst) for the full list of *panes*. --- @@ -17,7 +17,7 @@ To display content in Panel: `pn.pane.SomeObject` *CamelCased* classes. - Replace your Streamlit text elements with `pn.pane.Markdown`. -Identify the relevant Panel *pane*s in the [Panes Section](../../reference/index.md#panes) of the [Component Gallery](../../reference/index.md). +Identify the relevant Panel *pane*s in the [Panes Section](../../reference/index.rst#panes) of the [Component Gallery](../../reference/index.rst). ## Examples diff --git a/doc/how_to/streamlit_migration/templates.md b/doc/how_to/streamlit_migration/templates.md index d9e32ffe6c..501fc0fca0 100644 --- a/doc/how_to/streamlit_migration/templates.md +++ b/doc/how_to/streamlit_migration/templates.md @@ -11,8 +11,8 @@ With Panel you have the flexibility to use the *default, blank template*, one of When migrating you will have to decide which template to use - Blank (default) -- A built-in template like *vanilla*, *bootstrap*, *material* or *fast*. See the [Templates Section](../../reference/index#templates) of the [Components Guide](../../reference/index). -- A [custom template](../../templates/template_custom) declared using Jinja2 syntax. +- A built-in template like *vanilla*, *bootstrap*, *material* or *fast*. See the [Templates Section](../../reference/index.rst#templates) of the [Components Guide](../../reference/index.rst). +- A [custom template](../../how_to/templates/template_custom.md) declared using Jinja2 syntax. ## Example diff --git a/doc/how_to/streamlit_migration/widgets.md b/doc/how_to/streamlit_migration/widgets.md index 0cc29c6a63..71f4b0d741 100644 --- a/doc/how_to/streamlit_migration/widgets.md +++ b/doc/how_to/streamlit_migration/widgets.md @@ -13,7 +13,7 @@ To migrate your app's input widgets to Panel: - Replace your Streamlit `st.some_widget` function with the corresponding Panel `pn.widgets.SomeWidget` class. -You can identify the corresponding widget via the [Widgets Section](../../reference/index#widgets) of the [Component Gallery](../../reference/index.md). +You can identify the corresponding widget via the [Widgets Section](../../reference/index.rst#widgets) of the [Component Gallery](../../reference/index.rst). ## Example diff --git a/doc/how_to/styling/echarts.md b/doc/how_to/styling/echarts.md index e92f180542..e198d6a5dc 100644 --- a/doc/how_to/styling/echarts.md +++ b/doc/how_to/styling/echarts.md @@ -1,6 +1,6 @@ # Style Echarts Plots -This guide addresses how to style ECharts plots displayed using the [ECharts pane](../../../examples/reference/panes/ECharts.ipynb). +This guide addresses how to style ECharts plots displayed using the [ECharts pane](../../reference/panes/ECharts.md). You can select the theme of ECharts plots using the `ECharts.theme` parameter. diff --git a/doc/how_to/styling/matplotlib.md b/doc/how_to/styling/matplotlib.md index 7facd680e2..5a760c89a5 100644 --- a/doc/how_to/styling/matplotlib.md +++ b/doc/how_to/styling/matplotlib.md @@ -1,6 +1,6 @@ # Style Matplotlib Plots -This guide addresses how to style Matplotlib plots displayed using the [Matplotlib pane](../../../examples/reference/panes/Matplotlib.ipynb). +This guide addresses how to style Matplotlib plots displayed using the [Matplotlib pane](../..//reference/panes/Matplotlib.md). There are nearly 30 builtin styles to Matplotlib that can be activated with the `plt.style.use` function. The style names are listed in the `plt.style.available` array. diff --git a/doc/how_to/styling/plotly.md b/doc/how_to/styling/plotly.md index 77b423c24d..69a1721284 100644 --- a/doc/how_to/styling/plotly.md +++ b/doc/how_to/styling/plotly.md @@ -1,6 +1,6 @@ # Style Plotly Plots -This guide addresses how to style Plotly plots displayed using the [Plotly pane](../../../examples/reference/panes/Plotly.ipynb). +This guide addresses how to style Plotly plots displayed using the [Plotly pane](../../reference/panes/Plotly.md). Plotly provides a list of built in templates in `plotly.io.templates`. See the [Plotly Templates Guide](https://plotly.com/python/templates/). diff --git a/doc/how_to/styling/vega.md b/doc/how_to/styling/vega.md index 24df70fd46..f34f74eaf5 100644 --- a/doc/how_to/styling/vega.md +++ b/doc/how_to/styling/vega.md @@ -1,6 +1,6 @@ # Style Vega Plots -This guide addresses how to style Vega plots displayed using the [Vega pane](../../../examples/reference/panes/Vega.ipynb). +This guide addresses how to style Vega plots displayed using the [Vega pane](../../reference/panes/Vega.md). The gif below displays an example of what can be achieved with a little styling of the Vega plot and the `FastListTemplate`. diff --git a/doc/tutorials/basic/build_animation.md b/doc/tutorials/basic/build_animation.md index 0f47580f67..10269ba3ac 100644 --- a/doc/tutorials/basic/build_animation.md +++ b/doc/tutorials/basic/build_animation.md @@ -214,7 +214,7 @@ def pause_player_at_max_year(value): if year.value==max_year: year.pause() -pn.bind(pause_player_at_max_year, year, watch=True) +pn.bind(pause_player_at_max_year, year, watch=True); # semi-colon is only needed when line is run at end of cell ``` Let's make it interactive! We introduce a [`Player`](../../reference/widgets/Player.md) widget to loop continuously through the years. diff --git a/doc/tutorials/basic/build_chatbot.md b/doc/tutorials/basic/build_chatbot.md index 82461d0208..65c703afbc 100644 --- a/doc/tutorials/basic/build_chatbot.md +++ b/doc/tutorials/basic/build_chatbot.md @@ -73,7 +73,7 @@ To make the Streaming Chat Bot scale to many users you should be using `async`. ## Learn More -We can learn more about the `ChatInterface` via its [*reference guide*](../../reference/chat/ChatInterface.md). We find the *reference guide* in the [Chat Section](https://panel.holoviz.org/reference/index.html#chat) of the [Component Gallery](../../reference/index.md). +We can learn more about the `ChatInterface` via its [*reference guide*](../../reference/chat/ChatInterface.md). We find the *reference guide* in the [Chat Section](../../reference/index.rst#chat) of the [Component Gallery](../../reference/index.rst). ## Find Inspiration diff --git a/doc/tutorials/basic/indicators_performance.md b/doc/tutorials/basic/indicators_performance.md index 0c0ac1624e..6787d613d5 100644 --- a/doc/tutorials/basic/indicators_performance.md +++ b/doc/tutorials/basic/indicators_performance.md @@ -20,7 +20,7 @@ In this tutorial, we'll explore various indicators offered by Panel to showcase - **Current Performance**: Utilize the [`Number`](../../reference/indicators/Number.md) indicator to display the current performance. - **Trending Performance**: Employ the [`Trend`](../../reference/indicators/Trend.md) indicator to showcase the trending performance over time. -For a comprehensive list of indicators and their detailed reference guides, you can always refer to the [Indicators Section](https://panel.holoviz.org/reference/index.html#indicators) in the [Component Gallery](../../reference/index.md). +For a comprehensive list of indicators and their detailed reference guides, you can always refer to the [Indicators Section](https://panel.holoviz.org/reference/index.html#indicators) in the [Component Gallery](../../reference/index.rst). :::{note} Throughout this tutorial, whenever we refer to "run the code," you can execute it directly in the Panel docs using the green *run* button, in a notebook cell, or within a file named `app.py` served with `panel serve app.py --dev`. @@ -88,4 +88,4 @@ In this tutorial, we have explored using Panel's versatile indicators by creatin - Leveraged the [`Number`](../../reference/indicators/Number.md) indicator to display current performance. - Utilized the [`Trend`](../../reference/indicators/Trend.md) indicator to showcase trending performance over time. -Remember, there's a collection of indicators waiting for you to explore in the [Indicators Section](https://panel.holoviz.org/reference/index.html#indicators) of the [Component Gallery](../../reference/index.md). Keep experimenting and uncovering new insights! πŸš€ +Remember, there's a collection of indicators waiting for you to explore in the [Indicators Section](https://panel.holoviz.org/reference/index.html#indicators) of the [Component Gallery](../../reference/index.rst). Keep experimenting and uncovering new insights! πŸš€ diff --git a/doc/tutorials/basic/layouts.md b/doc/tutorials/basic/layouts.md index f9e65c508c..ce1599cf1f 100644 --- a/doc/tutorials/basic/layouts.md +++ b/doc/tutorials/basic/layouts.md @@ -8,7 +8,7 @@ In this guide, we'll explore the following aspects of layouts: - **Layouts**: Accessible in the `pn` namespace. - **Layout Techniques**: Utilize `pn.Column` and `pn.Row` to structure your content. -- **Reference Guides**: Explore detailed documentation for each layout in the [Layouts Section](https://panel.holoviz.org/reference/index.html#layouts) of the [Component Gallery](../../reference/index.md). +- **Reference Guides**: Explore detailed documentation for each layout in the [Layouts Section](https://panel.holoviz.org/reference/index.html#layouts) of the [Component Gallery](../../reference/index.rst). :::{note} As you follow along with the code examples below, feel free to execute them directly in the Panel documentation, a notebook cell, or within a file named `app.py` served with `panel serve app.py --dev`. diff --git a/doc/tutorials/basic/panes.md b/doc/tutorials/basic/panes.md index f53765c7eb..a44263f0a8 100644 --- a/doc/tutorials/basic/panes.md +++ b/doc/tutorials/basic/panes.md @@ -4,7 +4,7 @@ In this tutorial, we will learn to display objects with *Panes*: - *Panes* are available in the `pn.pane` namespace. - *Panes* take an `object` argument as well as other arguments. -- Discover all *Panes* and their *reference guides* in the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.md). +- Discover all *Panes* and their *reference guides* in the [Panes Section](../../reference/index.rst#panes) of the [Component Gallery](../../reference/index.rst). :::{note} A *Pane* is a component that can display an object. It takes an `object` as an argument. @@ -71,10 +71,10 @@ Read more [here](https://en.wikipedia.org/wiki/Wind_turbine). ``` :::{tip} -It's key for success with Panel to be able to navigate the [Component Gallery](../../reference/index.md) and use the *reference guides*. +It's key for success with Panel to be able to navigate the [Component Gallery](../../reference/index.rst) and use the *reference guides*. ::: -Click [this link](https://panel.holoviz.org/reference/index.html#panes) to the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.md). Identify the [Markdown Reference Guide](../../reference/panes/Markdown.md) and open it. You don't have to spend time studying the details right now. +Click [this link](https://panel.holoviz.org/reference/index.html#panes) to the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.rst). Identify the [Markdown Reference Guide](../../reference/panes/Markdown.md) and open it. You don't have to spend time studying the details right now. ### Display Alerts @@ -335,7 +335,7 @@ pn.pane.DataFrame(data).servable() ``` :::{note} -If we want to display larger dataframes, customize the way the dataframes are displayed, or make them more interactive, we can find specialized components in the [Component Gallery](../../reference/index.md) supporting these use cases. For example, the [Tabulator](../../reference/widgets/Tabulator.md) widget and [Perspective](../../reference/panes/Perspective.md) pane. +If we want to display larger dataframes, customize the way the dataframes are displayed, or make them more interactive, we can find specialized components in the [Component Gallery](../../reference/index.rst) supporting these use cases. For example, the [Tabulator](../../reference/widgets/Tabulator.md) widget and [Perspective](../../reference/panes/Perspective.md) pane. ::: ## Display any Python object @@ -366,7 +366,7 @@ In this guide, we have learned to display Python objects with *Panes*: - Display plot figures like [Altair](https://altair-viz.github.io/), [ECharts](https://echarts.apache.org/en/index.html), [hvPlot](https://hvplot.holoviz.org), [Matplotlib](https://matplotlib.org/), [Plotly](https://plotly.com/python/) and [Vizzu](https://vizzuhq.com/) with the [`Vega`](../../reference/panes/Vega.md), [`ECharts`](../../reference/panes/ECharts.md), [`HoloViews`](../../reference/panes/HoloViews.md), [`Matplotlib`](../../reference/panes/Matplotlib.md), [`Plotly`](../../reference/panes/Plotly.md) and [`Vizzu`](../../reference/panes/Vizzu.md) *panes*, respectively. - Display *DataFrames* with the [`DataFrame`](../../reference/panes/DataFrame.md) and [`Perspective`]((../../reference/panes/Perspective.md)) *panes*. - Add JavaScript dependencies via `pn.extension`. For example `pn.extension("vega")` or `pn.extension("plotly")` -- Discover all *Panes* and their *reference guides* in the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.md). +- Discover all *Panes* and their *reference guides* in the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.rst). ## Resources diff --git a/doc/tutorials/basic/pn_panel.md b/doc/tutorials/basic/pn_panel.md index 05744c9022..72ec196683 100644 --- a/doc/tutorials/basic/pn_panel.md +++ b/doc/tutorials/basic/pn_panel.md @@ -96,7 +96,7 @@ component.servable() ``` :::{tip} -If we want to display larger dataframes, customize the way the dataframes are displayed, or make them more interactive, we can find specialized components in the [Component Gallery](../../reference/index.md) supporting these use cases. For example, the [Tabulator](../../reference/widgets/Tabulator.md) *widget* and [Perspective](../../reference/panes/Perspective.md) *pane*. +If we want to display larger dataframes, customize the way the dataframes are displayed, or make them more interactive, we can find specialized components in the [Component Gallery](../../reference/index.rst) supporting these use cases. For example, the [Tabulator](../../reference/widgets/Tabulator.md) *widget* and [Perspective](../../reference/panes/Perspective.md) *pane*. ::: ## Display Plots diff --git a/doc/tutorials/basic/templates.md b/doc/tutorials/basic/templates.md index 9186e48912..2ddf10a180 100644 --- a/doc/tutorials/basic/templates.md +++ b/doc/tutorials/basic/templates.md @@ -47,7 +47,7 @@ For additional configuration options, refer to the [`FastListTemplate` reference Panel offers a rich assortment of built-in templates, including a versatile [`Slides`](../../reference/templates/Slides.md) template. ::: -Take a moment to explore the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) in the [Component Gallery](../../reference/index.md), then return here. +Take a moment to explore the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) in the [Component Gallery](../../reference/index.rst), then return here. ## Integrating Templates in a Notebook @@ -165,7 +165,7 @@ Note that `accent` and `main_layout` are exclusive to Fast templates like [FastL In this tutorial, we've explored the power of pre-made templates for structuring your app with ease: - Templates are available in the `pn.template` namespace. -- Find a variety of templates in the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) of the [Component Gallery](../../reference/index.md). +- Find a variety of templates in the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) of the [Component Gallery](../../reference/index.rst). - Templates offer high customizability. ## References @@ -189,4 +189,4 @@ In this tutorial, we've explored the power of pre-made templates for structuring ### Component Gallery -- Explore the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) in the [Component Gallery](../../reference/index.md) for more options. +- Explore the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) in the [Component Gallery](../../reference/index.rst) for more options. diff --git a/doc/tutorials/basic/widgets.md b/doc/tutorials/basic/widgets.md index e742c7efbf..2beeac13b9 100644 --- a/doc/tutorials/basic/widgets.md +++ b/doc/tutorials/basic/widgets.md @@ -6,7 +6,7 @@ Welcome to the tutorial on accepting user inputs with widgets in Panel! Let's di Widgets, found within the `pn.widgets` namespace, are powerful tools for capturing user input and interaction. They offer a wide range of functionality and customization options, making them essential for creating dynamic and engaging apps. -You can explore the full array of available widgets and their detailed reference guides in the [Widgets Section](https://panel.holoviz.org/reference/index.html#widgets) of the [Component Gallery](../../reference/index.md). +You can explore the full array of available widgets and their detailed reference guides in the [Widgets Section](https://panel.holoviz.org/reference/index.html#widgets) of the [Component Gallery](../../reference/index.rst). :::{note} Widgets typically utilize the `value` parameter to capture user input. diff --git a/doc/tutorials/expert/custom_anywidget_components.md b/doc/tutorials/expert/custom_anywidget_components.md index 6479944163..3202b5fcb4 100644 --- a/doc/tutorials/expert/custom_anywidget_components.md +++ b/doc/tutorials/expert/custom_anywidget_components.md @@ -226,7 +226,7 @@ Try clicking the button to see the button bounce more slowly. ## Conclusion -You've now created a custom `MarioButton` component using [`AnyWidgetComponent`](../../reference/panes/AnyWidgetComponent.md) in HoloViz Panel. This button features a pixelated Mario icon, plays a chime sound when clicked, and has customizable parameters for gain, duration, size, and animation. +You've now created a custom `MarioButton` component using [`AnyWidgetComponent`](../../reference/custom_components/AnyWidgetComponent.md) in HoloViz Panel. This button features a pixelated Mario icon, plays a chime sound when clicked, and has customizable parameters for gain, duration, size, and animation. ## References @@ -240,6 +240,6 @@ You've now created a custom `MarioButton` component using [`AnyWidgetComponent` ### Reference Guides -- [`AnyWidgetComponent`](../../reference/panes/AnyWidgetComponent.md) -- [`JSComponent`](../../reference/panes/JSComponent.md) -- [`ReactComponent`](../../reference/panes/ReactComponent.md) +- [`AnyWidgetComponent`](../../reference/custom_components/AnyWidgetComponent.md) +- [`JSComponent`](../../reference/custom_components/JSComponent.md) +- [`ReactComponent`](../../reference/custom_components/ReactComponent.md) diff --git a/doc/tutorials/expert/custom_js_components.md b/doc/tutorials/expert/custom_js_components.md index ce27132160..28b2d96a77 100644 --- a/doc/tutorials/expert/custom_js_components.md +++ b/doc/tutorials/expert/custom_js_components.md @@ -225,7 +225,7 @@ Try clicking the button to see the button bounce more slowly. ## Conclusion -You've now created a custom `MarioButton` component using [`JSComponent`](../../reference/panes/JSComponent.md) in HoloViz Panel. This button features a pixelated Mario icon, plays a chime sound when clicked, and has customizable parameters for gain, duration, size, and animation. +You've now created a custom `MarioButton` component using [`JSComponent`](../../reference/custom_components/JSComponent.md) in HoloViz Panel. This button features a pixelated Mario icon, plays a chime sound when clicked, and has customizable parameters for gain, duration, size, and animation. ## References @@ -239,6 +239,6 @@ You've now created a custom `MarioButton` component using [`JSComponent`](../.. ### Reference Guides -- [`AnyWidgetComponent`](../../reference/panes/AnyWidgetComponent.md) -- [`JSComponent`](../../reference/panes/JSComponent.md) -- [`ReactComponent`](../../reference/panes/ReactComponent.md) +- [`AnyWidgetComponent`](../../reference/custom_components/AnyWidgetComponent.md) +- [`JSComponent`](../../reference/custom_components/JSComponent.md) +- [`ReactComponent`](../../reference/custom_components/ReactComponent.md) From 9a28fa0f6df55ea72496071262ea6322dba0b780 Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Sun, 15 Sep 2024 10:30:42 +0000 Subject: [PATCH 3/6] fix broken links --- doc/explanation/styling/templates_overview.md | 1 + doc/how_to/templates/template_arrange.md | 2 +- doc/how_to/templates/template_modal.md | 2 +- doc/how_to/templates/template_set.md | 2 +- doc/how_to/templates/template_theme.md | 2 +- doc/how_to/wasm/standalone.md | 2 +- doc/tutorials/basic/build_chatbot.md | 2 +- doc/tutorials/basic/indicators_performance.md | 8 +- doc/tutorials/basic/layouts.md | 6 +- doc/tutorials/basic/panes.md | 10 +- doc/tutorials/basic/pn_panel.md | 6 +- doc/tutorials/basic/size.md | 4 +- doc/tutorials/basic/templates.md | 6 +- doc/tutorials/basic/widgets.md | 6 +- .../expert/custom_anywidget_components.md | 2 +- doc/tutorials/intermediate/serve.md | 4 +- .../AnyWidgetComponent.ipynb | 10 +- .../custom_components/JSComponent.ipynb | 10 +- .../custom_components/ReactComponent.ipynb | 10 +- .../reference/custom_components/Viewer.ipynb | 4 +- examples/reference/indicators/Progress.ipynb | 2 +- examples/reference/layouts/GridSpec.ipynb | 2 +- examples/reference/panes/ReactiveExpr.ipynb | 2 +- examples/reference/templates/Bootstrap.ipynb | 2 +- .../templates/EditableTemplate.ipynb | 2 +- .../templates/FastGridTemplate.ipynb | 2 +- .../templates/FastListTemplate.ipynb | 2 +- .../reference/templates/GoldenLayout.ipynb | 2 +- examples/reference/templates/Material.ipynb | 2 +- examples/reference/templates/React.ipynb | 2 +- examples/reference/templates/Slides.ipynb | 2 +- examples/reference/templates/Vanilla.ipynb | 2 +- examples/reference/widgets/ArrayInput.ipynb | 2 +- .../reference/widgets/AutocompleteInput.ipynb | 2 +- examples/reference/widgets/Button.ipynb | 2 +- examples/reference/widgets/ButtonIcon.ipynb | 2 +- .../reference/widgets/CheckBoxGroup.ipynb | 2 +- .../reference/widgets/CheckButtonGroup.ipynb | 2 +- examples/reference/widgets/Checkbox.ipynb | 2 +- examples/reference/widgets/ColorMap.ipynb | 2 +- examples/reference/widgets/ColorPicker.ipynb | 2 +- .../reference/widgets/CrossSelector.ipynb | 2 +- examples/reference/widgets/DataFrame.ipynb | 2 +- examples/reference/widgets/DatePicker.ipynb | 2 +- .../reference/widgets/DateRangePicker.ipynb | 2 +- .../reference/widgets/DateRangeSlider.ipynb | 2 +- examples/reference/widgets/DateSlider.ipynb | 2 +- .../reference/widgets/DatetimeInput.ipynb | 2 +- .../reference/widgets/DatetimePicker.ipynb | 2 +- .../widgets/DatetimeRangeInput.ipynb | 2 +- .../widgets/DatetimeRangePicker.ipynb | 2 +- .../widgets/DatetimeRangeSlider.ipynb | 2 +- .../reference/widgets/DiscretePlayer.ipynb | 2 +- .../reference/widgets/DiscreteSlider.ipynb | 2 - .../widgets/EditableFloatSlider.ipynb | 2 +- .../reference/widgets/EditableIntSlider.ipynb | 2 +- .../widgets/EditableRangeSlider.ipynb | 2 +- examples/reference/widgets/FileDownload.ipynb | 2 +- examples/reference/widgets/FileDropper.ipynb | 2 +- examples/reference/widgets/FileInput.ipynb | 2 +- examples/reference/widgets/FileSelector.ipynb | 2 +- examples/reference/widgets/FloatInput.ipynb | 2 +- examples/reference/widgets/FloatSlider.ipynb | 2 +- examples/reference/widgets/IntInput.ipynb | 2 +- .../reference/widgets/IntRangeSlider.ipynb | 2 +- examples/reference/widgets/IntSlider.ipynb | 2 +- examples/reference/widgets/LiteralInput.ipynb | 2 +- examples/reference/widgets/MenuButton.ipynb | 2 +- examples/reference/widgets/MultiChoice.ipynb | 2 +- examples/reference/widgets/MultiSelect.ipynb | 2 +- examples/reference/widgets/NestedSelect.ipynb | 2 +- .../reference/widgets/PasswordInput.ipynb | 2 +- examples/reference/widgets/Player.ipynb | 2 +- .../reference/widgets/RadioBoxGroup.ipynb | 2 +- .../reference/widgets/RadioButtonGroup.ipynb | 2 +- examples/reference/widgets/RangeSlider.ipynb | 2 +- examples/reference/widgets/Select.ipynb | 2 +- examples/reference/widgets/StaticText.ipynb | 2 +- examples/reference/widgets/Switch.ipynb | 2 +- examples/reference/widgets/Tabulator.ipynb | 2 +- examples/reference/widgets/Terminal.ipynb | 262 ------------------ .../reference/widgets/TextAreaInput.ipynb | 2 +- examples/reference/widgets/TextInput.ipynb | 2 +- examples/reference/widgets/TimePicker.ipynb | 2 +- examples/reference/widgets/Toggle.ipynb | 2 +- examples/reference/widgets/ToggleGroup.ipynb | 2 +- examples/reference/widgets/ToggleIcon.ipynb | 2 +- examples/reference/widgets/VideoStream.ipynb | 2 +- 88 files changed, 116 insertions(+), 379 deletions(-) delete mode 100644 examples/reference/widgets/Terminal.ipynb diff --git a/doc/explanation/styling/templates_overview.md b/doc/explanation/styling/templates_overview.md index 752f6dda7b..7159e6f18e 100644 --- a/doc/explanation/styling/templates_overview.md +++ b/doc/explanation/styling/templates_overview.md @@ -32,4 +32,5 @@ Panel ships with a number of these default themes built on different CSS framewo * **[``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. diff --git a/doc/how_to/templates/template_arrange.md b/doc/how_to/templates/template_arrange.md index 92e8c03a0d..79f339f611 100644 --- a/doc/how_to/templates/template_arrange.md +++ b/doc/how_to/templates/template_arrange.md @@ -57,4 +57,4 @@ panel serve app.py --show --autoreload - See [How-to > Apply Templates > Toggle Modal](./template_modal.md) for a dedicated guide to toggling the modal. - See [How-to > Apply Templates > Set a Template](./template_set.md) for alternate approaches to set a template. -- Read [Explanation > Templates](../../explanation/templates/templates_overview.md) for explanation. +- Read [Explanation > Templates](../../explanation/styling/templates_overview.md) for explanation. diff --git a/doc/how_to/templates/template_modal.md b/doc/how_to/templates/template_modal.md index 38ce22ff85..144f63be10 100644 --- a/doc/how_to/templates/template_modal.md +++ b/doc/how_to/templates/template_modal.md @@ -69,4 +69,4 @@ panel serve app.py --show --autoreload ## Related Resources - See [How-to > Apply Templates > Set a Template](./template_set.md) for alternate approaches to set a template. -- Read [Explanation > Templates](../../explanation/templates/templates_overview.md) for explanation. +- Read [Explanation > Templates](../../explanation/styling/templates_overview.md) for explanation. diff --git a/doc/how_to/templates/template_set.md b/doc/how_to/templates/template_set.md index 77c9c48d0b..3a2e24820c 100644 --- a/doc/how_to/templates/template_set.md +++ b/doc/how_to/templates/template_set.md @@ -110,4 +110,4 @@ panel serve app_global.py --show ## Related Resources -- Read [Explanation > Templates](../../explanation/templates/templates_overview.md) for explanation. +- Read [Explanation > Templates](../../explanation/styling/templates_overview.md) for explanation. diff --git a/doc/how_to/templates/template_theme.md b/doc/how_to/templates/template_theme.md index d581100523..f480532e35 100644 --- a/doc/how_to/templates/template_theme.md +++ b/doc/how_to/templates/template_theme.md @@ -76,4 +76,4 @@ panel serve app.py --show --autoreload - See [How-to > Apply Templates > Build a Custom Template](./template_custom.md) to create a completely custom template. - See [How-to > Apply Templates > Set a Template](./template_set.md) for alternate approaches to set a template. -- Read [Background > Templates](../../explanation/templates/templates_overview.md) for explanation. +- Read [Background > Templates](../../explanation/styling/templates_overview.md) for explanation. diff --git a/doc/how_to/wasm/standalone.md b/doc/how_to/wasm/standalone.md index 078f89fae0..2e63c81c6e 100644 --- a/doc/how_to/wasm/standalone.md +++ b/doc/how_to/wasm/standalone.md @@ -165,7 +165,7 @@ Open the app in your browser at [http://localhost:8000/script.html](http://local Click the green *run* button that appears when you hover over the lower-right corner of the editor to see the application. :::note -In the example, we included **mini-coi.js**. This is not necessary if the [appropriate HTTP headers](https://docs.pyscript.net/2024.7.1/user-guide/workers/) are set on your server, such as on [pyscript.com](pyscript.com) or in Github pages. +In the example, we included **mini-coi.js**. This is not necessary if the [appropriate HTTP headers](https://docs.pyscript.net/2024.7.1/user-guide/workers/) are set on your server, such as on [pyscript.com](https://pyscript.com) or in Github pages. ::: ## Rendering Panel Components in Pyodide or PyScript diff --git a/doc/tutorials/basic/build_chatbot.md b/doc/tutorials/basic/build_chatbot.md index 65c703afbc..0dc4342e2e 100644 --- a/doc/tutorials/basic/build_chatbot.md +++ b/doc/tutorials/basic/build_chatbot.md @@ -90,5 +90,5 @@ In this section, we have used the *easy to use*, *high-level* [`ChatInterface`]( ## Resources -- [Chat Component Gallery](https://panel.holoviz.org/reference/index.html#chat) +- [Chat Component Gallery](../../reference/index.rst#chat) - [Panel-Chat-Examples](https://holoviz-topics.github.io/panel-chat-examples/) diff --git a/doc/tutorials/basic/indicators_performance.md b/doc/tutorials/basic/indicators_performance.md index 6787d613d5..55bb21af14 100644 --- a/doc/tutorials/basic/indicators_performance.md +++ b/doc/tutorials/basic/indicators_performance.md @@ -1,6 +1,6 @@ # Display Performance with Indicators -Welcome to our tutorial on Panel's [indicators](https://panel.holoviz.org/reference/index.html#indicators)! +Welcome to our tutorial on Panel's [indicators](../../reference/index.rst#indicators)! We will delve into the use of Indicators with an example that uses them to visualizes the key metrics of wind turbines in an engaging and insightful manner. The result will be this: @@ -20,7 +20,7 @@ In this tutorial, we'll explore various indicators offered by Panel to showcase - **Current Performance**: Utilize the [`Number`](../../reference/indicators/Number.md) indicator to display the current performance. - **Trending Performance**: Employ the [`Trend`](../../reference/indicators/Trend.md) indicator to showcase the trending performance over time. -For a comprehensive list of indicators and their detailed reference guides, you can always refer to the [Indicators Section](https://panel.holoviz.org/reference/index.html#indicators) in the [Component Gallery](../../reference/index.rst). +For a comprehensive list of indicators and their detailed reference guides, you can always refer to the [Indicators Section](../../reference/index.rst#indicators) in the [Component Gallery](../../reference/index.rst). :::{note} Throughout this tutorial, whenever we refer to "run the code," you can execute it directly in the Panel docs using the green *run* button, in a notebook cell, or within a file named `app.py` served with `panel serve app.py --dev`. @@ -79,7 +79,7 @@ For more detailed insights into the `Trend` indicator, take a moment to explore Panel provides a large collection of indicators to suit your needs. -Click [this link](https://panel.holoviz.org/reference/index.html#indicators) to explore the available indicators and their detailed reference guides. +Click [this link](../../reference/index.rst#indicators) to explore the available indicators and their detailed reference guides. ## Recap @@ -88,4 +88,4 @@ In this tutorial, we have explored using Panel's versatile indicators by creatin - Leveraged the [`Number`](../../reference/indicators/Number.md) indicator to display current performance. - Utilized the [`Trend`](../../reference/indicators/Trend.md) indicator to showcase trending performance over time. -Remember, there's a collection of indicators waiting for you to explore in the [Indicators Section](https://panel.holoviz.org/reference/index.html#indicators) of the [Component Gallery](../../reference/index.rst). Keep experimenting and uncovering new insights! πŸš€ +Remember, there's a collection of indicators waiting for you to explore in the [Indicators Section](../../reference/index.rst#indicators) of the [Component Gallery](../../reference/index.rst). Keep experimenting and uncovering new insights! πŸš€ diff --git a/doc/tutorials/basic/layouts.md b/doc/tutorials/basic/layouts.md index ce1599cf1f..6e6e857314 100644 --- a/doc/tutorials/basic/layouts.md +++ b/doc/tutorials/basic/layouts.md @@ -8,7 +8,7 @@ In this guide, we'll explore the following aspects of layouts: - **Layouts**: Accessible in the `pn` namespace. - **Layout Techniques**: Utilize `pn.Column` and `pn.Row` to structure your content. -- **Reference Guides**: Explore detailed documentation for each layout in the [Layouts Section](https://panel.holoviz.org/reference/index.html#layouts) of the [Component Gallery](../../reference/index.rst). +- **Reference Guides**: Explore detailed documentation for each layout in the [Layouts Section](../../reference/index.rst#layouts) of the [Component Gallery](../../reference/index.rst). :::{note} As you follow along with the code examples below, feel free to execute them directly in the Panel documentation, a notebook cell, or within a file named `app.py` served with `panel serve app.py --dev`. @@ -237,7 +237,7 @@ pn.Column( Panel provides a vast collection of layouts to suit your needs. -Click [this link](https://panel.holoviz.org/reference/index.html#layouts) to explore available layouts and their detailed reference guides. +Click [this link](../../reference/index.rst#layouts) to explore available layouts and their detailed reference guides. ## Recap @@ -271,4 +271,4 @@ Now, you're equipped to create dynamic and visually appealing layouts for your P ### Component Gallery -- [Layouts](https://panel.holoviz.org/reference/index.html#layouts) +- [Layouts](../../reference/index.rst#layouts) diff --git a/doc/tutorials/basic/panes.md b/doc/tutorials/basic/panes.md index a44263f0a8..ec246329ca 100644 --- a/doc/tutorials/basic/panes.md +++ b/doc/tutorials/basic/panes.md @@ -74,7 +74,7 @@ Read more [here](https://en.wikipedia.org/wiki/Wind_turbine). It's key for success with Panel to be able to navigate the [Component Gallery](../../reference/index.rst) and use the *reference guides*. ::: -Click [this link](https://panel.holoviz.org/reference/index.html#panes) to the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.rst). Identify the [Markdown Reference Guide](../../reference/panes/Markdown.md) and open it. You don't have to spend time studying the details right now. +Click [this link](../../reference/index.rst#panes) to the [Panes Section](../../reference/index.rst#panes) of the [Component Gallery](../../reference/index.rst). Identify the [Markdown Reference Guide](../../reference/panes/Markdown.md) and open it. You don't have to spend time studying the details right now. ### Display Alerts @@ -362,11 +362,11 @@ In this guide, we have learned to display Python objects with *Panes*: - *Panes* are available in the `pn.pane` namespace - *Panes* take an `object` argument as well as other arguments -- Display strings with the [`Str`]((../../reference/panes/Str.md)), [`Markdown`]((../../reference/panes/Markdown.md)) and [`Alert`]((../../reference/panes/Alert.md)) panes +- Display strings with the [`Str`](../../reference/panes/Str.md), [`Markdown`](../../reference/panes/Markdown.md) and [`Alert`](../../reference/panes/Alert.md) panes - Display plot figures like [Altair](https://altair-viz.github.io/), [ECharts](https://echarts.apache.org/en/index.html), [hvPlot](https://hvplot.holoviz.org), [Matplotlib](https://matplotlib.org/), [Plotly](https://plotly.com/python/) and [Vizzu](https://vizzuhq.com/) with the [`Vega`](../../reference/panes/Vega.md), [`ECharts`](../../reference/panes/ECharts.md), [`HoloViews`](../../reference/panes/HoloViews.md), [`Matplotlib`](../../reference/panes/Matplotlib.md), [`Plotly`](../../reference/panes/Plotly.md) and [`Vizzu`](../../reference/panes/Vizzu.md) *panes*, respectively. -- Display *DataFrames* with the [`DataFrame`](../../reference/panes/DataFrame.md) and [`Perspective`]((../../reference/panes/Perspective.md)) *panes*. +- Display *DataFrames* with the [`DataFrame`](../../reference/panes/DataFrame.md) and [`Perspective`](../../reference/panes/Perspective.md) *panes*. - Add JavaScript dependencies via `pn.extension`. For example `pn.extension("vega")` or `pn.extension("plotly")` -- Discover all *Panes* and their *reference guides* in the [Panes Section](https://panel.holoviz.org/reference/index.html#panes) of the [Component Gallery](../../reference/index.rst). +- Discover all *Panes* and their *reference guides* in the [Panes Section](../../reference/index.rst#panes) of the [Component Gallery](../../reference/index.rst). ## Resources @@ -390,4 +390,4 @@ In this guide, we have learned to display Python objects with *Panes*: ### Component Gallery -- [Panes](https://panel.holoviz.org/reference/index.html#panes) +- [Panes](../../reference/index.rst#panes) diff --git a/doc/tutorials/basic/pn_panel.md b/doc/tutorials/basic/pn_panel.md index 72ec196683..1dbc64215e 100644 --- a/doc/tutorials/basic/pn_panel.md +++ b/doc/tutorials/basic/pn_panel.md @@ -299,7 +299,7 @@ component.servable() ## Display any Python object in a layout -If we place objects in a [*layout*](https://panel.holoviz.org/reference/index.html#layouts) like [`pn.Column`](../../reference/layouts/Column.md) (more about layouts later), then the layout will apply `pn.panel` for us automatically. +If we place objects in a [*layout*](../../reference/index.rst#layouts) like [`pn.Column`](../../reference/layouts/Column.md) (more about layouts later), then the layout will apply `pn.panel` for us automatically. Run the code below: @@ -343,7 +343,7 @@ The example above sets the *css* `styles` of the `Audio` player. The `styles` pa ## Consider Performance -`pn.panel` is a versatile helper function that converts objects into a [*Pane*](https://panel.holoviz.org/reference/index.html#panes). It automatically selects the best *representation* for an object based on available [*Pane*](https://panel.holoviz.org/reference/index.html#panes) types, ranking them by priority. +`pn.panel` is a versatile helper function that converts objects into a [*Pane*](../../reference/index.rst#panes). It automatically selects the best *representation* for an object based on available [*Pane*](../../reference/index.rst#panes) types, ranking them by priority. For optimal performance, specify the desired *Pane* type directly, like `pn.pane.Matplotlib(fig)` instead of using `pn.panel(fig)`. You will learn about *Panes* in the [Display Content with Panes](panes.md) section. @@ -374,4 +374,4 @@ In this guide, we have learned to display Python objects easily with `pn.panel`: ### Component Gallery -- [Panes](https://panel.holoviz.org/reference/index.html#panes) +- [Panes](../../reference/index.rst#panes) diff --git a/doc/tutorials/basic/size.md b/doc/tutorials/basic/size.md index aed2680474..4791ec5a64 100644 --- a/doc/tutorials/basic/size.md +++ b/doc/tutorials/basic/size.md @@ -326,7 +326,7 @@ pn.FlexBox(*spacers).servable() Adjust the width of your browser window to observe the layout's responsiveness. :::{note} -We'll explore `FlexBox` in more detail in the [Control the Size (intermediate)](../intermediate/size.md) tutorial. +We'll explore `FlexBox` in more detail in the [Advanced Layouts](../intermediate/advanced_layouts.md) tutorial. ::: ## Recap @@ -342,7 +342,7 @@ In this tutorial, we've explored various aspects of controlling component size i ### Tutorials -- [Control the Size (intermediate)](../intermediate/size.md) +- [Advanced Layouts](../intermediate/advanced_layouts.md) ### How-to diff --git a/doc/tutorials/basic/templates.md b/doc/tutorials/basic/templates.md index 2ddf10a180..a4e0b624bf 100644 --- a/doc/tutorials/basic/templates.md +++ b/doc/tutorials/basic/templates.md @@ -47,7 +47,7 @@ For additional configuration options, refer to the [`FastListTemplate` reference Panel offers a rich assortment of built-in templates, including a versatile [`Slides`](../../reference/templates/Slides.md) template. ::: -Take a moment to explore the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) in the [Component Gallery](../../reference/index.rst), then return here. +Take a moment to explore the [Templates Section](../../reference/index.rst#templates) in the [Component Gallery](../../reference/index.rst), then return here. ## Integrating Templates in a Notebook @@ -165,7 +165,7 @@ Note that `accent` and `main_layout` are exclusive to Fast templates like [FastL In this tutorial, we've explored the power of pre-made templates for structuring your app with ease: - Templates are available in the `pn.template` namespace. -- Find a variety of templates in the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) of the [Component Gallery](../../reference/index.rst). +- Find a variety of templates in the [Templates Section](../../reference/index.rst#templates) of the [Component Gallery](../../reference/index.rst). - Templates offer high customizability. ## References @@ -189,4 +189,4 @@ In this tutorial, we've explored the power of pre-made templates for structuring ### Component Gallery -- Explore the [Templates Section](https://panel.holoviz.org/reference/index.html#templates) in the [Component Gallery](../../reference/index.rst) for more options. +- Explore the [Templates Section](../../reference/index.rst#templates) in the [Component Gallery](../../reference/index.rst) for more options. diff --git a/doc/tutorials/basic/widgets.md b/doc/tutorials/basic/widgets.md index 2beeac13b9..dd00b456d4 100644 --- a/doc/tutorials/basic/widgets.md +++ b/doc/tutorials/basic/widgets.md @@ -6,7 +6,7 @@ Welcome to the tutorial on accepting user inputs with widgets in Panel! Let's di Widgets, found within the `pn.widgets` namespace, are powerful tools for capturing user input and interaction. They offer a wide range of functionality and customization options, making them essential for creating dynamic and engaging apps. -You can explore the full array of available widgets and their detailed reference guides in the [Widgets Section](https://panel.holoviz.org/reference/index.html#widgets) of the [Component Gallery](../../reference/index.rst). +You can explore the full array of available widgets and their detailed reference guides in the [Widgets Section](../../reference/index.rst#widgets) of the [Component Gallery](../../reference/index.rst). :::{note} Widgets typically utilize the `value` parameter to capture user input. @@ -103,7 +103,7 @@ pn.widgets.RadioButtonGroup( In this tutorial, we've covered various ways to accept user input using widgets in Panel. From simple clicks to text input and selection from lists, widgets provide powerful tools for building interactive applications. -Don't forget to explore the [Component Gallery](https://panel.holoviz.org/reference/index.html#widgets) for more widgets and their detailed reference guides. +Don't forget to explore the [Component Gallery](../../reference/index.rst#widgets) for more widgets and their detailed reference guides. ## Resources @@ -121,4 +121,4 @@ Don't forget to explore the [Component Gallery](https://panel.holoviz.org/refere ### Component Gallery -- [Widgets](https://panel.holoviz.org/reference/index.html#widgets) +- [Widgets](../../reference/index.rst#widgets) diff --git a/doc/tutorials/expert/custom_anywidget_components.md b/doc/tutorials/expert/custom_anywidget_components.md index 3202b5fcb4..b58d74ddc3 100644 --- a/doc/tutorials/expert/custom_anywidget_components.md +++ b/doc/tutorials/expert/custom_anywidget_components.md @@ -1,6 +1,6 @@ # Creating a `MarioButton` with `JSComponent` -In this tutorial we will build a *[Mario](https://mario.nintendo.com/) style button* with sounds and animations using the [`AnyWidgetComponent`](../../reference/custom/AnyWidgetComponent.md) feature in Panel. It aims to help you learn how to push the boundaries of what can be achieved with HoloViz Panel by creating advanced components using modern JavaScript and CSS technologies. +In this tutorial we will build a *[Mario](https://mario.nintendo.com/) style button* with sounds and animations using the [`AnyWidgetComponent`](../../reference/custom_components/AnyWidgetComponent.md) feature in Panel. It aims to help you learn how to push the boundaries of what can be achieved with HoloViz Panel by creating advanced components using modern JavaScript and CSS technologies. ![Mario chime button](https://assets.holoviz.org/panel/tutorials/ipymario.gif) diff --git a/doc/tutorials/intermediate/serve.md b/doc/tutorials/intermediate/serve.md index de8a9acf1a..2991175b11 100644 --- a/doc/tutorials/intermediate/serve.md +++ b/doc/tutorials/intermediate/serve.md @@ -6,7 +6,7 @@ In this tutorial you will learn more advanced techniques to serve Panel apps: - list the configuration options of `panel serve` by adding the flag `--help`. :::{note} -This guide builds upon the [Serve Panel Apps (beginner)](../basic/) tutorial. +This guide builds upon the [Serve Panel Apps (beginner)](../basic/serve.md) tutorial. ::: ## Serve a multi-page app @@ -250,7 +250,7 @@ You can - [Launch a server on the commandline](../../how_to/server/commandline.md) - [Serve multiple applications with `pn.serve`](../../how_to/server/multiple.md) - [Serve static files with `--static-dirs`](../../how_to/server/static_files.md) -- [Serve with Django](../../how_to/integrations/django.md) +- [Serve with Django](../../how_to/integrations/Django.md) - [Serve with FastAPI](../../how_to/integrations/FastAPI.md) - [Serve with Flask](../../how_to/integrations/flask.md) - [Write and serve apps in Markdown](../../how_to/editor/markdown.md) diff --git a/examples/reference/custom_components/AnyWidgetComponent.ipynb b/examples/reference/custom_components/AnyWidgetComponent.ipynb index 835a16569d..8ca0f1a7c9 100644 --- a/examples/reference/custom_components/AnyWidgetComponent.ipynb +++ b/examples/reference/custom_components/AnyWidgetComponent.ipynb @@ -541,17 +541,17 @@ "\n", "### Tutorials\n", "\n", - "- [Build Custom Components](../../../how_to/custom_components/reactive_esm/reactive_esm_layout.md)\n", + "- [Build Custom Components](../../how_to/custom_components/esm/custom_layout.md)\n", "\n", "### How-To Guides\n", "\n", - "- [Convert `AnyWidget` widgets](../../../how_to/migrate/anywidget/index.md)\n", + "- [Convert `AnyWidget` widgets](../../how_to/migrate/anywidget/index.md)\n", "\n", "### Reference Guides\n", "\n", - "- [`AnyWidgetComponent`](./AnyWidgetComponent.ipynb)\n", - "- [`JSComponent`](./JSComponent.ipynb)\n", - "- [`ReactComponent`](./ReactComponent.ipynb)" + "- [`AnyWidgetComponent`](AnyWidgetComponent.ipynb)\n", + "- [`JSComponent`](JSComponent.ipynb)\n", + "- [`ReactComponent`](ReactComponent.ipynb)" ] } ], diff --git a/examples/reference/custom_components/JSComponent.ipynb b/examples/reference/custom_components/JSComponent.ipynb index f41b564309..9fcf235271 100644 --- a/examples/reference/custom_components/JSComponent.ipynb +++ b/examples/reference/custom_components/JSComponent.ipynb @@ -586,17 +586,17 @@ "\n", "### Tutorials\n", "\n", - "- [Build Custom Components](../../../how_to/custom_components/reactive_esm/reactive_esm_layout.md)\n", + "- [Build Custom Components](../../how_to/custom_components/esm/custom_layout.md)\n", "\n", "### How-To Guides\n", "\n", - "- [Convert `AnyWidget` widgets](../../../how_to/migrate/anywidget/index.md)\n", + "- [Convert `AnyWidget` widgets](../../how_to/migrate/anywidget/index.md)\n", "\n", "### Reference Guides\n", "\n", - "- [`AnyWidgetComponent`](./AnyWidgetComponent.ipynb)\n", - "- [`JSComponent`](./JSComponent.ipynb)\n", - "- [`ReactComponent`](./ReactComponent.ipynb)" + "- [`AnyWidgetComponent`](AnyWidgetComponent.ipynb)\n", + "- [`JSComponent`](JSComponent.ipynb)\n", + "- [`ReactComponent`](ReactComponent.ipynb)" ] } ], diff --git a/examples/reference/custom_components/ReactComponent.ipynb b/examples/reference/custom_components/ReactComponent.ipynb index 3f16f87a19..e5f9912a3b 100644 --- a/examples/reference/custom_components/ReactComponent.ipynb +++ b/examples/reference/custom_components/ReactComponent.ipynb @@ -621,17 +621,17 @@ "\n", "### Tutorials\n", "\n", - "- [Build Custom Components](../../../how_to/custom_components/reactive_esm/reactive_esm_layout.md)\n", + "- [Build Custom Components](../../how_to/custom_components/esm/custom_layout.md)\n", "\n", "### How-To Guides\n", "\n", - "- [Convert `AnyWidget` widgets](../../../how_to/migrate/anywidget/index.md)\n", + "- [Convert `AnyWidget` widgets](../../how_to/migrate/anywidget/index.md)\n", "\n", "### Reference Guides\n", "\n", - "- [`AnyWidgetComponent`](./AnyWidgetComponent.ipynb)\n", - "- [`JSComponent`](./JSComponent.ipynb)\n", - "- [`ReactComponent`](./ReactComponent.ipynb)" + "- [`AnyWidgetComponent`](AnyWidgetComponent.ipynb)\n", + "- [`JSComponent`](JSComponent.ipynb)\n", + "- [`ReactComponent`](ReactComponent.ipynb)" ] } ], diff --git a/examples/reference/custom_components/Viewer.ipynb b/examples/reference/custom_components/Viewer.ipynb index 0466c9b2de..4317468277 100644 --- a/examples/reference/custom_components/Viewer.ipynb +++ b/examples/reference/custom_components/Viewer.ipynb @@ -335,11 +335,11 @@ "\n", "### Tutorials\n", "\n", - "- [Reusable Components](../../../tutorials/intermediate/reusable_components.md)\n", + "- [Reusable Components](../../tutorials/intermediate/reusable_components.md)\n", "\n", "### How-To Guides\n", "\n", - "- [Combine Existing Widgets](../../../how_to/custom_components/custom_viewer.md)" + "- [Combine Existing Widgets](../../how_to/custom_components/custom_viewer.md)" ] } ], diff --git a/examples/reference/indicators/Progress.ipynb b/examples/reference/indicators/Progress.ipynb index 52ced290a4..2142082d8d 100644 --- a/examples/reference/indicators/Progress.ipynb +++ b/examples/reference/indicators/Progress.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``Progress`` widget displays the progress towards some target based on the current `value` and the `max` value. If no `value` is set or a `value` of -1 is set the ``Progress`` widget is in indeterminate mode and will animate if `active` is set to True.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/layouts/GridSpec.ipynb b/examples/reference/layouts/GridSpec.ipynb index 443d5a801e..fb089c21c3 100644 --- a/examples/reference/layouts/GridSpec.ipynb +++ b/examples/reference/layouts/GridSpec.ipynb @@ -114,7 +114,7 @@ "\n", "### Responsive grids\n", "\n", - "In addition to fixed-size grids, ``GridSpec`` also supports all the standard sizing modes outlined in the [Customization user guide](../../user_guide/Customization.ipynb). Responsive sizing modes allow declaring grids that rescale dynamically when the browser window is resized and when loading the app or dashboard on different devices. Just like the fixed-width mode, the ``GridSpec`` will automatically set responsive sizing modes on the grid contents to fill the space correctly. To control the maximum and minimum size of the grid, use the `max_` and `min_` `width` and `height` options." + "In addition to fixed-size grids, ``GridSpec`` also supports all the standard sizing modes outlined in the [Sizing how-to guide](../../how_to/layout/size.md). Responsive sizing modes allow declaring grids that rescale dynamically when the browser window is resized and when loading the app or dashboard on different devices. Just like the fixed-width mode, the ``GridSpec`` will automatically set responsive sizing modes on the grid contents to fill the space correctly. To control the maximum and minimum size of the grid, use the `max_` and `min_` `width` and `height` options." ] }, { diff --git a/examples/reference/panes/ReactiveExpr.ipynb b/examples/reference/panes/ReactiveExpr.ipynb index 8585340647..93d32aeb2c 100644 --- a/examples/reference/panes/ReactiveExpr.ipynb +++ b/examples/reference/panes/ReactiveExpr.ipynb @@ -40,7 +40,7 @@ "\n", "* **`widgets`** (ListPanel): Returns the widgets in a `widget_layout`.\n", "\n", - "For more layout and styling related parameters see the [customization user guide](../../user_guide/Customization.ipynb).\n", + "For more layout and styling related parameters see the [Sizing how-to guide](../../how_to/layout/size.md).\n", "___" ] }, diff --git a/examples/reference/templates/Bootstrap.ipynb b/examples/reference/templates/Bootstrap.ipynb index ab0e3bdc5a..816b2461a9 100644 --- a/examples/reference/templates/Bootstrap.ipynb +++ b/examples/reference/templates/Bootstrap.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/EditableTemplate.ipynb b/examples/reference/templates/EditableTemplate.ipynb index 48fd24f179..783df28030 100644 --- a/examples/reference/templates/EditableTemplate.ipynb +++ b/examples/reference/templates/EditableTemplate.ipynb @@ -17,7 +17,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/FastGridTemplate.ipynb b/examples/reference/templates/FastGridTemplate.ipynb index b33dc27e54..8f2177ea24 100644 --- a/examples/reference/templates/FastGridTemplate.ipynb +++ b/examples/reference/templates/FastGridTemplate.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/FastListTemplate.ipynb b/examples/reference/templates/FastListTemplate.ipynb index a9a508b686..e72459ba82 100644 --- a/examples/reference/templates/FastListTemplate.ipynb +++ b/examples/reference/templates/FastListTemplate.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/GoldenLayout.ipynb b/examples/reference/templates/GoldenLayout.ipynb index b0b3823617..757fa89ab2 100644 --- a/examples/reference/templates/GoldenLayout.ipynb +++ b/examples/reference/templates/GoldenLayout.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/Material.ipynb b/examples/reference/templates/Material.ipynb index ab573b6fcd..99f829709c 100644 --- a/examples/reference/templates/Material.ipynb +++ b/examples/reference/templates/Material.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/React.ipynb b/examples/reference/templates/React.ipynb index af0ddc4153..960ecb0011 100644 --- a/examples/reference/templates/React.ipynb +++ b/examples/reference/templates/React.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/Slides.ipynb b/examples/reference/templates/Slides.ipynb index 1912431367..8950b69277 100644 --- a/examples/reference/templates/Slides.ipynb +++ b/examples/reference/templates/Slides.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/templates/Vanilla.ipynb b/examples/reference/templates/Vanilla.ipynb index fa49647d85..716cb058a0 100644 --- a/examples/reference/templates/Vanilla.ipynb +++ b/examples/reference/templates/Vanilla.ipynb @@ -8,7 +8,7 @@ "\n", "## Basic Templates\n", "\n", - "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../user_guide/Templates.ipynb), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", + "For a large variety of use cases we do not need complete control over the exact layout of each individual component on the page, as could be achieved with a [custom template](../../explanation/styling/templates_overview.md), we just want to achieve a more polished look and feel. For these cases Panel ships with a number of default templates, which are defined by declaring four main content areas on the page, which can be populated as desired:\n", "\n", "* **`header`**: The header area of the HTML page\n", "* **`sidebar`**: A collapsible sidebar\n", diff --git a/examples/reference/widgets/ArrayInput.ipynb b/examples/reference/widgets/ArrayInput.ipynb index cda97419b8..1b16abff3d 100644 --- a/examples/reference/widgets/ArrayInput.ipynb +++ b/examples/reference/widgets/ArrayInput.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``ArrayInput`` widget allows rendering and editing NumPy arrays using a text entry box whose contents are then parsed in Python. In order to avoid issues with large arrays the `ArrayInput` defines a `max_array_size`, if the array exceeds this size the textual representation will be summarized and editing will be disabled.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/AutocompleteInput.ipynb b/examples/reference/widgets/AutocompleteInput.ipynb index 7082839a8e..966707a15a 100644 --- a/examples/reference/widgets/AutocompleteInput.ipynb +++ b/examples/reference/widgets/AutocompleteInput.ipynb @@ -18,7 +18,7 @@ "source": [ "The `AutocompleteInput` widget allows selecting a `value` from a list or dictionary of `options` by entering the value into an auto-completing text field. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [`RadioBoxGroup`](RadioBoxGroup.ipynb), [`Select`](Select.ipynb) and [`DiscreteSlider`](DiscreteSlider.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Button.ipynb b/examples/reference/widgets/Button.ipynb index 1562f85ef2..edf84571e5 100644 --- a/examples/reference/widgets/Button.ipynb +++ b/examples/reference/widgets/Button.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``Button`` widget allows triggering events when the button is clicked. In addition to a `value` parameter, which will toggle from `False` to `True` while the click event is being processed an additional ``clicks`` parameter that can be watched to subscribe to click events.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/ButtonIcon.ipynb b/examples/reference/widgets/ButtonIcon.ipynb index 4b0917c08c..70c0c51e84 100644 --- a/examples/reference/widgets/ButtonIcon.ipynb +++ b/examples/reference/widgets/ButtonIcon.ipynb @@ -20,7 +20,7 @@ "\n", "For instance, the `ButtonIcon` can be effectively utilized to implement a feature akin to ChatGPT's copy-to-clipboard button.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/CheckBoxGroup.ipynb b/examples/reference/widgets/CheckBoxGroup.ipynb index 4e8346c850..948eb926e6 100644 --- a/examples/reference/widgets/CheckBoxGroup.ipynb +++ b/examples/reference/widgets/CheckBoxGroup.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``CheckBoxGroup`` widget allows selecting between a list of options by ticking the corresponding checkboxes. It falls into the broad category of multi-option selection widgets that provide a compatible API and include the [``MultiSelect``](MultiSelect.ipynb), [``CrossSelector``](CrossSelector.ipynb) and [``CheckButtonGroup``](CheckButtonGroup.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/CheckButtonGroup.ipynb b/examples/reference/widgets/CheckButtonGroup.ipynb index ea5595f0e0..87189e7e7b 100644 --- a/examples/reference/widgets/CheckButtonGroup.ipynb +++ b/examples/reference/widgets/CheckButtonGroup.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``CheckButtonGroup`` widget allows selecting between a list of options by toggling the corresponding buttons. It falls into the broad category of multi-option selection widgets that provide a compatible API and include the [``MultiSelect``](MultiSelect.ipynb), [``CrossSelector``](CrossSelector.ipynb) and [``CheckBoxGroup``](CheckButtonGroup.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Checkbox.ipynb b/examples/reference/widgets/Checkbox.ipynb index 46aca798ed..7e46ff4677 100644 --- a/examples/reference/widgets/Checkbox.ipynb +++ b/examples/reference/widgets/Checkbox.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``Checkbox`` widget allows toggling a single condition between ``True``/``False`` states by ticking a checkbox. This widget is interchangeable with the ``Toggle`` widget.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/ColorMap.ipynb b/examples/reference/widgets/ColorMap.ipynb index 7ce6baa481..70586d9ff3 100644 --- a/examples/reference/widgets/ColorMap.ipynb +++ b/examples/reference/widgets/ColorMap.ipynb @@ -18,7 +18,7 @@ "source": [ "The `ColorMap` widget allows selecting a `value` from a dictionary containing color palettes. The widget is similar to a [`Select` widget](./Select.ipynb) except it allows only valid color palettes, i.e. lists of hex or named colors or matplotlib colormaps. \n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/ColorPicker.ipynb b/examples/reference/widgets/ColorPicker.ipynb index 5cb8ddb698..c25525b87c 100644 --- a/examples/reference/widgets/ColorPicker.ipynb +++ b/examples/reference/widgets/ColorPicker.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``ColorPicker`` widget allows selecting a color using the browser's color-picking widget support.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/CrossSelector.ipynb b/examples/reference/widgets/CrossSelector.ipynb index 1338abed49..38abc9db15 100644 --- a/examples/reference/widgets/CrossSelector.ipynb +++ b/examples/reference/widgets/CrossSelector.ipynb @@ -17,7 +17,7 @@ "source": [ "The `CrossSelector` widget allows selecting multiple values from a list of options by moving items between two lists. It falls into the broad category of multi-option selection widgets that provide a compatible API and include the [`MultiSelect`](MultiSelect.ipynb), [`CheckBoxGroup`](CheckBoxGroup.ipynb) and [`CheckButtonGroup`](CheckButtonGroup.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DataFrame.ipynb b/examples/reference/widgets/DataFrame.ipynb index 1d8dc620f3..7079189cb4 100644 --- a/examples/reference/widgets/DataFrame.ipynb +++ b/examples/reference/widgets/DataFrame.ipynb @@ -19,7 +19,7 @@ "source": [ "The ``DataFrame`` widget allows displaying and editing a pandas DataFrame. Note that editing is not possible for multi-indexed DataFrames, in which case you will need to reduce the DataFrame to a single index. Also note that the `DataFrame` widget will eventually be replaced with the [`Tabulator`](./Tabulator.ipynb) widget, and so new code should be written to use Tabulator instead.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DatePicker.ipynb b/examples/reference/widgets/DatePicker.ipynb index c265087c05..1b273fb26b 100644 --- a/examples/reference/widgets/DatePicker.ipynb +++ b/examples/reference/widgets/DatePicker.ipynb @@ -19,7 +19,7 @@ "source": [ "The ``DatePicker`` widget allows selecting selecting a date value using a text box and the browser's date-picking utility.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DateRangePicker.ipynb b/examples/reference/widgets/DateRangePicker.ipynb index 0d070ecc08..9ba9dbabc9 100644 --- a/examples/reference/widgets/DateRangePicker.ipynb +++ b/examples/reference/widgets/DateRangePicker.ipynb @@ -19,7 +19,7 @@ "source": [ "The `DateRangePicker` widget allows selecting a date range using a text box and the browser's date-picking utility.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DateRangeSlider.ipynb b/examples/reference/widgets/DateRangeSlider.ipynb index c5236337e7..130bf45da7 100644 --- a/examples/reference/widgets/DateRangeSlider.ipynb +++ b/examples/reference/widgets/DateRangeSlider.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``DateRangeSlider`` widget allows selecting a date range using a slider with two handles.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DateSlider.ipynb b/examples/reference/widgets/DateSlider.ipynb index 16433f92a0..61f1d8b385 100644 --- a/examples/reference/widgets/DateSlider.ipynb +++ b/examples/reference/widgets/DateSlider.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``DateSlider`` widget allows selecting selecting a date value within a set bounds using a slider.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DatetimeInput.ipynb b/examples/reference/widgets/DatetimeInput.ipynb index a29bf9ec5c..eef9f31c8f 100644 --- a/examples/reference/widgets/DatetimeInput.ipynb +++ b/examples/reference/widgets/DatetimeInput.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``DatetimeInput`` widget allows entering a datetime value as text and parsing it using a pre-defined formatter. \n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DatetimePicker.ipynb b/examples/reference/widgets/DatetimePicker.ipynb index c190bb220a..b3c2b64572 100644 --- a/examples/reference/widgets/DatetimePicker.ipynb +++ b/examples/reference/widgets/DatetimePicker.ipynb @@ -19,7 +19,7 @@ "source": [ "The `DatetimePicker` widget allows selecting selecting a datetime value using a text box and the browser's datetime-picking utility.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DatetimeRangeInput.ipynb b/examples/reference/widgets/DatetimeRangeInput.ipynb index 9ff534df22..522eda3c3d 100644 --- a/examples/reference/widgets/DatetimeRangeInput.ipynb +++ b/examples/reference/widgets/DatetimeRangeInput.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``DatetimeRangeInput`` widget allows selecting a datetime range using two [`DatetimeInput`](./DatetimeInput.ipynb) widgets, which return a tuple range.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DatetimeRangePicker.ipynb b/examples/reference/widgets/DatetimeRangePicker.ipynb index 9002758e25..843674ae83 100644 --- a/examples/reference/widgets/DatetimeRangePicker.ipynb +++ b/examples/reference/widgets/DatetimeRangePicker.ipynb @@ -19,7 +19,7 @@ "source": [ "The `DatetimeRangePicker` widget allows selecting selecting a datetime value using a text box and the browser's datetime-picking utility.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DatetimeRangeSlider.ipynb b/examples/reference/widgets/DatetimeRangeSlider.ipynb index d7cd94695c..4ea7d30467 100644 --- a/examples/reference/widgets/DatetimeRangeSlider.ipynb +++ b/examples/reference/widgets/DatetimeRangeSlider.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``DateRangeSlider`` widget allows selecting a date range using a slider with two handles.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DiscretePlayer.ipynb b/examples/reference/widgets/DiscretePlayer.ipynb index 36599f913c..aea763d75b 100644 --- a/examples/reference/widgets/DiscretePlayer.ipynb +++ b/examples/reference/widgets/DiscretePlayer.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``DiscretePlayer`` widget displays media-player-like controls that allow playing and stepping through the provided options. When playing it triggers events at a pre-defined interval on the frontend, advancing the player value each time. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [``AutocompleteInput``](AutocompleteInput.ipynb), [``Select``](Select.ipynb) and [``DiscreteSlider``](DiscreteSlider.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/DiscreteSlider.ipynb b/examples/reference/widgets/DiscreteSlider.ipynb index 4b9e319a85..9f1e26cc55 100644 --- a/examples/reference/widgets/DiscreteSlider.ipynb +++ b/examples/reference/widgets/DiscreteSlider.ipynb @@ -16,8 +16,6 @@ "source": [ "The ``DiscreteSlider`` widget allows selecting from a discrete list or dictionary of values using a slider. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [``AutocompleteInput``](AutocompleteInput.ipynb), and [``Select``](Select.ipynb) widgets.\n", "\n", - "For more information about listening to widget events and laying out widgets refer to the [widgets user guide](../../user_guide/Widgets.md). Alternatively you can learn how to build GUIs by declaring parameters independently of any specific widgets in the [param user guide](../../user_guide/Param.md). To express interactivity entirely using Javascript without the need for a Python server take a look at the [links user guide](../../user_guide/Param.md).\n", - "\n", "#### Parameters:\n", "\n", "For details on other options for customizing the component see the [layout](../../how_to/layout/index.md) and [styling](../../how_to/styling/index.md) how-to guides.\n", diff --git a/examples/reference/widgets/EditableFloatSlider.ipynb b/examples/reference/widgets/EditableFloatSlider.ipynb index 1f4d130d6d..7c928eb7a6 100644 --- a/examples/reference/widgets/EditableFloatSlider.ipynb +++ b/examples/reference/widgets/EditableFloatSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``EditableFloatSlider`` widget allows selecting selecting a numeric floating-point value within a set bounds using a slider and for more precise control offers an editable number input box.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/EditableIntSlider.ipynb b/examples/reference/widgets/EditableIntSlider.ipynb index 6ba3bdc416..307dc7f265 100644 --- a/examples/reference/widgets/EditableIntSlider.ipynb +++ b/examples/reference/widgets/EditableIntSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``EditableIntSlider`` widget allows selecting selecting an integer value within a set bounds using a slider and for more precise control offers an editable number input box.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/EditableRangeSlider.ipynb b/examples/reference/widgets/EditableRangeSlider.ipynb index e7ef308a99..3222f95cd2 100644 --- a/examples/reference/widgets/EditableRangeSlider.ipynb +++ b/examples/reference/widgets/EditableRangeSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``EditableRangeSlider`` widget allows selecting a floating-point range using a slider with two handles and for more precise control also offers a number input boxes.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/FileDownload.ipynb b/examples/reference/widgets/FileDownload.ipynb index 5789ede567..6f4fd1dc58 100644 --- a/examples/reference/widgets/FileDownload.ipynb +++ b/examples/reference/widgets/FileDownload.ipynb @@ -18,7 +18,7 @@ "source": [ "The `FileDownload` widget allows downloading a file on the frontend by sending the file data to the browser either on initialization (if `embed=True`) or when the button is clicked.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/FileDropper.ipynb b/examples/reference/widgets/FileDropper.ipynb index c076ece760..99402bbc7c 100644 --- a/examples/reference/widgets/FileDropper.ipynb +++ b/examples/reference/widgets/FileDropper.ipynb @@ -17,7 +17,7 @@ "source": [ "The `FileDropper` allows the user to upload one or more files to the server. It is built on top of the [FilePond](https://pqina.nl/filepond/) library, if you use this component extensively consider donating to them. The `FileDropper` is similar to the `FileInput` widget but additionally adds support for chunked uploads, making it possible to upload large files. The UI also supports previews for image files. Unlike `FileInput` the uploaded files are stored as dictionary of bytes object indexed by the filename.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/FileInput.ipynb b/examples/reference/widgets/FileInput.ipynb index b1b39b98b6..73073f3720 100644 --- a/examples/reference/widgets/FileInput.ipynb +++ b/examples/reference/widgets/FileInput.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``FileInput`` widget allows uploading one or more files from the frontend and makes the filename, file data and [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) available in Python. To upload large files, use the ``FileDropper`` widget.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/FileSelector.ipynb b/examples/reference/widgets/FileSelector.ipynb index 6028fb8d2c..2233822387 100644 --- a/examples/reference/widgets/FileSelector.ipynb +++ b/examples/reference/widgets/FileSelector.ipynb @@ -16,7 +16,7 @@ "source": [ "The `FileSelector` widget allows browsing the filesystem on the server and selecting one or more files in a directory.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/FloatInput.ipynb b/examples/reference/widgets/FloatInput.ipynb index bcb592cc53..e1aa2eb651 100644 --- a/examples/reference/widgets/FloatInput.ipynb +++ b/examples/reference/widgets/FloatInput.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``FloatInput`` widget allows selecting a floating point value using a spinbox. It behaves like a slider except that lower and upper bounds are optional and a specific value can be entered. Value can be changed using keyboard (up, down, page up, page down), mouse wheel and arrow buttons.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/FloatSlider.ipynb b/examples/reference/widgets/FloatSlider.ipynb index 8142ebd257..9d383f3b2e 100644 --- a/examples/reference/widgets/FloatSlider.ipynb +++ b/examples/reference/widgets/FloatSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``FloatSlider`` widget allows selecting selecting a numeric floating-point value within a set bounds using a slider.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/IntInput.ipynb b/examples/reference/widgets/IntInput.ipynb index e3fccf7f03..9b15c1bbbd 100644 --- a/examples/reference/widgets/IntInput.ipynb +++ b/examples/reference/widgets/IntInput.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``IntInput`` widget allows selecting an integer value using a spinbox. It behaves like a slider except that lower and upper bounds are optional and a specific value can be entered. Value can be changed using keyboard (up, down, page up, page down), mouse wheel and arrow buttons.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/IntRangeSlider.ipynb b/examples/reference/widgets/IntRangeSlider.ipynb index 0689381a35..ac93cfe22f 100644 --- a/examples/reference/widgets/IntRangeSlider.ipynb +++ b/examples/reference/widgets/IntRangeSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``IntRangeSlider`` widget allows selecting an integer range using a slider with two handles.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/IntSlider.ipynb b/examples/reference/widgets/IntSlider.ipynb index e60562e3e6..78ff3057da 100644 --- a/examples/reference/widgets/IntSlider.ipynb +++ b/examples/reference/widgets/IntSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``IntSlider`` widget allows selecting selecting an integer value within a set bounds using a slider.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/LiteralInput.ipynb b/examples/reference/widgets/LiteralInput.ipynb index 7e4d7efa97..c9859addbe 100644 --- a/examples/reference/widgets/LiteralInput.ipynb +++ b/examples/reference/widgets/LiteralInput.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``LiteralInput`` widget allows entering any Python literal using a text entry box whose contents are then parsed in Python. The widget only supports Python literal types. Optionally a ``type`` may be declared to validate the literal before updating the parameter.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/MenuButton.ipynb b/examples/reference/widgets/MenuButton.ipynb index f30f25b899..ee41d90cf3 100644 --- a/examples/reference/widgets/MenuButton.ipynb +++ b/examples/reference/widgets/MenuButton.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``MenuButton`` widget allows specifying a list of menu items to select from, triggering events when a menu item is clicked. Unlike other widgets, it does not have a ``value`` parameter. Instead it has a ``clicked`` parameter that can be watched to trigger events and which reports the last clicked menu item.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/MultiChoice.ipynb b/examples/reference/widgets/MultiChoice.ipynb index 4ad94653ef..24f14094c5 100644 --- a/examples/reference/widgets/MultiChoice.ipynb +++ b/examples/reference/widgets/MultiChoice.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``MultiChoice`` widget allows selecting multiple values from a list of options. It falls into the broad category of multi-value, option-selection widgets that provide a compatible API and include the [``MultiSelect``](MultiSelect.ipynb), [``CrossSelector``](CrossSelector.ipynb), [``CheckBoxGroup``](CheckBoxGroup.ipynb) and [``CheckButtonGroup``](CheckButtonGroup.ipynb) widgets. The ``MultiChoice`` widget provides a much more compact UI than [``MultiSelect``](MultiSelect.ipynb).\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/MultiSelect.ipynb b/examples/reference/widgets/MultiSelect.ipynb index 5efd8ca9cf..808cc829b2 100644 --- a/examples/reference/widgets/MultiSelect.ipynb +++ b/examples/reference/widgets/MultiSelect.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``MultiSelect`` widget allows selecting multiple values from a list of options. It falls into the broad category of multi-value, option-selection widgets that provide a compatible API and include the [``CrossSelector``](CrossSelector.ipynb), [``CheckBoxGroup``](CheckBoxGroup.ipynb) and [``CheckButtonGroup``](CheckButtonGroup.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/NestedSelect.ipynb b/examples/reference/widgets/NestedSelect.ipynb index 7172e7715f..9466b62f7c 100644 --- a/examples/reference/widgets/NestedSelect.ipynb +++ b/examples/reference/widgets/NestedSelect.ipynb @@ -14,7 +14,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/PasswordInput.ipynb b/examples/reference/widgets/PasswordInput.ipynb index 091951ed04..32fb4e4aab 100644 --- a/examples/reference/widgets/PasswordInput.ipynb +++ b/examples/reference/widgets/PasswordInput.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``PasswordInput`` allows entering any string using an obfuscated text input box.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Player.ipynb b/examples/reference/widgets/Player.ipynb index 212b882825..a70b3b1142 100644 --- a/examples/reference/widgets/Player.ipynb +++ b/examples/reference/widgets/Player.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``Player`` widget displays media-player-like controls that allow playing and stepping through a range of values. When playing it triggers events at a pre-defined interval on the frontend, advancing the player value each time. It falls into the broad category of single-value slider widgets that provide a compatible API and includes the [``IntSlider``](IntSlider.ipynb) and [``FloatSlider``](FloatSlider.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/RadioBoxGroup.ipynb b/examples/reference/widgets/RadioBoxGroup.ipynb index fd2c776515..fd4f7315c7 100644 --- a/examples/reference/widgets/RadioBoxGroup.ipynb +++ b/examples/reference/widgets/RadioBoxGroup.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``RadioBoxGroup`` widget allows selecting from a list or dictionary of values using a set of checkboxes. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [``RadioButtonGroup``](RadioButtonGroup.ipynb), [``Select``](Select.ipynb) and [``DiscreteSlider``](DiscreteSlider.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/RadioButtonGroup.ipynb b/examples/reference/widgets/RadioButtonGroup.ipynb index 284b0cd28f..6c2d743f3e 100644 --- a/examples/reference/widgets/RadioButtonGroup.ipynb +++ b/examples/reference/widgets/RadioButtonGroup.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``RadioButtonGroup`` widget allows selecting from a list or dictionary of values using a set of toggle buttons. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [``RadioBoxGroup``](RadioBoxGroup.ipynb), [``Select``](Select.ipynb), and [``DiscreteSlider``](DiscreteSlider.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/RangeSlider.ipynb b/examples/reference/widgets/RangeSlider.ipynb index 3d24d75b85..67c8e47c1b 100644 --- a/examples/reference/widgets/RangeSlider.ipynb +++ b/examples/reference/widgets/RangeSlider.ipynb @@ -17,7 +17,7 @@ "source": [ "The ``RangeSlider`` widget allows selecting a floating-point range using a slider with two handles.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Select.ipynb b/examples/reference/widgets/Select.ipynb index 3914308731..8e1a740684 100644 --- a/examples/reference/widgets/Select.ipynb +++ b/examples/reference/widgets/Select.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``Select`` widget allows selecting a ``value`` from a list or dictionary of ``options`` by selecting it from a dropdown menu or selection area. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [``RadioBoxGroup``](RadioBoxGroup.ipynb), [``AutocompleteInput``](AutocompleteInput.ipynb) and [``DiscreteSlider``](DiscreteSlider.ipynb) widgets.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/StaticText.ipynb b/examples/reference/widgets/StaticText.ipynb index 916821b082..8d67be8412 100644 --- a/examples/reference/widgets/StaticText.ipynb +++ b/examples/reference/widgets/StaticText.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``StaticText`` widget displays a text value but does not allow editing it.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Switch.ipynb b/examples/reference/widgets/Switch.ipynb index f907882f9f..73e194d8e1 100644 --- a/examples/reference/widgets/Switch.ipynb +++ b/examples/reference/widgets/Switch.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``Switch`` widget allows toggling a single condition between ``True``/``False`` states by ticking a switch. This widget is interchangeable with the ``Toggle`` widget.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Tabulator.ipynb b/examples/reference/widgets/Tabulator.ipynb index a002a1b5e1..dae10448ba 100644 --- a/examples/reference/widgets/Tabulator.ipynb +++ b/examples/reference/widgets/Tabulator.ipynb @@ -21,7 +21,7 @@ "source": [ "The `Tabulator` widget allows displaying and editing a pandas DataFrame. The `Tabulator` is a largely backward compatible replacement for the [`DataFrame`](./DataFrame.ipynb) widget and will eventually replace it. It is built on the **version {{TABULATOR_VERSION}}** of the [Tabulator](http://tabulator.info/) library, which provides for a wide range of features.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Terminal.ipynb b/examples/reference/widgets/Terminal.ipynb deleted file mode 100644 index 270258fca5..0000000000 --- a/examples/reference/widgets/Terminal.ipynb +++ /dev/null @@ -1,262 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import uuid\n", - "import logging\n", - "import panel as pn\n", - "\n", - "pn.extension('terminal')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The ``Terminal`` provides a way to display outputs or logs from running processes as well as an interactive terminal based on for example Bash, Python or IPython. The Terminal is based on [Xterm.js](https://xtermjs.org/) which enables\n", - "\n", - "- Terminal apps that just work: Xterm.js works with most terminal apps such as bash, vim and tmux, this includes support for curses-based apps and mouse event support\n", - "- Performance: Xterm.js is really fast, it even includes a GPU-accelerated renderer\n", - "- Rich unicode support: Supports CJK, emojis and IMEs\n", - "\n", - "[![Xterm.js](https://raw.githubusercontent.com/xtermjs/xterm.js/master/logo-full.png)](https://xtermjs.org/)\n", - "\n", - "### Terminal Widget\n", - "\n", - "#### Parameters:\n", - "\n", - "For details on other options for customizing the component see the [layout](../../how_to/layout/index.md) and [styling](../../how_to/styling/index.md) how-to guides.\n", - "\n", - "- **``clear``** (action): Clears the Terminal.\n", - "- **``options``** (dict) Initial Options for the Terminal Constructor. cf. [iterminaloptions](https://xtermjs.org/docs/api/terminal/interfaces/iterminaloptions/)\n", - "- **``output``** (str): System *output* written to the Terminal.\n", - "- **``value``** (str): User *input* received from the Terminal.\n", - "- **``write_to_console``** (boolean): If True output is additionally written to the server console. Default value is False.\n", - "\n", - "#### Methods\n", - "\n", - "* **``write``**: Writes the specified string object to the Terminal.\n", - "\n", - "### Terminal Subprocess\n", - "\n", - "The `Terminal.subprocess` property makes it easy for you to run subprocesses like `ls`, `ls -l`, `bash`, `python` and `ipython` in the terminal. \n", - "\n", - "#### Parameters\n", - "\n", - "- **``args``** (str, list): The arguments used to run the subprocess. This may be a string or a list. The string cannot contain spaces. See [subprocess.run](https://docs.python.org/3/library/subprocess.html) for more details.\n", - "- **``kwargs``** (dict): Any other arguments to run the subprocess. See [subprocess.run](https://docs.python.org/3/library/subprocess.html) for more details.\n", - "- **``running``** (boolean, readonly): Whether or not the subprocess is running. Defaults to False.\n", - "- **``run``** (action): Executes `subprocess.run` in a child process using the args and kwargs parameters provided as arguments or as parameter values on the instance. The child process is running in a *pseudo terminal* ([pty](https://docs.python.org/3/library/pty.html)) which is then connected to the Terminal.\n", - "- **``kill``** (action): Kills the subprocess if it is running.\n", - "\n", - "___" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "terminal = pn.widgets.Terminal(\n", - " \"Welcome to the Panel Terminal!\\nI'm based on xterm.js\\n\\n\",\n", - " options={\"cursorBlink\": True},\n", - " height=300, sizing_mode='stretch_width'\n", - ")\n", - "\n", - "terminal" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Writing strings to the terminal" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "terminal.write(\"This is written directly to the terminal.\\n\")\n", - "terminal.write(\"Danish Characters: æøΓ₯Γ†Γ˜Γ…\\n\")\n", - "terminal.write(\"Emoji: Python 🐍 Panel ❀️ 😊 \\n\")\n", - "terminal.write(\"Links: https://panel.holoviz.org\\n\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Writing stdout to the terminal" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sys.stdout = terminal\n", - "print(\"This print statement is redirected from stdout to the Panel Terminal\")\n", - "\n", - "sys.stdout = sys.__stdout__\n", - "print(\"This print statement is again redirected to the server console\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Logging to the terminal" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "logger = logging.getLogger(\"terminal\")\n", - "logger.setLevel(logging.DEBUG)\n", - "\n", - "stream_handler = logging.StreamHandler(terminal) # NOTE THIS\n", - "stream_handler.terminator = \" \\n\"\n", - "formatter = logging.Formatter(\"%(asctime)s [%(levelname)s]: %(message)s\")\n", - "\n", - "stream_handler.setFormatter(formatter)\n", - "stream_handler.setLevel(logging.DEBUG)\n", - "logger.addHandler(stream_handler)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "logger.info(\"Hello Info Logger\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Streaming to the terminal\n", - "\n", - "We only do this to a reduced amount as you can reach a general rate limit in the notebook." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "for i in range(0, 50):\n", - " logger.info(uuid.uuid4()) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Run SubProcess and direct output to Terminal" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "terminal.subprocess.run(\"ls\", \"-l\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let us review the output so far since a static rendering of this page will not dynamically update the contents of the terminal displayed above:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "terminal" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Clear the Terminal" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "terminal.clear()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Run an Interactive Process in the Terminal\n", - "\n", - "You can run interactive processes like `bash`, `python`, `ipython` or similar." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "subprocess_terminal = pn.widgets.Terminal(\n", - " options={\"cursorBlink\": True},\n", - " height=300, sizing_mode='stretch_width'\n", - ")\n", - "\n", - "run_python = pn.widgets.Button(name=\"Run Python\", button_type=\"success\")\n", - "run_python.on_click(\n", - " lambda x: subprocess_terminal.subprocess.run(\"python\")\n", - ")\n", - "\n", - "kill = pn.widgets.Button(name=\"Kill Python\", button_type=\"danger\")\n", - "kill.on_click(\n", - " lambda x: subprocess_terminal.subprocess.kill()\n", - ")\n", - "\n", - "pn.Column(\n", - " pn.Row(run_python, kill, subprocess_terminal.subprocess.param.running),\n", - " subprocess_terminal,\n", - " sizing_mode='stretch_both',\n", - " min_height=500\n", - ")" - ] - } - ], - "metadata": { - "language_info": { - "name": "python", - "pygments_lexer": "ipython3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/reference/widgets/TextAreaInput.ipynb b/examples/reference/widgets/TextAreaInput.ipynb index d6527c3582..10872469f4 100644 --- a/examples/reference/widgets/TextAreaInput.ipynb +++ b/examples/reference/widgets/TextAreaInput.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``TextAreaInput`` allows entering any multiline string using a text input box. Lines are joined with the newline character ``\\n``.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/TextInput.ipynb b/examples/reference/widgets/TextInput.ipynb index 984b808565..405a2b0a88 100644 --- a/examples/reference/widgets/TextInput.ipynb +++ b/examples/reference/widgets/TextInput.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``TextInput`` allows entering any string using a text input box.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/TimePicker.ipynb b/examples/reference/widgets/TimePicker.ipynb index b4d0f66a14..4938842c8a 100644 --- a/examples/reference/widgets/TimePicker.ipynb +++ b/examples/reference/widgets/TimePicker.ipynb @@ -18,7 +18,7 @@ "source": [ "The ``TimePicker`` widget allows entering a time value as text or `datetime.time`. \n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/Toggle.ipynb b/examples/reference/widgets/Toggle.ipynb index 55e56a92c0..c01912fa9f 100644 --- a/examples/reference/widgets/Toggle.ipynb +++ b/examples/reference/widgets/Toggle.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``Toggle`` widget allows toggling a single condition between ``True``/``False`` states. This widget is interchangeable with the ``Checkbox`` widget.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/ToggleGroup.ipynb b/examples/reference/widgets/ToggleGroup.ipynb index e8cb8304a5..41c1e29a36 100644 --- a/examples/reference/widgets/ToggleGroup.ipynb +++ b/examples/reference/widgets/ToggleGroup.ipynb @@ -18,7 +18,7 @@ "\n", "This widget is a thin wrapper for using either a [CheckButtonGroup](CheckButtonGroup.ipynb), [CheckBoxGroup](CheckBoxGroup.ipynb), [RadioButtonGroup](RadioButtonGroup.ipynb) or [RadioBoxGroup](RadioBoxGroup.ipynb) to select between a single or multiple given values.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/ToggleIcon.ipynb b/examples/reference/widgets/ToggleIcon.ipynb index 069f146b0e..ec5488722d 100644 --- a/examples/reference/widgets/ToggleIcon.ipynb +++ b/examples/reference/widgets/ToggleIcon.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``ToggleIcon`` widget allows toggling a single condition between `True`/`False` states. This widget is interchangeable with the `Checkbox` and `Toggle` widget.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", diff --git a/examples/reference/widgets/VideoStream.ipynb b/examples/reference/widgets/VideoStream.ipynb index 5c0ff5da65..0b6ec1d101 100644 --- a/examples/reference/widgets/VideoStream.ipynb +++ b/examples/reference/widgets/VideoStream.ipynb @@ -16,7 +16,7 @@ "source": [ "The ``VideoStream`` widget displays a video from a local stream (for example from a webcam) and allows accessing the streamed video data from Python.\n", "\n", - "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n", + "Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.md).\n", "\n", "#### Parameters:\n", "\n", From ffe9b14d4056bb99134d1e3820cb68f63a9bfea1 Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Sun, 15 Sep 2024 10:36:14 +0000 Subject: [PATCH 4/6] add terminal back --- examples/reference/widgets/Terminal.ipynb | 262 ++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 examples/reference/widgets/Terminal.ipynb diff --git a/examples/reference/widgets/Terminal.ipynb b/examples/reference/widgets/Terminal.ipynb new file mode 100644 index 0000000000..270258fca5 --- /dev/null +++ b/examples/reference/widgets/Terminal.ipynb @@ -0,0 +1,262 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import uuid\n", + "import logging\n", + "import panel as pn\n", + "\n", + "pn.extension('terminal')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ``Terminal`` provides a way to display outputs or logs from running processes as well as an interactive terminal based on for example Bash, Python or IPython. The Terminal is based on [Xterm.js](https://xtermjs.org/) which enables\n", + "\n", + "- Terminal apps that just work: Xterm.js works with most terminal apps such as bash, vim and tmux, this includes support for curses-based apps and mouse event support\n", + "- Performance: Xterm.js is really fast, it even includes a GPU-accelerated renderer\n", + "- Rich unicode support: Supports CJK, emojis and IMEs\n", + "\n", + "[![Xterm.js](https://raw.githubusercontent.com/xtermjs/xterm.js/master/logo-full.png)](https://xtermjs.org/)\n", + "\n", + "### Terminal Widget\n", + "\n", + "#### Parameters:\n", + "\n", + "For details on other options for customizing the component see the [layout](../../how_to/layout/index.md) and [styling](../../how_to/styling/index.md) how-to guides.\n", + "\n", + "- **``clear``** (action): Clears the Terminal.\n", + "- **``options``** (dict) Initial Options for the Terminal Constructor. cf. [iterminaloptions](https://xtermjs.org/docs/api/terminal/interfaces/iterminaloptions/)\n", + "- **``output``** (str): System *output* written to the Terminal.\n", + "- **``value``** (str): User *input* received from the Terminal.\n", + "- **``write_to_console``** (boolean): If True output is additionally written to the server console. Default value is False.\n", + "\n", + "#### Methods\n", + "\n", + "* **``write``**: Writes the specified string object to the Terminal.\n", + "\n", + "### Terminal Subprocess\n", + "\n", + "The `Terminal.subprocess` property makes it easy for you to run subprocesses like `ls`, `ls -l`, `bash`, `python` and `ipython` in the terminal. \n", + "\n", + "#### Parameters\n", + "\n", + "- **``args``** (str, list): The arguments used to run the subprocess. This may be a string or a list. The string cannot contain spaces. See [subprocess.run](https://docs.python.org/3/library/subprocess.html) for more details.\n", + "- **``kwargs``** (dict): Any other arguments to run the subprocess. See [subprocess.run](https://docs.python.org/3/library/subprocess.html) for more details.\n", + "- **``running``** (boolean, readonly): Whether or not the subprocess is running. Defaults to False.\n", + "- **``run``** (action): Executes `subprocess.run` in a child process using the args and kwargs parameters provided as arguments or as parameter values on the instance. The child process is running in a *pseudo terminal* ([pty](https://docs.python.org/3/library/pty.html)) which is then connected to the Terminal.\n", + "- **``kill``** (action): Kills the subprocess if it is running.\n", + "\n", + "___" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminal = pn.widgets.Terminal(\n", + " \"Welcome to the Panel Terminal!\\nI'm based on xterm.js\\n\\n\",\n", + " options={\"cursorBlink\": True},\n", + " height=300, sizing_mode='stretch_width'\n", + ")\n", + "\n", + "terminal" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Writing strings to the terminal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminal.write(\"This is written directly to the terminal.\\n\")\n", + "terminal.write(\"Danish Characters: æøΓ₯Γ†Γ˜Γ…\\n\")\n", + "terminal.write(\"Emoji: Python 🐍 Panel ❀️ 😊 \\n\")\n", + "terminal.write(\"Links: https://panel.holoviz.org\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Writing stdout to the terminal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sys.stdout = terminal\n", + "print(\"This print statement is redirected from stdout to the Panel Terminal\")\n", + "\n", + "sys.stdout = sys.__stdout__\n", + "print(\"This print statement is again redirected to the server console\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Logging to the terminal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "logger = logging.getLogger(\"terminal\")\n", + "logger.setLevel(logging.DEBUG)\n", + "\n", + "stream_handler = logging.StreamHandler(terminal) # NOTE THIS\n", + "stream_handler.terminator = \" \\n\"\n", + "formatter = logging.Formatter(\"%(asctime)s [%(levelname)s]: %(message)s\")\n", + "\n", + "stream_handler.setFormatter(formatter)\n", + "stream_handler.setLevel(logging.DEBUG)\n", + "logger.addHandler(stream_handler)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "logger.info(\"Hello Info Logger\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Streaming to the terminal\n", + "\n", + "We only do this to a reduced amount as you can reach a general rate limit in the notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(0, 50):\n", + " logger.info(uuid.uuid4()) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Run SubProcess and direct output to Terminal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminal.subprocess.run(\"ls\", \"-l\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let us review the output so far since a static rendering of this page will not dynamically update the contents of the terminal displayed above:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminal" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Clear the Terminal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminal.clear()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Run an Interactive Process in the Terminal\n", + "\n", + "You can run interactive processes like `bash`, `python`, `ipython` or similar." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "subprocess_terminal = pn.widgets.Terminal(\n", + " options={\"cursorBlink\": True},\n", + " height=300, sizing_mode='stretch_width'\n", + ")\n", + "\n", + "run_python = pn.widgets.Button(name=\"Run Python\", button_type=\"success\")\n", + "run_python.on_click(\n", + " lambda x: subprocess_terminal.subprocess.run(\"python\")\n", + ")\n", + "\n", + "kill = pn.widgets.Button(name=\"Kill Python\", button_type=\"danger\")\n", + "kill.on_click(\n", + " lambda x: subprocess_terminal.subprocess.kill()\n", + ")\n", + "\n", + "pn.Column(\n", + " pn.Row(run_python, kill, subprocess_terminal.subprocess.param.running),\n", + " subprocess_terminal,\n", + " sizing_mode='stretch_both',\n", + " min_height=500\n", + ")" + ] + } + ], + "metadata": { + "language_info": { + "name": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From de1ed6e1dd687505f09872098dda2cf25e848b68 Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Sun, 15 Sep 2024 11:12:47 +0000 Subject: [PATCH 5/6] fix bokeh-plot directive --- doc/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/conf.py b/doc/conf.py index b5787a44ea..ca75b6dd12 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -86,6 +86,7 @@ extensions = [ + 'bokeh.sphinxext.bokeh_plot', 'myst_parser', 'sphinx_design', 'sphinx.ext.autodoc', From 3cbb1af846d4f293e703237e2014c115d300ad03 Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Sun, 15 Sep 2024 11:39:28 +0000 Subject: [PATCH 6/6] fix broken links --- doc/how_to/authentication/configuration.md | 2 +- doc/how_to/authentication/guest_users.md | 2 +- doc/how_to/concurrency/sync_to_async.md | 2 +- doc/tutorials/expert/custom_js_components.md | 2 +- examples/reference/custom_components/PyComponent.ipynb | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/how_to/authentication/configuration.md b/doc/how_to/authentication/configuration.md index e4d54c25b3..d20e27ab2b 100644 --- a/doc/how_to/authentication/configuration.md +++ b/doc/how_to/authentication/configuration.md @@ -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` diff --git a/doc/how_to/authentication/guest_users.md b/doc/how_to/authentication/guest_users.md index 4568dd3cec..6597b02fa0 100644 --- a/doc/how_to/authentication/guest_users.md +++ b/doc/how_to/authentication/guest_users.md @@ -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 diff --git a/doc/how_to/concurrency/sync_to_async.md b/doc/how_to/concurrency/sync_to_async.md index 487cc48c44..d18782178d 100644 --- a/doc/how_to/concurrency/sync_to_async.md +++ b/doc/how_to/concurrency/sync_to_async.md @@ -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). diff --git a/doc/tutorials/expert/custom_js_components.md b/doc/tutorials/expert/custom_js_components.md index 28b2d96a77..e1e9c53625 100644 --- a/doc/tutorials/expert/custom_js_components.md +++ b/doc/tutorials/expert/custom_js_components.md @@ -1,6 +1,6 @@ # Creating a `MarioButton` with `JSComponent` -In this tutorial we will build a *[Mario](https://mario.nintendo.com/) style button* with sounds and animations using the [`JSComponent`](../../reference/custom/JSComponent.md) feature in Panel. It aims to help you learn how to push the boundaries of what can be achieved with HoloViz Panel by creating advanced components using modern JavaScript and CSS technologies. +In this tutorial we will build a *[Mario](https://mario.nintendo.com/) style button* with sounds and animations using the [`JSComponent`](../../reference/custom_components/JSComponent.md) feature in Panel. It aims to help you learn how to push the boundaries of what can be achieved with HoloViz Panel by creating advanced components using modern JavaScript and CSS technologies. ![Mario chime button](https://assets.holoviz.org/panel/tutorials/ipymario.gif) diff --git a/examples/reference/custom_components/PyComponent.ipynb b/examples/reference/custom_components/PyComponent.ipynb index 0c403e697e..e85e097996 100644 --- a/examples/reference/custom_components/PyComponent.ipynb +++ b/examples/reference/custom_components/PyComponent.ipynb @@ -302,11 +302,11 @@ "\n", "### Tutorials\n", "\n", - "- [Reusable Components](../../../tutorials/intermediate/reusable_components.md)\n", + "- [Reusable Components](../../tutorials/intermediate/reusable_components.md)\n", "\n", "### How-To Guides\n", "\n", - "- [Combine Existing Widgets](../../../how_to/custom_components/python/create_custom_widget)" + "- [Combine Existing Widgets](../../how_to/custom_components/python/create_custom_widget.md)" ] } ],