廢文小天地

隨意分享,隨便看看

部落格問題挑戰

我在 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

【筆記】交換價值&體驗價值

先打個預防針

以下筆記內容只是個人的想法與啟發,部分內容與靈感來自最近在看的《雲端封建時代》這本書。


交換價值&體驗價值

  • 交換價值(exchange value):注重結果與可交易性,容易量化、標準化。
  • 體驗價值(experiential value):注重過程與參與感,難以直接量化或標準化。

四種面向:加入生產者/消費者的角度

  • 生產者 × 體驗價值:勞動過程本身的樂趣、挑戰、創意、滿足感。
  • 生產者 × 交換價值:勞動結果能換來金錢、回饋或其他回報。
  • 消費者 × 體驗價值:消費者在消費過程中得到的樂趣、參與感。
  • 消費者 × 交換價值:消費者獲得可用的產品或服務。

🌰 舉個栗子🌰

興趣導向 YouTuber

  • 生產者 × 體驗價值:享受拍片、剪片的創作樂趣、表達想法的滿足感。
  • 生產者 × 交換價值:累積作品、訂閱數、廣告分潤、斗內支持。
  • 消費者 × 體驗價值:被創作者的個性吸引、欣賞獨特內容、找到社群歸屬感。
  • 消費者 × 交換價值:從影片中獲得知識或娛樂。

注重體驗價值:更新比較隨興、內容真誠有溫度、可能沒有穩定收入、不見得需要迎合演算法。

商業導向 YouTuber

  • 生產者 × 體驗價值:享受專業製作的成就感與滿足感。
  • 生產者 × 交換價值:廣告分潤、業配收入、品牌價值。
  • 消費者 × 體驗價值:觀看穩定、高品質、專業的內容。
  • 消費者 × 交換價值:獲得實用資訊或具體產品推薦。

注重交換價值:更新規律、品質精良、收入穩定、可能需要迎合演算法。

個人網站、部落格

  • 生產者 × 體驗價值:享受寫作與思考的樂趣、與讀者交流的滿足感。
  • 生產者 × 交換價值:累積寫作文章、思想筆記、建立個人品牌、擁有獨立網站。
  • 消費者 × 體驗價值:從文章中獲得啟發、共鳴或陪伴感。
  • 消費者 × 交換價值:得到具體的知識、資訊或娛樂內容。

注重體驗價值:寫作動機單純,內容較有個性,不需要迎合演算法。


列出事情的優先順序

不必同時追求四種價值,也沒有固定的最佳組合。可以試著問自己:

  • 我更在意過程的樂趣,還是成果的回報?
  • 我是以生產者的角度出發,還是以消費者的角度為主?
  • 在這四種價值裡,哪一種需要優先考慮?哪一種比較次要?
  • 如果希望兼顧不同價值,該如何平衡與分配精力?

不同目標會影響做事的方法、標準與心態,了解自己追求的價值,才能找到方向與平衡。

最後還是要提一下 AI

對體驗價值的影響:

  • 挑戰感消失:像是開了外掛,省略了打怪升級的過程。
  • 價值感被稀釋:原本的專業顯得沒那麼稀有。
  • 新的樂趣:轉向「設計、組織、引導 AI」,更像是「指揮」而不是「工人」。
  • AI 帶來的是效率,但樂趣往往在「低效率的過程」裡。

對交換價值的影響:

  • 提升產出效率:快速累積成果或資源。
  • 可以做出以前自己做不到的事情。
  • 改變競爭環境:競爭變成誰更會用 AI,沒有用 AI 的人可能會比較吃虧。
  • 當然也有可能提升「純手工」的價值啦。

臺灣人才看得懂

333009 09999 22228 2888 0077 407

500 2220 2209 2209 338 444099

Dumb Phone