Assigning anchor tag using st.header(anchor = 'anchor_id') is very convenient. However, it seems that the app re-runs whenever the anchor link is clicked. Caching helps, but perhaps this is not a desirable behavior in most cases of using anchor tags?
I tried to use the following code:
# this anchor tag does not work
st.write( '<h4 id="anchor_tag">title</h4>', unsafe_allow_html = True)
st.write('<a href="#anchor_tag">click</a>', unsafe_allow_html = True)
The above code doesn’t work. It works only if I use streamlit’s anchor param, such as the one below:
# this code works
st.subheader('title', anchor='anchor_tag')
st.write('<a href="#anchor_tag">click</a>', unsafe_allow_html = True)
Is this an expected behavior? Can we define anchor tag without using the st.subheader or st.header? Most importantly, can we disable re-run when an anchor or markdown link is clicked?