fix emoji, target=_blank
Browse files
README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
---
|
| 2 |
title: Me
|
| 3 |
-
emoji:
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: yellow
|
| 6 |
sdk: docker
|
|
|
|
| 1 |
---
|
| 2 |
title: Me
|
| 3 |
+
emoji: 👋⬛🤠
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: yellow
|
| 6 |
sdk: docker
|
app.py
CHANGED
|
@@ -7,8 +7,11 @@ def Markdown(s, exts=md_exts, **kw): return Div(NotStr(markdown(s, extensions=ex
|
|
| 7 |
|
| 8 |
ghurl = 'https://github.com/nbroad1881'
|
| 9 |
hf_logo_svg = "https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg"
|
|
|
|
| 10 |
li_url = "https://www.linkedin.com/in/nicholas-m-broad/"
|
| 11 |
kaggle_url = "https://www.kaggle.com/nbroad"
|
|
|
|
|
|
|
| 12 |
fh_url = "https://fastht.ml/"
|
| 13 |
fh_logo = 'assets/fasthtml_logo.svg'
|
| 14 |
|
|
@@ -16,13 +19,16 @@ def BstPage(selidx, title, *c):
|
|
| 16 |
navitems = [('Home', '/'), ('About', '/about'), ('Blog', '/blog')]
|
| 17 |
|
| 18 |
ra_items = (
|
| 19 |
-
A(
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
Icon(
|
| 24 |
-
Icon("fab fa-
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
| 26 |
ftlinks = [A(k, href=v, cls='nav-link px-2 text-muted')
|
| 27 |
for k,v in dict(Home='/').items()]
|
| 28 |
return (
|
|
@@ -30,7 +36,7 @@ def BstPage(selidx, title, *c):
|
|
| 30 |
Script('initTOC()'),
|
| 31 |
Container(
|
| 32 |
Navbar('nav', selidx, items=navitems, ra_items=ra_items, cls='navbar-light bg-secondary rounded-lg',
|
| 33 |
-
image=f'', hdr_href="
|
| 34 |
Toc(Container(H1(title, cls='pb-2 pt-1'), *c, cls='mt-3')),
|
| 35 |
BstFooter('Made using FastHTML', File(fh_logo), img_href=fh_url, cs=ftlinks),
|
| 36 |
typ=ContainerT.Xl, cls='mt-3', data_bs_spy='scroll', data_bs_target='#toc'))
|
|
|
|
| 7 |
|
| 8 |
ghurl = 'https://github.com/nbroad1881'
|
| 9 |
hf_logo_svg = "https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg"
|
| 10 |
+
hf_url = "https://hf.co/nbroad"
|
| 11 |
li_url = "https://www.linkedin.com/in/nicholas-m-broad/"
|
| 12 |
kaggle_url = "https://www.kaggle.com/nbroad"
|
| 13 |
+
yt_url = "https://www.youtube.com/@nicholasbroad1881"
|
| 14 |
+
tw_url = "https://twitter.com/nbroad1881"
|
| 15 |
fh_url = "https://fastht.ml/"
|
| 16 |
fh_logo = 'assets/fasthtml_logo.svg'
|
| 17 |
|
|
|
|
| 19 |
navitems = [('Home', '/'), ('About', '/about'), ('Blog', '/blog')]
|
| 20 |
|
| 21 |
ra_items = (
|
| 22 |
+
A(
|
| 23 |
+
Image(src=hf_logo_svg, width=28, height=28, cls="my-0 px-0 mx-0 py-0", left=False, pad=0),
|
| 24 |
+
cls="ms-2 my-0 px-1 btn-lg btn", role="button", href=hf_url, target="_blank"
|
| 25 |
+
),
|
| 26 |
+
Icon('fab fa-github', dark=False, sz='lg', href=ghurl, cls='ms-2 px-2', target="_blank"),
|
| 27 |
+
Icon("fab fa-linkedin", dark=False, sz='lg', href=li_url, cls='ms-2 px-2', target="_blank"),
|
| 28 |
+
Icon("fab fa-kaggle", dark=False, sz='lg', href=kaggle_url, cls='ms-2 px-2', target="_blank"),
|
| 29 |
+
Icon("fab fa-youtube", dark=False, sz='lg', href=yt_url, cls='ms-2 px-2', target="_blank"),
|
| 30 |
+
Icon("fab fa-twitter", dark=False, sz='lg', href=tw_url, cls='ms-2 px-2', target="_blank"),
|
| 31 |
+
)
|
| 32 |
ftlinks = [A(k, href=v, cls='nav-link px-2 text-muted')
|
| 33 |
for k,v in dict(Home='/').items()]
|
| 34 |
return (
|
|
|
|
| 36 |
Script('initTOC()'),
|
| 37 |
Container(
|
| 38 |
Navbar('nav', selidx, items=navitems, ra_items=ra_items, cls='navbar-light bg-secondary rounded-lg',
|
| 39 |
+
image=f'', hdr_href="", placement=PlacementT.Default, expand=SizeT.Md, toggle_left=False),
|
| 40 |
Toc(Container(H1(title, cls='pb-2 pt-1'), *c, cls='mt-3')),
|
| 41 |
BstFooter('Made using FastHTML', File(fh_logo), img_href=fh_url, cs=ftlinks),
|
| 42 |
typ=ContainerT.Xl, cls='mt-3', data_bs_spy='scroll', data_bs_target='#toc'))
|
blog.py
CHANGED
|
@@ -23,13 +23,6 @@ def blog_preview(blog_id):
|
|
| 23 |
P(details[0].get("date_published", "")),
|
| 24 |
P(details[0].get("desc", "")+"...")
|
| 25 |
)
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
# full width image
|
| 29 |
-
# <img src="assets/htmx-meme.png" alt="HTMX meme" class="img-fluid mx-auto d-block">
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
|
| 34 |
|
| 35 |
@functools.lru_cache()
|
|
@@ -194,6 +187,4 @@ def single_blog(blog_id):
|
|
| 194 |
|
| 195 |
secs = Sections(headers, sections)
|
| 196 |
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
return BstPage(0, "", *secs)
|
|
|
|
| 23 |
P(details[0].get("date_published", "")),
|
| 24 |
P(details[0].get("desc", "")+"...")
|
| 25 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
|
| 28 |
@functools.lru_cache()
|
|
|
|
| 187 |
|
| 188 |
secs = Sections(headers, sections)
|
| 189 |
|
| 190 |
+
return BstPage(2, "", *secs)
|
|
|
|
|
|
main.py
CHANGED
|
@@ -20,7 +20,8 @@ def get(blog_id: str):
|
|
| 20 |
|
| 21 |
|
| 22 |
@rt("/{fname:path}.{ext:static}")
|
| 23 |
-
def get(fname:str, ext:str):
|
|
|
|
| 24 |
|
| 25 |
|
| 26 |
serve()
|
|
|
|
| 20 |
|
| 21 |
|
| 22 |
@rt("/{fname:path}.{ext:static}")
|
| 23 |
+
def get(fname:str, ext:str):
|
| 24 |
+
return FileResponse(f'{fname}.{ext}')
|
| 25 |
|
| 26 |
|
| 27 |
serve()
|