[R語言資源]利用R語言寫作:以R語言寫電子書與寫部落格
3![[R語言資源]利用R語言寫作:以R語言寫電子書與寫部落格](https://i0.wp.com/r-lover.com/wp-content/uploads/2022/11/abc.jpg?fit=1249%2C656&ssl=1)
Last Updated on 2023-10-05
你曾經想過寫書跟寫部落格嗎?R語言也可以做這兩件事情?有多方便?這篇文章告訴你
自己有在寫R語言,想開一個部落格,跟大家分享自己的實戰經驗?累積多年的專業,想出一本書增加自己的名氣?
我介紹 blogdown 和 bookdown 這兩個R語言的套件,並列出了傳統寫作部落格和出書的流程,以及過程中的痛點,再以R語言的這兩個解決方案,推薦你為什麼該利用R語言寫作。
開始在網路上寫作
你曾經想過,想要出版一本書,或是曾經嘗試過寫部落格嗎?無論是為了打造個人品牌、獲得名氣、賺取廣告收入,或者想要留下紀錄,又或者是單純熱愛寫作,在網路上寫作的人越來越多。
在現今的科技發展之下,這兩件事情,都不是太困難,只要打開 word,你就可以開始寫作,整理後匯出成 PDF,就可以上網發表,或者更單純的,註冊一個 blogger,馬上就能夠開啟自己的部落格寫作歷程。
不過,雖然上述的流程很簡便,在實際操作時,還是會有一定的困難以及限制。今天這篇文章,我想介紹兩個R語言的套件,它們分別讓使用者可以輕鬆快速地利用R語言寫電子書,以及寫部落格,我會在底下討論利用R語言寫作有什麼優勢。
用R語言寫電子書
寫書的艱難
對寫作者來說,出版書籍包含下列流程發想主題、搜集點子、查找資料、制定大綱、決定寫作計畫、開始寫作、排版(包含章節/樣式/調整字級等大量工作)、校對、匯出、出版等。
這這些細項中,前段部分的主要工作是寫作及其前置作業,例如要如何有效的發想點子、有紀律的寫作,後段部分的任務則是把完成的文章從稿件轉換成準備印製或是準備發表的書籍。
現在有越來越多生產力工具,例如筆記軟體,正在幫助寫作者完善前段的工作,例如不以線性、瀑布式捲動的筆記,而改採節點(node)與關係連動的筆記,方便寫作者整理過去的點子,若有興趣可以參考這篇「為什麼讀很多、記很多但收穫卻很少」。

至於後段的工作,對作者來說,最是麻煩,寫作時能明確用字數和頁數衡量進度,也有實際創作之感,但排版沒有。要在草稿中來回調整,雖然已經有樣式可以套用,但光是在書稿各段加入大標、次標、小標,便要花去時間;有列點、引述的段落亦然。有了配圖與註解之後,遇上修正時也不容易,就算 word 的目錄功能可以派上用場,但每一個細鎖的工作逐漸累積,調整起來還是麻煩。
因此,類似 bookdown 這樣的套件,就能扮演救星。
bookdown 是什麼
bookdown 是RStudio工程師謝益輝所開發的套件,它讓R語言的使用者能夠沒有負擔的出版電子書。簡單來說,bookdown 利用「markdown 標記語法」解放排版、仰賴「Pandoc」減少轉換格式的困難。
有了 markdown 語法之後,想要將文字提升層級,只要加上井字號;若要插入超連結,則是加上中括號與小括號;想要加入程式碼區塊也很容易,只要使用反引號就行。因此,利用R語言裡面的 bookdown 套件,你可以在文章輕鬆插入不同語言的程式碼、加入數學公式、補上註解、甚至插入 HTML 的互動元件。
至於 Pandoc 則是方便輸出。以電子書來說,bookdown 同時支援轉換成 Gitbook、Bootstrap、PDF 等不同類型的檔案,它更以「一鍵出版」為口號,強調這個套件的易用性。

若你對利用R語言寫書有興趣,不妨參考謝益輝寫的這本專書 bookdown: Authoring Books and Technical Documents with R Markdown,他會傳授如何從 0 到 1 利用R語言出版書籍的方法。
用R語言寫部落格
寫部落格的麻煩
相對於寫書,部落格寫作的門檻低上許多。對於想寫部落格的人來說,大概有兩種方法可以開始寫作。
第一種是跟著「大平台」,例如老牌的網誌服務 blogger、痞客邦,或者是相對新興、以寫作專欄形式呈現的 Medium、方格子、Matters,還有電子信服務 Substack、Ghost,以及模板網站 Wix、Strikingly。

第二種則是自己架設網站,不再仰人鼻息,但這需要自己處理許多事情,包含伺服器、網域、網站佈景主題、SEO、額外處理延伸功能例如訂閱等。
上述兩種方法可說是各有優劣,前者方便、快速,但彈性低、流量大十分潤少,後者有技術要求、沒有工程支援,但可塑性大、不用擔心被平台吃掉廣告費。
底下我會介紹R語言套件 blogdown,它讓R語言使用者可以快速架好一個部落格。
blogdown 是什麼
blogdown 同樣是RStudio工程師謝益輝所開發的套件,它讓R語言的使用者能夠以最短時間、最多彈性的架設部落格。和 bookdown 一樣,它仰賴markdown 排版,另外則用 Hugo 輔助架站、以 Netlify 解決伺服器問題、憑藉 Github 幫忙更新。
不提技術細節,只談為什麼 blogdown 是一個好的選擇。想像一下開設部落格的場景,首先你要先處理主機,用平台沒這個問題、自行架站要去添購相關服務;接著是網域,平台同樣不用處理、自行架站可以購買或是利用免費服務;最後是網站本身的架構,平台部分是在圖型化的後台調整設定,自行架站則可以有高度彈性自行處理。
至於實際開始寫部落格文章,就和前面寫書類似,一般平台的後台類似 word,假設在文章中要配圖,可以從本機磁碟將檔案拖曳到文章編輯器當中,或是點擊清單中的「插入」;若要置換圖檔,則是刪除原有圖片,重新加上新的。
從上面的描述看起來,平台似乎是個好選擇。你完全不用擔心底層邏輯,大平台都幫你處理好了。實際上大部分情況確實是如此,包含基礎建設、網域、佈景主題、文字編輯工具(text editor)、流量來源(像是 Medium 跟痞客邦的 SEO 不錯,但後者有很多文章品質糟糕)等等都非常完整,缺點在於無法加上動態內容、沒辦法獲得太多分潤、客製化程度不足等。

此外,對技術寫作者來說,無法排版、無法標亮的程式碼區塊也是個問題。就R語言使用者來說,若是想在文章中加上R語言產出的圖表,例如你用ggplot2畫了好幾張圖表,做法會是先在R語言中匯出圖片儲存後,在跑到部落格後台中新增圖片。
倘若利用blogdown,可以分別解決上述的建設與寫作流程問題。blogdown介於全靠平台和全靠自建的兩個極端,它的確是靠自己架站,但不用太多程式基礎,只要會R、能懂R Markdown,跟著書中走就能架好部落格;它的寫作流程上有 markdown 語法支援,以上面加入圖片的例子來說,你在完成一篇R Markdown文章之後,它會自動輸出成Markdown語法、再轉換成為HTML。因此,它同時舒緩了架設部落格以及部落格寫作兩段歷程中的摩擦力。


若你對利用R語言寫部落格有興趣,可以參考謝益輝寫的這本專書 blogdown: Creating Websites with R Markdown,他會傳授如何從 0 到 1 利用R語言架設部落格的方法。
結語:無論是部落格或出書都要專注寫作
我想推薦這篇「網路時代下的寫作」,旨在推薦人們使用 R Markdown 寫作。其實,這篇文章提的兩個套件,做的事情都是減少寫作過程中的繁瑣,例如排版這種會讓人耗費心思的事情。
人們的認知資源有限,若是想靠著自己的技能,撰寫換取其他資源,必定想集中火力在輸出,不想被流程中非核心事項的摩擦力所拖累,而對於R語言的使用者來說,bookdown 和 blogdown 是你的好選擇,鄭重推薦。
若你吸收R語言新知,可以看這篇我先前寫的文章。想從安裝R以及安裝RStudio開始學習R語言,則可以看這篇。以後我會介紹更多R語言相關的資源,敬請期待!
本文由「愛上R語言」發布,非經允許請勿轉貼。
延伸閱讀:純文組學生該投資時間在學習寫程式上嗎?一文釐清 – 愛上R語言
2023-05-28 at 15:12 //
I have read your article carefully and I agree with you very much. This has provided a great help for my thesis writing, and I will seriously improve it.
2023-06-15 at 00:21 //
Your point of view caught my eye and was very interesting. Thanks.
2023-11-28 at 17:41 //
Thank you very much for sharing, I learned a lot from your article. Very cool. Thanks.