chess / index.html
openfree's picture
Update index.html
a494367 verified
raw
history blame
24 kB
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ํ”„๋กœ์ ํŠธ ๋ทฐ์–ด (์ž๋™ ๋ถ„๋ฅ˜ ๋ฐ URL ๋ณ€ํ™˜)</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f9;
color: #333;
}
.github-link {
text-align: center;
padding: 8px;
background-color: #24292e;
color: #fff;
font-size: 14px;
}
.github-link a {
color: #fff;
text-decoration: none;
}
.filter-group {
padding: 10px;
background-color: #fff;
border-bottom: 1px solid #eee;
text-align: center;
overflow-x: auto;
white-space: nowrap;
}
.filter-group .toggle-button {
padding: 6px 12px;
margin: 5px;
border: 1px solid #ddd;
border-radius: 15px;
background-color: #fff;
font-size: 13px;
cursor: pointer;
display: inline-block;
}
.filter-group .toggle-button.active {
background-color: #2196f3;
border-color: #2196f3;
color: #fff;
}
.main-container {
display: flex;
height: calc(100vh - 100px); /* ์ƒ๋‹จ ์˜์—ญ ์ œ์™ธ ์ „์ฒด ๋†’์ด */
}
#sidebar {
width: 25%;
border-right: 1px solid #ccc;
overflow-y: auto;
padding: 10px;
}
#sidebar ul {
list-style: none;
padding: 0;
margin: 0;
}
#sidebar li {
margin: 5px 0;
padding: 8px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
}
#sidebar li:hover {
background-color: #f0f0f0;
}
#sidebar li button {
margin-left: 8px;
padding: 4px 8px;
cursor: pointer;
font-size: 12px;
border-radius: 4px;
border: 1px solid #ccc;
background-color: #fafafa;
}
#embed-container {
flex: 1;
padding: 0;
margin: 0;
background-color: #fff;
}
#embed-container iframe {
width: 100%;
height: 100%;
border: none;
display: block;
}
</style>
</head>
<body>
<div class="github-link">
<a href="https://discord.gg/openfreeai" target="_blank">Community</a>
</div>
<!-- ํ•„ํ„ฐ ๋ฒ„ํŠผ ์˜์—ญ -->
<div class="filter-group" id="filter-group">
<!-- JavaScript๋กœ ๋™์ ์œผ๋กœ ๋ฒ„ํŠผ ์ƒ์„ฑ -->
</div>
<div class="main-container">
<div id="sidebar"></div>
<div id="embed-container">
<iframe id="embed-frame" src=""></iframe>
</div>
</div>
<script>
// 1. ํ”„๋กœ์ ํŠธ URL ๋ชฉ๋ก: ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ -> URL
const projectList = {
"fantos/Panorama": "https://huggingface.co/spaces/fantos/Panorama",
"ginigen/Multi-LoRAgen": "https://huggingface.co/spaces/ginigen/Multi-LoRAgen",
"ginigen/canvas-studio": "https://huggingface.co/spaces/ginigen/canvas-studio",
"ginipick/Fashion-Stylegen": "https://huggingface.co/spaces/ginipick/Fashion-Style",
"ginipick/Time-Stream": "https://huggingface.co/spaces/ginipick/Time-Stream",
"ginipick/AccuVision-Diffusion": "https://huggingface.co/spaces/ginipick/AccuVision-Diffusion",
"fantos/Magic-Drawings": "https://huggingface.co/spaces/fantos/Magic-Drawings",
"ginigen/Lumina-Image-PLUS": "https://huggingface.co/spaces/ginigen/Lumina-Image-PLUS",
"fantaxy/fantasy-novel": "https://huggingface.co/spaces/fantaxy/fantasy-novel",
"fantaxy/eros": "https://huggingface.co/spaces/fantaxy/eros",
"fantaxy/adult-novel": "https://huggingface.co/spaces/fantaxy/adult-novel",
"fantaxy/kungfu-novel": "https://huggingface.co/spaces/fantaxy/kungfu-novel",
"fantaxy/love-novel": "https://huggingface.co/spaces/fantaxy/love-novel",
"VIDraft/mouse-webgen": "https://huggingface.co/spaces/VIDraft/mouse-webgen",
"immunobiotech/MUSIC-Jukebox": "https://huggingface.co/spaces/immunobiotech/MUSIC-Jukebox",
"seawolf2357/Flowise-AI": "https://huggingface.co/spaces/seawolf2357/Flowise-AI",
"ginigen/Flux-LayerDiffuse": "https://huggingface.co/spaces/ginigen/Flux-LayerDiffuse",
"VIDraft/Portrait-Animation": "https://huggingface.co/spaces/VIDraft/Portrait-Animation",
"VIDraft/Deepseek-Multimodal": "https://huggingface.co/spaces/VIDraft/Deepseek-Multimodal",
"VIDraft/BLIP2": "https://huggingface.co/spaces/VIDraft/BLIP2",
"ginigen/text3d-r1": "https://huggingface.co/spaces/ginigen/text3d-r1",
"immunobiotech/drug-discovery": "https://huggingface.co/spaces/immunobiotech/drug-discovery",
"openfree/VisionOCR-Chat": "https://huggingface.co/spaces/openfree/VisionOCR-Chat",
"immunobiotech/MICHELIN": "https://huggingface.co/spaces/immunobiotech/MICHELIN",
"immunobiotech/MICHELIN-korea": "https://huggingface.co/spaces/immunobiotech/MICHELIN-korea",
"immunobiotech/MICHELIN-japan": "https://huggingface.co/spaces/immunobiotech/MICHELIN-japan",
"immunobiotech/MICHELIN-china": "https://huggingface.co/spaces/immunobiotech/MICHELIN-china",
"VIDraft/money-radar-korea": "https://huggingface.co/spaces/VIDraft/money-radar-korea",
"VIDraft/money-radar": "https://huggingface.co/spaces/VIDraft/money-radar",
"ginipick/PharmAI-Korea": "https://huggingface.co/spaces/ginipick/PharmAI-Korea",
"ginigen/MagicFace-V3": "https://huggingface.co/spaces/ginigen/MagicFace-V3",
"aiqcamp/MindMap": "https://huggingface.co/spaces/aiqcamp/MindMap",
"ginigen/3D-LLAMA": "https://huggingface.co/spaces/ginigen/3D-LLAMA",
"openfree/VectorFlow": "https://huggingface.co/spaces/openfree/VectorFlow",
"openfree/webtoon-gen": "https://huggingface.co/spaces/openfree/webtoon-gen",
"VIDraft/topic-prediction": "https://huggingface.co/spaces/VIDraft/topic-prediction",
"VIDraft/PapersImpact": "https://huggingface.co/spaces/VIDraft/PapersImpact",
"VIDraft/EveryRAG": "https://huggingface.co/spaces/VIDraft/EveryRAG",
"VIDraft/korea-president-DJ": "https://huggingface.co/spaces/VIDraft/korea-president-DJ",
"VIDraft/korea-president-PARK": "https://huggingface.co/spaces/VIDraft/korea-president-PARK",
"openfree/image-to-vector": "https://huggingface.co/spaces/openfree/image-to-vector",
"ginipick/QR-Canvas-plus": "https://huggingface.co/spaces/ginipick/QR-Canvas-plus",
"ginigen/text3d-R1": "https://huggingface.co/spaces/ginigen/text3d-R1",
"openfree/MagicFace-V3": "https://huggingface.co/spaces/openfree/MagicFace-V3",
"ginipick/DeepSeekR1-LIVE": "https://huggingface.co/spaces/ginipick/DeepSeekR1-LIVE",
"ginigen/ColPali-multi": "https://huggingface.co/spaces/ginigen/ColPali-multi",
"ginigen/Janus-Pro-7B": "https://huggingface.co/spaces/ginigen/Janus-Pro-7B",
"ginigen/Animagine": "https://huggingface.co/spaces/ginigen/Animagine",
"openfree/PDF-RAG": "https://huggingface.co/spaces/openfree/PDF-RAG",
"fantos/Ranking-Tracker": "https://huggingface.co/spaces/fantos/Ranking-Tracker",
"aiqcamp/Multilingual-Images": "https://huggingface.co/spaces/aiqcamp/Multilingual-Images",
"aiqcamp/Gemini2-Flash-Thinking": "https://huggingface.co/spaces/aiqcamp/Gemini2-Flash-Thinking",
"openfree/pepe": "https://huggingface.co/spaces/openfree/pepe",
"openfree/korea-president-yoon": "https://huggingface.co/spaces/openfree/korea-president-yoon",
"openfree/CryptoVision": "https://huggingface.co/spaces/openfree/CryptoVision",
"fantos/VoiceClone": "https://huggingface.co/spaces/fantos/VoiceClone",
"seawolf2357/ocrlatex": "https://huggingface.co/spaces/seawolf2357/ocrlatex",
"seawolf2357/img2vid": "https://huggingface.co/spaces/seawolf2357/img2vid",
"seawolf2357/sd-prompt-gen": "https://huggingface.co/spaces/seawolf2357/sd-prompt-gen",
"openfree/tarotcard": "https://huggingface.co/spaces/openfree/tarotcard",
"aiqcamp/Polaroid": "https://huggingface.co/spaces/aiqcamp/Polaroid",
"ginigen/cartoon": "https://huggingface.co/spaces/ginigen/cartoon",
"ginigen/Book-Cover": "https://huggingface.co/spaces/ginigen/Book-Cover",
"aiqcamp/fash": "https://huggingface.co/spaces/aiqcamp/fash",
"gunship999/Korea-Daily-News": "https://huggingface.co/spaces/gunship999/Korea-Daily-News",
"immunobiotech/ChicagoGallery": "https://huggingface.co/spaces/immunobiotech/ChicagoGallery",
"immunobiotech/MetropolitanMuseum": "https://huggingface.co/spaces/immunobiotech/MetropolitanMuseum",
"immunobiotech/opensky": "https://huggingface.co/spaces/immunobiotech/opensky",
"aiqtech/FLUX-military": "https://huggingface.co/spaces/aiqtech/FLUX-military",
"fantaxy/Rolls-Royce": "https://huggingface.co/spaces/fantaxy/Rolls-Royce",
"seawolf2357/flux-korea-hanbok-lora": "https://huggingface.co/spaces/seawolf2357/flux-korea-hanbok-lora",
"seawolf2357/flux-korea-palace-lora": "https://huggingface.co/spaces/seawolf2357/flux-korea-palace-lora",
"aiqcamp/flux-cat-lora": "https://huggingface.co/spaces/aiqcamp/flux-cat-lora",
"gunship999/SexyImages": "https://huggingface.co/spaces/gunship999/SexyImages",
"aiqtech/flux-claude-monet-lora": "https://huggingface.co/spaces/aiqtech/flux-claude-monet-lora",
"seawolf2357/3D-Avatar-Generator": "https://huggingface.co/spaces/seawolf2357/3D-Avatar-Generator",
"fantaxy/playground25": "https://huggingface.co/spaces/fantaxy/playground25",
"openfree/ultpixgen": "https://huggingface.co/spaces/openfree/ultpixgen",
"seawolf2357/REALVISXL-V5": "https://huggingface.co/spaces/seawolf2357/REALVISXL-V5",
"fantos/flxcontrol": "https://huggingface.co/spaces/fantos/flxcontrol",
"fantos/textcutobject": "https://huggingface.co/spaces/fantos/textcutobject",
"ginipick/FLUX-Prompt-Generator": "https://huggingface.co/spaces/ginipick/FLUX-Prompt-Generator",
"fantaxy/flxloraexp": "https://huggingface.co/spaces/fantaxy/flxloraexp",
"fantos/flxloraexp": "https://huggingface.co/spaces/fantos/flxloraexp",
"seawolf2357/flxloraexp": "https://huggingface.co/spaces/seawolf2357/flxloraexp",
"ginipick/flxloraexp": "https://huggingface.co/spaces/ginipick/flxloraexp",
"aiqcamp/imagemagic": "https://huggingface.co/spaces/aiqcamp/imagemagic",
"openfree/ColorRevive": "https://huggingface.co/spaces/openfree/ColorRevive",
"VIDraft/RAGOndevice": "https://huggingface.co/spaces/VIDraft/RAGOndevice",
"aiqcamp/AudioLlama": "https://huggingface.co/spaces/aiqcamp/AudioLlama",
"ginigen/FLUXllama-Multilingual": "https://huggingface.co/spaces/ginigen/FLUXllama-Multilingual",
"ginipick/FitGen": "https://huggingface.co/spaces/ginipick/FitGen",
"fantaxy/FLUX-Animations": "https://huggingface.co/spaces/fantaxy/FLUX-Animations",
"fantaxy/Remove-Video-Background": "https://huggingface.co/spaces/fantaxy/Remove-Video-Background",
"fantaxy/ofai-flx-logo": "https://huggingface.co/spaces/fantaxy/ofai-flx-logo",
"fantaxy/flx-pulid": "https://huggingface.co/spaces/fantaxy/flx-pulid",
"fantaxy/flx-upscale": "https://huggingface.co/spaces/fantaxy/flx-upscale",
"aiqcamp/Fashion-FLUX": "https://huggingface.co/spaces/aiqcamp/Fashion-FLUX",
"fantos/x-mas": "https://huggingface.co/spaces/fantos/x-mas",
"openfree/Korean-Leaderboard": "https://huggingface.co/spaces/openfree/Korean-Leaderboard",
"ginipick/FLUXllama": "https://huggingface.co/spaces/ginipick/FLUXllama",
"fantaxy/Sound-AI-SFX": "https://huggingface.co/spaces/fantaxy/Sound-AI-SFX",
"fantos/flx8lora": "https://huggingface.co/spaces/fantos/flx8lora",
"openfree/trending-board": "https://huggingface.co/spaces/openfree/trending-board",
"ginipick/Realtime-FLUX": "https://huggingface.co/spaces/ginipick/Realtime-FLUX",
"aiqtech/kofaceid": "https://huggingface.co/spaces/aiqtech/kofaceid",
"fantaxy/fastvideogena": "https://huggingface.co/spaces/fantaxy/fastvideogen",
"fantos/flxfashmodel": "https://huggingface.co/spaces/fantos/flxfashmodel",
"fantos/kolcontrl": "https://huggingface.co/spaces/fantos/kolcontrl",
"aiqtech/cinevid": "https://huggingface.co/spaces/aiqtech/cinevid",
"aiqtech/FLUX-Ghibli-Studio-LoRA": "https://huggingface.co/spaces/aiqtech/FLUX-Ghibli-Studio-LoRA",
"aiqtech/flxgif": "https://huggingface.co/spaces/aiqtech/flxgif",
"aiqtech/imaginpaint": "https://huggingface.co/spaces/aiqtech/imaginpaint"
};
// 2. ๋ณ„๋„ ๊ฐ์ฒด: ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ณ„ ์นดํ…Œ๊ณ ๋ฆฌ ์ง€์ • (์—†์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ "Image Gen" ์‚ฌ์šฉ)
const customCategories = {
"fantos/Panorama": "Image Gen",
"ginigen/Multi-LoRAgen": "Image Gen",
"ginigen/canvas-studio": "Image Edit",
"ginipick/Fashion-Stylegen": "Productivity",
"ginipick/Time-Stream": "Video",
"ginipick/AccuVision-Diffusion": "Image Gen",
"fantos/Magic-Drawings": "Image Edit",
"ginigen/Lumina-Image-PLUS": "Image Gen",
"fantaxy/fantasy-novel": "Text",
"fantaxy/eros": "Text",
"fantaxy/adult-novel": "Text",
"fantaxy/kungfu-novel": "Text",
"fantaxy/love-novel": "Text",
"VIDraft/mouse-webgen": "Productivity",
"immunobiotech/MUSIC-Jukebox": "Audio",
"seawolf2357/Flowise-AI": "Productivity",
"ginigen/Flux-LayerDiffuse": "Image Gen",
"VIDraft/Portrait-Animation": "Video",
"VIDraft/Deepseek-Multimodal": "Vision",
"VIDraft/BLIP2": "Image Gen",
"ginigen/text3d-r1": "Image Gen",
"immunobiotech/drug-discovery": "Productivity",
"openfree/VisionOCR-Chat": "Vision",
"immunobiotech/MICHELIN": "Productivity",
"immunobiotech/MICHELIN-korea": "Productivity",
"immunobiotech/MICHELIN-japan": "Productivity",
"immunobiotech/MICHELIN-china": "Productivity",
"VIDraft/money-radar-korea": "Productivity",
"VIDraft/money-radar": "Productivity",
"ginipick/PharmAI-Korea": "Productivity",
"ginigen/MagicFace-V3": "Image Gen",
"aiqcamp/MindMap": "Image Gen",
"ginigen/3D-LLAMA": "Productivity",
"openfree/VectorFlow": "Image Edit",
"openfree/webtoon-gen": "Image Gen",
"VIDraft/topic-prediction": "Text",
"VIDraft/PapersImpact": "Productivity",
"VIDraft/EveryRAG": "Text",
"VIDraft/korea-president-DJ": "Image Gen",
"VIDraft/korea-president-PARK": "Image Gen",
"openfree/image-to-vector": "Image Edit",
"ginipick/QR-Canvas-plus": "Productivity",
"ginigen/text3d-R1": "Image Gen",
"openfree/MagicFace-V3": "Image Edit",
"ginipick/DeepSeekR1-LIVE": "Text",
"ginigen/ColPali-multi": "Text",
"ginigen/Janus-Pro-7B": "Vision",
"ginigen/Animagine": "Image Gen",
"openfree/PDF-RAG": "Productivity",
"fantos/Ranking-Tracker": "Utility",
"aiqcamp/Multilingual-Images": "Image Gen",
"aiqcamp/Gemini2-Flash-Thinking": "Text",
"openfree/pepe": "Image Gen",
"openfree/korea-president-yoon": "Image Gen",
"openfree/CryptoVision": "Utility",
"fantos/VoiceClone": "Audio",
"seawolf2357/ocrlatex": "Utility",
"seawolf2357/img2vid": "Video",
"seawolf2357/sd-prompt-gen": "Text",
"openfree/tarotcard": "Utility",
"aiqcamp/Polaroid": "Image Gen",
"ginigen/cartoon": "Image Gen",
"ginigen/Book-Cover": "Image Gen",
"aiqcamp/fash": "Productivity",
"gunship999/Korea-Daily-News": "Utility",
"immunobiotech/ChicagoGallery": "Utility",
"immunobiotech/MetropolitanMuseum": "Utility",
"immunobiotech/opensky": "Utility",
"VIDraft/eum": "Text",
"aiqtech/FLUX-military": "Image Gen",
"fantaxy/Rolls-Royce": "Image Gen",
"seawolf2357/flux-korea-hanbok-lora": "Image Gen",
"seawolf2357/flux-korea-palace-lora": "Image Gen",
"aiqcamp/flux-cat-lora": "Image Gen",
"gunship999/SexyImages": "Image Gen",
"aiqtech/flux-claude-monet-lora": "Image Gen",
"seawolf2357/3D-Avatar-Generator": "Utility",
"fantaxy/playground25": "Image Gen",
"openfree/ultpixgen": "Image Gen",
"seawolf2357/REALVISXL-V5": "Image Gen",
"fantos/flxcontrol": "Image Edit",
"fantos/textcutobject": "Image Edit",
"ginipick/FLUX-Prompt-Generator": "Text",
"fantaxy/flxloraexp": "Image Gen",
"fantos/flxloraexp": "Image Gen",
"seawolf2357/flxloraexp": "Image Gen",
"ginipick/flxloraexp": "Image Gen",
"aiqcamp/imagemagic": "Image Edit",
"openfree/ColorRevive": "Image Edit",
"VIDraft/RAGOndevice": "Productivity",
"aiqcamp/AudioLlama": "Audio",
"ginigen/FLUXllama-Multilingual": "Image Gen",
"ginipick/FitGen": "Image Gen",
"fantaxy/FLUX-Animations": "Image Gen",
"fantaxy/Remove-Video-Background": "Image Edit",
"fantaxy/ofai-flx-logo": "Image Gen",
"fantaxy/flx-pulid": "Image Gen",
"fantaxy/flx-upscale": "Image Edit",
"aiqcamp/Fashion-FLUX": "Image Gen",
"fantos/x-mas": "Image Gen",
"openfree/Korean-Leaderboard": "Utility",
"ginipick/FLUXllama": "Image Gen",
"fantaxy/Sound-AI-SFX": "Audio",
"fantos/flx8lora": "Image Gen",
"openfree/trending-board": "Utility",
"ginipick/Realtime-FLUX": "Image Gen",
"aiqtech/kofaceid": "Image Gen",
"fantaxy/fastvideogena": "Video",
"fantos/cogvidx": "Video",
"fantos/flxfashmodel": "Image Gen",
"fantos/kolcontrl": "Image Edit",
"aiqtech/cinevid": "Video",
"aiqtech/FLUX-Ghibli-Studio-LoRA": "Image Gen",
"aiqtech/flxgif": "Image Gen",
"aiqtech/imaginpaint": "Image Edit"
};
const newProjects = [
"fantos/Panorama",
"ginigen/Multi-LoRAgen",
"ginigen/canvas-studio",
"ginipick/Fashion-Stylegen",
"ginipick/Time-Stream",
"ginipick/AccuVision-Diffusion",
"fantos/Magic-Drawings",
"ginigen/Lumina-Image-PLUS",
"fantaxy/fantasy-novel",
"fantaxy/eros",
"fantaxy/adult-novel",
"fantaxy/kungfu-novel",
"fantaxy/love-novel",
"VIDraft/mouse-webgen",
"immunobiotech/MUSIC-Jukebox",
"seawolf2357/Flowise-AI",
"ginigen/Flux-LayerDiffuse",
"VIDraft/Portrait-Animation",
"VIDraft/Deepseek-Multimodal",
"VIDraft/BLIP2",
"ginigen/text3d-r1",
"immunobiotech/drug-discovery",
"openfree/VisionOCR-Chat",
"immunobiotech/MICHELIN",
"immunobiotech/MICHELIN-korea",
"immunobiotech/MICHELIN-japan",
"immunobiotech/MICHELIN-china",
"VIDraft/money-radar-korea",
"VIDraft/money-radar",
"ginipick/PharmAI-Korea",
"ginigen/MagicFace-V3",
"aiqcamp/MindMap",
"ginigen/3D-LLAMA",
"openfree/VectorFlow",
"openfree/webtoon-gen",
"VIDraft/topic-prediction",
"VIDraft/PapersImpact",
"VIDraft/EveryRAG",
"VIDraft/korea-president-DJ",
"VIDraft/korea-president-PARK",
"openfree/image-to-vector",
"ginipick/QR-Canvas-plus",
"openfree/MagicFace-V3",
"ginipick/DeepSeekR1-LIVE",
"ginigen/ColPali-multi",
"ginigen/Janus-Pro-7B",
"ginigen/Animagine",
"openfree/PDF-RAG",
"fantos/Ranking-Tracker",
"aiqcamp/Multilingual-Images",
"aiqcamp/Gemini2-Flash-Thinking",
"openfree/pepe",
"openfree/korea-president-yoon",
"openfree/CryptoVision",
"fantos/VoiceClone",
"seawolf2357/ocrlatex",
"seawolf2357/img2vid",
"seawolf2357/sd-prompt-gen",
"openfree/tarotcard",
"aiqcamp/Polaroid",
"ginigen/cartoon",
"ginigen/Book-Cover"
];
const bestProjects = [
"openfree/VisionOCR-Chat",
"ginigen/3D-LLAMA",
"fantos/Ranking-Tracker",
"openfree/trending-board",
"openfree/Korean-Leaderboard",
"fantos/Panorama",
"ginigen/Multi-LoRAgen",
"ginigen/canvas-studio",
"fantaxy/adult-novel",
"VIDraft/mouse-webgen",
"ginigen/text3d-r1",
"immunobiotech/MICHELIN-korea",
"VIDraft/money-radar-korea",
"ginipick/PharmAI-Korea",
"VIDraft/PapersImpact",
"aiqcamp/MindMap",
"VIDraft/EveryRAG",
"openfree/MagicFace-V3",
"ginigen/Animagine",
"openfree/PDF-RAG",
"aiqcamp/Multilingual-Images",
"aiqcamp/Gemini2-Flash-Thinking",
"openfree/CryptoVision",
"fantos/VoiceClone",
"seawolf2357/ocrlatex",
"ginigen/cartoon",
"ginigen/Book-Cover",
"aiqcamp/fash",
"seawolf2357/REALVISXL-V5",
"aiqcamp/AudioLlama",
"ginigen/FLUXllama-Multilingual",
"ginipick/FitGen"
];
// 4. URL ๋ณ€ํ™˜ ํ•จ์ˆ˜
function transformUrl(url) {
const prefix = "https://huggingface.co/spaces/";
if (url.startsWith(prefix)) {
const rest = url.substring(prefix.length);
return "https://" + rest.replace("/", "-") + ".hf.space";
}
return url;
}
// 5. ํ”„๋กœ์ ํŠธ ๋ฐฐ์—ด ์ƒ์„ฑ
const keys = Object.keys(projectList);
const projects = keys.map(key => {
const primaryCategory = customCategories[key] || "Image Gen";
let categories = [primaryCategory];
if (newProjects.includes(key)) categories.push("NEW");
if (bestProjects.includes(key)) categories.push("BEST");
return {
name: primaryCategory + "/" + key.split("/")[1],
url: transformUrl(projectList[key]),
categories: categories
};
});
// 6. ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๊ทธ๋ฃนํ™”
const grouped = {};
projects.forEach(proj => {
proj.categories.forEach(cat => {
if (!grouped[cat]) grouped[cat] = [];
grouped[cat].push(proj);
});
});
// 7. ํ•„ํ„ฐ ๋ฒ„ํŠผ ์ƒ์„ฑ
const fixedGroups = ["NEW", "BEST", "Text", "Image Gen", "Image Edit", "Audio", "Video", "Productivity", "Utility", "Vision"];
const filterGroupDiv = document.getElementById("filter-group");
const allButton = document.createElement("button");
allButton.className = "toggle-button active";
allButton.setAttribute("data-filter", "all");
allButton.textContent = "All";
filterGroupDiv.appendChild(allButton);
fixedGroups.forEach(category => {
const btn = document.createElement("button");
btn.className = "toggle-button";
btn.setAttribute("data-filter", category);
btn.textContent = category;
filterGroupDiv.appendChild(btn);
});
// 8. ์‚ฌ์ด๋“œ๋ฐ” ๊ฐฑ์‹  ํ•จ์ˆ˜
function updateSidebar(filter) {
const sidebar = document.getElementById("sidebar");
sidebar.innerHTML = "";
let items = (filter === "all")
? projects
: projects.filter(p => p.categories.includes(filter));
const ul = document.createElement("ul");
items.forEach(item => {
const li = document.createElement("li");
// ์ด๋ฆ„ ํ‘œ์‹œ
const nameSpan = document.createElement("span");
nameSpan.textContent = item.name;
li.appendChild(nameSpan);
// "๋งํฌ ํด๋ฆญ" ๋ฒ„ํŠผ
const linkButton = document.createElement("button");
linkButton.textContent = "๋งํฌ ํด๋ฆญ";
linkButton.addEventListener("click", (event) => {
event.stopPropagation(); // li ํด๋ฆญ ์ด๋ฒคํŠธ์™€ ๊ตฌ๋ถ„
window.open(item.url, "_blank"); // ์ƒˆ ํƒญ(์ฐฝ) ์—ด๊ธฐ
});
li.appendChild(linkButton);
// li ์ž์ฒด ํด๋ฆญํ•˜๋ฉด iframe ๋ณ€๊ฒฝ
li.addEventListener("click", () => {
document.getElementById("embed-frame").src = item.url;
});
ul.appendChild(li);
});
sidebar.appendChild(ul);
if (items.length > 0) {
document.getElementById("embed-frame").src = items[0].url;
} else {
document.getElementById("embed-frame").src = "";
}
}
// 9. ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ
document.querySelectorAll(".toggle-button").forEach(button => {
button.addEventListener("click", function() {
document.querySelectorAll(".toggle-button").forEach(b => b.classList.remove("active"));
this.classList.add("active");
updateSidebar(this.getAttribute("data-filter"));
});
});
// 10. ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ All ํ•„ํ„ฐ
updateSidebar("all");
</script>
</body>
</html>