{"allowContribute":false,"item":{"artifactHtml":"\u003cstyle\u003e\n  :root {\n    --paper:#FFFBF7;\n    --ink:#2B1E1E;\n    --ink-2:#8A7A7A;\n    --ink-3:#B0A0A0;\n    --accent:#E84E4E;\n    --accent-2:#FF7A45;\n    --soft:#FFF0EB;\n    --soft-2:#FFF7F0;\n    --card:#FFFFFF;\n    --hair:#F0DDD6;\n    --hair-2:#F5E6DE;\n    --shadow: 0 8px 32px rgba(43,30,30,0.06), 0 1px 3px rgba(43,30,30,0.08);\n  }\n  :root[data-theme=\"dark\"] {\n    --paper:#1A1412;\n    --ink:#F5EDE8;\n    --ink-2:#C4B4B0;\n    --ink-3:#8E7E7A;\n    --accent:#FF6B6B;\n    --accent-2:#FF8E53;\n    --soft:#2E1E1B;\n    --soft-2:#2A1F1D;\n    --card:#25201E;\n    --hair:#3A2A27;\n    --hair-2:#3E2F2B;\n    --shadow: 0 8px 32px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.5);\n  }\n  .doc {\n    background: var(--paper);\n    color: var(--ink);\n    padding: 0;\n    font: 16px/1.78 -apple-system, BlinkMacSystemFont, \"PingFang TC\", \"Noto Sans TC\", \"Microsoft JhengHei\", sans-serif;\n    letter-spacing: 0.01em;\n  }\n  .inner {\n    max-width: 720px;\n    margin: 0 auto;\n    padding: 32px 28px 48px;\n  }\n  header {\n    padding-bottom: 28px;\n    border-bottom: 1px solid var(--hair);\n    margin-bottom: 28px;\n  }\n  .eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    font: 700 11px ui-monospace, SFMono-Regular, Menlo, monospace;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: var(--accent);\n  }\n  .eyebrow::before {\n    content: \"\";\n    width: 22px;\n    height: 2px;\n    background: var(--accent);\n    border-radius: 2px;\n    opacity: 0.9;\n  }\n  h1 {\n    font-size: 28px;\n    line-height: 1.35;\n    font-weight: 800;\n    letter-spacing: -0.03em;\n    margin: 14px 0 14px;\n    color: var(--ink);\n    text-wrap: balance;\n  }\n  .lede {\n    font-size: 15px;\n    line-height: 1.7;\n    color: var(--ink-2);\n    margin: 0;\n    max-width: 60ch;\n  }\n  .lede strong {\n    color: var(--ink);\n    font-weight: 700;\n  }\n  /* Hero */\n  .hero {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 16px;\n    overflow: hidden;\n    box-shadow: var(--shadow);\n    margin: 0 0 28px;\n  }\n  .hero-top {\n    background: linear-gradient(135deg, #FFF0EB 0%, #FFE8E0 50%, #FFD6CC 100%);\n    padding: 28px 28px 0;\n    position: relative;\n    overflow: hidden;\n  }\n  :root[data-theme=\"dark\"] .hero-top {\n    background: linear-gradient(135deg, #3A1F1B 0%, #4A2520 50%, #5A2A22 100%);\n  }\n  .hero-top::after {\n    content: \"\";\n    position: absolute;\n    right: -30px;\n    top: -30px;\n    width: 180px;\n    height: 180px;\n    background: radial-gradient(circle, rgba(232,78,78,0.12) 0%, transparent 70%);\n    pointer-events: none;\n  }\n  .hero-label {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    background: var(--ink);\n    color: #fff;\n    font: 700 11px ui-monospace, monospace;\n    letter-spacing: 0.08em;\n    padding: 6px 10px;\n    border-radius: 999px;\n  }\n  :root[data-theme=\"dark\"] .hero-label { background: #fff; color: #1A1412; }\n  .hero-label i { width: 6px; height: 6px; background: #4ADE80; border-radius: 50%; display: inline-block; box-shadow: 0 0 8px #4ADE80; }\n  .hero-grid {\n    display: grid;\n    grid-template-columns: 1.15fr 0.85fr;\n    gap: 20px;\n    align-items: end;\n    margin-top: 18px;\n  }\n  .hero-text h2 {\n    font-size: 22px;\n    line-height: 1.3;\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    margin: 0 0 8px;\n    color: #2B1E1E;\n  }\n  :root[data-theme=\"dark\"] .hero-text h2 { color: #fff; }\n  .hero-text p {\n    font-size: 13.5px;\n    line-height: 1.65;\n    color: #7A4A4A;\n    margin: 0 0 18px;\n  }\n  :root[data-theme=\"dark\"] .hero-text p { color: #E8C4BC; }\n  .hero-badges {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n    padding-bottom: 22px;\n  }\n  .badge {\n    font: 600 11px ui-monospace, monospace;\n    letter-spacing: 0.04em;\n    padding: 6px 10px;\n    border-radius: 999px;\n    background: #fff;\n    border: 1px solid rgba(43,30,30,0.08);\n    color: #6B4A4A;\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n  :root[data-theme=\"dark\"] .badge { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); color: #F5EDE8; }\n  .hero-mock {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-bottom: none;\n    border-radius: 12px 12px 0 0;\n    padding: 12px;\n    box-shadow: 0 -8px 24px rgba(43,30,30,0.08);\n  }\n  .mock-bar {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 12px;\n  }\n  .mock-dot { width: 8px; height: 8px; border-radius: 50%; }\n  .mock-list { display: grid; gap: 8px; }\n  .mock-item {\n    display: flex;\n    gap: 10px;\n    align-items: center;\n    background: var(--soft);\n    border: 1px solid var(--hair-2);\n    border-radius: 10px;\n    padding: 10px 11px;\n  }\n  .mock-poster {\n    width: 36px;\n    height: 48px;\n    border-radius: 6px;\n    flex: none;\n    display: grid;\n    place-items: center;\n    font-size: 16px;\n  }\n  .mock-meta { flex: 1; min-width: 0; }\n  .mock-title { font-size: 12.5px; font-weight: 700; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n  .mock-sub { font-size: 11px; color: var(--ink-2); margin-top: 2px; display: flex; gap: 6px; align-items: center; }\n  .mock-progress { width: 56px; height: 4px; background: var(--hair); border-radius: 999px; overflow: hidden; flex: none; }\n  .mock-progress i { display: block; height: 100%; background: var(--accent); border-radius: 999px; }\n  .hero-bottom {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    border-top: 1px solid var(--hair);\n    background: var(--card);\n  }\n  .hero-stat {\n    padding: 14px 18px;\n    text-align: center;\n    border-right: 1px solid var(--hair);\n  }\n  .hero-stat:last-child { border-right: none; }\n  .hero-stat .k { font: 600 10px ui-monospace, monospace; letter-spacing: 0.1em; color: var(--ink-3); text-transform: uppercase; }\n  .hero-stat .v { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; margin-top: 2px; color: var(--ink); }\n  .hero-stat .n { font-size: 11px; color: var(--ink-2); margin-top: 1px; }\n\n  /* Body */\n  h2 {\n    font-size: 18px;\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    margin: 32px 0 12px;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n  h2 .num {\n    width: 26px;\n    height: 26px;\n    border-radius: 8px;\n    background: var(--accent);\n    color: #fff;\n    display: grid;\n    place-items: center;\n    font: 700 12px ui-monospace, monospace;\n    flex: none;\n  }\n  h3 {\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: -0.01em;\n    margin: 18px 0 8px;\n    color: var(--ink);\n  }\n  p {\n    color: var(--ink-2);\n    font-size: 15px;\n    line-height: 1.82;\n    margin: 0 0 14px;\n    max-width: 62ch;\n  }\n  p strong { color: var(--ink); font-weight: 700; }\n  .callout {\n    display: flex;\n    gap: 14px;\n    padding: 16px 16px;\n    background: var(--soft);\n    border: 1px solid var(--hair);\n    border-left: 3px solid var(--accent);\n    border-radius: 10px;\n    margin: 20px 0;\n  }\n  .callout .tag {\n    flex: none;\n    font: 800 11px ui-monospace, monospace;\n    letter-spacing: 0.08em;\n    color: var(--accent);\n    background: var(--card);\n    border: 1px solid var(--hair);\n    padding: 4px 8px;\n    border-radius: 999px;\n    height: fit-content;\n  }\n  .callout div { font-size: 14px; line-height: 1.65; color: var(--ink-2); }\n  .callout div strong { color: var(--ink); }\n\n  .quote {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 14px;\n    padding: 18px 20px;\n    display: flex;\n    gap: 14px;\n    align-items: flex-start;\n    margin: 20px 0;\n    box-shadow: var(--shadow);\n  }\n  .quote-avatar {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: linear-gradient(135deg, #FFB3A7, #FF8A9D);\n    display: grid;\n    place-items: center;\n    font-size: 18px;\n    flex: none;\n  }\n  .quote-body { flex: 1; }\n  .quote-name { font-size: 13px; font-weight: 700; }\n  .quote-role { font-size: 11px; color: var(--ink-3); font-family: ui-monospace, monospace; letter-spacing: 0.04em; }\n  .quote-text { font-size: 14px; line-height: 1.65; color: var(--ink-2); margin-top: 8px; font-style: italic; }\n  .quote-text::before { content: \"“\"; color: var(--accent); font-weight: 800; margin-right: 2px; }\n  .quote-text::after { content: \"”\"; color: var(--accent); font-weight: 800; margin-left: 2px; }\n\n  .features {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 12px;\n    margin: 16px 0 8px;\n  }\n  .feat {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 14px;\n    padding: 16px 16px 14px;\n    box-shadow: var(--shadow);\n  }\n  .feat-icon {\n    width: 36px;\n    height: 36px;\n    border-radius: 10px;\n    display: grid;\n    place-items: center;\n    margin-bottom: 12px;\n  }\n  .feat h4 { font-size: 14px; font-weight: 800; margin: 0 0 6px; letter-spacing: -0.01em; }\n  .feat p { font-size: 13px; line-height: 1.65; margin: 0; color: var(--ink-2); }\n  .feat ul { margin: 8px 0 0; padding-left: 16px; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); }\n  .feat li::marker { color: var(--accent); }\n\n  .steps {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 12px;\n    margin: 14px 0;\n  }\n  .step {\n    background: var(--soft-2);\n    border: 1px solid var(--hair);\n    border-radius: 12px;\n    padding: 16px;\n    position: relative;\n  }\n  .step-no { font: 800 11px ui-monospace, monospace; letter-spacing: 0.1em; color: var(--accent); margin-bottom: 8px; }\n  .step h4 { font-size: 13.5px; font-weight: 700; margin: 0 0 6px; }\n  .step p { font-size: 12.5px; line-height: 1.6; margin: 0; }\n\n  .compare {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 12px;\n    margin: 16px 0;\n  }\n  .compare-card {\n    border-radius: 12px;\n    padding: 16px;\n    border: 1px solid var(--hair);\n  }\n  .compare-card.bad { background: #FFF5F5; border-color: #FFD6D6; }\n  :root[data-theme=\"dark\"] .compare-card.bad { background: #2E1A1A; border-color: #5A2A2A; }\n  .compare-card.good { background: #F0FDF4; border-color: #BBF7D0; }\n  :root[data-theme=\"dark\"] .compare-card.good { background: #1A2E1E; border-color: #2A5A32; }\n  .compare-label { font: 700 11px ui-monospace, monospace; letter-spacing: 0.08em; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }\n  .compare-card.bad .compare-label { color: #E5484D; }\n  .compare-card.good .compare-label { color: #30A46C; }\n  .compare-card ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.7; color: var(--ink-2); }\n  .compare-card.good ul { color: #2B4A32; }\n  :root[data-theme=\"dark\"] .compare-card.good ul { color: #B8D8C0; }\n  :root[data-theme=\"dark\"] .compare-card.bad ul { color: #E8B4B4; }\n\n  .changelog {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 14px;\n    overflow: hidden;\n    margin: 18px 0;\n    box-shadow: var(--shadow);\n  }\n  .changelog-head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 14px 18px;\n    border-bottom: 1px solid var(--hair);\n    background: var(--soft-2);\n  }\n  .changelog-head b { font-size: 13px; font-weight: 800; display: flex; align-items: center; gap: 8px; }\n  .changelog-head span { font: 600 11px ui-monospace, monospace; color: var(--ink-3); background: var(--card); border: 1px solid var(--hair); padding: 4px 8px; border-radius: 999px; }\n  .changelog-body { padding: 16px 18px; }\n  .changelog-body ul { margin: 0; padding-left: 18px; font-size: 13.5px; line-height: 1.75; color: var(--ink-2); }\n  .changelog-body li::marker { color: var(--accent); }\n\n  .footer {\n    margin-top: 32px;\n    padding-top: 20px;\n    border-top: 1px solid var(--hair);\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 16px;\n    flex-wrap: wrap;\n  }\n  .footer-left { font: 600 11px ui-monospace, monospace; letter-spacing: 0.06em; color: var(--ink-3); }\n  .footer-right {\n    display: flex;\n    gap: 8px;\n  }\n  .pill {\n    font: 700 11px ui-monospace, monospace;\n    letter-spacing: 0.04em;\n    padding: 7px 12px;\n    border-radius: 999px;\n    border: 1px solid var(--hair);\n    background: var(--card);\n    color: var(--ink-2);\n  }\n  .pill.primary { background: var(--ink); color: #fff; border-color: var(--ink); }\n  :root[data-theme=\"dark\"] .pill.primary { background: #fff; color: #1A1412; border-color: #fff; }\n\n  @media (max-width: 640px) {\n    .inner { padding: 22px 18px 36px; }\n    h1 { font-size: 22px; }\n    .hero-grid { grid-template-columns: 1fr; }\n    .hero-mock { border-radius: 12px; border-bottom: 1px solid var(--hair); }\n    .features { grid-template-columns: 1fr; }\n    .steps { grid-template-columns: 1fr; }\n    .compare { grid-template-columns: 1fr; }\n    .hero-bottom { grid-template-columns: 1fr 1fr 1fr; }\n    .hero-stat { padding: 12px 8px; }\n    .hero-stat .v { font-size: 16px; }\n  }\n\u003c/style\u003e\n\u003cdiv class=\"doc\"\u003e\n  \u003cdiv class=\"inner\"\u003e\n    \u003cheader\u003e\n      \u003cdiv class=\"eyebrow\"\u003eCubeLV Plugin · 為愛發電系列\u003c/div\u003e\n      \u003ch1\u003e因為女友是個超級追劇迷，為了讓她的追劇時光更順暢，沒有意外的……我又手癢寫了一個「追劇專用」的CubeLV插件啦！😂\u003c/h1\u003e\n      \u003cp class=\"lede\"\u003e從「看到哪一集忘記了」到「自動幫你記好、排好、提醒好」—— 一個工程師男友的\u003cstrong\u003e求生欲 + 寵溺\u003c/strong\u003e混合開發日誌。追劇不中斷，感情不卡頓。\u003c/p\u003e\n    \u003c/header\u003e\n\n    \u003cdiv class=\"hero\"\u003e\n      \u003cdiv class=\"hero-top\"\u003e\n        \u003cdiv class=\"hero-label\"\u003e\u003ci\u003e\u003c/i\u003e DRAMA CUBE · v1.2.0 已上線\u003c/div\u003e\n        \u003cdiv class=\"hero-grid\"\u003e\n          \u003cdiv class=\"hero-text\"\u003e\n            \u003ch2\u003e追劇，不該用\u003cbr\u003e腦容量來記。\u003c/h2\u003e\n            \u003cp\u003e把「那部看到第幾集？」「哪個平台？」「什麼時候更新？」全部交給 Cube 幫你管好。\u003c/p\u003e\n            \u003cdiv class=\"hero-badges\"\u003e\n              \u003cspan class=\"badge\"\u003e🍿 自動追蹤進度\u003c/span\u003e\n              \u003cspan class=\"badge\"\u003e⏰ 更新提醒\u003c/span\u003e\n              \u003cspan class=\"badge\"\u003e📺 跨平台整合\u003c/span\u003e\n            \u003c/div\u003e\n          \u003c/div\u003e\n          \u003cdiv class=\"hero-mock\"\u003e\n            \u003cdiv class=\"mock-bar\"\u003e\n              \u003cspan class=\"mock-dot\" style=\"background:#FF5F56\"\u003e\u003c/span\u003e\n              \u003cspan class=\"mock-dot\" style=\"background:#FFBD2E\"\u003e\u003c/span\u003e\n              \u003cspan class=\"mock-dot\" style=\"background:#27C93F\"\u003e\u003c/span\u003e\n              \u003cspan style=\"margin-left:auto; font:600 10px ui-monospace,monospace; color:var(--ink-3); letter-spacing:0.06em;\"\u003eMY DRAMA LIST\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"mock-list\"\u003e\n              \u003cdiv class=\"mock-item\"\u003e\n                \u003cdiv class=\"mock-poster\" style=\"background:linear-gradient(135deg,#FFD6E0,#FF8FA3);\"\u003e🌙\u003c/div\u003e\n                \u003cdiv class=\"mock-meta\"\u003e\n                  \u003cdiv class=\"mock-title\"\u003e淚之女王\u003c/div\u003e\n                  \u003cdiv class=\"mock-sub\"\u003etvN · 每週六日 \u003cspan style=\"background:var(--accent); color:#fff; padding:1px 6px; border-radius:999px; font-size:10px; font-weight:700;\"\u003e更新至 12/16\u003c/span\u003e\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"mock-progress\"\u003e\u003ci style=\"width:75%\"\u003e\u003c/i\u003e\u003c/div\u003e\n              \u003c/div\u003e\n              \u003cdiv class=\"mock-item\"\u003e\n                \u003cdiv class=\"mock-poster\" style=\"background:linear-gradient(135deg,#C3E8FF,#8EC5FF);\"\u003e🏙️\u003c/div\u003e\n                \u003cdiv class=\"mock-meta\"\u003e\n                  \u003cdiv class=\"mock-title\"\u003e背著善宰跑\u003c/div\u003e\n                  \u003cdiv class=\"mock-sub\"\u003eNetflix · 已完結\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"mock-progress\"\u003e\u003ci style=\"width:100%\"\u003e\u003c/i\u003e\u003c/div\u003e\n              \u003c/div\u003e\n              \u003cdiv class=\"mock-item\" style=\"opacity:0.9;\"\u003e\n                \u003cdiv class=\"mock-poster\" style=\"background:linear-gradient(135deg,#FFE8A3,#FFB86A);\"\u003e⚖️\u003c/div\u003e\n                \u003cdiv class=\"mock-meta\"\u003e\n                  \u003cdiv class=\"mock-title\"\u003e苦盡柑來遇見你\u003c/div\u003e\n                  \u003cdiv class=\"mock-sub\"\u003eDisney+ · 待追 · 3/7 上線\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"mock-progress\"\u003e\u003ci style=\"width:12%; background:var(--ink-3)\"\u003e\u003c/i\u003e\u003c/div\u003e\n              \u003c/div\u003e\n            \u003c/div\u003e\n          \u003c/div\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"hero-bottom\"\u003e\n        \u003cdiv class=\"hero-stat\"\u003e\n          \u003cdiv class=\"k\"\u003e支援平台\u003c/div\u003e\n          \u003cdiv class=\"v\"\u003e8+\u003c/div\u003e\n          \u003cdiv class=\"n\"\u003eNetflix / Disney+ 等\u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"hero-stat\"\u003e\n          \u003cdiv class=\"k\"\u003e追蹤模式\u003c/div\u003e\n          \u003cdiv class=\"v\"\u003e3 種\u003c/div\u003e\n          \u003cdiv class=\"n\"\u003e週更 / 全集 / 自訂\u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"hero-stat\"\u003e\n          \u003cdiv class=\"k\"\u003e女友滿意度\u003c/div\u003e\n          \u003cdiv class=\"v\" style=\"color:var(--accent)\"\u003e★★★★★\u003c/div\u003e\n          \u003cdiv class=\"n\"\u003e求生欲拉滿\u003c/div\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"quote\"\u003e\n      \u003cdiv class=\"quote-avatar\"\u003e👩🏻\u003c/div\u003e\n      \u003cdiv class=\"quote-body\"\u003e\n        \u003cdiv class=\"quote-name\"\u003e女友大人 \u003cspan style=\"font-weight:400; color:var(--ink-3);\"\u003e· 首席體驗官\u003c/span\u003e\u003c/div\u003e\n        \u003cdiv class=\"quote-role\"\u003eUSER FEEDBACK #001\u003c/div\u003e\n        \u003cdiv class=\"quote-text\"\u003e我只是抱怨了一句「又忘記看到第幾集了」，隔天他就生出一個插件給我。現在我追劇比他寫 code 還順。\u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e01\u003c/span\u003e 為什麼又手癢了？\u003c/h2\u003e\n    \u003cp\u003e身為 CubeLV 重度使用者，我早就把工作、筆記、待辦都丟進 Cube 了。但女友的痛點很真實：\u003cstrong\u003e追劇資訊散落在各個 App、備忘錄、甚至聊天記錄裡\u003c/strong\u003e。\u003c/p\u003e\n    \u003cp\u003e她會同時追 4、5 部劇，每部更新時間、平台、看到哪一集都不一樣。每次打開電視都要先靈魂拷問：「我上次看到哪？」\u003c/p\u003e\n\n    \u003cdiv class=\"compare\"\u003e\n      \u003cdiv class=\"compare-card bad\"\u003e\n        \u003cdiv class=\"compare-label\"\u003e\n          \u003csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"/\u003e\u003cline x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"/\u003e\u003cline x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"/\u003e\u003c/svg\u003e\n          改造前 · 腦內記憶法\n        \u003c/div\u003e\n        \u003cul\u003e\n          \u003cli\u003e備忘錄寫「淚之女王看到12集」\u003c/li\u003e\n          \u003cli\u003e截圖存在相簿海裡找不到\u003c/li\u003e\n          \u003cli\u003e週更時間靠粉絲團通知\u003c/li\u003e\n          \u003cli\u003e男友被問「我看到哪了？」答不出來就完蛋\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"compare-card good\"\u003e\n        \u003cdiv class=\"compare-label\"\u003e\n          \u003csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"/\u003e\u003cpolyline points=\"22 4 12 14.01 9 11.01\"/\u003e\u003c/svg\u003e\n          改造後 · Drama Cube\n        \u003c/div\u003e\n        \u003cul\u003e\n          \u003cli\u003e一鍵新增劇集，自動抓海報與資訊\u003c/li\u003e\n          \u003cli\u003e進度條直觀顯示看到哪\u003c/li\u003e\n          \u003cli\u003e更新日自動提醒，不再錯過\u003c/li\u003e\n          \u003cli\u003e男友存活率 +100%\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"callout\"\u003e\n      \u003cspan class=\"tag\"\u003e開發動機\u003c/span\u003e\n      \u003cdiv\u003e\u003cstrong\u003e與其讓她記，不如讓 Cube 幫她記。\u003c/strong\u003e\u003cbr\u003e把追劇變成一種療癒的儀式，而不是記憶力大考驗。這就是這個插件的初心。\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e02\u003c/span\u003e 這個插件能做什麼？\u003c/h2\u003e\n    \u003cp\u003e不是單純的清單，而是為「追劇」這個行為量身打造的\u003cstrong\u003e小宇宙\u003c/strong\u003e。我把女友的追劇流程拆解後，做了這四個核心功能：\u003c/p\u003e\n\n    \u003cdiv class=\"features\"\u003e\n      \u003cdiv class=\"feat\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#FFF0EB; border:1px solid #FFD6CC;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#E84E4E\" stroke-width=\"1.8\"\u003e\u003crect x=\"2\" y=\"7\" width=\"20\" height=\"15\" rx=\"2\"/\u003e\u003cpolyline points=\"17 2 12 7 7 2\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003ch4\u003e進度秒記\u003c/h4\u003e\n        \u003cp\u003e看完一集點一下，自動記錄。支援集數、季數、甚至「看到 23分14秒」。\u003c/p\u003e\n        \u003cul\u003e\n          \u003cli\u003e一鍵 +1 集\u003c/li\u003e\n          \u003cli\u003e拖曳進度條微調\u003c/li\u003e\n          \u003cli\u003e自動計算剩餘集數\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"feat\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#F0F7FF; border:1px solid #C3E0FF;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3B82F6\" stroke-width=\"1.8\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"/\u003e\u003cpolyline points=\"12 6 12 12 16 14\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003ch4\u003e更新不漏接\u003c/h4\u003e\n        \u003cp\u003e設定週更日，Cube 會在更新當天溫柔提醒你。追 ON 檔不再靠運氣。\u003c/p\u003e\n        \u003cul\u003e\n          \u003cli\u003e自訂週更 / 一次上線\u003c/li\u003e\n          \u003cli\u003e首頁倒數「還有 2 天更新」\u003c/li\u003e\n          \u003cli\u003e可串接行事曆\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"feat\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#F0FDF4; border:1px solid #BBF7D0;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#16A34A\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"/\u003e\u003cpath d=\"M9 12l2 2 4-4\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003ch4\u003e平台整合\u003c/h4\u003e\n        \u003cp\u003eNetflix、Disney+、愛奇藝、KKTV… 在哪看，一目了然。點海報直接跳轉。\u003c/p\u003e\n        \u003cul\u003e\n          \u003cli\u003e8+ 平台標籤\u003c/li\u003e\n          \u003cli\u003e自訂播放連結\u003c/li\u003e\n          \u003cli\u003e依平台篩選與統計\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"features\" style=\"grid-template-columns: 1fr 1fr; margin-top: 12px;\"\u003e\n      \u003cdiv class=\"feat\" style=\"display:flex; gap:14px; align-items:flex-start;\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#FFF7E6; border:1px solid #FFE0A3; flex:none; margin-bottom:0;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#D97706\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/\u003e\u003cpath d=\"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003cdiv\u003e\n          \u003ch4\u003e觀後小記 \u0026 評分\u003c/h4\u003e\n          \u003cp\u003e每集都能寫一句心得、打個星。累積成你的私人追劇日記，之後回顧超有感。\u003c/p\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"feat\" style=\"display:flex; gap:14px; align-items:flex-start;\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#FDF2FF; border:1px solid #E9C6FF; flex:none; margin-bottom:0;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#A855F7\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/\u003e\u003cpath d=\"M3 9h18M9 21V9\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003cdiv\u003e\n          \u003ch4\u003e追劇儀表板\u003c/h4\u003e\n          \u003cp\u003e本月看了幾小時？最愛哪類型？用圖表看見你的追劇足跡，成就感滿滿。\u003c/p\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e03\u003c/span\u003e 實際用起來長怎樣？\u003c/h2\u003e\n    \u003cp\u003e我刻意把操作壓到\u003cstrong\u003e最懶人\u003c/strong\u003e。女友的標準是：「不能超過 3 秒」。所以流程是這樣：\u003c/p\u003e\n\n    \u003cdiv class=\"steps\"\u003e\n      \u003cdiv class=\"step\"\u003e\n        \u003cdiv class=\"step-no\"\u003eSTEP 01\u003c/div\u003e\n        \u003ch4\u003e🔍 新增劇集\u003c/h4\u003e\n        \u003cp\u003e輸入劇名自動帶入海報、年份、集數。或手動新增，連冷門陸劇也 OK。\u003c/p\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"step\"\u003e\n        \u003cdiv class=\"step-no\"\u003eSTEP 02\u003c/div\u003e\n        \u003ch4\u003e👆 點一下記錄\u003c/h4\u003e\n        \u003cp\u003e看完按「+1 集」，進度條自動前進。長按可補記、重看、標記棄追。\u003c/p\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"step\"\u003e\n        \u003cdiv class=\"step-no\"\u003eSTEP 03\u003c/div\u003e\n        \u003ch4\u003e✨ 坐等提醒\u003c/h4\u003e\n        \u003cp\u003e首頁自動排序「今晚可看」與「等待更新」，打開 Cube 就知道今晚追哪部。\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"changelog\"\u003e\n      \u003cdiv class=\"changelog-head\"\u003e\n        \u003cb\u003e\n          \u003csvg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--accent)\" stroke-width=\"2\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/\u003e\u003cpolyline points=\"14 2 14 8 20 8\"/\u003e\u003cline x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/\u003e\u003cline x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/\u003e\u003c/svg\u003e\n          更新日誌 · v1.2.0\n        \u003c/b\u003e\n        \u003cspan\u003e2026.05 更新\u003c/span\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"changelog-body\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003e新增：\u003c/strong\u003e海報牆視圖 — 用海報瀑布流瀏覽片單，選擇困難也能賞心悅目\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003e新增：\u003c/strong\u003e「今晚看什麼」智慧推薦 — 根據剩餘集數與更新時間自動排序\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003e優化：\u003c/strong\u003e支援深色模式，半夜追劇不刺眼\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003e修復：\u003c/strong\u003e部分劇集集數顯示異常問題\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e04\u003c/span\u003e 給同樣有追劇伴侶的你\u003c/h2\u003e\n    \u003cp\u003e寫這個插件的過程，與其說是寫程式，不如說是\u003cstrong\u003e把「我在乎你喜歡的事」具象化\u003c/strong\u003e。她追劇時眼睛發亮的樣子，值得一個更順暢的體驗。\u003c/p\u003e\n    \u003cp\u003e如果你家也有位追劇迷，或你自己就是那位追劇迷，這個插件應該能讓你們的 Cube 多一個溫暖的角落。\u003c/p\u003e\n\n    \u003cdiv class=\"callout\"\u003e\n      \u003cspan class=\"tag\"\u003e小彩蛋\u003c/span\u003e\n      \u003cdiv\u003e插件裡藏了一個「\u003cstrong\u003e一起看\u003c/strong\u003e」標籤，標記和女友一起追的劇。點開會顯示我們一起花了多少小時追劇 — 目前累計 \u003cstrong\u003e127 小時\u003c/strong\u003e，還在持續增加中 🥰\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cp style=\"font-size:13.5px; color:var(--ink-3); margin-top:20px;\"\u003eP.S. 女友已驗收通過，並下令下一版要加上「演員收藏」功能。看來我的 side project 清單又要變長了……但甘之如飴啦 😆\u003c/p\u003e\n\n    \u003cdiv class=\"footer\"\u003e\n      \u003cdiv class=\"footer-left\"\u003eCubeLV Plugin · Drama Cube · Made with ❤️ for my favorite drama queen\u003c/div\u003e\n      \u003cdiv class=\"footer-right\"\u003e\n        \u003cspan class=\"pill\"\u003e# CubeLV\u003c/span\u003e\n        \u003cspan class=\"pill\"\u003e # 追劇插件\u003c/span\u003e\n        \u003cspan class=\"pill primary\"\u003e去安裝 →\u003c/span\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e","content":"因為女友是個超級追劇迷，為了讓她的追劇時光更順暢，沒有意外的……我又手癢寫了一個「追劇專用」的CubeLV插件啦！😂","createdAt":1788413364014,"embedRenders":{},"id":"6a990574af2c420ed343186e","imgURLs":[],"isPublic":true,"itemType":"POST","name":"因為女友是個超級追劇迷，為了讓她的追劇時光更順暢，沒有意外的……我又手癢寫了一個「追劇專用」的CubeLV插件啦！😂","parents":{"community":1788413364014},"publishedAt":1788413364014,"updatedAt":1788413364014,"updatedBy":{"userId":"6a99051802136a59cd4061","userName":"Hoya Lai"},"version":1},"ownerName":"Hoya Lai","subtree":[{"artifactHtml":"\u003cstyle\u003e\n  :root {\n    --paper:#FFFBF7;\n    --ink:#2B1E1E;\n    --ink-2:#8A7A7A;\n    --ink-3:#B0A0A0;\n    --accent:#E84E4E;\n    --accent-2:#FF7A45;\n    --soft:#FFF0EB;\n    --soft-2:#FFF7F0;\n    --card:#FFFFFF;\n    --hair:#F0DDD6;\n    --hair-2:#F5E6DE;\n    --shadow: 0 8px 32px rgba(43,30,30,0.06), 0 1px 3px rgba(43,30,30,0.08);\n  }\n  :root[data-theme=\"dark\"] {\n    --paper:#1A1412;\n    --ink:#F5EDE8;\n    --ink-2:#C4B4B0;\n    --ink-3:#8E7E7A;\n    --accent:#FF6B6B;\n    --accent-2:#FF8E53;\n    --soft:#2E1E1B;\n    --soft-2:#2A1F1D;\n    --card:#25201E;\n    --hair:#3A2A27;\n    --hair-2:#3E2F2B;\n    --shadow: 0 8px 32px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.5);\n  }\n  .doc {\n    background: var(--paper);\n    color: var(--ink);\n    padding: 0;\n    font: 16px/1.78 -apple-system, BlinkMacSystemFont, \"PingFang TC\", \"Noto Sans TC\", \"Microsoft JhengHei\", sans-serif;\n    letter-spacing: 0.01em;\n  }\n  .inner {\n    max-width: 720px;\n    margin: 0 auto;\n    padding: 32px 28px 48px;\n  }\n  header {\n    padding-bottom: 28px;\n    border-bottom: 1px solid var(--hair);\n    margin-bottom: 28px;\n  }\n  .eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    font: 700 11px ui-monospace, SFMono-Regular, Menlo, monospace;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: var(--accent);\n  }\n  .eyebrow::before {\n    content: \"\";\n    width: 22px;\n    height: 2px;\n    background: var(--accent);\n    border-radius: 2px;\n    opacity: 0.9;\n  }\n  h1 {\n    font-size: 28px;\n    line-height: 1.35;\n    font-weight: 800;\n    letter-spacing: -0.03em;\n    margin: 14px 0 14px;\n    color: var(--ink);\n    text-wrap: balance;\n  }\n  .lede {\n    font-size: 15px;\n    line-height: 1.7;\n    color: var(--ink-2);\n    margin: 0;\n    max-width: 60ch;\n  }\n  .lede strong {\n    color: var(--ink);\n    font-weight: 700;\n  }\n  /* Hero */\n  .hero {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 16px;\n    overflow: hidden;\n    box-shadow: var(--shadow);\n    margin: 0 0 28px;\n  }\n  .hero-top {\n    background: linear-gradient(135deg, #FFF0EB 0%, #FFE8E0 50%, #FFD6CC 100%);\n    padding: 28px 28px 0;\n    position: relative;\n    overflow: hidden;\n  }\n  :root[data-theme=\"dark\"] .hero-top {\n    background: linear-gradient(135deg, #3A1F1B 0%, #4A2520 50%, #5A2A22 100%);\n  }\n  .hero-top::after {\n    content: \"\";\n    position: absolute;\n    right: -30px;\n    top: -30px;\n    width: 180px;\n    height: 180px;\n    background: radial-gradient(circle, rgba(232,78,78,0.12) 0%, transparent 70%);\n    pointer-events: none;\n  }\n  .hero-label {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    background: var(--ink);\n    color: #fff;\n    font: 700 11px ui-monospace, monospace;\n    letter-spacing: 0.08em;\n    padding: 6px 10px;\n    border-radius: 999px;\n  }\n  :root[data-theme=\"dark\"] .hero-label { background: #fff; color: #1A1412; }\n  .hero-label i { width: 6px; height: 6px; background: #4ADE80; border-radius: 50%; display: inline-block; box-shadow: 0 0 8px #4ADE80; }\n  .hero-grid {\n    display: grid;\n    grid-template-columns: 1.15fr 0.85fr;\n    gap: 20px;\n    align-items: end;\n    margin-top: 18px;\n  }\n  .hero-text h2 {\n    font-size: 22px;\n    line-height: 1.3;\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    margin: 0 0 8px;\n    color: #2B1E1E;\n  }\n  :root[data-theme=\"dark\"] .hero-text h2 { color: #fff; }\n  .hero-text p {\n    font-size: 13.5px;\n    line-height: 1.65;\n    color: #7A4A4A;\n    margin: 0 0 18px;\n  }\n  :root[data-theme=\"dark\"] .hero-text p { color: #E8C4BC; }\n  .hero-badges {\n    display: flex;\n    gap: 8px;\n    flex-wrap: wrap;\n    padding-bottom: 22px;\n  }\n  .badge {\n    font: 600 11px ui-monospace, monospace;\n    letter-spacing: 0.04em;\n    padding: 6px 10px;\n    border-radius: 999px;\n    background: #fff;\n    border: 1px solid rgba(43,30,30,0.08);\n    color: #6B4A4A;\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n  :root[data-theme=\"dark\"] .badge { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); color: #F5EDE8; }\n  .hero-mock {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-bottom: none;\n    border-radius: 12px 12px 0 0;\n    padding: 12px;\n    box-shadow: 0 -8px 24px rgba(43,30,30,0.08);\n  }\n  .mock-bar {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 12px;\n  }\n  .mock-dot { width: 8px; height: 8px; border-radius: 50%; }\n  .mock-list { display: grid; gap: 8px; }\n  .mock-item {\n    display: flex;\n    gap: 10px;\n    align-items: center;\n    background: var(--soft);\n    border: 1px solid var(--hair-2);\n    border-radius: 10px;\n    padding: 10px 11px;\n  }\n  .mock-poster {\n    width: 36px;\n    height: 48px;\n    border-radius: 6px;\n    flex: none;\n    display: grid;\n    place-items: center;\n    font-size: 16px;\n  }\n  .mock-meta { flex: 1; min-width: 0; }\n  .mock-title { font-size: 12.5px; font-weight: 700; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n  .mock-sub { font-size: 11px; color: var(--ink-2); margin-top: 2px; display: flex; gap: 6px; align-items: center; }\n  .mock-progress { width: 56px; height: 4px; background: var(--hair); border-radius: 999px; overflow: hidden; flex: none; }\n  .mock-progress i { display: block; height: 100%; background: var(--accent); border-radius: 999px; }\n  .hero-bottom {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    border-top: 1px solid var(--hair);\n    background: var(--card);\n  }\n  .hero-stat {\n    padding: 14px 18px;\n    text-align: center;\n    border-right: 1px solid var(--hair);\n  }\n  .hero-stat:last-child { border-right: none; }\n  .hero-stat .k { font: 600 10px ui-monospace, monospace; letter-spacing: 0.1em; color: var(--ink-3); text-transform: uppercase; }\n  .hero-stat .v { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; margin-top: 2px; color: var(--ink); }\n  .hero-stat .n { font-size: 11px; color: var(--ink-2); margin-top: 1px; }\n\n  /* Body */\n  h2 {\n    font-size: 18px;\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    margin: 32px 0 12px;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n  h2 .num {\n    width: 26px;\n    height: 26px;\n    border-radius: 8px;\n    background: var(--accent);\n    color: #fff;\n    display: grid;\n    place-items: center;\n    font: 700 12px ui-monospace, monospace;\n    flex: none;\n  }\n  h3 {\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: -0.01em;\n    margin: 18px 0 8px;\n    color: var(--ink);\n  }\n  p {\n    color: var(--ink-2);\n    font-size: 15px;\n    line-height: 1.82;\n    margin: 0 0 14px;\n    max-width: 62ch;\n  }\n  p strong { color: var(--ink); font-weight: 700; }\n  .callout {\n    display: flex;\n    gap: 14px;\n    padding: 16px 16px;\n    background: var(--soft);\n    border: 1px solid var(--hair);\n    border-left: 3px solid var(--accent);\n    border-radius: 10px;\n    margin: 20px 0;\n  }\n  .callout .tag {\n    flex: none;\n    font: 800 11px ui-monospace, monospace;\n    letter-spacing: 0.08em;\n    color: var(--accent);\n    background: var(--card);\n    border: 1px solid var(--hair);\n    padding: 4px 8px;\n    border-radius: 999px;\n    height: fit-content;\n  }\n  .callout div { font-size: 14px; line-height: 1.65; color: var(--ink-2); }\n  .callout div strong { color: var(--ink); }\n\n  .quote {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 14px;\n    padding: 18px 20px;\n    display: flex;\n    gap: 14px;\n    align-items: flex-start;\n    margin: 20px 0;\n    box-shadow: var(--shadow);\n  }\n  .quote-avatar {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: linear-gradient(135deg, #FFB3A7, #FF8A9D);\n    display: grid;\n    place-items: center;\n    font-size: 18px;\n    flex: none;\n  }\n  .quote-body { flex: 1; }\n  .quote-name { font-size: 13px; font-weight: 700; }\n  .quote-role { font-size: 11px; color: var(--ink-3); font-family: ui-monospace, monospace; letter-spacing: 0.04em; }\n  .quote-text { font-size: 14px; line-height: 1.65; color: var(--ink-2); margin-top: 8px; font-style: italic; }\n  .quote-text::before { content: \"“\"; color: var(--accent); font-weight: 800; margin-right: 2px; }\n  .quote-text::after { content: \"”\"; color: var(--accent); font-weight: 800; margin-left: 2px; }\n\n  .features {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 12px;\n    margin: 16px 0 8px;\n  }\n  .feat {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 14px;\n    padding: 16px 16px 14px;\n    box-shadow: var(--shadow);\n  }\n  .feat-icon {\n    width: 36px;\n    height: 36px;\n    border-radius: 10px;\n    display: grid;\n    place-items: center;\n    margin-bottom: 12px;\n  }\n  .feat h4 { font-size: 14px; font-weight: 800; margin: 0 0 6px; letter-spacing: -0.01em; }\n  .feat p { font-size: 13px; line-height: 1.65; margin: 0; color: var(--ink-2); }\n  .feat ul { margin: 8px 0 0; padding-left: 16px; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); }\n  .feat li::marker { color: var(--accent); }\n\n  .steps {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 12px;\n    margin: 14px 0;\n  }\n  .step {\n    background: var(--soft-2);\n    border: 1px solid var(--hair);\n    border-radius: 12px;\n    padding: 16px;\n    position: relative;\n  }\n  .step-no { font: 800 11px ui-monospace, monospace; letter-spacing: 0.1em; color: var(--accent); margin-bottom: 8px; }\n  .step h4 { font-size: 13.5px; font-weight: 700; margin: 0 0 6px; }\n  .step p { font-size: 12.5px; line-height: 1.6; margin: 0; }\n\n  .compare {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 12px;\n    margin: 16px 0;\n  }\n  .compare-card {\n    border-radius: 12px;\n    padding: 16px;\n    border: 1px solid var(--hair);\n  }\n  .compare-card.bad { background: #FFF5F5; border-color: #FFD6D6; }\n  :root[data-theme=\"dark\"] .compare-card.bad { background: #2E1A1A; border-color: #5A2A2A; }\n  .compare-card.good { background: #F0FDF4; border-color: #BBF7D0; }\n  :root[data-theme=\"dark\"] .compare-card.good { background: #1A2E1E; border-color: #2A5A32; }\n  .compare-label { font: 700 11px ui-monospace, monospace; letter-spacing: 0.08em; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }\n  .compare-card.bad .compare-label { color: #E5484D; }\n  .compare-card.good .compare-label { color: #30A46C; }\n  .compare-card ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.7; color: var(--ink-2); }\n  .compare-card.good ul { color: #2B4A32; }\n  :root[data-theme=\"dark\"] .compare-card.good ul { color: #B8D8C0; }\n  :root[data-theme=\"dark\"] .compare-card.bad ul { color: #E8B4B4; }\n\n  .changelog {\n    background: var(--card);\n    border: 1px solid var(--hair);\n    border-radius: 14px;\n    overflow: hidden;\n    margin: 18px 0;\n    box-shadow: var(--shadow);\n  }\n  .changelog-head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 14px 18px;\n    border-bottom: 1px solid var(--hair);\n    background: var(--soft-2);\n  }\n  .changelog-head b { font-size: 13px; font-weight: 800; display: flex; align-items: center; gap: 8px; }\n  .changelog-head span { font: 600 11px ui-monospace, monospace; color: var(--ink-3); background: var(--card); border: 1px solid var(--hair); padding: 4px 8px; border-radius: 999px; }\n  .changelog-body { padding: 16px 18px; }\n  .changelog-body ul { margin: 0; padding-left: 18px; font-size: 13.5px; line-height: 1.75; color: var(--ink-2); }\n  .changelog-body li::marker { color: var(--accent); }\n\n  .footer {\n    margin-top: 32px;\n    padding-top: 20px;\n    border-top: 1px solid var(--hair);\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 16px;\n    flex-wrap: wrap;\n  }\n  .footer-left { font: 600 11px ui-monospace, monospace; letter-spacing: 0.06em; color: var(--ink-3); }\n  .footer-right {\n    display: flex;\n    gap: 8px;\n  }\n  .pill {\n    font: 700 11px ui-monospace, monospace;\n    letter-spacing: 0.04em;\n    padding: 7px 12px;\n    border-radius: 999px;\n    border: 1px solid var(--hair);\n    background: var(--card);\n    color: var(--ink-2);\n  }\n  .pill.primary { background: var(--ink); color: #fff; border-color: var(--ink); }\n  :root[data-theme=\"dark\"] .pill.primary { background: #fff; color: #1A1412; border-color: #fff; }\n\n  @media (max-width: 640px) {\n    .inner { padding: 22px 18px 36px; }\n    h1 { font-size: 22px; }\n    .hero-grid { grid-template-columns: 1fr; }\n    .hero-mock { border-radius: 12px; border-bottom: 1px solid var(--hair); }\n    .features { grid-template-columns: 1fr; }\n    .steps { grid-template-columns: 1fr; }\n    .compare { grid-template-columns: 1fr; }\n    .hero-bottom { grid-template-columns: 1fr 1fr 1fr; }\n    .hero-stat { padding: 12px 8px; }\n    .hero-stat .v { font-size: 16px; }\n  }\n\u003c/style\u003e\n\u003cdiv class=\"doc\"\u003e\n  \u003cdiv class=\"inner\"\u003e\n    \u003cheader\u003e\n      \u003cdiv class=\"eyebrow\"\u003eCubeLV Plugin · 為愛發電系列\u003c/div\u003e\n      \u003ch1\u003e因為女友是個超級追劇迷，為了讓她的追劇時光更順暢，沒有意外的……我又手癢寫了一個「追劇專用」的CubeLV插件啦！😂\u003c/h1\u003e\n      \u003cp class=\"lede\"\u003e從「看到哪一集忘記了」到「自動幫你記好、排好、提醒好」—— 一個工程師男友的\u003cstrong\u003e求生欲 + 寵溺\u003c/strong\u003e混合開發日誌。追劇不中斷，感情不卡頓。\u003c/p\u003e\n    \u003c/header\u003e\n\n    \u003cdiv class=\"hero\"\u003e\n      \u003cdiv class=\"hero-top\"\u003e\n        \u003cdiv class=\"hero-label\"\u003e\u003ci\u003e\u003c/i\u003e DRAMA CUBE · v1.2.0 已上線\u003c/div\u003e\n        \u003cdiv class=\"hero-grid\"\u003e\n          \u003cdiv class=\"hero-text\"\u003e\n            \u003ch2\u003e追劇，不該用\u003cbr\u003e腦容量來記。\u003c/h2\u003e\n            \u003cp\u003e把「那部看到第幾集？」「哪個平台？」「什麼時候更新？」全部交給 Cube 幫你管好。\u003c/p\u003e\n            \u003cdiv class=\"hero-badges\"\u003e\n              \u003cspan class=\"badge\"\u003e🍿 自動追蹤進度\u003c/span\u003e\n              \u003cspan class=\"badge\"\u003e⏰ 更新提醒\u003c/span\u003e\n              \u003cspan class=\"badge\"\u003e📺 跨平台整合\u003c/span\u003e\n            \u003c/div\u003e\n          \u003c/div\u003e\n          \u003cdiv class=\"hero-mock\"\u003e\n            \u003cdiv class=\"mock-bar\"\u003e\n              \u003cspan class=\"mock-dot\" style=\"background:#FF5F56\"\u003e\u003c/span\u003e\n              \u003cspan class=\"mock-dot\" style=\"background:#FFBD2E\"\u003e\u003c/span\u003e\n              \u003cspan class=\"mock-dot\" style=\"background:#27C93F\"\u003e\u003c/span\u003e\n              \u003cspan style=\"margin-left:auto; font:600 10px ui-monospace,monospace; color:var(--ink-3); letter-spacing:0.06em;\"\u003eMY DRAMA LIST\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"mock-list\"\u003e\n              \u003cdiv class=\"mock-item\"\u003e\n                \u003cdiv class=\"mock-poster\" style=\"background:linear-gradient(135deg,#FFD6E0,#FF8FA3);\"\u003e🌙\u003c/div\u003e\n                \u003cdiv class=\"mock-meta\"\u003e\n                  \u003cdiv class=\"mock-title\"\u003e淚之女王\u003c/div\u003e\n                  \u003cdiv class=\"mock-sub\"\u003etvN · 每週六日 \u003cspan style=\"background:var(--accent); color:#fff; padding:1px 6px; border-radius:999px; font-size:10px; font-weight:700;\"\u003e更新至 12/16\u003c/span\u003e\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"mock-progress\"\u003e\u003ci style=\"width:75%\"\u003e\u003c/i\u003e\u003c/div\u003e\n              \u003c/div\u003e\n              \u003cdiv class=\"mock-item\"\u003e\n                \u003cdiv class=\"mock-poster\" style=\"background:linear-gradient(135deg,#C3E8FF,#8EC5FF);\"\u003e🏙️\u003c/div\u003e\n                \u003cdiv class=\"mock-meta\"\u003e\n                  \u003cdiv class=\"mock-title\"\u003e背著善宰跑\u003c/div\u003e\n                  \u003cdiv class=\"mock-sub\"\u003eNetflix · 已完結\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"mock-progress\"\u003e\u003ci style=\"width:100%\"\u003e\u003c/i\u003e\u003c/div\u003e\n              \u003c/div\u003e\n              \u003cdiv class=\"mock-item\" style=\"opacity:0.9;\"\u003e\n                \u003cdiv class=\"mock-poster\" style=\"background:linear-gradient(135deg,#FFE8A3,#FFB86A);\"\u003e⚖️\u003c/div\u003e\n                \u003cdiv class=\"mock-meta\"\u003e\n                  \u003cdiv class=\"mock-title\"\u003e苦盡柑來遇見你\u003c/div\u003e\n                  \u003cdiv class=\"mock-sub\"\u003eDisney+ · 待追 · 3/7 上線\u003c/div\u003e\n                \u003c/div\u003e\n                \u003cdiv class=\"mock-progress\"\u003e\u003ci style=\"width:12%; background:var(--ink-3)\"\u003e\u003c/i\u003e\u003c/div\u003e\n              \u003c/div\u003e\n            \u003c/div\u003e\n          \u003c/div\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"hero-bottom\"\u003e\n        \u003cdiv class=\"hero-stat\"\u003e\n          \u003cdiv class=\"k\"\u003e支援平台\u003c/div\u003e\n          \u003cdiv class=\"v\"\u003e8+\u003c/div\u003e\n          \u003cdiv class=\"n\"\u003eNetflix / Disney+ 等\u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"hero-stat\"\u003e\n          \u003cdiv class=\"k\"\u003e追蹤模式\u003c/div\u003e\n          \u003cdiv class=\"v\"\u003e3 種\u003c/div\u003e\n          \u003cdiv class=\"n\"\u003e週更 / 全集 / 自訂\u003c/div\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"hero-stat\"\u003e\n          \u003cdiv class=\"k\"\u003e女友滿意度\u003c/div\u003e\n          \u003cdiv class=\"v\" style=\"color:var(--accent)\"\u003e★★★★★\u003c/div\u003e\n          \u003cdiv class=\"n\"\u003e求生欲拉滿\u003c/div\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"quote\"\u003e\n      \u003cdiv class=\"quote-avatar\"\u003e👩🏻\u003c/div\u003e\n      \u003cdiv class=\"quote-body\"\u003e\n        \u003cdiv class=\"quote-name\"\u003e女友大人 \u003cspan style=\"font-weight:400; color:var(--ink-3);\"\u003e· 首席體驗官\u003c/span\u003e\u003c/div\u003e\n        \u003cdiv class=\"quote-role\"\u003eUSER FEEDBACK #001\u003c/div\u003e\n        \u003cdiv class=\"quote-text\"\u003e我只是抱怨了一句「又忘記看到第幾集了」，隔天他就生出一個插件給我。現在我追劇比他寫 code 還順。\u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e01\u003c/span\u003e 為什麼又手癢了？\u003c/h2\u003e\n    \u003cp\u003e身為 CubeLV 重度使用者，我早就把工作、筆記、待辦都丟進 Cube 了。但女友的痛點很真實：\u003cstrong\u003e追劇資訊散落在各個 App、備忘錄、甚至聊天記錄裡\u003c/strong\u003e。\u003c/p\u003e\n    \u003cp\u003e她會同時追 4、5 部劇，每部更新時間、平台、看到哪一集都不一樣。每次打開電視都要先靈魂拷問：「我上次看到哪？」\u003c/p\u003e\n\n    \u003cdiv class=\"compare\"\u003e\n      \u003cdiv class=\"compare-card bad\"\u003e\n        \u003cdiv class=\"compare-label\"\u003e\n          \u003csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"/\u003e\u003cline x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"/\u003e\u003cline x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"/\u003e\u003c/svg\u003e\n          改造前 · 腦內記憶法\n        \u003c/div\u003e\n        \u003cul\u003e\n          \u003cli\u003e備忘錄寫「淚之女王看到12集」\u003c/li\u003e\n          \u003cli\u003e截圖存在相簿海裡找不到\u003c/li\u003e\n          \u003cli\u003e週更時間靠粉絲團通知\u003c/li\u003e\n          \u003cli\u003e男友被問「我看到哪了？」答不出來就完蛋\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"compare-card good\"\u003e\n        \u003cdiv class=\"compare-label\"\u003e\n          \u003csvg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"/\u003e\u003cpolyline points=\"22 4 12 14.01 9 11.01\"/\u003e\u003c/svg\u003e\n          改造後 · Drama Cube\n        \u003c/div\u003e\n        \u003cul\u003e\n          \u003cli\u003e一鍵新增劇集，自動抓海報與資訊\u003c/li\u003e\n          \u003cli\u003e進度條直觀顯示看到哪\u003c/li\u003e\n          \u003cli\u003e更新日自動提醒，不再錯過\u003c/li\u003e\n          \u003cli\u003e男友存活率 +100%\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"callout\"\u003e\n      \u003cspan class=\"tag\"\u003e開發動機\u003c/span\u003e\n      \u003cdiv\u003e\u003cstrong\u003e與其讓她記，不如讓 Cube 幫她記。\u003c/strong\u003e\u003cbr\u003e把追劇變成一種療癒的儀式，而不是記憶力大考驗。這就是這個插件的初心。\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e02\u003c/span\u003e 這個插件能做什麼？\u003c/h2\u003e\n    \u003cp\u003e不是單純的清單，而是為「追劇」這個行為量身打造的\u003cstrong\u003e小宇宙\u003c/strong\u003e。我把女友的追劇流程拆解後，做了這四個核心功能：\u003c/p\u003e\n\n    \u003cdiv class=\"features\"\u003e\n      \u003cdiv class=\"feat\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#FFF0EB; border:1px solid #FFD6CC;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#E84E4E\" stroke-width=\"1.8\"\u003e\u003crect x=\"2\" y=\"7\" width=\"20\" height=\"15\" rx=\"2\"/\u003e\u003cpolyline points=\"17 2 12 7 7 2\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003ch4\u003e進度秒記\u003c/h4\u003e\n        \u003cp\u003e看完一集點一下，自動記錄。支援集數、季數、甚至「看到 23分14秒」。\u003c/p\u003e\n        \u003cul\u003e\n          \u003cli\u003e一鍵 +1 集\u003c/li\u003e\n          \u003cli\u003e拖曳進度條微調\u003c/li\u003e\n          \u003cli\u003e自動計算剩餘集數\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"feat\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#F0F7FF; border:1px solid #C3E0FF;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3B82F6\" stroke-width=\"1.8\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"/\u003e\u003cpolyline points=\"12 6 12 12 16 14\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003ch4\u003e更新不漏接\u003c/h4\u003e\n        \u003cp\u003e設定週更日，Cube 會在更新當天溫柔提醒你。追 ON 檔不再靠運氣。\u003c/p\u003e\n        \u003cul\u003e\n          \u003cli\u003e自訂週更 / 一次上線\u003c/li\u003e\n          \u003cli\u003e首頁倒數「還有 2 天更新」\u003c/li\u003e\n          \u003cli\u003e可串接行事曆\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"feat\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#F0FDF4; border:1px solid #BBF7D0;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#16A34A\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"/\u003e\u003cpath d=\"M9 12l2 2 4-4\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003ch4\u003e平台整合\u003c/h4\u003e\n        \u003cp\u003eNetflix、Disney+、愛奇藝、KKTV… 在哪看，一目了然。點海報直接跳轉。\u003c/p\u003e\n        \u003cul\u003e\n          \u003cli\u003e8+ 平台標籤\u003c/li\u003e\n          \u003cli\u003e自訂播放連結\u003c/li\u003e\n          \u003cli\u003e依平台篩選與統計\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"features\" style=\"grid-template-columns: 1fr 1fr; margin-top: 12px;\"\u003e\n      \u003cdiv class=\"feat\" style=\"display:flex; gap:14px; align-items:flex-start;\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#FFF7E6; border:1px solid #FFE0A3; flex:none; margin-bottom:0;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#D97706\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/\u003e\u003cpath d=\"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003cdiv\u003e\n          \u003ch4\u003e觀後小記 \u0026 評分\u003c/h4\u003e\n          \u003cp\u003e每集都能寫一句心得、打個星。累積成你的私人追劇日記，之後回顧超有感。\u003c/p\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"feat\" style=\"display:flex; gap:14px; align-items:flex-start;\"\u003e\n        \u003cdiv class=\"feat-icon\" style=\"background:#FDF2FF; border:1px solid #E9C6FF; flex:none; margin-bottom:0;\"\u003e\n          \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#A855F7\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/\u003e\u003cpath d=\"M3 9h18M9 21V9\"/\u003e\u003c/svg\u003e\n        \u003c/div\u003e\n        \u003cdiv\u003e\n          \u003ch4\u003e追劇儀表板\u003c/h4\u003e\n          \u003cp\u003e本月看了幾小時？最愛哪類型？用圖表看見你的追劇足跡，成就感滿滿。\u003c/p\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e03\u003c/span\u003e 實際用起來長怎樣？\u003c/h2\u003e\n    \u003cp\u003e我刻意把操作壓到\u003cstrong\u003e最懶人\u003c/strong\u003e。女友的標準是：「不能超過 3 秒」。所以流程是這樣：\u003c/p\u003e\n\n    \u003cdiv class=\"steps\"\u003e\n      \u003cdiv class=\"step\"\u003e\n        \u003cdiv class=\"step-no\"\u003eSTEP 01\u003c/div\u003e\n        \u003ch4\u003e🔍 新增劇集\u003c/h4\u003e\n        \u003cp\u003e輸入劇名自動帶入海報、年份、集數。或手動新增，連冷門陸劇也 OK。\u003c/p\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"step\"\u003e\n        \u003cdiv class=\"step-no\"\u003eSTEP 02\u003c/div\u003e\n        \u003ch4\u003e👆 點一下記錄\u003c/h4\u003e\n        \u003cp\u003e看完按「+1 集」，進度條自動前進。長按可補記、重看、標記棄追。\u003c/p\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"step\"\u003e\n        \u003cdiv class=\"step-no\"\u003eSTEP 03\u003c/div\u003e\n        \u003ch4\u003e✨ 坐等提醒\u003c/h4\u003e\n        \u003cp\u003e首頁自動排序「今晚可看」與「等待更新」，打開 Cube 就知道今晚追哪部。\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"changelog\"\u003e\n      \u003cdiv class=\"changelog-head\"\u003e\n        \u003cb\u003e\n          \u003csvg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--accent)\" stroke-width=\"2\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/\u003e\u003cpolyline points=\"14 2 14 8 20 8\"/\u003e\u003cline x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/\u003e\u003cline x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/\u003e\u003c/svg\u003e\n          更新日誌 · v1.2.0\n        \u003c/b\u003e\n        \u003cspan\u003e2026.05 更新\u003c/span\u003e\n      \u003c/div\u003e\n      \u003cdiv class=\"changelog-body\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003e新增：\u003c/strong\u003e海報牆視圖 — 用海報瀑布流瀏覽片單，選擇困難也能賞心悅目\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003e新增：\u003c/strong\u003e「今晚看什麼」智慧推薦 — 根據剩餘集數與更新時間自動排序\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003e優化：\u003c/strong\u003e支援深色模式，半夜追劇不刺眼\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003e修復：\u003c/strong\u003e部分劇集集數顯示異常問題\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003ch2\u003e\u003cspan class=\"num\"\u003e04\u003c/span\u003e 給同樣有追劇伴侶的你\u003c/h2\u003e\n    \u003cp\u003e寫這個插件的過程，與其說是寫程式，不如說是\u003cstrong\u003e把「我在乎你喜歡的事」具象化\u003c/strong\u003e。她追劇時眼睛發亮的樣子，值得一個更順暢的體驗。\u003c/p\u003e\n    \u003cp\u003e如果你家也有位追劇迷，或你自己就是那位追劇迷，這個插件應該能讓你們的 Cube 多一個溫暖的角落。\u003c/p\u003e\n\n    \u003cdiv class=\"callout\"\u003e\n      \u003cspan class=\"tag\"\u003e小彩蛋\u003c/span\u003e\n      \u003cdiv\u003e插件裡藏了一個「\u003cstrong\u003e一起看\u003c/strong\u003e」標籤，標記和女友一起追的劇。點開會顯示我們一起花了多少小時追劇 — 目前累計 \u003cstrong\u003e127 小時\u003c/strong\u003e，還在持續增加中 🥰\u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cp style=\"font-size:13.5px; color:var(--ink-3); margin-top:20px;\"\u003eP.S. 女友已驗收通過，並下令下一版要加上「演員收藏」功能。看來我的 side project 清單又要變長了……但甘之如飴啦 😆\u003c/p\u003e\n\n    \u003cdiv class=\"footer\"\u003e\n      \u003cdiv class=\"footer-left\"\u003eCubeLV Plugin · Drama Cube · Made with ❤️ for my favorite drama queen\u003c/div\u003e\n      \u003cdiv class=\"footer-right\"\u003e\n        \u003cspan class=\"pill\"\u003e# CubeLV\u003c/span\u003e\n        \u003cspan class=\"pill\"\u003e # 追劇插件\u003c/span\u003e\n        \u003cspan class=\"pill primary\"\u003e去安裝 →\u003c/span\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e","content":"因為女友是個超級追劇迷，為了讓她的追劇時光更順暢，沒有意外的……我又手癢寫了一個「追劇專用」的CubeLV插件啦！😂","createdAt":1788413364014,"embedRenders":{},"id":"6a990574af2c420ed343186e","imgURLs":[],"isPublic":true,"itemType":"POST","name":"因為女友是個超級追劇迷，為了讓她的追劇時光更順暢，沒有意外的……我又手癢寫了一個「追劇專用」的CubeLV插件啦！😂","parents":{"community":1788413364014},"publishedAt":1788413364014,"updatedAt":1788413364014,"updatedBy":{"userId":"6a99051802136a59cd4061","userName":"Hoya Lai"},"version":1}]}