PeepDaSlan9/docker-examples
0
1import gradio as gr2 3 4def name_to_hf_markdown(name):5 return f"[{name}](https://huggingface.co/{name})"6 7 8def show_template(name, description, authors, url, image_url, more_info=None):9 if isinstance(authors, str):10 authors = [authors]11 authors_md = ", ".join([name_to_hf_markdown(author) for author in authors])12 with gr.Box():13 with gr.Row():14 with gr.Column(scale=1):15 gr.HTML(f"""<img src="{image_url}" alt="{name}-thumbnail" height=256 width=256>""")16 with gr.Column(scale=4):17 gr.Markdown(18 f"""19 ## {name}20 []({url})21 22 #### {description}23 24 **Author(s):** {authors_md}25 """26 )27 if more_info:28 with gr.Row():29 with gr.Accordion("๐ More Details", open=False):30 gr.Markdown(more_info)31 32 33title_and_description = """34# Spaces Templates35 36<div align="center">37 <a src="https://img.shields.io/github/stars/nateraw/spaces-docker-templates?style=social" href="https://github.com/nateraw/spaces-docker-templates" target="_blank">38 <img src="https://img.shields.io/github/stars/nateraw/spaces-docker-templates?label=Contribute&style=social" alt="GitHub Stars">39 </a>40 41 <h4>๐ A collection of templates for <a href="https://huggingface.co/spaces">Hugging Face Spaces</a></h4>42 43 The templates below are designed to help you get started with Docker Spaces. Duplicate them to get started with your own project. ๐ค44</div>45"""46 47with gr.Blocks(css="style.css") as demo:48 gr.Markdown(title_and_description)49 show_template(50 name="JupyterLab",51 description="Spin up a JupyterLab instance with just a couple clicks. This template is great for data exploration, model training, and more. Works on CPU and GPU hardware.",52 authors=["camenduru", "nateraw"],53 url="https://huggingface.co/spaces/DockerTemplates/jupyterlab?duplicate=true",54 image_url="https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Jupyter_logo.svg/1767px-Jupyter_logo.svg.png",55 more_info="""56 ### Configuration57 - You can add dependencies to your JupyterLab instance by editing the `requirements.txt` file.58 - You can add linux packages to your JupyterLab instance by editing the `packages.txt` file.59 - You can add custom startup commands to your JupyterLab instance by editing the `on_startup.sh` file. These run with the root user.60 """,61 )62 show_template(63 name="VSCode",64 description="Spin up a VSCode instance with just a couple clicks. This template is great for data exploration, model training, and more. Works on CPU and GPU hardware.",65 authors=["camenduru", "nateraw"],66 url="https://huggingface.co/spaces/DockerTemplates/vscode?duplicate=true",67 image_url="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Visual_Studio_Code_1.35_icon.svg/1200px-Visual_Studio_Code_1.35_icon.svg.png",68 more_info="""69 ### Configuration70 - You can add dependencies to your VSCode instance by editing the `requirements.txt` file.71 - You can add linux packages to your VSCode instance by editing the `packages.txt` file.72 - You can add custom startup commands to your VSCode instance by editing the `on_startup.sh` file. These run with the root user.73 """,74 )75 76 77if __name__ == "__main__":78 demo.launch()79 