from awesome_panel_extensions.awesome_panel.notebook import Header
Header(notebook="LinkButtons.ipynb", folder="examples/reference/widgets")
A link button is something that looks like a button but opens a link in a new tab when clicked. This awesome-panel-extensions
package provides a collection of useful link buttons. You can see their api and usage below.
import panel as pn
from panel.pane import HTML
from awesome_panel_extensions.widgets.link_buttons import ImageLinkButton, BinderLinkButton, NBViewerLinkButton, PanelLinkButton
pn.extension()
parent_parameters = [parameter.name for parameter in HTML.param.objects().values()]
def get_parameters_pane(button):
child_parameters = [parameter.name for parameter in button.param.objects().values()]
parameters = list(set(child_parameters)-set(parent_parameters))
layout_parameters= ["object", "width", "height", "sizing_mode"]
return pn.WidgetBox(
pn.Param(button, parameters=parameters, sizing_mode="stretch_width", show_name=False),
pn.Param(button, parameters=layout_parameters, sizing_mode="stretch_width", show_name=False),
sizing_mode="stretch_width",
)
def get_app(button):
return pn.Column(button, get_parameters_pane(button), sizing_mode="stretch_width")
image_link_button = ImageLinkButton(
image_url = "https://developer.rhino3d.com/images/rhinopython-guides-col1.png",
link_url = "https://www.python.org/",
width=150,
)
get_app(image_link_button)
binder_link_button = BinderLinkButton(
repository="marcskovmadsen/awesome-panel-extensions",
branch="master",
folder="examples/reference/panes",
notebook="WebComponent.ipynb",
)
get_app(binder_link_button)
nbviewer_link_button = NBViewerLinkButton(
repository="MarcSkovMadsen/awesome-panel-extensions",
branch="master",
folder="examples/reference/panes",
notebook="WebComponent.ipynb",
)
get_app(nbviewer_link_button)
panel_link_button = PanelLinkButton(height=60, width=120)
get_app(panel_link_button)