Anchor tag

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?

Its behavior is different from the old version, and it is unclear whether it is an introduced feature or a potential bug.

1 Like

Ah, thanks for sharing. That does looks like a bug.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.