🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

維基百科堪稱奇蹟。它是我們這個時代的亞歷山大圖書館,一個精心整理的人類知識寶庫,其使用者介面卻極為實用,相較之下,醫院走廊都顯得像個狂歡派對。

但有時候,當我凌晨兩點還在維基百科上鑽研「擁有偽造文憑的動物名單」之類的文章時,那單調的白色背景就顯得……不夠完美。我並不想要那種冷峻的極簡主義。我想要的是古人設想中的網路:霓虹粉的海洋,Comic Sans字體的海洋,以及像素化的貓咪。

於是,我決定編寫一個自訂的維基百科User Script ,將網站變成 1998 年 GeoCities 賽博龐克狂熱夢境。

我沒有從零開始編寫,而是想看看現代的LLM(語言學習模組)在編寫小眾的MediaWiki API腳本方面表現如何。以下是我使用Gemini 3.1 Pro Preview建構這個「怪物」的實戰報告。


使用維基百科特有的語法為 Gemini 打下基礎

LLM(語言學習模組)擅長編寫原生 JavaScript,但維基百科使用者腳本依賴一些特定的、略顯過時的 MediaWiki 全域變數(例如mw.loader.usingmw.util.addCSS )。如果你只是盲目地要求 LLM “把維基百科變成粉紅色”,它通常會產生瀏覽器擴充功能或通用的 Tampermonkey 腳本。

為了繞過這個問題,我打開了Google AI Studio ,載入了Gemini 3.1 Pro Preview模型。

秘訣在於使用了URL 上下文功能。我啟用了 URL 上下文功能,然後貼上了維基百科自訂腳本文件的 URL:

https://en.wikipedia.org/wiki/Wikipedia:User_scripts

我的提示很簡單,但卻有些離譜:

「請參考維基百科用戶腳本文件,為我的 Special:MyPage/common.js 文件編寫一個腳本,使我的維基百科瀏覽體驗看起來像 90 年代賽博朋克風格的 GeoCities 頁面。我想要粉紅色/青色的網格背景、發光的 Comic Sans 字體標題、巨大的滾動式文章標題<marquee> 、巨大的動畫螢幕、巨大的動畫滑鼠軌跡,以及一群巨大的貓假螢幕。

因為 Gemini 3.1 Pro Preview 的上下文視窗中包含了實際的文件,所以它知道如何透過 MediaWiki 的實用函數安全地註入 CSS,並給了我一個即插即用的腳本。

圖片描述


劇本解析

最終生成的腳本完美地融合了現代 DOM 操作和極具冒犯性的 90 年代美學。

1. 主打標題

如果我們要讀到關於鴯鶓戰爭的文章,標題就需要移動。腳本會抓取#firstHeading元素,並生硬地將其內部 HTML 包裹在<marquee>標籤中。

var $title = $('#firstHeading');
var titleText = $title.html();
$title.html('<marquee scrollamount="15" behavior="alternate">' + titleText + '</marquee>');

註:2026 年的現代瀏覽器仍然能夠解析和執行<marquee>標籤,這證明了網路擁有牢不可破的向後相容性。它就像數位時代的殘餘尾巴一樣。

2. 閃光之路(節流課)

為了建立滑鼠軌跡,該腳本監聽mousemove事件,並將包含賽博朋克符號( )的絕對定位<span>元素加入到 DOM 中。

為了防止我的 GPU 立即過熱(當每秒生成數百個 DOM 節點時,這是一個非常現實的威脅),該模型巧妙地實現了時間戳節流:

var now = Date.now();
if (now - lastSparkleTime < 40) return; // Only spawn a sparkle every 40ms
lastSparkleTime = now;

然後,它對每個閃光應用 CSS @keyframes動畫,使它們緩慢向下漂移,旋轉 180 度,並淡入到opacity: 0 ,然後在一秒鐘後被setTimeout垃圾回收。

3. 貓走路的數學

Gemini 3.1 沒有使用笨拙的 JS setInterval來移動貓,而是採用了純粹的、硬體加速的 CSS 動畫。

它建立了一個固定的頭部容器(設定pointer-events: none ,這樣我仍然可以透過貓咪虛幻的身體點擊搜尋欄)。然後,它應用了兩個不同的動畫。

第一個動畫將整個隊伍從100vw (螢幕右側)滑動到-100% (螢幕左側)。

第二個動畫創造了「行走」的錯覺。如果你仔細觀察一隻像素貓行走的幾何形狀,它本質上就是一個正弦波。為了實現這一點,腳本對每隻貓應用了 10px 的垂直彈跳( transform: translateY(-10px) )。

為了使其看起來像一支混亂的小隊而不是一支整齊劃一的閱兵式,劇本使用了nth-child(even)偽類來抵消每隔一隻貓的動畫延遲:

.walking-cat {
    animation: catBounce 0.4s alternate infinite ease-in-out;
}
.walking-cat:nth-child(even) {
    animation-delay: 0.2s; /* Phase offset for the bounce! */
}

我們本質上是透過改變貓科動物的垂直振盪相位來模擬獨立運動。


最終結果

我將程式碼貼到我的Special:MyPage/common.js中,點擊發布,繞過了我的快取。

結果令人震驚。

我正在閱讀維基百科上關於馬克西米連·羅伯斯庇爾的那篇內容嚴肅、引用量極高的條目。背景是一片漆黑的虛空,上面覆蓋著一層霓虹粉紅色的雷射網格。標題「馬克西米連·羅伯斯庇爾」用亮粉色的Comic Sans字體閃閃發光,在螢幕邊緣劇烈地反射著。

https://x.com/DynamicWebPaige/status/2035009322531660256

每次我將滑鼠懸停在引文上,文字上就會爆發出無數45像素寬的青色星星。而在這之上,五隻霓虹貓正朝著螢幕左側無止盡地行進,對下方文本中正在發生的恐怖統治渾然不覺。

太糟糕了。我永遠不會關掉它。


如果你想徹底毀掉你的維基百科體驗,可以在下面的回覆中找到完整的腳本。只要記得登入,然後造訪Special:MyPage/common.jsSpecial:MyPage/common.css ,讓90年代的風格席捲而來。


原文出處:https://dev.to/googleai/vandalizing-my-own-wikipedia-experience-a-90s-cyberpunk-geocities-makeover-13ie


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝15   💬9   ❤️1
424
🥈
我愛JS
📝1   💬8  
51
🥉
💬1  
4
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付