打造優雅高效的寫作環境

寫作是一件很有趣的事情,長期形成良好的寫作習慣可以幫助我們有條理的處理解決問題,同時給人生留下點回憶也不錯。在我們很小的時候也許就有記日記的習慣,大腦的記憶量畢竟很有限,所以我們用紙和筆來記東西,但是傳統的紙和筆存在很大的問題,無法長久的保存東西。進入互聯網時代後我們有了很多選擇,各類網站博客、專欄、微博、公眾號等可以讓我們寫作的地方,但是這些都無法解決以下幾個問題。

  1. 排版。編輯器不支持Markdown語法。每次看到那種糟糕的排版都讓人沒有看的慾望了。很多寶貴的時間都浪費到排版上了。
  2. 版本管理。如果有多個版本常規的博客只能你自己來保存了,一旦出錯就很難回到之前的版本了。
  3. 難以長期保存。諸如網站關閉或者電腦損壞丟失都會導致之前的資料丟失,資料很難長期保存。
  4. 網站難看。很多網站博客只提供一些難看的主題,你很難定製好看的主題,大部分這些難看的主題對移動終端還不友好。
  5. 文章發布流程繁瑣。很多網站的編輯寫作界面都很糟糕,發布起來還很麻煩,如果能通過簡單的命令就可以發布上去是多麼優雅的事情。
  6. 不支持自定義域名。難以個性化的域名很難體現個人的品牌。
  7. 受限的寫作環境。一些網站為了通過政府部門的內容審查,你寫的內容很可能不經意被強制刪除,總之在別人的地盤上你的東西不一定是你的。

以上就是可能存在的幾個問題,我理想的寫作環境應該是可以解決上述幾個問題的,下面我通過幾步來打造一個專屬於我們自己的優雅的寫作發布環境。

環境搭建

博客系統(Hexo) & 主題(Next)

首先我們需要一個博客系統,目前市場上存在很多完整的博客系統:如Wordpress或一些CMS系統等,但是這些系統都太大,很臃腫。我們需要一個輕量級別的博客系統,並且能配合GitHub Pages來管理我們的文章及相關信息。Hexo就是一個滿足我們需求的博客系統。

在Mac下通過命令行安裝:

npm install hexo-cli -gnhexo init blogncd blognnpm installnhexo servern

如果是Windows或者Linux系統也可以通過如下命令來安裝,Windows系統需要提前安裝好NPM軟體包,安裝流程可以通過Google或者官方文檔來查看。

這時候你已經部署好了Hexo博客系統,並且初始化好了博客系統所需的文件,blog就是你的博客根目錄。這時候我們需要安裝一款名為Next的主題,這個主題也是本博客目前使用的主題,你也可以選擇你自己喜歡的主題。Next主題很強大,響應式設計並且支持很多第三方服務的特性,這個大家可以通過官網Hexo來查看。

經過Next主題官方文檔的指導後,相信你已經配置好了該主題。那目前我們已經完成了博客系統和主題的配置,接下來需要把博客系統發布到互聯網上,這樣所有人就可以來訪問我們的博客了。

系統部署(GitHub Pages)

如果是傳統的個人博客的話,一般需要租一台在線的VPS系統或者空間來存放我們的軟體,但是這樣你需要操心很多事情了,不僅需要自己維護伺服器,還需要每月付費供養伺服器,比較麻煩。我們有更好更優雅的方式,就是通過GitHub Pages來存放我們的博客系統。具體安裝介紹可以看官網GitHub Pages。

為什麼我們需要GitHub Pages來部署我們的系統,一方面是因為GitHub Pages是免費的,很多伺服器的維護都不需要你操心,更重要的一方面是你可以用Git來管理你的博客,通過幾條簡單的命令就可以發布、回滾之前版本來管理你的博客網站。

git add --alln~$git commit -m "Initial commit"n~$git push -u origin mastern

上面的命令就是在你的blog目錄裡面操作的,一旦你註冊好了一個GitHub帳號後,在上面建立一個倉庫(repository)後,在你計算上設置好SSH Key來打通和GitHub倉庫的通道後,你就可以通過上述幾條命令來把你本地的代碼上傳同步到倉庫裡面去。用人話講就是,你通過那幾條命令把你的網站上傳到GitHub的網站上去了。然後你可以訪問: http://username.github.io ,這網址就是你的博客地址,需要把裡面的username替換為你的GitHub賬戶名。

域名綁定

畢竟 http://username.github.io 這種域名無法體現我們對逼格,可以在Godaddy或者萬網註冊一個域名去,可以以你的名字來註冊,一般短的都註冊不到了。萬網的域名如果託管到阿里雲到話需要備案,至於備案流程的話阿里雲會有相關的流程幫你做,大概需要半個月之久。備案後我們可以在域名管理里把域名解析到 http://username.github.io ,如果覺得萬網的DNS不好的話可以把DNS解析放到DNSNode上面去,然後在裡面設置CNAME子域名。

然後在blog目錄裡面的source目錄下新建一個CNAME文件,文件內容就是你自己的域名。

這樣你可以直接訪問你的域名就可以訪問你的博客了。實際上做了一次跳轉。

運營統計

接下來我們需要對博客和主題進行一些配置,以達到更好的一些效果,比如評論分享(多說)、文章閱讀次數(LeanCloud)、文章分類標籤、側邊欄的設置、第三方服務的配置(Google Webmaster & Analytics、騰訊站點分析)。這方面可以看Next主題的配置文檔。

大概說下流程,評論可以在Next主題裡面啟用多說評論系統(你需要註冊一個多說賬戶),文章閱讀次數可以參考這篇文章。文章分類標籤可以在用Hexo命令來新建分類和標籤頁面,這個可以參考Hexo官方文檔,如果你想對主題CSS等文件進行一些修改後發現並沒有效果的話,那可以先清空Hexo資料庫和產生的文件。進入blog目錄在命令行執行:

hexo clean #清空Hexo資料庫和產生的文件nhexo d -g #重新產生博客文章並發布到GitHub,前提得在Hexo里配置好GitHub賬戶n

側邊欄得配置可以在Next主題裡面配置。第三方服務等都可以參考Next主題的配置文檔。這樣通過Google的Webmaster你可以把你的站點設置的對搜索引擎更友好,這樣別人就可以方便的通過搜索引擎找到你的文章了,提高流量了。同時設置騰訊分析和Google Analytics可以讓你很方便的了解網站的流量和訪問情況等。騰訊分析可以每天或每周訂閱網站統計分析報告。

寫作發布

搞定了煩人的環境配置後,我們開始了最重要的部分:寫作!一切都是為了更優雅的寫作。

Markdown語法

Hexo博客系統的寫作方式很簡單,通過Markdown語法來寫作。首先讓我們新建一個文章吧。

hexo new title #title是你的寫作nhexo d -g #重新產生博客文章並發布到GitHub,前提得在Hexo里配置好GitHub賬戶n

這樣在blog/source/_post目錄就產生一個title的md文件,這個文件就是我們要寫作的,當然有個小麻煩在於你每次敲完命令都需要去找這個文件,我們可以通過以下的設置來讓hexo系統自動用軟體來給我們打開這個要寫作的文件。首先在blog目前新建一個scripts的目錄,然後在裡面新建一個open-tools.js的文件,文件內容如下:

var exec = require(child_process).exec;n// Hexo 3nhexo.on(new, function(data){n exec(open -a "/Applications/Mou.app" + data.path);n});n

這個文件的意思就是新建一篇文章後hexo會自動用Mou這個app來打開這個md文件,然後你就可以用Mou這個Markdown編輯軟體來寫作了。

至於Markdown語法怎麼搞,網上有很多教程,但是為了直觀的給你一個感受,你可以看看我這篇文章的md文件,然後對比下輸出的文章就大概理解Markdown的精髓了。

編輯工具

目前我用Ulysses來書寫Markdown文件。

寫作發布流程

  • 在Mac打開iTerm終端

cd blogn

  • 新建文章並用Mou編寫文章內容

hexo new titlen

  • 發布文章到GitHub Pages

hexo d -gn

  • 修改文章後繼續執行第3步即可重新發布上去

版本管理

如果我們想回到某一個寫作版本的話也可以很方便的通過GitHub倉庫裡面進行回滾操作。每次當我們執行hexo d -g命令的時候實際上就是產生一個版本,你可以登陸到GitHub倉庫裡面看到每次提交的版本,當然這個倉庫存放的是已經產生的Html文件,也就是在blog目錄裡面的public目錄,這個目錄的所有文件都會被發布到GitHub倉庫裡面去。但是source/_post目錄裡面存放的才是你真正的源文件,都是些md文件,那這些文件並沒有被GitHub倉庫管理,所以為了對這些源文件進行版本管理,你需要在GitHub新建一個倉庫用來存放blog目錄,blog目錄裡面有些文件並不需要發布到GitHub,這些不需要的文件你可以在.gitignore(存放在blog根目錄下,如果沒有你可以新建一個)裡面寫明,我的這個文件內容如下:

.DS_StorenThumbs.dbndb.jsonn*.lognnode_modules/npublic/n.deploy*/n

這裡面的node_modules目錄裡面放著一些node的模塊,public目錄存放著hexo產生的html文件(也就是你的博客)。當你部署好這個倉庫後,你可以通過以下git命令來把你的博客系統發布GitHub倉庫:

git add . #把此次更改寫入git緩存ngit commit -m "some changes" #把此次更改提交到本地庫里去ngit push #把本地庫更改同步到GitHub遠程庫里去ngit status #查看本地git庫狀態n

在這個庫里你可以找到你寫作源文件的所有發布的版本,當然也可以回滾到任意版本中去,相當簡單方便。

圖床

當我們寫作的時候,經常需要引用圖片到文章里去,如果圖片少的話我們可以直接把圖片放入每篇文章的目錄裡面,然後發布到GitHub里去,但是這樣會導致GitHub倉庫變得越來越大,並且同步會非常慢。所以我們需要一個穩定強大長久的私人圖床。一般小型網站的圖床都不做考慮。

新浪微博圖床

這個可以安裝一個Chrome插件來實現(微博圖床)。

微博圖床的優點就是自動給你產生不同尺寸的圖片,還貼心的給你Markdown的語法,但是一個問題可能出在新浪微博屏蔽這種外鏈了,長期會有一些隱患的。

七牛雲存儲

付費的存儲空間裡面七牛雲存儲穩定而且不錯,免費認證的用戶就有10GB存儲空間,每月10G下載流量,足夠博客用了。當你註冊後建立一個新空間後,下載一個qrsync同步工具,可以很方便的把你本地的文件推送到七牛雲存儲空間裡面,具體安裝文檔你可以看官方的說明文檔,我這裡貼出來這個工具的配置文檔(conf.json)供你參考:

{n "src":"your src dir",n "dest":"qiniu:access_key=123&secret_key=456&bucket=789",n "debug_level": 1n}n

在這裡把src替換成泥實際目錄的絕對路徑。dest裡面替換access_key、secret_key及bucket。

這樣每當你在src目錄里添加圖片後,執行如下命令即可把src目錄的文件推送到bucket裡面。

qrsync conf.jsonn

需要注意的是src目錄裡面不需要建立子目錄,因為這個同步工具會忽略子目錄,直接把文件全部放到src根目錄即可。

那怎麼訪問bucket裡面的圖片呢?每個存儲空間都有一個域名,那任何一張圖片訪問的形式就是:http://七牛存儲域名/xxx.jpg 。那麼所有圖片都可以這麼調用外鏈。考慮到存儲空間有流量的限制,為了防止別人調用你的圖片,你可以在存儲空間管理裡面設置白名單,把你的域名添加進去即可,這樣只有你的域名可以訪問這個圖片等外鏈了。

如果你覺得七牛雲存儲無法長期存活的話,你可以把本地這個圖片文件夾同步到OneDrive網盤裡去,你甚至可以把所有的文件都放到OneDrive裡面同步上去,這樣幾個地方互為備份,就可以長久的寫下去了。

優雅的寫作環境

這就是我覺得優雅的寫作環境了,任何不懂編程的人也可以這麼給自己搞一個長期寫作的地方,你只需要花幾十塊錢買一個域名,剩下的都是免費的。除了環境搭建前期稍微有點複雜外,一旦環境搭建好後剩下的工作就很簡單。

你擁有了一個非常簡單強大的寫作環境,流程簡單,只需要輸入兩條命令+寫一個MD文檔,不需要麻煩的排版,也不需要麻煩的發布,圖片等存儲也是非常簡單的,只需要一條同步命令即可在MD文檔里訪問圖片地址。然後你就可以在任何地方訪問你的博客了,各類文檔都有幾個地方互為備份(異地災備),長期下去你寫的東西都可以安全的存儲、訪問和搜索,同時有強大的版本管理,任何時候你都可以回滾到任意版本,不要擔心出錯。

優雅的寫作是為了更自由的表達自己。

我的微信公眾號:improve365


推薦閱讀:

在離線的移動硬碟中查找文件
進階玩法,那些牛逼的圖表是怎麼來的?
youtube-dl:一個命令行視頻下載利器

TAG:写作 | 工具 | 博客 |