如何為自己的博客文章自動添加移動版本(目前僅支持博客園)


前言

從2005年開始撰寫第一篇技術博客,我也算是國內最早的一批技術博客作者之一了。其中中斷過一段時間,但2008年重新啟用之后,這個習慣一直保留到現在,目前已經累積的文章數量已經達到1226篇。這些文章絕大部分都是原創的,轉載的有特別注明,文章內容大多是自己實際工作中遇到的問題和解決方案,或者我為企業做顧問服務、培訓服務時解決的問題,我尤其喜歡在解決問題后做一點總結,並整理成一篇博客文章分享出來,一來是對思路的重新梳理,同時也希望也許日后能對其他人也有所幫助。

image

這些年隨着移動互聯網逐漸占據主流,我也參與一些移動Web開發的實踐中,有幾次都想過這樣一個問題:如何讓這些博客文章更好地在移動設備上進行閱讀呢?從技術上說,PC版本的瀏覽器,因為屏幕較寬,所以更加易於閱讀博客文章,而同樣的網頁在手機上面來看,效果就會差很多。

image

大家可以看到,如果不做任何地處理,那么手機瀏覽器只會簡單地將頁面按照比例縮小。這樣的結果往往就是字體很小,閱讀困難。但如果像下面這樣,是不是會更加好一些呢?

image

從這些年的實踐來看,我總結出來移動化Web頁面應該有幾個特點

1.字體要略大一些,內容上應該要有所過濾,去除干擾元素,讓用戶可以專注內容

2.布局上面要適應移動設備的寬度和高度

3.交互方式,應該考慮到用戶是用觸摸,而不是用鼠標。鏈接和按鈕要醒目。

4.不要過多地讓用戶輸入內容

 

所以說,網站的移動化其實涉及到頁面布局的重新設計。而可喜的是,在移動化Web 開發方面,已經有一些較好的框架。我很推薦的是jquerymobile。請參考官方的網站:

image

 

解決方案

今天早上起來花了一點時間,做了一個功能,能夠直接將博客文章轉換為手機的版本。使用方式是這樣的:

1. 找到你要轉換的博客文章地址,例如 http://www.cnblogs.com/chenxizhang/archive/2013/05/20/3088196.html 

在PC版瀏覽器看起來是下面這樣的

image

2. 通過在這個地址前面添加一段前綴( http://webfeed.azurewebsites.net/home/displayonlineblog?url=) ,也就是說,完整的地址是:http://webfeed.azurewebsites.net/home/displayonlineblog?url=http://www.cnblogs.com/chenxizhang/archive/2013/05/20/3088196.html。 如果有做過MVC開發的朋友一看就知道,這個是我設計的一個特別的Action。里面的功能其實也不難,就是先下載博客原文的內容,然后再結合框架進行重新格式化。

【重要】需要注意的是,我做的這個功能,是會自動識別瀏覽器的,如果你仍然是用PC版瀏覽器打開上面提到的地址,那么看到的界面將是下面這樣

image

但如果你真的使用移動設備,例如手機來訪問,就會看到下面的效果

image

值得一說的是,我並不是簡單地改了部署,對其中的內容元素也會有些特殊的處理。例如針對圖片,我會添加一個樣式表,讓他們能自動適應手機屏幕尺寸。(哪怕實際上它的寬度是很大的)。同時,對於博客文章一些內部鏈接(鏈接到博客園的任意其他文章),會自動將鏈接地址換成移動化版本的),細心的朋友可以從下圖中看到實際上里面的鏈接地址是換掉了。

image

 

上面說到的這個方法,很簡單實用,你可以不受任何限制地使用這個地址格式,為你的博客文章自動“生成”一個移動的版本,你可以將這些鏈接分享給你的朋友,讓他們在移動設備上面可以更好地瀏覽你的文章。

 

【備注】大家可以會對webfeed.azurewebsites.net這個網站感興趣,這是我最近的一個企業培訓練習項目(大家還沒有完全做完),這個網站分別演示了如何整合PC版瀏覽器和移動版瀏覽器(上面說到過了,他們會有不同的布局和交互功能),使用的技術是ASP.NET MVC 4 + jQuery Mobile + Knockoutjs 等。這個網站是托管在微軟的Microsoft Azure中的,當前我使用的是免費模式,可能有時候比較慢。請見諒。

【備注】我將一直會保留這個網站。

 

改進的解決方案

我很快意識到,上面那個地址有點復雜,讓你去每次拼接地址似乎有點麻煩。所以我想了一個辦法,能不能讓這些網頁打開的時候,就自動地生成好移動化版本的鏈接呢?感謝javascript,我們能做到。

首先,你可以進入你的博客管理后台

image

你可以將下面這一段腳本引用放在任何你想要的位置

<script src="http://webfeed.azurewebsites.net/mobilelink.js"></script>

例如,我是放在頁面頂部的

image

 

保存設置后,在任何博客文章顯示出來后,就會在頂部自動顯示一個鏈接,如下圖所示

image

【備注】你的博客首頁,因為不是文章,所以實際上點擊之后,不會產生具體的內容

image

如果你打開了具體的博客文章,則那個鏈接就會有作用了。

image

 

 

順便提一下,如果大家希望更好地搜索我所有的博客文章,可以直接訪問http://webfeed.azurewebsites.net

image

在手機端訪問的效果是下面這樣的

image

這個網站甚至已經整合到了微信里面,如果有興趣,可以添加 dev2db 這個微信公眾號,直接在里面可以搜索博客文章,詳情請參考下面這個文章

http://mp.weixin.qq.com/s?__biz=MjM5ODEyNjE5OA==&mid=200117429&idx=1&sn=239ab455e80f4bfe1ac5bdeb9c94d41b#rd

 

 

以上,希望對大家有所幫助,拋磚引玉,如果大家有更好的做法,也歡迎分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM