make excerpt in Ruby
大量地方都會有這樣的問題:給大段文字做一個截斷當作摘要,但是一定要保證 html markup valid。
最簡單的方式是刪掉所有的 html 標籤然後截斷,這樣做的結果是產生一陀文字,沒有換行,沒有任何樣式!
方法是:
tr.gsub(/<\/?[^>]*>/, "")
比較好的辦法是像這篇文章裡說的利用REXML和一個佇列去完成
,下面的評論中提到用 HTMLEntities
可以改善截斷問題,但是在測試中發現會有UTF-8 invalid 問題(需要3bytes,只傳2bytes,不知道是不是我資料的問題),於是乎放棄HTMLEntities,這樣會有一個小bug,截斷後末尾會有個亂碼,八成是UTF-8 被截斷了。
還有一個
貌似很爽,但是在我這的FreeBSD 6.2 + Ruby 1.8.6 + libtidy_051026 + rubytidy 1.1.2 上遇到一個Bug
,暫時放棄
評論:
這個問題也困擾了我很久,有時候截取出來的摘要包含了一半的標籤,結果頁面就都亂了。。。
相關推薦
make excerpt in Ruby
大量地方都會有這樣的問題:給大段文字做一個截斷當作摘要,但是一定要保證 html markup valid。 最簡單的方式是刪掉所有的 html 標籤然後截斷,這樣做的結果是產生一陀文字,沒有換行,沒有任何樣式! 方法是: tr.gsub(/<\/?[^>]*&g
Merge array and hash in ruby if key appears in array
I have two arrays one = [1,2,3,4,5,6,7] and two = [{1=>'10'},{3=>'22'},{7=>'40'}] Two will have one.length hashes or less. I want a n
How to write a cell address encoder in ruby.
How to write a cell address encoder in ruby.I know that (unless you make a living building spreadsheets) you will probably never had to write an encoder li
Destructuring in Ruby
Destructuring in RubyIt’s blocks all the way down!What if I told you there was a way to do this in Ruby?:destructure def adds(a: 1, b: 2) a + bendadds(a:
Mastering data structures in ruby — linked lists
Mastering data structures in ruby — singly linked listsA singly linked list (or just linked list) is a data structure that you can use to represent almost
Mastering data structures in ruby
Mastering data structures in Ruby — Doubly linked listsThe main difference between single and doubly linked lists is that in the later each element holds a
#to_s or #to_str? Explicitly casting vs. implicitly coercing types in Ruby
#to_s or #to_str? Explicitly casting vs. implicitly coercing types in RubyType coercion is the changing of an object’s type into another type, together wit
Mastering data structures in Ruby — AVL Trees
Mastering data structures in Ruby — AVL TreesBinary search trees, or BTSs for short, are data structures designed to perform fast lookups on large datasets
Mastering data structures in Ruby — Binary Trees
Mastering data structures in Ruby — Binary TreesA tree is a data structure that allows us to represent different forms of hierarchical data. The DOM in HTM
Memoization in Ruby
這裡的Memoization就是將ruby的方法或lambda返回值快取起來的技術。快取方法結果:舉個最簡單常用的例子:Ruby程式碼 1. class ApplicationController < ActionController::Base 2.
Three teachers who make differences in my life
人生路漫漫,從小到大,經歷過九年義務教育的我們也受到過很多老師的薰陶,而已經進入大學的我也會回想起那些給我帶來別樣意義的老師們。 親愛的老李 老李是我初中的班主任,也是我的歷史老師。依稀記得上他的課會偶爾打瞌睡,然後被他發現點名批評,老李講的歷史課還是蠻有味的,無奈我不太喜歡這些偏文科死記的東西。在初三那
《笑傲股市 How to Make Money in Stocks》讀書筆記
友情提示:技術分析有一個致命弱點,即掌握它的人越多,它的效果就越差,因為技術的掌握會反過來影響人的行為。 第一部分 CAN SLIM法則 第一章 最重要的選股祕訣 本書概述,略 第二章 學會識圖以
Eclipse "no make found in PATH" 簡單解決方法
下載了一個新的eclipse,高高興興地把自己的專案導進去。啊咧!居然報錯了圖一,我也是醉了。然後各種百度,上面的解決方法都用了,還是不行。苦逼了一整天,剛開始想著可能是ndk沒有的問題,看了一下,哎呀果然沒有ndk,如何把ndk加到eclipse裡面,還是不行!好吧,再次
make: Warning: File `Makefile' has modification time 1.8e+06 s in the future
通過 系統 -m time war rom 我想 warning mes 通過這個錯誤提示信息我們可以知道,Makefile的修改時間點是Linux當前的一個未來時間點。可以通過修改Linux的當前時間來解決這個問題: $sudo date -s ‘hh:mm:ss yy
JavaScript and Ruby in ABAP
ABAP. Java JavaScript Ruby SAP Netweaver裏有個mini JavaScript engine CL_JAVA_SCRIPT, 對於Js code的編譯和執行都是用system call完成。 只能當玩具用:report SJSEU 執行結果:120
解決Cannot find config.m4 Make sure that you run '/home/php/bin/phpize' in the top level source directory of the module
編譯安裝 -o rec 找不到 extension home ring ins 擴展 oot@DK:/home/daokr/downfile/php-7.0.0/ext/mysqlnd# /home/php/bin/phpizeCannot find config.m4.
[Tools] Using colours in a NodeJS terminal - make your output pop
styles mage nod -c splay bsp agen per span Use can use colour and styles to make it easy to spot errors and group common functionality in
eclipse cdt Program "make" not found in PATH
在說這個問題之前先介紹下安裝環境: 系統環境:win7 x64 1. 下載jdk 安裝包 安裝並設定系統環境變數。例如: D:\Program Files\Java\jdk1.8.0_131\bin;D:\MinGW\bin; 在cmd 命令列中輸入 jav
Plotly 出錯 Make sure that you're logged in as username.
因為要用 python 畫圖,搜到 plotly 這個包不錯,於是安裝,沒想到這是噩夢的開始… 其實,當看到用一個開源包的時候竟然還要註冊的時候,我的心裡是***的。但是沒辦法,畫圖得有個 API key,這個 key tm 還只能註冊領取。於是只好註冊了。註冊以後,還要做如下事情才
How to make a GroupBox in website development by VS.NET2005
Sometimes we need to make a GroupBox on my webpage.Using the HTML object(fieldset ,legend) we can make it out! source: <fieldset style