| import os |
| import gradio as gr |
| from toolbox import get_conf |
| CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf('CODE_HIGHLIGHT', 'ADD_WAIFU', 'LAYOUT') |
| theme_dir = os.path.dirname(__file__) |
|
|
| def adjust_theme(): |
| try: |
| set_theme = gr.themes.Soft( |
| primary_hue=gr.themes.Color( |
| c50="#EBFAF2", |
| c100="#CFF3E1", |
| c200="#A8EAC8", |
| c300="#77DEA9", |
| c400="#3FD086", |
| c500="#02C160", |
| c600="#06AE56", |
| c700="#05974E", |
| c800="#057F45", |
| c900="#04673D", |
| c950="#2E5541", |
| name="small_and_beautiful", |
| ), |
| secondary_hue=gr.themes.Color( |
| c50="#576b95", |
| c100="#576b95", |
| c200="#576b95", |
| c300="#576b95", |
| c400="#576b95", |
| c500="#576b95", |
| c600="#576b95", |
| c700="#576b95", |
| c800="#576b95", |
| c900="#576b95", |
| c950="#576b95", |
| ), |
| neutral_hue=gr.themes.Color( |
| name="gray", |
| c50="#f6f7f8", |
| |
| c100="#F2F2F2", |
| c200="#e5e7eb", |
| c300="#d1d5db", |
| c400="#B2B2B2", |
| c500="#808080", |
| c600="#636363", |
| c700="#515151", |
| c800="#393939", |
| |
| c900="#2B2B2B", |
| c950="#171717", |
| ), |
|
|
| radius_size=gr.themes.sizes.radius_sm, |
| ).set( |
| button_primary_background_fill="*primary_500", |
| button_primary_background_fill_dark="*primary_600", |
| button_primary_background_fill_hover="*primary_400", |
| button_primary_border_color="*primary_500", |
| button_primary_border_color_dark="*primary_600", |
| button_primary_text_color="white", |
| button_primary_text_color_dark="white", |
| button_secondary_background_fill="*neutral_100", |
| button_secondary_background_fill_hover="*neutral_50", |
| button_secondary_background_fill_dark="*neutral_900", |
| button_secondary_text_color="*neutral_800", |
| button_secondary_text_color_dark="white", |
| background_fill_primary="*neutral_50", |
| background_fill_primary_dark="#1F1F1F", |
| block_title_text_color="*primary_500", |
| block_title_background_fill_dark="*primary_900", |
| block_label_background_fill_dark="*primary_900", |
| input_background_fill="#F6F6F6", |
| chatbot_code_background_color="*neutral_950", |
| chatbot_code_background_color_dark="*neutral_950", |
| ) |
|
|
| with open(os.path.join(theme_dir, 'common.js'), 'r', encoding='utf8') as f: |
| js = f"<script>{f.read()}</script>" |
|
|
| |
| if ADD_WAIFU: |
| js += """ |
| <script src="file=docs/waifu_plugin/jquery.min.js"></script> |
| <script src="file=docs/waifu_plugin/jquery-ui.min.js"></script> |
| <script src="file=docs/waifu_plugin/autoload.js"></script> |
| """ |
|
|
| with open(os.path.join(theme_dir, 'green.js'), 'r', encoding='utf8') as f: |
| js += f"<script>{f.read()}</script>" |
|
|
| if not hasattr(gr, 'RawTemplateResponse'): |
| gr.RawTemplateResponse = gr.routes.templates.TemplateResponse |
| gradio_original_template_fn = gr.RawTemplateResponse |
| def gradio_new_template_fn(*args, **kwargs): |
| res = gradio_original_template_fn(*args, **kwargs) |
| res.body = res.body.replace(b'</html>', f'{js}</html>'.encode("utf8")) |
| res.init_headers() |
| return res |
| gr.routes.templates.TemplateResponse = gradio_new_template_fn |
| except: |
| set_theme = None |
| print('gradio版本较旧, 不能自定义字体和颜色') |
| return set_theme |
|
|
| with open(os.path.join(theme_dir, 'green.css'), "r", encoding="utf-8") as f: |
| advanced_css = f.read() |
| with open(os.path.join(theme_dir, 'common.css'), "r", encoding="utf-8") as f: |
| advanced_css += f.read() |
|
|