Spaces:
Sleeping
Sleeping
CodexCLI Bot
commited on
Commit
·
eace2ff
1
Parent(s):
f2fe9ba
UI: fix default conference logo preview; make header logos clickable; adjust spacing and inset (top-right)
Browse files
app.py
CHANGED
|
@@ -122,7 +122,9 @@ def _find_ui_header_logos(root: Path):
|
|
| 122 |
return found
|
| 123 |
|
| 124 |
def _ui_header_logos_html():
|
| 125 |
-
"""Return an HTML div with base64-embedded logos to avoid broken /file routes.
|
|
|
|
|
|
|
| 126 |
import base64
|
| 127 |
logos = _find_ui_header_logos(ROOT)
|
| 128 |
if not logos:
|
|
@@ -134,23 +136,48 @@ def _ui_header_logos_html():
|
|
| 134 |
b64 = base64.b64encode(b).decode("utf-8")
|
| 135 |
mime = "image/png" if p.suffix.lower() == ".png" else "image/jpeg"
|
| 136 |
src = f"data:{mime};base64,{b64}"
|
| 137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
except Exception:
|
| 139 |
continue
|
| 140 |
if not parts:
|
| 141 |
return ""
|
| 142 |
-
#
|
| 143 |
imgs = "".join(parts)
|
| 144 |
return (
|
| 145 |
"<style>"
|
| 146 |
-
"#p2p-logo-bar{position:fixed;top:12px;right:
|
| 147 |
"align-items:center;z-index:9999}"
|
| 148 |
-
"#p2p-logo-bar
|
| 149 |
"@media (max-width: 768px){#p2p-logo-bar img{height:32px}}"
|
| 150 |
"</style>"
|
| 151 |
"<div id='p2p-logo-bar'>" + imgs + "</div>"
|
| 152 |
)
|
| 153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
## Removed sanitizer per request: do not mutate user-generated TeX
|
| 155 |
|
| 156 |
def _on_rm_error(func, path, exc_info):
|
|
@@ -3050,8 +3077,9 @@ The framework builds upon 🐪 [CAMEL-ai](https://github.com/camel-ai/camel).
|
|
| 3050 |
file_types=["image"],
|
| 3051 |
)
|
| 3052 |
with gr.Column():
|
|
|
|
| 3053 |
conf_preview = gr.Image(
|
| 3054 |
-
value=str(
|
| 3055 |
label="Default conference logo preview",
|
| 3056 |
interactive=False,
|
| 3057 |
)
|
|
|
|
| 122 |
return found
|
| 123 |
|
| 124 |
def _ui_header_logos_html():
|
| 125 |
+
"""Return an HTML div with base64-embedded logos to avoid broken /file routes.
|
| 126 |
+
Logos are fixed at top-right, slightly inset, with larger spacing.
|
| 127 |
+
"""
|
| 128 |
import base64
|
| 129 |
logos = _find_ui_header_logos(ROOT)
|
| 130 |
if not logos:
|
|
|
|
| 136 |
b64 = base64.b64encode(b).decode("utf-8")
|
| 137 |
mime = "image/png" if p.suffix.lower() == ".png" else "image/jpeg"
|
| 138 |
src = f"data:{mime};base64,{b64}"
|
| 139 |
+
name = p.name.lower()
|
| 140 |
+
href = None
|
| 141 |
+
if "camel" in name:
|
| 142 |
+
href = "https://www.camel-ai.org/"
|
| 143 |
+
elif "tvg" in name or "torr" in name:
|
| 144 |
+
href = "https://torrvision.com/index.html"
|
| 145 |
+
elif "waterloo" in name:
|
| 146 |
+
href = "https://uwaterloo.ca/"
|
| 147 |
+
img = f"<img src='{src}' alt='{p.stem}' style='height:44px;width:auto;object-fit:contain;display:block;cursor:pointer'>"
|
| 148 |
+
parts.append(f"<a href='{href}' target='_blank' rel='noopener'>{img}</a>" if href else img)
|
| 149 |
except Exception:
|
| 150 |
continue
|
| 151 |
if not parts:
|
| 152 |
return ""
|
| 153 |
+
# Fixed-position header bar at top-right; moved left a bit and larger spacing
|
| 154 |
imgs = "".join(parts)
|
| 155 |
return (
|
| 156 |
"<style>"
|
| 157 |
+
"#p2p-logo-bar{position:fixed;top:12px;right:28px;display:flex;gap:20px;"
|
| 158 |
"align-items:center;z-index:9999}"
|
| 159 |
+
"#p2p-logo-bar a{display:block;line-height:0}"
|
| 160 |
"@media (max-width: 768px){#p2p-logo-bar img{height:32px}}"
|
| 161 |
"</style>"
|
| 162 |
"<div id='p2p-logo-bar'>" + imgs + "</div>"
|
| 163 |
)
|
| 164 |
|
| 165 |
+
def _default_conf_logo_path():
|
| 166 |
+
"""Pick a default conference logo to preview.
|
| 167 |
+
Prefer template/logos/right_logo.png, else the first of detected header logos.
|
| 168 |
+
"""
|
| 169 |
+
try:
|
| 170 |
+
pref = ROOT / "template" / "logos" / "right_logo.png"
|
| 171 |
+
if pref.exists():
|
| 172 |
+
return pref
|
| 173 |
+
logos = _find_ui_header_logos(ROOT)
|
| 174 |
+
for p in logos:
|
| 175 |
+
if p and p.exists():
|
| 176 |
+
return p
|
| 177 |
+
except Exception:
|
| 178 |
+
pass
|
| 179 |
+
return None
|
| 180 |
+
|
| 181 |
## Removed sanitizer per request: do not mutate user-generated TeX
|
| 182 |
|
| 183 |
def _on_rm_error(func, path, exc_info):
|
|
|
|
| 3077 |
file_types=["image"],
|
| 3078 |
)
|
| 3079 |
with gr.Column():
|
| 3080 |
+
_conf_path = _default_conf_logo_path()
|
| 3081 |
conf_preview = gr.Image(
|
| 3082 |
+
value=str(_conf_path) if _conf_path else None,
|
| 3083 |
label="Default conference logo preview",
|
| 3084 |
interactive=False,
|
| 3085 |
)
|