#!/usr/bin/env python # coding: utf-8 # In[1]: from awesome_panel_extensions.awesome_panel.notebook import Header Header(notebook="LinkButtons.ipynb", folder="examples/reference/widgets") # # LinkButtons - Reference Guide # # 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. # In[2]: import panel as pn from panel.pane import HTML from awesome_panel_extensions.widgets.link_buttons import ImageLinkButton, BinderLinkButton, NBViewerLinkButton, PanelLinkButton pn.extension() # ### Demo Utilities # In[3]: 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") # ## ImageLinkButton # In[4]: 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) # ## BinderLinkButton # In[5]: binder_link_button = BinderLinkButton( repository="marcskovmadsen/awesome-panel-extensions", branch="master", folder="examples/reference/panes", notebook="WebComponent.ipynb", ) get_app(binder_link_button) # ## NBViewerLinkButton # In[6]: nbviewer_link_button = NBViewerLinkButton( repository="MarcSkovMadsen/awesome-panel-extensions", branch="master", folder="examples/reference/panes", notebook="WebComponent.ipynb", ) get_app(nbviewer_link_button) # ## PanelLinkButton # In[7]: panel_link_button = PanelLinkButton(height=60, width=120) get_app(panel_link_button)