🎄 廢文小天地 🎄

★ Merry Christmas ★

🦵🦵👏

🦵🦵👏 ...

🦵🦵👏 ...

🦵🦵👏 ...

🦵🦵👏 ... (猜一首歌)


We Will《We Will Rock You

嗯。

漂移(Dérive)

最近天氣變涼了,雨也停了,是個特別適合散步的季節呢~(今天出太陽了!)

城市漂移

這讓我想起前陣子在書上讀到,法國哲學家德波(Guy Debord)在一九五六年提出的「漂移(Dérive)」概念。他認為現代城市太過講究功能性,我們的移動路線都被設計好了:從宿舍到公司、從車站到賣場,永遠都是最有效率的兩點一線,這樣的城市看似自由,卻讓人不自覺的被街道的設計者與商業結構牽著走。

而「漂移」則是在沒有事先的規劃下「憑著直覺隨意探索」(靠的是一種 feel),讓偶然的路徑帶你去到意想不到的地方,創造屬於自己的自由體驗。

記得去年冬天,我也有過類似的經驗。某天午休時,我想到戶外曬曬太陽取暖,我一走出大門,就沿著陽光的方向走去。但馬上就發現這裡的路人實在是太多了,沒辦法靜靜地、舒服地享受我的陽光浴。我只好繼續往前走,穿過幾條平常完全不會經過的小巷弄,最後終於找到一塊沒什麼人的小空地,就在那裡 chill 了好一陣子。

這樣的體驗其實還蠻愉快的,也許可以多花點時間,嘗試這種迷你版的「漂移」。

網路漂移

還有,你知道嗎?網路上當然也可以「漂移」!(嘿對,每次到最後都會扯上網路)

  • 關掉演算法推薦,主動搜尋你感興趣的內容。
  • 隨機點進一個從沒聽過的 Podcast。
  • 在維基百科上從一個頁面跳到另一個相關的頁面。
  • 從部落格、個人網站上連結到其他人的網站,或者試試 Webring
  • 當然還有 Wiwi.Blog 的「部落卷」!

抬頭

前陣子,親戚家的小孩出生了,最近正在努力練習抬頭。

大人們圍在旁邊,興奮得說:「哇!會抬頭了欸!好厲害喔!」

我想,嬰兒學抬頭是為了探索世界;而我們低頭,似乎也在探索,只是那個世界被壓縮在一個六吋的螢幕裡。

有時候我會在街上停下來,練習抬起頭,看看天、看看雲、看看周圍那些平常不會留意到的建築。

(因為...因為等紅燈沒事幹啊,不然勒?)

但說真的,建築的細節、天空的顏色、路人的表情,這些景色其實一直都在。

只要你願意抬起頭,世界就在那裡,等你重新去欣賞它。

如何活著回到家

身為一位資深的通勤族,這幾年我也是默默發展出一套行人生存法則:

  • 路權沒有辦法當盾牌:就算是走在斑馬線上,也請預設會有車子闖紅燈、鬼切或突然暴衝。
  • 所有人都想要你的命:請預設汽車、機車、腳踏車、甚至是行人都有可能突然失控。
  • 沒有真正的安全區域:等火車時,請預設會有瘋子把你推下月台;就算是在人行道上,也要想像可能會有車子衝上來。

基本上就是把現實當成《惡靈古堡》來玩,隨時警戒,預判所有危險。

唯一的差別是:這款遊戲沒有存檔點,死了不能重來。


備註:這個月就真的有台鐵的站務員被人惡意推下月台!

自由時報報導:「畫面曝光!台中逃票男爭執推落 站務員呈大字型落軌骨折

〔記者蔡昀容/台北報導〕台中台鐵五權車站今天(6日)下午發生站務人員遭無票男性旅客推落至列車軌道,站員腿部受傷但隨即爬上月台,未影響行車及其他傷亡,後續送醫治療。台鐵表示,已請鐵路警察偵辦,後續會協助同仁提告。

部落格問題挑戰

我在 Ava 的部落格上看到她發起的《bear blog question challenge》(熊部落格挑戰),感覺蠻有趣的。文章中也提到 Kev Quirk 將它改編成了更通用的《Blog Questions Challenge》(部落格問題挑戰)版本。

既然都看到了,那就來跟風挑戰一下吧~以下是問題列表:

  1. 你當初為什麼開始寫部落格?
  2. 你使用什麼平台來管理你的部落格?為什麼選擇它?
  3. 你之前有在其他平台上寫過部落格文章嗎?
  4. 你如何撰寫文章?例如,使用本地編輯工具,還是在部落格的後台/控制面板中編寫?
  5. 你什麼時候最有寫作靈感?
  6. 你會在寫完後立即發布,還是會先存成草稿醞釀一下?
  7. 你部落格上最喜歡的文章是哪一篇?
  8. 你對部落格有什麼未來計畫嗎?例如重新設計、搬到另一個平台,或是加入新功能?

1. 你當初為什麼開始寫部落格?

我已經很久沒有在網路上活動了,也許有十年以上了吧?以前的網路像是同學們的秘密基地,但自從長輩們開始拿起智慧型手機、加入 Facebook 之後,我就開啟了「隱形人模式」。總之,我只是想找個地方發發廢文,不想被別人發現,於是就有了「廢文小天地」。

2. 你使用什麼平台來管理你的部落格?為什麼選擇它?

我是直接寫 HTML、CSS 檔案,使用 GitHub 來管理,並且部署在 Cloudflare Pages 上面。這種從頭開始 DIY 的感覺,總能帶給我一點小小的、純粹的快樂。

不過隨著文章越來越多,最近已經改成使用靜態網站生成的方式來管理了,但新文章還是要寫 HTML 啦。

3. 你之前有在其他平台上寫過部落格文章嗎?

從來沒有,所以這整個架站、寫文章、甚至有人來看(有嗎?),對我來說都是很新鮮的體驗。

4. 你如何撰寫文章?例如,使用本地編輯工具,還是在部落格的後台/控制面板中編寫?

我有一個網站用的萬年 notes.txt 檔案,我都用 Sublime Text 這個文字編輯器來寫,因為它真的超級輕量,非常適合我的破電腦。

5. 你什麼時候最有寫作靈感?

任何無聊、又沒有在滑手機的時候,通常是通勤時間跟上班時間。當然,還有看別人部落格的時候啦~

6. 你會在寫完後立即發布,還是會先存成草稿醞釀一下?

一開始是習慣寫完就發,現在則是會存個草稿。兩種各有優缺點,最近覺得還是直接發比較好,不然容易無止盡地一直拖下去。

7. 你部落格上最喜歡的文章是哪一篇?

歷史是一本書》......?

這篇非常符合我對廢文的定義,每次看到嘴角都會不自覺地上揚。因為它就是一篇純粹、沒有負擔、沒有任何深度、但又會讓人會心一笑的極致廢文。它提醒我,寫部落格的重點,就是開心就好。

8. 你對部落格有什麼未來計畫嗎?例如重新設計、搬到另一個平台,或是加入新功能?

如果心血來潮的話,大概會再加一些功能吧?不過維持原狀就足夠好了,畢竟除了內容以外,其它的東西都不是很重要。


一起來玩玩看吧!

如果你也有部落格,歡迎你參加這個挑戰,期待聽到你背後的故事!

網站改版:DIY 靜態網站生成器

前陣子開始用 RSS 來追蹤其他部落格之後,經常看到有人不停地在調整網站架構,並且樂在其中,害我手很癢一直想動手。

然後我又讀到了 Simon Willison 在這個討論串的留言:

I miss the days when "implement your own blogging engine" was one of the most popular learning projects for engineers.

We should bring that back! Its such a great way to play around with client- and server-side development options in an almost zero-risk environment.

我懷念「實作自己的部落格引擎」曾是工程師最熱門學習專案之一的那些日子。

我們應該把這個風潮帶回來!這是一個絕佳的方式,可以在幾乎零風險的環境中嘗試客戶端和伺服器端的各種開發選項。

我心想:「好啦,改啦,哪次不改?」

這次改版的目標:

  1. 為每篇文章建立「獨立頁面」:讓每篇文章都有自己的家。
  2. 新增「全部文章列表」:按照日期排序,方便尋找所有文章。
  3. 重做「RSS 生成器」:連結改連到文章頁面。
  4. 網站加入分頁功能:每頁顯示 10 篇文章。

總之,我決定自己做一個簡單的「靜態網站生成器」來搞定這些需求。

閱讀提醒:接下來的內容主要是記錄一下過程,可能會參雜一些術語。如果你對架網站沒興趣,可以考慮先跳過... 或是泡杯茶慢慢看 XD


前情提要

為什麼一開始沒做獨立頁面呢?

我的「貼文」很短,通常就一兩行而已,感覺沒必要做成單獨頁面。而且如果首頁和內頁都要顯示全文,就等於要維護兩份一模一樣的內容。

而且如果共用區塊有改動,所有文章檔案都要跟著改,這樣維護起來也不太實際。再加上要取英文 slug、要管理檔案命名、要按日期排序...

種種理由加起來,我的藉口就是:「一開始只想做最簡單的可行方案,不想搞得太複雜」。

短貼文
▲ 我的超短「貼文」

那麼...沒有做獨立頁面會有什麼問題?

最明顯的就是文章數量越來越多,首頁的長度真的會太長。我原本想用「年度分頁」來解決,但這樣一來 RSS 的文章連結就要每年換一次,不太合理。

而且沒有獨立頁面的話,要分享或引用單篇文章也很不方便,對讀者和搜尋引擎(SEO)都不太友善。

如果還是想手寫 HTML 的話怎麼辦?

最簡單的辦法就是建立一個文章列表,只顯示日期跟標題就好了,像是這樣:

  • 2025-01-01 - 今天晴空萬里
  • 2025-01-02 - 今天狂風暴雨
  • 2025-01-03 - 今天陰晴不定

正式開工

選擇程式語言

我這邊選擇用 PHP 來做。為什麼呢?

現在很多人都只把 PHP 當成後端語言,但大家好像都忘了它最基本的特點:「原生支援嵌入 HTML」,這超適合用來寫生成器吧?

文章頁面生成器

  1. 切分文章檔案(一次性)

    首先要把原本塞在 index.html 裡的所有文章切分出來,存成單獨的 HTML 檔案,這個是一次性的,用 Python 簡單解決。

    再來我希望檔案可以按日期排序,同時又想保留中文標題方便辨識。所以決定用 20250102-文章標題.html 這種格式,這樣既能夠排序、又方便辨識,反正檔名只是給我自己看的,不會直接影響網址。

    最後是每篇文章都要取英文 slug,這邊就藉助 LLM 幫忙生成,自己再挑選、審核、修改就好。

  2. 建立網站共用模板

    接下來要做 template.php,這個檔案會是所有頁面的骨架。它要能根據傳入的參數來動態產生不同的內容,例如:導覽列、內文之類的。

    基本上就是把網頁抓進來,把需要動態產生的部分挖空,填入簡單的變數判斷就完成了。

    這部分倒是蠻順利的,因為 PHP 本身就很適合做這種事。

    // 模板範例
    <html>
        <body>
            <?= $content ?>
        </body>
    </html>
  3. 文章物件化

    這個算是額外做的,就只是比較有架構而已,功能包括:

    • 讀取文章檔案。
    • 解析出標題、日期、slug、內容等資訊。
    • 輸出格式化的內容。
  4. 批次產生頁面

    有了文章物件之後,接下來就是寫一個流程來:

    • 掃描所有文章檔案。
    • 轉換成文章物件、按照日期排序。
    • 套用模板來產生對應的資料夾和 HTML 檔案。
    • 大功告成!

其他生成器

  • 文章列表生成器
    • 用來顯示所有文章的日期、標題、連結,就是前面有提到的「文章列表」。
  • 文章分頁生成器
    • 每頁顯示 10 篇文章,產生首頁與分頁等頁面。
    • 這裡我參考其它部落格的架構,頁面路徑如下:
      • /index.html ← 首頁
      • /page/2/index.html ← 第二頁
      • /page/3/index.html ← 第三頁
      • ...
    • 按鈕的部分簡化為只有「上一頁」、「下一頁」就好。
    • 擴充模板檔案,透過參數來顯示換頁按鈕。
  • RSS Feed 生成器
    • 擴充文章物件來取得 RSS 需要用到的參數、處理網址等等功能。
    • 製作 RSS 模板來讀取參數。
  • sitemap 生成器

    還沒做...反正只是給機器人看的,之後再補個 sitemap 模板去套用就可以了。


結語

自己造輪子還挺有趣的,要不是有這個部落格,我還真沒機會搞些有的沒的,不錯不錯。

最後,推薦大家直接使用 Hugo 就好了(?)

也可以嘗試看看我推薦的 熊部落格。(天啊,我終於可以連結到自己的文章了!)

DJ SET

最近很喜歡在 YouTube 上聽一些 DJ SET。

就是 DJ 會親自挑選音樂、混音、銜接,串成大概一小時的混音組曲。

你能從曲目的變化裡感受到他的品味,也能聽出他對音樂的熱情。每一首歌的銜接、節奏轉換、情緒起伏,都是用經驗和情感堆出來的。

這是一種「有人在和你分享音樂、跟你在同一個空間裡 Chill」的感覺。就好像是你去同學家玩,他拿出自己最喜歡的音樂收藏,而你們就只是圍著錄音機,一起默默的聽著。

這種體驗是演算法的自動播放難以做到的,演算法只是在嘗試模仿你的喜好,而 DJ 則是在分享他自己的靈魂!

備註

逛全聯

慢慢逛

我的個性就是喜歡把超市當成尋寶遊戲在玩,每次都會慢慢逛,看看有沒有新推出的酷東西。

但我家人就不同了,他們習慣先列好購物清單,十分鐘內買完就閃人。所以每次一起逛超市,我都會被催著結帳,逛得超有壓力~

外送平台

由於我們家住在半山腰,買東西真的很不方便,光是開車、停車就要花不少時間。現在有了外送平台,手機點兩下就能送到家,確實方便多了。

但說實話,這樣就少了逛街的樂趣,每次買的都是那些東西,生活變得有點單調無聊。對我來說,逛超市不只是買東西,更像是一種放鬆和探索的時光。

網路曾經只是生活中的一部分

又到了懷舊幹古的時間。

讓我們回到 2010 年,那時的網路對我來說,只是睡前的一小段私人時光。

每天下課回到家之後,我會打開電腦、點開喜歡的部落格來讀最新的文章,然後到遊戲論壇裡看看有沒有新的留言;接著和認識的網友、同學聊聊天,最後一邊聽音樂一邊打遊戲,直到睡覺時間。

關掉電腦後,就回到原本的生活。

那時候,網路和現實生活之間還有明顯的界線,它只是生活中的一部分,可以隨時進入,也能輕易離開。因為時間有限,每次上線的機會都顯得特別珍貴,也會更有意識的上網。我甚至會提前分配好時間,例如,玩一小時的線上遊戲,看半小時的影片等等。

那時的上網體驗,還充滿著不少主動性與目的性。至於接下來發生的變化嘛,我想就不用多說了。

Old Man Yells At Cloud

Bear Blog ʕ•ᴥ•ʔ

今天想來推薦一個我很喜歡的部落格平台:Bear Blog

特別推薦給:正在尋找「簡單、可靠的寫作空間」,並且「不熟悉或不想處理網頁技術」的人。

我推薦的幾個理由

  • 超低門檻:基本功能免費,從註冊到開始寫作,大概只要 2 分鐘。
  • 極簡設計:專注於文字內容本身,介面非常乾淨簡潔,讀取超快。
  • 開放客製:內建 29 種主題風格,也開放自行調整或重新設計。
  • 文章支援 Markdown 開放格式:
    • 如果你還不熟悉 Markdown 的話也不用擔心!你不需要特別去背語法,只要在網路上搜尋「Markdown Editor」就可以開始了。
    • 現在大多數筆記軟體、生產力工具都支援 Markdown,像是常見的 HackMDObsidianNotion 等等,你可以直接在筆記軟體上面寫作,再把內容複製過來發佈。
  • 值得信賴:參考「熊宣言」的承諾,平台不會倒閉、不會出售、不會有廣告
  • 備份功能:當然,不要完全相信別人的承諾,官方後台還是有提供「Export all blog data」的按鈕,讓你能定期備份所有文章的資料,完全不用擔心資料不見。
  • 內建 RSS Feed 功能:方便讀者訂閱追蹤。

另外,Bear Blog 還有個很不錯的社群,可以從「Discover」頁面來尋寶,不過主要是以英文內容為主就是了。

這裡有一些我找到的有趣的部落格: prickly oxheart / Kami's Corner / ava's blog / Absurd Pirate's Internet Blog / The Grizzly Gazette / JetGirlArt / Living Kindfully

注意事項

  • 免費版:不支援內建圖片上傳,需要自己處理,例如上傳到 imgur 等圖床之後再嵌入。
  • 付費版:包括自訂網域、上傳圖片等等功能。
    • 月繳:5 USD
    • 年繳:49 USD
    • 終身:189 USD