Module: Me2Text
- Defined in:
- lib/me2text/me2text.rb,
lib/me2text.rb,
lib/me2text/token.rb,
lib/me2text/version.rb,
lib/me2text/string_ext.rb
Overview
me2text 변환 메소드를 제공한다.
Examples
require 'me2text'
str = 'me2text는 "미투데이(TM)":http://me2day.net 의 글/댓글 작성 규칙이다.'
Me2Text.me2text(str)
=> "me2text는 <a href='http://me2day.net'>미투데이™"</a>의 글/
Defined Under Namespace
Modules: StringExtension Classes: Keyword, Link, Plain, Token
Constant Summary collapse
- VERSION =
"1.0.3"
Class Method Summary collapse
-
.doublequotize(text) ⇒ Object
:nodoc:.
-
.htmlize_linebreak(text) ⇒ Object
라인브레이크를 <br /> 태그로 대체한다.
-
.me2text(text, format = :html, options = {}) ⇒ Object
me2text(
text)를 지정한 형식(format)으로 변환한다. -
.strip_control_chars(text) ⇒ Object
컨트롤 문자를 제거한다.
-
.strip_linebreak(text) ⇒ Object
라인브래이크를 공백으로 변환한다.
-
.to_html(text, options = {}) ⇒ Object
me2text(
text)를 HTML로 변환한다. -
.to_text(text, options = {}) ⇒ Object
me2text(
text)를 평문(plain text)로 변환한다.
Class Method Details
.doublequotize(text) ⇒ Object
:nodoc:
103 104 105 |
# File 'lib/me2text/me2text.rb', line 103 def doublequotize(text) #:nodoc: text.gsub(/\"([^"]*)\"/u) { |s| "“#{$1}”" } end |
.htmlize_linebreak(text) ⇒ Object
라인브레이크를 <br /> 태그로 대체한다.
108 109 110 |
# File 'lib/me2text/me2text.rb', line 108 def htmlize_linebreak(text) text.gsub(/\r\n/u, "<br />").gsub(/\n/u, "<br />").gsub(/\r/u, "<br />") end |
.me2text(text, format = :html, options = {}) ⇒ Object
me2text(text)를 지정한 형식(format)으로 변환한다.
Parameters
-
text- 변환할 me2text 형식의 문자열 -
format- 변환 형식을 지정한다.:html,:text중 하나를 지정하며 지정하지 않은 경우:html이 지정된다.:html은 HTML 형식으로 변환하며:text는 평문(plain text)으로 변환한다.
Options (options)
-
:symbolize- 특정 순서의 문자열을 UNICODE의 해당 심볼로 변환한다. 지정하지 않는 경우 ‘true`. -
:open_new_window-:html형식으로 변환시 link에 대해 클릭하면 새 창으로 열릴 수 있도록 ‘<a>` 태그에 `target=’_blank’‘를 삽입한다. 지정하지 않는 경우 `false`. -
:allow_line_break- 라인브레이크를 허용한다.:html로 변환시 라인브레이크는 ‘<br />` 태그로 변환된다. 지정하지 않는 경우 `false`. -
:limit- 변환 결과의 글자수를 제한한다.:limit에는 숫자를 지정하며 변환 결과는 지정된 글자 수 까지만 변환된다. -
:link_handler- 문자열에 나타나는 각 링크에 대해 지정된 block이 호출된다.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/me2text/me2text.rb', line 58 def me2text(text, format = :html, = {}) = { :symbolize => true, :open_new_window => false, :allow_line_break => false, :limit => nil, :link_handler => nil }.merge() if RUBY_VERSION < '1.9' begin text.dup.unpack('U*') rescue ArgumentError raise ArgumentError.new('me2text는 유효한 UTF-8 입력만 처리 가능합니다.') end else is_utf8 = case text.encoding when Encoding::UTF_8 text.dup.valid_encoding? when Encoding::ASCII_8BIT, Encoding::US_ASCII text.dup.force_encoding(Encoding::UTF_8).valid_encoding? else false end raise ArgumentError.new('me2text는 유효한 UTF-8 입력만 처리 가능합니다.') unless is_utf8 text = text.force_encoding(Encoding::UTF_8) end text = strip_linebreak(text) unless [:allow_line_break] text = Token.join_tokens(Token.tokenize(text), format, ) # 키워드 핸들러 등록시, doublequote 가 결과에 포함되어 있는 경우 # doublequotize 메소드가 마지막에 호출 됨으로 에러 발생한다. text = doublequotize(text) if [:symbolize] if format == :html text = htmlize_linebreak(text) if [:allow_line_break] end strip_control_chars(text) end |
.strip_control_chars(text) ⇒ Object
컨트롤 문자를 제거한다.
113 114 115 |
# File 'lib/me2text/me2text.rb', line 113 def strip_control_chars(text) text.gsub(/[[:cntrl:]]/u, "") end |
.strip_linebreak(text) ⇒ Object
라인브래이크를 공백으로 변환한다
118 119 120 |
# File 'lib/me2text/me2text.rb', line 118 def strip_linebreak(text) text.gsub(/\s\r\n/u, "").gsub(/\r\n/u, " ").gsub(/[\r\n]/u, " ") end |
.to_html(text, options = {}) ⇒ Object
me2text(text)를 HTML로 변환한다.
Parameters
text - 변환할 me2text 형식의 문자열
Options (options)
-
:symbolize- 특정 순서의 문자열을 UNICODE의 해당 심볼로 변환한다. 지정하지 않는 경우 ‘true`. -
:open_new_window-:html형식으로 변환시 link에 대해 클릭하면 새 창으로 열릴 수 있도록 ‘<a>` 태그에 `target=’_blank’‘를 삽입한다. 지정하지 않는 경우 `false`. -
:allow_line_break- 라인브레이크를 허용한다.:html로 변환시 라인브레이크는 ‘<br />` 태그로 변환된다. 지정하지 않는 경우 `false`. -
:limit- 변환 결과의 글자수를 제한한다.:limit에는 숫자를 지정하며 변환 결과는 지정된 글자 수 까지만 변환된다. -
:link_handler- 문자열에 나타나는 각 링크에 대해 지정된 block이 호출된다.
28 29 30 |
# File 'lib/me2text/me2text.rb', line 28 def to_html(text, = {}) me2text(text, :html, ) end |
.to_text(text, options = {}) ⇒ Object
me2text(text)를 평문(plain text)로 변환한다.
Parameters
text - 변환할 me2text 형식의 문자열
Options (options)
-
:symbolize- 특정 순서의 문자열을 UNICODE의 해당 심볼로 변환한다. 지정하지 않는 경우 ‘true`. -
:open_new_window-:html형식으로 변환시 link에 대해 클릭하면 새 창으로 열릴 수 있도록 ‘<a>` 태그에 `target=’_blank’‘를 삽입한다. 지정하지 않는 경우 `false`. -
:allow_line_break- 라인브레이크를 허용한다.:html로 변환시 라인브레이크는 ‘<br />` 태그로 변환된다. 지정하지 않는 경우 `false`. -
:limit- 변환 결과의 글자수를 제한한다.:limit에는 숫자를 지정하며 변환 결과는 지정된 글자 수 까지만 변환된다. -
:link_handler- 문자열에 나타나는 각 링크에 대해 지정된 block이 호출된다.
43 44 45 |
# File 'lib/me2text/me2text.rb', line 43 def to_text(text, = {}) me2text(text, :text, ) end |