diff --git a/wechat-daily-news-inline.mjs b/wechat-daily-news-inline.mjs
new file mode 100644
index 0000000..ce1dd5e
--- /dev/null
+++ b/wechat-daily-news-inline.mjs
@@ -0,0 +1,356 @@
+import { extractPageTitle } from './wechat/verify/share-preview-repair.mjs';
+
+const MAX_WECHAT_CONTENT_CHARS = 20000;
+const MAX_WECHAT_CONTENT_TARGET_CHARS = 19800;
+
+const CARD_VARIANTS = {
+ 'highlight-box': {
+ wrap: 'background:linear-gradient(135deg,#b71c1c,#d32f2f);border-radius:12px;padding:14px;margin:0 0 10px;color:#fff;',
+ title: 'margin:0 0 6px;font-size:16px;font-weight:700;color:#fff;line-height:1.5;',
+ body: 'margin:0 0 6px;font-size:14px;line-height:1.7;color:#ffcdd2;',
+ source: 'margin:0;font-size:12px;color:#90caf4;',
+ tag: 'display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;margin:0 0 6px;background:rgba(255,255,255,.18);color:#fff;',
+ },
+ 'highlight-box-orange': {
+ wrap: 'background:linear-gradient(135deg,#e65100,#bf360c);border-radius:12px;padding:14px;margin:0 0 10px;color:#fff;',
+ title: 'margin:0 0 6px;font-size:16px;font-weight:700;color:#fff;line-height:1.5;',
+ body: 'margin:0 0 6px;font-size:14px;line-height:1.7;color:#ffe0b2;',
+ source: 'margin:0;font-size:12px;color:#ffcdd2;',
+ tag: 'display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;margin:0 0 6px;background:rgba(255,255,255,.18);color:#fff;',
+ },
+ 'highlight-box-gold': {
+ wrap: 'background:linear-gradient(135deg,#0d47a1,#1565c0);border-radius:12px;padding:14px;margin:0 0 10px;color:#fff;',
+ title: 'margin:0 0 6px;font-size:16px;font-weight:700;color:#fff;line-height:1.5;',
+ body: 'margin:0 0 6px;font-size:14px;line-height:1.7;color:#bbdefb;',
+ source: 'margin:0;font-size:12px;color:#bbdefb;',
+ tag: 'display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;margin:0 0 6px;background:rgba(255,255,255,.18);color:#fff;',
+ },
+ 'highlight-box-teal': {
+ wrap: 'background:linear-gradient(135deg,#004d40,#00695c);border-radius:12px;padding:14px;margin:0 0 10px;color:#fff;',
+ title: 'margin:0 0 6px;font-size:16px;font-weight:700;color:#fff;line-height:1.5;',
+ body: 'margin:0 0 6px;font-size:14px;line-height:1.7;color:#b2dfdb;',
+ source: 'margin:0;font-size:12px;color:#b2dfdb;',
+ tag: 'display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;margin:0 0 6px;background:rgba(255,255,255,.18);color:#fff;',
+ },
+ default: {
+ wrap: 'background:#fff;border-radius:12px;padding:14px;margin:0 0 10px;',
+ title: 'margin:0 0 4px;font-size:16px;font-weight:600;color:#1a202c;line-height:1.5;',
+ body: 'margin:0 0 6px;font-size:14px;color:#4a5568;line-height:1.7;',
+ source: 'margin:0;font-size:12px;color:#a0aec0;',
+ tag: 'display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;margin:0 0 6px;background:#ffebee;color:#b71c1c;',
+ },
+};
+
+const TAG_CLASS_COLORS = {
+ 'tag-red': 'background:#ffcdd2;color:#b71c1c;',
+ 'tag-blue': 'background:#bbdefb;color:#0d47a1;',
+ 'tag-green': 'background:#c8e6c9;color:#1b5e20;',
+ 'tag-purple': 'background:#e1bee7;color:#6a1b9a;',
+ 'tag-orange': 'background:#ffe0b2;color:#e65100;',
+ 'tag-teal': 'background:#b2dfdb;color:#004d40;',
+ 'tag-pink': 'background:#f8bbd0;color:#880e4f;',
+ 'tag-gray': 'background:#e0e0e0;color:#424242;',
+ 'tag-amber': 'background:#ffecb3;color:#ff6f00;',
+};
+
+function extractMetaDescription(html) {
+ const match = String(html ?? '').match(
+ /]+name=["']description["'][^>]+content=["']([^"']*)["']/i,
+ );
+ return match?.[1]?.trim() ?? '';
+}
+
+function stripScripts(html) {
+ return String(html ?? '').replace(/