Spaces:
Runtime error
Runtime error
import streamlit as st | |
class Toc: | |
def __init__(self): | |
self._items = [] | |
self._placeholder = None | |
def title(self, text): | |
self._markdown(text, "h1") | |
def header(self, text): | |
self._markdown(text, "h2", " " * 2) | |
def subheader(self, text): | |
self._markdown(text, "h3", " " * 4) | |
def placeholder(self, sidebar=False): | |
self._placeholder = st.sidebar.empty() if sidebar else st.empty() | |
def generate(self): | |
if self._placeholder: | |
self._placeholder.markdown("\n".join(self._items), unsafe_allow_html=True) | |
def _markdown(self, text, level, space=""): | |
key = "".join(filter(str.isalnum, text)).lower() | |
st.markdown(f"<{level} id='{key}'>{text}</{level}>", unsafe_allow_html=True) | |
self._items.append(f"{space}* <a href='#{key}'>{text}</a>") |