嵌入 X 貼文不載入 X 的腳本:把社群貼文做成網站上的靜態卡片,處理備份、隱私與刪文
嵌入 X 貼文的另一種做法:Jason Finance 不用官方 widgets.js,改成自己存檔的截圖、作者、時間與原文連結做成靜態卡片,貼文被刪也看得到。附存檔方式與著作權處理。
本文目錄
寫〈Ledger 經銷商事件〉時,我想在文章裡放幾則關鍵的 X 貼文:Ledger 官方、Ledger 技術長,還有親手拆開裝置的研究人員。我也想留一份備份,以免貼文之後被刪掉或改掉。
結論是:**嵌入 X 貼文,我沒有用官方的嵌入碼,改成自己存檔的靜態卡片。**卡片裡是本站存的截圖、作者、發文時間、「在 X 看原文」連結,長貼文另附全文,必要時加上貼文的照片。整張卡片不載入 X 的腳本,原貼文被刪了也照樣顯示。
本文是 Jason Finance 的架站紀錄,內容是 2026 年 10 月 17 日的狀態。X 的嵌入方式與隱私說明可能改變,以 X 官方文件為準。本文不是法律意見,引用他人貼文與照片前,請自行確認適用的著作權規定。
官方嵌入碼的問題:每位讀者都會連到 X
X 官方的嵌入方式,是在網頁裡載入 platform.x.com/widgets.js 這支腳本(X 開發者文件)。腳本一載入,讀者的瀏覽器就會連到 X。依 X 自己的說明,讀者看到網站上嵌入的貼文、按鈕或時間軸時,X 可能收到讀者造訪的網頁、IP 位址、瀏覽器類型、作業系統和 Cookie 資訊,這些瀏覽紀錄最多保存 30 天(X for Websites 隱私說明,2026 年 10 月 17 日查閱)。
Jason Finance 的公開頁是靜態網頁,原則上不放第三方腳本(架構見〈Jason Finance 從零到一〉)。隱私權政策列出的 Cookie 只有 Google Analytics 和 Cloudflare 的資安 Cookie。為了幾則貼文加上 X 的腳本,等於讓所有打開這篇文章的讀者都連到 X,隱私權政策也得多寫一家。
官方嵌入還有一個問題:貼文被刪除後,嵌入的地方就沒有內容了。我想保留的正是事件當時各方的說法,而這類貼文之後也可能被刪改。
| X 官方嵌入碼 | 本站的靜態卡片 | |
|---|---|---|
| 載入 X 的腳本 | 會(widgets.js) | 不會 |
| 讀者的瀏覽器連到 X | 會 | 只有點「在 X 看原文」時 |
| 原貼文被刪除 | 嵌入處沒有內容 | 照樣顯示存檔的截圖和文字 |
| 長貼文 | 依 X 的顯示方式 | 截圖加上可展開的全文 |
| 檔案放在哪 | X 的伺服器 | 本站 |
靜態卡片長什麼樣
每張卡片有這幾樣東西:
- 貼文截圖:本站存檔的截圖,點了會在新分頁打開原貼文。
- 作者與時間:作者名稱、@帳號、發文時間。繁中和簡中版用台灣時間,英文和西班牙文版用 UTC。
- 原文連結與存檔日期:「在 X 看原文 ↗」,下面一行小字寫「截圖為本站 2026-10-15 存檔」。
- 長貼文的全文:X 的截圖遇到長貼文只顯示到「Show more」,這種貼文的卡片會多一個可以展開的「貼文全文(原文)」區塊。短貼文不顯示這個區塊。
- 選用的照片:貼文附的照片不一定全放,文章指定哪幾張才顯示,點了可以看大圖。
截圖和照片都設定延遲載入,捲到附近才下載。截圖的替代文字是作者加上貼文前 240 個字,看不到圖片的讀者和搜尋引擎也讀得到內容。
怎麼存檔:文字、照片與截圖
存檔分三部分,都只用公開、不需要登入的來源:
- 文字和照片:從 X 公開的嵌入資料取得貼文網址、作者、發文時間、文字、引用的貼文和照片清單。
- 長貼文的全文:嵌入資料會截斷長貼文,全文改從公開的鏡像服務 FxTwitter 取得。
- 截圖:用無頭瀏覽器 Chromium 打開 X 自己的嵌入頁面,拍下 X 原本的呈現方式,存成 WebP 圖檔。
Ledger 事件一共存了 20 則貼文,每則都有全文、截圖,附了照片的也把照片存下來,總共 20 張照片,存檔日期是 2026 年 10 月 15 日。
存檔和網站分開放:只上線用到的檔案
完整存檔放在 repo 裡一個不會發佈的資料夾(docs/archive/),網站不提供這些檔案,約 4.8 MB。資料夾裡有一份說明,寫清楚這批存檔是為哪篇文章、哪一天、從哪裡抓的,以及照片的著作權歸原作者。
網站上只放文章實際用到的檔案:6 則貼文的截圖和 6 張照片,約 2 MB,資料另外整理成一份 JSON 檔。之後文章要引用其他貼文或照片,再從存檔複製過去。這樣做有兩個好處:讀者不會下載用不到的圖片;還沒用到的貼文和照片,也不會出現在網站上。
在文章裡怎麼放:一行標記,建置時換成卡片
文章是 Markdown 檔,放卡片只要寫一行 HTML 標記:
<div data-x-post="貼文 ID" data-media="1,2"></div>
data-x-post 是貼文的 ID,data-media 是要顯示第幾張照片(從 1 開始,可以省略)。網站建置時,一個 Markdown 外掛會把這行標記換成卡片的 HTML,讀者拿到的是已經做好的靜態網頁,瀏覽器不用再執行任何程式。
幾個防呆設計:
- ID 不在資料裡就建置失敗,錯誤訊息會提醒先把貼文加進資料檔,不會在網站上留下一張空卡片。
- 標記只能用在文章裡,放在其他頁面也會建置失敗。
- 測試會檢查卡片的 HTML 裡沒有
<script>、widgets.js或 X 的平台網址,以後有人改程式時不小心把 X 的腳本加回來,測試就會失敗。 - 另一個測試確認資料檔指到的每張截圖都真的存在網站裡。
卡片的文字依頁面語言產生,同一行標記照抄到簡中、英文、西班牙文版就能用,翻譯時不用另外處理。
影片下載不了:改連到章節時間點
同一篇文章還引用了一支中文的 Ledger Stax 拆機影片。我原本也想存一份,但從我們跑 Claude Code 的主機下載時,被 YouTube 擋下來了。
最後的做法是不存影片,在文章裡列出幾個關鍵段落的時間點,每個都是直接跳到那一段的 YouTube 連結,例如「07:00 背蓋對比」。讀者不用從頭看,想核對哪一段就點哪一段。代價是影片如果被下架,這幾個連結就會失效,所以文章裡用文字寫下了影片的重點。
著作權:照片的作者與用途
存下來的照片和截圖,著作權都還是原作者的。本站的處理方式是:
- 只當作引用的證據:照片只出現在說明事件的段落,用來讓讀者知道該看裝置的哪個位置,不拿來當裝飾圖或封面。
- 一定標出作者並連回原貼文:每張卡片都有作者名稱、帳號和原貼文連結,照片的替代文字也寫出作者。
- 只放需要的照片:一則貼文有四張照片,文章只需要一張,就只放那一張。
常見問題
嵌入 X 貼文為什麼不用官方的嵌入碼?
官方嵌入碼會載入 X 的 widgets.js。依 X 的說明,讀者看到嵌入的貼文時,X 可能收到讀者造訪的網頁、IP 位址、瀏覽器、作業系統和 Cookie 資訊。Jason Finance 的隱私權政策沒有列 X,所以改用不載入 X 腳本的靜態卡片。
靜態卡片裡有哪些內容?
本站存檔的貼文截圖(點了會開原貼文)、作者名稱與帳號、發文時間(中文版用台灣時間)、「在 X 看原文」連結和存檔日期。長貼文的截圖只到「Show more」,卡片另外放可展開的全文;需要的話再放貼文附的照片。
原貼文被刪掉,卡片還看得到嗎?
看得到。截圖、文字和照片都存在本站,卡片顯示時不向 X 要任何資料;只有「在 X 看原文」連結會失效。
貼文內容是怎麼存下來的?
文字和照片從 X 公開的嵌入資料取得,長貼文的全文用公開的鏡像服務 FxTwitter 補齊;截圖是用無頭瀏覽器 Chromium 打開 X 自己的嵌入頁面拍下來的。Ledger 事件一共存了 20 則貼文。
存檔的檔案全部都放上網站嗎?
沒有。完整存檔放在不會發佈的資料夾,約 4.8 MB;網站只放文章實際用到的 6 張貼文截圖和 6 張照片,約 2 MB。
引用別人的照片要注意什麼?
照片的著作權屬於原作者。本站只在說明事件時當作引用的證據使用,卡片標出作者和帳號,並連回原貼文。
延伸閱讀
- 一個人用 AI 潤稿多語系網站:我怎麼讓 Claude Code 檢查 271 個檔案AI 潤稿實例:Jason Finance 用 Claude Code 和自訂潤稿 skill 重跑 271 個四語檔案,先試 5 篇再全站分 10 批,改了 178 個檔案,再用腳本確認標題、連結和數字沒變。
- WordPress 電商課程網站怎麼搭:一個人經營 Jason Career 的 Cloudways、Flatsome 架構WordPress 電商課程網站的實際架構:Jason Career 用 Cloudways、Cloudflare、Flatsome、WooCommerce 與 LearnDash,65 個外掛依用途分組,由 Claude Code 透過 SSH 維運。
- WordPress 改了卻看不到:Cloudways 的 Varnish 和 WP Rocket 兩層快取WordPress 改了訪客卻看不到?Cloudways Varnish 和 WP Rocket 是兩層快取,只清一層不夠。依官方文件整理各層怎麼清、怎麼從回應標頭判斷是哪一層給的頁面,附部署後檢查清單。

留言
使用 Google 登入即可留言。留言「不會」使用您的 Google 頭像或姓名,對外顯示的暱稱是系統隨機產生的代號,以保護您的隱私。
登入即表示你同意本站的隱私權政策。