CoolFace
Apppublic

timedomain/skill-library

sourceHugging Faceapache-2.0updated 3y agoView on Hugging Face
0likes
app.py67 linesDownload Raw Back to root
1import streamlit as st2import os3import json4from tools import time_ago, get_skill_datas5 6skills = get_skill_datas()7 8params = st.experimental_get_query_params()9 10 11st.session_state.skills = skills12params = st.experimental_get_query_params()13st.sidebar.link_button("Home", url="?page=main", use_container_width=True)14for skill in skills:15    st.sidebar.link_button(f"{skill['skill_name']}", url=f"?page=detail_page&skill_name={skill['skill_name']}", use_container_width=True)16    17 18def main_page(skills):19    for skill in skills:20        with st.expander(f"{skill['skill_metadata']['author']}/{skill['skill_name']}", expanded=True):21            tags = "`{}`".format("`\t\t`".join(skill['skill_tags']))22            st.markdown(f"{tags}")23            st.markdown(f"**<a href='?page=detail_page&skill_name={skill['skill_name']}' style='font-size: 22px;' target='_self'>{skill['skill_metadata']['author']}/{skill['skill_name']}</a>**", unsafe_allow_html=True)24            st.markdown(f">**{skill['skill_description']}**")25            usage = f"from {skill['skill_metadata']['author']}.skill_library.skill_code import {skill['skill_name']}\n{skill['Usage']}"26            st.code(usage, language=skill['skill_program_language'])27            st.markdown(f"""```Updated {time_ago(skill['skill_metadata']['updated_at'])}```""")28def detail_page(skills):29    skill = next((skill for skill in skills if skill['skill_name'] == st.session_state.selected_skill_name), None)30 31    st.markdown("""<a href='?page=main' target='_self'>32                <button style='color: #4CAF50; cursor: pointer; border: 1px solid #4CAF50; border-radius: 5px; width: 10%; '>33                Home34                </button>35                </a>"""36                , unsafe_allow_html=True)37    st.title(skill['skill_name'])38    tags = "`{}`".format("`\t\t`".join(skill['skill_tags']))39    st.markdown(f"{tags}")40    st.markdown(f"""```Updated {time_ago(skill['skill_metadata']['updated_at'])}```    ```ver {skill['skill_metadata']['version']}```""")41    st.markdown(f"## Description")42    st.markdown(f"{skill['skill_description']}")43    st.markdown("## Usage")44    usage = f"from {skill['skill_metadata']['author']}.skill_library.skill_code import {skill['skill_name']}\n{skill['Usage']}"45    st.code(usage, language=skill['skill_program_language'])46    with st.expander(f"Parameters", expanded=False):47        st.markdown("## Parameters")48        st.code(f"{skill['Parameters']}", language=skill['skill_program_language'])49        st.markdown("## Returns")50        st.code(f"{skill['Returns']}", language=skill['skill_program_language'])51        st.markdown("## Dependencies")52        st.code(f"{skill['skill_dependencies']}", language=skill['skill_program_language'])53    with st.expander(f"Code", expanded=False):54        st.code(f"{skill['skill_code']}", language=skill['skill_program_language'])55 56if 'page' in params:57    st.session_state.page = params['page'][0]58    if st.session_state.page == 'detail_page' and 'skill_name' in params:59        st.session_state.selected_skill_name = params['skill_name'][0]60else:61    st.session_state.page = 'main'62 63if st.session_state.page == 'main':64    main_page(skills)65elif st.session_state.page == 'detail_page':66    detail_page(skills)67