me / app.py
nbroad's picture
nbroad HF staff
rel="noopener noreferrer"
9d1d9ac verified
from fh_bootstrap import *
from itertools import chain
from markdown import markdown
md_exts = "codehilite", "smarty", "extra", "sane_lists"
def Markdown(s, exts=md_exts, **kw):
return Div(NotStr(markdown(s, extensions=exts)), **kw)
ghurl = "https://github.com/nbroad1881"
hf_logo_svg = (
"https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.svg"
)
hf_url = "https://hf.co/nbroad"
li_url = "https://www.linkedin.com/in/nicholas-m-broad/"
kaggle_url = "https://www.kaggle.com/nbroad"
yt_url = "https://www.youtube.com/@nicholasbroad1881"
tw_url = "https://twitter.com/nbroad1881"
fh_url = "https://fastht.ml/"
fh_logo = "assets/fasthtml_logo.svg"
def BstPage(selidx, title, *c):
navitems = [("Home", "/"), ("About", "/about"), ("Blog", "/blog")]
ra_items = (
A(
Image(
src=hf_logo_svg,
width=28,
height=28,
cls="my-0 px-0 mx-0 py-0",
left=False,
pad=0,
),
cls="ms-2 my-0 px-1 btn-lg btn",
role="button",
href=hf_url,
target="_blank",
rel="noopener noreferrer",
),
Icon(
"fab fa-github",
dark=False,
sz="lg",
href=ghurl,
cls="ms-2 px-2",
target="_blank",
rel="noopener noreferrer",
),
Icon(
"fab fa-linkedin",
dark=False,
sz="lg",
href=li_url,
cls="ms-2 px-2",
target="_blank",
rel="noopener noreferrer",
),
Icon(
"fab fa-kaggle",
dark=False,
sz="lg",
href=kaggle_url,
cls="ms-2 px-2",
target="_blank",
rel="noopener noreferrer",
),
Icon(
"fab fa-youtube",
dark=False,
sz="lg",
href=yt_url,
cls="ms-2 px-2",
target="_blank",
rel="noopener noreferrer",
),
Icon(
"fab fa-twitter",
dark=False,
sz="lg",
href=tw_url,
cls="ms-2 px-2",
target="_blank",
rel="noopener noreferrer",
),
)
ftlinks = [
A(k, href=v, cls="nav-link px-2 text-muted") for k, v in dict(Home="/").items()
]
return (
Title(title),
Script("initTOC()"),
Container(
Navbar(
"nav",
selidx,
items=navitems,
ra_items=ra_items,
cls="navbar-light bg-secondary rounded-lg",
image=f"",
hdr_href="",
placement=PlacementT.Default,
expand=SizeT.Md,
toggle_left=False,
),
Toc(Container(H1(title, cls="pb-2 pt-1"), *c, cls="mt-3")),
BstFooter(
"Made using FastHTML", File(fh_logo), img_href=fh_url, cs=ftlinks
),
typ=ContainerT.Xl,
cls="mt-3",
data_bs_spy="scroll",
data_bs_target="#toc",
),
)
def Sections(h2s, texts):
colors = "yellow", "pink", "teal", "blue"
div_cls = "py-2 px-3 mt-4 bg-light-{} rounded-lg"
return chain(
[
Div(
H2(h2, id=f"sec{i+1}", cls=div_cls.format(colors[i % 4])),
Div(txt, cls="px-2"),
)
for i, (h2, txt) in enumerate(zip(h2s, texts))
]
)