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