6.8edit icon

作者:
藤原
Fork(复制)
下载
嵌入
设置
BUG反馈
index.html
style.css
index.js
现在支持上传本地图片了!
            
            <!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TENG YUAN - 智能终端系统</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Inter:wght@300;400;500;600;700&display=swap">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
    <style>
        :root {
            /* 基础变量 */
            --transition-fast: 0.2s ease;
            --transition-normal: 0.3s ease;
            --transition-slow: 0.5s ease;
            --border-radius: 12px;
            --border-radius-lg: 20px;
            --font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            --font-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;
            
            /* 暗色主题变量 */
            --bg-primary: #0f172a;
            --bg-secondary: #1e293b;
            --bg-tertiary: #334155;
            --text-primary: #f8fafc;
            --text-secondary: #cbd5e1;
            --text-tertiary: #94a3b8;
            --accent-primary: #6366f1;
            --accent-secondary: #8b5cf6;
            --accent-hover: #7c3aed;
            --border-color: rgba(255, 255, 255, 0.1);
            --glass-bg: rgba(15, 23, 42, 0.8);
            --glass-border: rgba(255, 255, 255, 0.1);
            --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
            --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
            
            /* 起始页变量 */
            --startup-bg: #0a0a0a;
            --startup-card-bg: rgba(255, 255, 255, 0.04);
            --startup-card-hover: rgba(255, 255, 255, 0.08);
            --startup-card-border: rgba(255, 255, 255, 0.08);
            --startup-search-bg: rgba(255, 255, 255, 0.06);
            --startup-search-focus: rgba(255, 255, 255, 0.1);
            --startup-icon-bg: rgba(255, 255, 255, 0.08);
            --startup-icon-hover: rgba(99, 102, 241, 0.2);
        }

        /* 亮色主题变量 */
        .light-mode {
            --bg-primary: #ffffff;
            --bg-secondary: #f8fafc;
            --bg-tertiary: #e2e8f0;
            --text-primary: #1e293b;
            --text-secondary: #475569;
            --text-tertiary: #64748b;
            --accent-primary: #3b82f6;
            --accent-secondary: #6366f1;
            --accent-hover: #2563eb;
            --border-color: rgba(0, 0, 0, 0.1);
            --glass-bg: rgba(255, 255, 255, 0.8);
            --glass-border: rgba(0, 0, 0, 0.1);
            --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
            --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
            
            /* 起始页变量 */
            --startup-bg: #fafbfc;
            --startup-card-bg: rgba(255, 255, 255, 0.8);
            --startup-card-hover: rgba(255, 255, 255, 0.95);
            --startup-card-border: rgba(0, 0, 0, 0.06);
            --startup-search-bg: rgba(255, 255, 255, 0.9);
            --startup-search-focus: rgba(255, 255, 255, 1);
            --startup-icon-bg: rgba(0, 0, 0, 0.04);
            --startup-icon-hover: rgba(59, 130, 246, 0.1);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: var(--font-family);
            background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
            color: var(--text-primary);
            min-height: 100vh;
            transition: all var(--transition-normal);
            overflow: hidden;
        }

        /* ==================== 顶部导航栏样式 ==================== */
        .top-nav {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            height: 80px;
            background: var(--glass-bg);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border-bottom: 1px solid var(--glass-border);
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 2rem;
            z-index: 1000;
            box-shadow: var(--shadow-sm);
        }

        /* 左侧Logo */
        .nav-logo {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            font-size: 1.5rem;
            font-weight: 700;
            background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            letter-spacing: -0.02em;
        }

        .nav-logo i {
            color: var(--accent-primary);
            background: none;
            -webkit-background-clip: unset;
            background-clip: unset;
        }

        /* 中间导航按钮 */
        .nav-tabs {
            display: flex;
            gap: 0.5rem;
            background: var(--startup-card-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: var(--border-radius-lg);
            padding: 0.5rem;
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        .nav-tab {
            position: relative;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.75rem 1.5rem;
            border-radius: calc(var(--border-radius-lg) - 0.25rem);
            border: none;
            background: transparent;
            color: var(--text-secondary);
            font-family: inherit;
            font-size: 0.9rem;
            font-weight: 500;
            cursor: pointer;
            transition: all var(--transition-normal);
            overflow: hidden;
            min-width: 120px;
            justify-content: center;
        }

        .nav-tab::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
            opacity: 0;
            transition: opacity var(--transition-normal);
            z-index: -1;
        }

        .nav-tab:hover {
            color: var(--text-primary);
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
        }

        .nav-tab:hover::before {
            opacity: 0.1;
        }

        .nav-tab.active {
            color: white;
            background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
            box-shadow: 
                var(--shadow-md),
                0 0 20px rgba(99, 102, 241, 0.3),
                inset 0 1px 0 rgba(255, 255, 255, 0.2);
            transform: translateY(-1px);
        }

        .nav-tab.active::before {
            opacity: 0;
        }

        .nav-tab i {
            font-size: 1rem;
            transition: transform var(--transition-normal);
        }

        .nav-tab:hover i {
            transform: scale(1.1);
        }

        .nav-tab.active i {
            filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.5));
        }

        /* 右侧主题切换 */
        .theme-toggle-container {
            position: relative;
            width: 70px;
            height: 35px;
        }

        .theme-toggle-input {
            display: none;
        }

        .theme-toggle-label {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: var(--startup-card-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: 50px;
            cursor: pointer;
            transition: all var(--transition-normal);
            overflow: hidden;
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        .theme-toggle-label:hover {
            transform: scale(1.05);
            box-shadow: var(--shadow-md);
        }

        .theme-toggle-button {
            position: absolute;
            top: 3px;
            left: 3px;
            width: 29px;
            height: 29px;
            background: linear-gradient(145deg, #ffdf6b, #ffb347);
            border-radius: 50%;
            box-shadow: 0 2px 10px rgba(255, 179, 71, 0.5);
            transition: all var(--transition-normal);
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .light-mode .theme-toggle-button {
            left: 38px;
            background: linear-gradient(145deg, #d1d1d1, #f1f1f1);
            box-shadow: 0 2px 10px rgba(209, 209, 209, 0.5);
        }

        .sun, .moon {
            position: absolute;
            width: 16px;
            height: 16px;
            transition: all var(--transition-normal);
        }

        .sun {
            border-radius: 50%;
            background: #ffdf6b;
            box-shadow: 0 0 8px #ffdf6b;
            opacity: 1;
            transform: scale(1);
        }

        .light-mode .sun {
            opacity: 0;
            transform: scale(0.5);
        }

        .moon {
            border-radius: 50%;
            background: #f1f1f1;
            box-shadow: inset -4px -1px 0 0 #d1d1d1;
            opacity: 0;
            transform: scale(0.5) rotate(90deg);
        }

        .light-mode .moon {
            opacity: 1;
            transform: scale(1) rotate(0deg);
        }

        /* ==================== 主内容区域 ==================== */
        .main-container {
            margin-top: 80px;
            height: calc(100vh - 80px);
            position: relative;
            overflow: hidden;
        }

        .content-view {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            opacity: 0;
            visibility: hidden;
            transition: all var(--transition-normal);
        }

        .content-view.active {
            opacity: 1;
            visibility: visible;
        }

        /* ==================== 浏览器起始页样式 ==================== */
        .browser-start-page {
            background: var(--startup-bg);
            background-image: 
                radial-gradient(circle at 20% 50%, rgba(120, 119, 198, 0.1) 0%, transparent 50%), 
                radial-gradient(circle at 80% 20%, rgba(255, 119, 198, 0.08) 0%, transparent 50%), 
                radial-gradient(circle at 40% 80%, rgba(120, 219, 255, 0.06) 0%, transparent 50%);
            height: 100%;
            overflow-y: auto;
            padding: 2rem;
        }

        .startup-container {
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            align-items: center;
            min-height: 100%;
        }

        .startup-header {
            text-align: center;
            padding: 2rem 0 3rem;
        }

        .startup-logo {
            font-size: 3rem;
            font-weight: 700;
            margin-bottom: 1rem;
            background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            letter-spacing: -0.02em;
        }

        .startup-subtitle {
            font-size: 1.1rem;
            color: var(--text-secondary);
            margin-bottom: 1rem;
        }

        .startup-time {
            display: inline-block;
            padding: 0.5rem 1rem;
            background: var(--startup-card-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: var(--border-radius-lg);
            font-size: 0.9rem;
            color: var(--text-tertiary);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
        }

        /* 搜索区域 */
        .search-section {
            width: 100%;
            max-width: 680px;
            margin-bottom: 4rem;
        }

        .search-container {
            position: relative;
        }

        .search-input {
            width: 100%;
            height: 56px;
            padding: 0 24px 0 56px;
            font-size: 1rem;
            border: 1px solid var(--startup-card-border);
            border-radius: 28px;
            background: var(--startup-search-bg);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            color: var(--text-primary);
            transition: all var(--transition-normal);
            font-family: inherit;
        }

        .search-input::placeholder {
            color: var(--text-tertiary);
        }

        .search-input:focus {
            outline: none;
            background: var(--startup-search-focus);
            border-color: var(--accent-primary);
            box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
        }

        .search-icon {
            position: absolute;
            left: 20px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-tertiary);
            pointer-events: none;
        }

        .search-engine {
            position: absolute;
            right: 8px;
            top: 8px;
            height: 40px;
            display: flex;
            align-items: center;
            padding: 0 16px;
            background: var(--startup-icon-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: 20px;
            cursor: pointer;
            transition: all var(--transition-normal);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        .search-engine:hover {
            background: var(--startup-icon-hover);
            transform: scale(1.02);
        }

        .search-engine img {
            width: 18px;
            height: 18px;
            margin-right: 8px;
            border-radius: 50%;
        }

        .search-engine span {
            font-size: 0.875rem;
            color: var(--text-secondary);
            font-weight: 500;
            margin-right: 6px;
        }

        /* 快捷链接 */
        .quick-links {
            width: 100%;
            margin-bottom: 3rem;
        }

        .section-title {
            font-size: 1.25rem;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 1.5rem;
            text-align: center;
        }

        .links-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 1.5rem;
        }

        .link-card {
            background: var(--startup-card-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            transition: all var(--transition-normal);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            position: relative;
            overflow: hidden;
        }

        .link-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
            opacity: 0;
            transition: opacity var(--transition-normal);
        }

        .link-card:hover {
            background: var(--startup-card-hover);
            transform: translateY(-4px);
            box-shadow: var(--shadow-lg);
        }

        .link-card:hover::before {
            opacity: 1;
        }

        .card-header {
            display: flex;
            align-items: center;
            margin-bottom: 1rem;
        }

        .card-icon {
            width: 24px;
            height: 24px;
            margin-right: 12px;
            color: var(--accent-primary);
        }

        .card-title {
            font-size: 1rem;
            font-weight: 600;
            color: var(--text-primary);
        }

        .card-links {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
            gap: 0.75rem;
        }

        .quick-link {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 1rem 0.75rem;
            background: var(--startup-icon-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: var(--border-radius);
            text-decoration: none;
            color: var(--text-secondary);
            transition: all var(--transition-normal);
            position: relative;
            overflow: hidden;
        }

        .quick-link::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            transition: left 0.6s ease;
        }

        .quick-link:hover::before {
            left: 100%;
        }

        .quick-link:hover {
            background: var(--startup-icon-hover);
            color: var(--text-primary);
            transform: translateY(-2px) scale(1.02);
            box-shadow: var(--shadow-md);
        }

        .link-icon {
            width: 40px;
            height: 40px;
            margin-bottom: 0.75rem;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--startup-card-bg);
            border: 1px solid var(--startup-card-border);
            border-radius: 10px;
            transition: all var(--transition-normal);
        }

        .quick-link:hover .link-icon {
            background: var(--accent-primary);
            border-color: var(--accent-primary);
            box-shadow: 0 0 20px rgba(99, 102, 241, 0.3);
        }

        .link-icon img {
            width: 20px;
            height: 20px;
            object-fit: contain;
        }

        .link-name {
            font-size: 0.875rem;
            font-weight: 500;
            text-align: center;
            line-height: 1.3;
        }

        /* ==================== 终端样式 ==================== */
        .terminal-container {
            height: 100%;
            display: flex;
            flex-direction: column;
            background: var(--bg-secondary);
            margin: 1rem;
            border-radius: var(--border-radius);
            overflow: hidden;
            box-shadow: var(--shadow-lg);
            border: 1px solid var(--border-color);
        }

        .terminal-header {
            background: var(--bg-tertiary);
            padding: 0.75rem 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            border-bottom: 1px solid var(--border-color);
        }

        .window-btn {
            width: 12px;
            height: 12px;
            border-radius: 50%;
            transition: all var(--transition-fast);
        }

        .window-btn.close { background: #ff5f56; }
        .window-btn.minimize { background: #ffbd2e; }
        .window-btn.maximize { background: #27c93f; }

        .terminal-title {
            margin-left: 1rem;
            color: var(--text-secondary);
            font-size: 0.9rem;
        }

        .terminal-content {
            flex: 1;
            padding: 1rem;
            overflow-y: auto;
            font-family: var(--font-mono);
            font-size: 14px;
            line-height: 1.6;
            background: var(--bg-primary);
        }

        .terminal-line {
            margin-bottom: 0.5rem;
            display: flex;
            align-items: flex-start;
        }

        .terminal-prompt {
            color: var(--accent-primary);
            margin-right: 0.5rem;
            font-weight: bold;
        }

        .terminal-command {
            color: var(--text-secondary);
        }

        .terminal-output {
            margin-bottom: 1rem;
            color: var(--text-primary);
            white-space: pre-wrap;
        }

        .terminal-output.error {
            color: #ef4444;
        }

        .terminal-input-line {
            display: flex;
            align-items: center;
            background: var(--bg-secondary);
            padding: 0.75rem 1rem;
            border-top: 1px solid var(--border-color);
        }

        .terminal-input {
            flex: 1;
            background: transparent;
            border: none;
            color: var(--text-primary);
            font-family: var(--font-mono);
            font-size: 14px;
            outline: none;
            margin-left: 0.5rem;
        }

        /* ==================== 响应式设计 ==================== */
        @media (max-width: 768px) {
            .top-nav {
                padding: 0 1rem;
            }

            .nav-logo {
                font-size: 1.25rem;
            }

            .nav-tab {
                padding: 0.5rem 1rem;
                min-width: 100px;
            }

            .nav-tab span {
                display: none;
            }

            .startup-logo {
                font-size: 2rem;
            }

            .links-grid {
                grid-template-columns: 1fr;
            }

            .card-links {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        @media (max-width: 480px) {
            .nav-tabs {
                gap: 0.25rem;
                padding: 0.25rem;
            }

            .nav-tab {
                padding: 0.5rem;
                min-width: 80px;
            }

            .startup-header {
                padding: 1rem 0 2rem;
            }

            .startup-logo {
                font-size: 1.75rem;
            }

            .search-section {
                margin-bottom: 2rem;
            }

            .card-links {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        /* ==================== 滚动条样式 ==================== */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }

        ::-webkit-scrollbar-track {
            background: transparent;
        }

        ::-webkit-scrollbar-thumb {
            background: var(--text-tertiary);
            border-radius: 4px;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: var(--accent-primary);
        }

        /* ==================== 动画效果 ==================== */
        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .startup-container > * {
            animation: fadeIn 0.6s ease-out forwards;
        }

        .startup-header {
            animation-delay: 0.1s;
        }

        .search-section {
            animation-delay: 0.2s;
        }

        .quick-links {
            animation-delay: 0.3s;
        }
    </style>
</head>
<body class="dark-mode">
    <!-- 顶部导航栏 -->
    <nav class="top-nav">
        <div class="nav-logo">
            <i class="fas fa-cube"></i>
            <span>TENG YUAN</span>
        </div>
        
        <div class="nav-tabs">
            <button class="nav-tab active" data-view="browser">
                <i class="fas fa-globe"></i>
                <span>浏览器</span>
            </button>
            <button class="nav-tab" data-view="terminal">
                <i class="fas fa-terminal"></i>
                <span>终端</span>
            </button>
        </div>
        
        <div class="theme-toggle-container">
            <input type="checkbox" id="theme-toggle" class="theme-toggle-input">
            <label for="theme-toggle" class="theme-toggle-label">
                <div class="theme-toggle-button">
                    <div class="sun"></div>
                    <div class="moon"></div>
                </div>
            </label>
        </div>
    </nav>

    <!-- 主内容区域 -->
    <main class="main-container">
        <!-- 浏览器起始页 -->
        <div class="content-view active" id="browser-view">
            <div class="browser-start-page">
                <div class="startup-container">
                    <header class="startup-header">
                        <h1 class="startup-logo">Teng Yuan</h1>
                        <p class="startup-subtitle">智能终端 · 高效工作 · 极致体验</p>
                        <div class="startup-time" id="current-time"></div>
                    </header>
                    
                    <section class="search-section">
                        <div class="search-container">
                            <i class="fas fa-search search-icon"></i>
                            <form id="search-form" action="https://www.google.com/search" method="get" target="_blank">
                                <input 
                                    type="text" 
                                    name="q" 
                                    class="search-input" 
                                    placeholder="搜索互联网,发现无限可能..."
                                    autofocus
                                >
                                <div class="search-engine" id="search-engine">
                                    <img src="https://www.google.com/favicon.ico" alt="Google">
                                    <span>Google</span>
                                    <i class="fas fa-chevron-down"></i>
                                </div>
                            </form>
                        </div>
                    </section>
                    
                    <section class="quick-links">
                        <h2 class="section-title">常用网站</h2>
                        <div class="links-grid">
                            <!-- 娱乐媒体 -->
                            <div class="link-card">
                                <div class="card-header">
                                    <i class="fas fa-play-circle card-icon"></i>
                                    <h3 class="card-title">娱乐媒体</h3>
                                </div>
                                <div class="card-links">
                                    <a href="https://www.youtube.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.youtube.com/favicon.ico" alt="YouTube">
                                        </div>
                                        <div class="link-name">YouTube</div>
                                    </a>
                                    <a href="https://www.bilibili.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.bilibili.com/favicon.ico" alt="Bilibili">
                                        </div>
                                        <div class="link-name">Bilibili</div>
                                    </a>
                                    <a href="https://music.163.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://music.163.com/favicon.ico" alt="网易云音乐">
                                        </div>
                                        <div class="link-name">网易云音乐</div>
                                    </a>
                                    <a href="https://www.netflix.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.netflix.com/favicon.ico" alt="Netflix">
                                        </div>
                                        <div class="link-name">Netflix</div>
                                    </a>
                                </div>
                            </div>

                            <!-- 开发工具 -->
                            <div class="link-card">
                                <div class="card-header">
                                    <i class="fas fa-code card-icon"></i>
                                    <h3 class="card-title">开发工具</h3>
                                </div>
                                <div class="card-links">
                                    <a href="https://github.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://github.com/favicon.ico" alt="GitHub">
                                        </div>
                                        <div class="link-name">GitHub</div>
                                    </a>
                                    <a href="https://stackoverflow.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://stackoverflow.com/favicon.ico" alt="Stack Overflow">
                                        </div>
                                        <div class="link-name">Stack Overflow</div>
                                    </a>
                                    <a href="https://developer.mozilla.org" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://developer.mozilla.org/favicon.ico" alt="MDN">
                                        </div>
                                        <div class="link-name">MDN</div>
                                    </a>
                                    <a href="https://v0.dev" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://v0.dev/favicon.ico" alt="v0.dev">
                                        </div>
                                        <div class="link-name">v0.dev</div>
                                    </a>
                                </div>
                            </div>

                            <!-- AI工具 -->
                            <div class="link-card">
                                <div class="card-header">
                                    <i class="fas fa-robot card-icon"></i>
                                    <h3 class="card-title">AI工具</h3>
                                </div>
                                <div class="card-links">
                                    <a href="https://chat.openai.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://chat.openai.com/favicon.ico" alt="ChatGPT">
                                        </div>
                                        <div class="link-name">ChatGPT</div>
                                    </a>
                                    <a href="https://claude.ai" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://claude.ai/favicon.ico" alt="Claude">
                                        </div>
                                        <div class="link-name">Claude</div>
                                    </a>
                                    <a href="https://www.midjourney.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.midjourney.com/favicon.ico" alt="Midjourney">
                                        </div>
                                        <div class="link-name">Midjourney</div>
                                    </a>
                                    <a href="https://copilot.microsoft.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://copilot.microsoft.com/favicon.ico" alt="Copilot">
                                        </div>
                                        <div class="link-name">Copilot</div>
                                    </a>
                                </div>
                            </div>

                            <!-- 实用工具 -->
                            <div class="link-card">
                                <div class="card-header">
                                    <i class="fas fa-tools card-icon"></i>
                                    <h3 class="card-title">实用工具</h3>
                                </div>
                                <div class="card-links">
                                    <a href="https://www.google.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.google.com/favicon.ico" alt="Google">
                                        </div>
                                        <div class="link-name">Google</div>
                                    </a>
                                    <a href="https://translate.google.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://translate.google.com/favicon.ico" alt="Google 翻译">
                                        </div>
                                        <div class="link-name">Google 翻译</div>
                                    </a>
                                    <a href="https://www.notion.so" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.notion.so/favicon.ico" alt="Notion">
                                        </div>
                                        <div class="link-name">Notion</div>
                                    </a>
                                    <a href="https://www.figma.com" class="quick-link" target="_blank">
                                        <div class="link-icon">
                                            <img src="https://www.figma.com/favicon.ico" alt="Figma">
                                        </div>
                                        <div class="link-name">Figma</div>
                                    </a>
                                </div>
                            </div>
                        </div>
                    </section>
                </div>
            </div>
        </div>

        <!-- 终端界面 -->
        <div class="content-view" id="terminal-view">
            <div class="terminal-container">
                <div class="terminal-header">
                    <span class="window-btn close"></span>
                    <span class="window-btn minimize"></span>
                    <span class="window-btn maximize"></span>
                    <span class="terminal-title">terminal.js - 藤原的个人终端</span>
                </div>
                <div class="terminal-content" id="terminal-content">
                    <div class="terminal-output">欢迎来到藤原的个人终端!输入 "help" 获取可用命令。</div>
                </div>
                <form class="terminal-input-line" id="terminal-form">
                    <span class="terminal-prompt">></span>
                    <input type="text" class="terminal-input" id="terminal-input" autocomplete="off" autofocus>
                </form>
            </div>
        </div>
    </main>

    <script>
        // ==================== 全局变量 ====================
        let currentTheme = 'dark';
        let currentView = 'browser';
        let commandHistory = [];
        let historyIndex = -1;

        // ==================== 主题管理 ====================
        const themeManager = {
            init() {
                const savedTheme = localStorage.getItem('theme') || 'dark';
                this.setTheme(savedTheme);
                
                // 绑定主题切换事件
                document.getElementById('theme-toggle').addEventListener('change', () => {
                    this.toggleTheme();
                });
            },

            setTheme(theme) {
                currentTheme = theme;
                document.body.className = theme === 'light' ? 'light-mode' : 'dark-mode';
                document.getElementById('theme-toggle').checked = theme === 'light';
                localStorage.setItem('theme', theme);
            },

            toggleTheme() {
                const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
                this.setTheme(newTheme);
            }
        };

        // ==================== 导航管理 ====================
        const navigationManager = {
            init() {
                const navTabs = document.querySelectorAll('.nav-tab');
                navTabs.forEach(tab => {
                    tab.addEventListener('click', () => {
                        const view = tab.dataset.view;
                        this.switchView(view);
                    });
                });
            },

            switchView(view) {
                // 更新导航按钮状态
                document.querySelectorAll('.nav-tab').forEach(tab => {
                    tab.classList.remove('active');
                });
                document.querySelector(`[data-view="${view}"]`).classList.add('active');

                // 切换内容视图
                document.querySelectorAll('.content-view').forEach(contentView => {
                    contentView.classList.remove('active');
                });
                document.getElementById(`${view}-view`).classList.add('active');

                currentView = view;

                // 如果切换到终端,聚焦输入框
                if (view === 'terminal') {
                    setTimeout(() => {
                        document.getElementById('terminal-input').focus();
                    }, 300);
                }
            }
        };

        // ==================== 时间管理 ====================
        const timeManager = {
            init() {
                this.updateTime();
                setInterval(() => this.updateTime(), 1000);
            },

            updateTime() {
                const now = new Date();
                const options = {
                    weekday: 'long',
                    year: 'numeric',
                    month: 'long',
                    day: 'numeric',
                    hour: '2-digit',
                    minute: '2-digit',
                    second: '2-digit',
                    hour12: false
                };
                const timeString = now.toLocaleDateString('zh-CN', options);
                const timeElement = document.getElementById('current-time');
                if (timeElement) {
                    timeElement.textContent = timeString;
                }
            }
        };

        // ==================== 搜索引擎管理 ====================
        const searchManager = {
            engines: {
                google: {
                    name: 'Google',
                    url: 'https://www.google.com/search',
                    param: 'q',
                    icon: 'https://www.google.com/favicon.ico'
                },
                baidu: {
                    name: '百度',
                    url: 'https://www.baidu.com/s',
                    param: 'wd',
                    icon: 'https://www.baidu.com/favicon.ico'
                },
                bing: {
                    name: 'Bing',
                    url: 'https://www.bing.com/search',
                    param: 'q',
                    icon: 'https://www.bing.com/favicon.ico'
                }
            },

            currentEngine: 'google',

            init() {
                this.updateSearchEngine();
                
                // 搜索引擎切换(简化版,可以扩展为下拉菜单)
                document.getElementById('search-engine').addEventListener('click', () => {
                    const engines = Object.keys(this.engines);
                    const currentIndex = engines.indexOf(this.currentEngine);
                    const nextIndex = (currentIndex + 1) % engines.length;
                    this.currentEngine = engines[nextIndex];
                    this.updateSearchEngine();
                });
            },

            updateSearchEngine() {
                const engine = this.engines[this.currentEngine];
                const form = document.getElementById('search-form');
                const input = form.querySelector('input[name]');
                const engineElement = document.getElementById('search-engine');

                form.action = engine.url;
                input.name = engine.param;
                engineElement.querySelector('img').src = engine.icon;
                engineElement.querySelector('span').textContent = engine.name;
            }
        };

        // ==================== 终端管理 ====================
        const terminalManager = {
            init() {
                const form = document.getElementById('terminal-form');
                const input = document.getElementById('terminal-input');

                form.addEventListener('submit', (e) => {
                    e.preventDefault();
                    const command = input.value.trim();
                    if (command) {
                        this.executeCommand(command);
                        input.value = '';
                        historyIndex = -1;
                    }
                });

                // 命令历史导航
                input.addEventListener('keydown', (e) => {
                    if (e.key === 'ArrowUp') {
                        e.preventDefault();
                        if (commandHistory.length > 0 && historyIndex < commandHistory.length - 1) {
                            historyIndex++;
                            input.value = commandHistory[commandHistory.length - 1 - historyIndex];
                        }
                    } else if (e.key === 'ArrowDown') {
                        e.preventDefault();
                        if (historyIndex > -1) {
                            historyIndex--;
                            input.value = historyIndex === -1 ? '' : commandHistory[commandHistory.length - 1 - historyIndex];
                        }
                    }
                });
            },

            executeCommand(command) {
                // 添加到历史记录
                commandHistory.push(command);
                if (commandHistory.length > 50) {
                    commandHistory.shift();
                }

                // 显示命令
                this.addToTerminal(`> ${command}`, 'command');

                // 处理命令
                const output = this.processCommand(command);
                this.addToTerminal(output.message, output.isError ? 'error' : 'output');
            },

            processCommand(command) {
                const cmd = command.toLowerCase().trim();

                if (cmd === 'help') {
                    return {
                        message: `可用命令:

基础命令:
- help: 显示帮助信息
- clear: 清空终端
- history: 显示命令历史记录
- theme: 切换深色/浅色主题

工具命令:
- video [url]: 解析并播放视频
- ai [message]: 与AI助手对话
- base64 [encode/decode] [text]: 进行Base64编码/解码

快捷键:
- 上/下箭头: 浏览命令历史`,
                        isError: false
                    };
                }

                if (cmd === 'clear') {
                    document.getElementById('terminal-content').innerHTML = '';
                    return { message: '', isError: false };
                }

                if (cmd === 'history') {
                    if (commandHistory.length === 0) {
                        return { message: '没有命令历史记录', isError: false };
                    }
                    return {
                        message: commandHistory.map((cmd, i) => `${i + 1}: ${cmd}`).join('\n'),
                        isError: false
                    };
                }

                if (cmd === 'theme') {
                    themeManager.toggleTheme();
                    return { message: `已切换到${currentTheme === 'dark' ? '亮色' : '暗色'}主题`, isError: false };
                }

                if (cmd.startsWith('base64')) {
                    const parts = command.split(' ');
                    const action = parts[1]?.toLowerCase();
                    const text = parts.slice(2).join(' ');

                    if (!action || !text) {
                        return { message: '使用方法: base64 [encode/decode] [text]', isError: true };
                    }

                    if (action === 'encode') {
                        try {
                            const encoded = btoa(encodeURIComponent(text).replace(/%([0-9A-F]{2})/g, (_, p1) => {
                                return String.fromCharCode(parseInt(p1, 16));
                            }));
                            return { message: encoded, isError: false };
                        } catch (e) {
                            return { message: '编码失败: ' + e.message, isError: true };
                        }
                    } else if (action === 'decode') {
                        try {
                            const decoded = decodeURIComponent(Array.from(atob(text), c => {
                                return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
                            }).join(''));
                            return { message: decoded, isError: false };
                        } catch (e) {
                            return { message: '解码失败: ' + e.message, isError: true };
                        }
                    } else {
                        return { message: '无效的操作,请使用 encode 或 decode', isError: true };
                    }
                }

                if (cmd.startsWith('video')) {
                    const url = command.split(' ')[1];
                    if (!url) {
                        return { message: '请提供视频URL', isError: true };
                    }
                    if (!url.startsWith('http')) {
                        return { message: '请提供有效的URL地址', isError: true };
                    }
                    return {
                        message: `正在解析视频: ${url}\n解析链接: https://www.yemu.xyz/?url=${encodeURIComponent(url)}`,
                        isError: false
                    };
                }

                if (cmd.startsWith('ai')) {
                    const message = command.substring(2).trim();
                    if (!message) {
                        return { message: '请输入您想对AI说的话', isError: true };
                    }
                    return { message: 'AI功能正在开发中,敬请期待!', isError: false };
                }

                return { message: `未知命令: ${command}。输入 "help" 获取可用命令。`, isError: true };
            },

            addToTerminal(text, type) {
                const content = document.getElementById('terminal-content');
                const div = document.createElement('div');
                
                if (type === 'command') {
                    div.innerHTML = `<div class="terminal-line"><span class="terminal-prompt">></span><span class="terminal-command">${text.substring(2)}</span></div>`;
                } else {
                    div.className = `terminal-output ${type === 'error' ? 'error' : ''}`;
                    div.textContent = text;
                }
                
                content.appendChild(div);
                content.scrollTop = content.scrollHeight;
            }
        };

        // ==================== 初始化 ====================
        document.addEventListener('DOMContentLoaded', () => {
            themeManager.init();
            navigationManager.init();
            timeManager.init();
            searchManager.init();
            terminalManager.init();

            // 图片加载错误处理
            document.addEventListener('error', (e) => {
                if (e.target.tagName === 'IMG') {
                    e.target.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01aDN2LThoMnY4aDNsLTMgNXoiLz48L3N2Zz4=';
                }
            }, true);

            console.log('TENG YUAN 系统已初始化完成!');
        });
    </script>
</body>
</html>

        
预览
控制台