-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsoftware.quarto_ipynb
More file actions
99 lines (99 loc) · 3.33 KB
/
software.quarto_ipynb
File metadata and controls
99 lines (99 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"title: \"Software\"\n",
"echo: false\n",
"jupyter: python3\n",
"section-divs: false\n",
"keep-md: false\n",
"execute: \n",
" include: true\n",
"sidebar: false\n",
"freeze: auto\n",
"keep-ipynb: true\n",
"---"
],
"id": "aed4cb18"
},
{
"cell_type": "code",
"metadata": {},
"source": [
"#| label: software\n",
"#| output: asis\n",
"import yaml\n",
"from IPython.display import display, Markdown, HTML\n",
"\n",
"\n",
"def button(url, str, icon):\n",
" icon_base = icon[:2]\n",
" return f\"\"\"<a class=\"btn btn-outline-dark btn-sm\", href=\"{url}\" target=\"_blank\" rel=\"noopener noreferrer\">\n",
" <i class=\"{icon_base} {icon}\" role='img' aria-label='{str}'></i>\n",
" {str}\n",
" </a>\"\"\"\n",
"\n",
"\n",
"yaml_data = yaml.safe_load(open(\"software.yaml\"))\n",
"\n",
"\n",
"def downloads_badge(package_name: str) -> str:\n",
" return f\"\"\"\"\"\"\n",
"\n",
"\n",
"def pypi_v_badge(package_name: str) -> str:\n",
" return f\"\"\"\"\"\"\n",
"\n",
"\n",
"for data in yaml_data[::1]:\n",
" logo_scale = data.get(\"logo_scale\", 1)\n",
" width = 200 * logo_scale\n",
"\n",
" display(Markdown(\"## `\" + data[\"title\"] + \"` {#\" + data[\"title\"][0] + \"}\"))\n",
"\n",
" if \"logo\" in data:\n",
" display(\n",
" HTML(\n",
" f\"<img src={data['logo']} href='{data['website']}' align='right' alt='' width='{width}'>\"\n",
" )\n",
" )\n",
"\n",
" display(Markdown(data[\"description\"]))\n",
" if \"package\" in data:\n",
" package_name = data[\"package\"].split(\"/\")[-2]\n",
" display(\n",
" Markdown(\n",
" downloads_badge(package_name)\n",
" + \" \"\n",
" + pypi_v_badge(package_name)\n",
" )\n",
" )\n",
" buttons = []\n",
" if \"website\" in data:\n",
" buttons.append(button(data[\"website\"], \"Website\", \"bi-info\"))\n",
" if \"github\" in data:\n",
" buttons.append(button(data[\"github\"], \"Github\", \"bi-github\"))\n",
" if \"package\" in data:\n",
" buttons.append(button(data[\"package\"], \"Package\", \"bi-box-seam\"))\n",
"\n",
" display(HTML(\" \".join(buttons)))"
],
"id": "software",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"language": "python",
"display_name": "Python 3 (ipykernel)",
"path": "/Users/mitch/Documents/Github/quarto-website/.venv/share/jupyter/kernels/python3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}