embed_html – 制作可獨立使用的 HTML

, , , , at June 26th, 2010 by 小影

有天想把有圖有 Stylesheet 有程式的 HTML 封裝到程式中。當然了 HTML 只是一個文字檔案,要加進程式是很簡單。但要同時把所有有關的圖片檔都掛上在管理上有點麻煩 — 通常解決方法有三:

  1. 先把所有東西壓縮,在需要顯示前解壓到適當地方再讀取
  2. 把所有連結的圖片、Javascript 和 CSS 都轉用 Absolute Address,或在 HTML 檔中用 base 標記,讓程式懂得在顯示時即時在網路讀取
  3. Data URI Scheme 的方法直接用 BASE64 在連結裡封裝附件內容

第一點的難處是它假設有文件系統,在手機上有時這十分困難、麻煩、或者不穩定。
第二點的難處是它假設有網路,然而有些人的手機是沒有網路的,就算有,每次顯示文件時也要讀取網路不是十分好的做法。
第三點是個解決方法,很多公司的電郵通訊早已用這方法直接把圖片加進電郵當中,這樣用戶就不用在開電郵時看見一個個大交叉了。當然要這樣做就要把圖片和附件用 BASE64 編碼加在 HTML 中 — 我們當然不會用手做這種笨工作 — 有這樣的工具嗎?

一時之間找不到,於是就動手把它寫出來了。

embed_html 是一個 ruby gems ,首先假設你已安裝 ruby 和 rubygems,那它的安裝很簡單:gem install embed_html

在 Mac/Linux,使用方法如下:

  eurl <input-url> <output-file>

例如想下載 wikipedia 首頁:

    eurl "http://en.wikipedia.org/wiki/Wiki" wiki.html

它也支援本機的檔案:

    eurl index.html index-embed.html

產生的檔案會包裝所有連結的圖片、CSS 和 Javascript 檔案。

在 Windows 下要這樣用:

ruby -S eurl <input-url> <output-file>

軟件用 BSD License 開放源碼,可以到 github embed_html 找到。

P.S. 請將本軟件用在正義的地方,不要用在邪惡的地方,謝謝。

P.S.2. 忘了 push 最新的 code 到 github 上… 在 gem 裡的 code 才是最新的

相關文章

  1. 1 Trackback(s)

  2. Aug 16, 2010: embed_html – 制作可獨立使用的 HTML at MyHeartFly

Post a Comment