wparser 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest.txt +4 -2
- data/README.rdoc +9 -3
- data/lib/wparser.rb +3 -3
- data/lib/wparser/block/block.rb +27 -7
- data/lib/wparser/block/blockquote.rb +15 -0
- data/lib/wparser/block/list_nonumber.rb +17 -20
- data/lib/wparser/block/list_number.rb +17 -19
- data/lib/wparser/block/pre.rb +23 -0
- data/lib/wparser/inline/deleted.rb +11 -7
- data/lib/wparser/inline/heading.rb +8 -7
- data/lib/wparser/inline/http.rb +18 -16
- data/lib/wparser/inline/inline.rb +25 -17
- data/lib/wparser/inline/italic.rb +11 -7
- data/lib/wparser/inline/paragraph.rb +27 -0
- data/lib/wparser/inline/strong.rb +11 -7
- data/lib/wparser/inline/underLine.rb +11 -7
- data/lib/wparser/parser.rb +10 -6
- data/lib/wparser/util/break.rb +8 -0
- metadata +11 -7
- data/lib/wparser/block/blocks.rb +0 -26
- data/lib/wparser/break.rb +0 -10
data/Manifest.txt
CHANGED
@@ -6,16 +6,18 @@ Rakefile
|
|
6
6
|
bin/wparser
|
7
7
|
lib/wparser.rb
|
8
8
|
lib/wparser/block/block.rb
|
9
|
-
lib/wparser/block/
|
9
|
+
lib/wparser/block/blockquote.rb
|
10
10
|
lib/wparser/block/list_nonumber.rb
|
11
11
|
lib/wparser/block/list_number.rb
|
12
|
-
lib/wparser/
|
12
|
+
lib/wparser/block/pre.rb
|
13
|
+
lib/wparser/util/break.rb
|
13
14
|
lib/wparser/cli.rb
|
14
15
|
lib/wparser/inline/deleted.rb
|
15
16
|
lib/wparser/inline/heading.rb
|
16
17
|
lib/wparser/inline/http.rb
|
17
18
|
lib/wparser/inline/inline.rb
|
18
19
|
lib/wparser/inline/italic.rb
|
20
|
+
lib/wparser/inline/paragraph.rb
|
19
21
|
lib/wparser/inline/strong.rb
|
20
22
|
lib/wparser/inline/underLine.rb
|
21
23
|
lib/wparser/parser.rb
|
data/README.rdoc
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
= wparser
|
2
2
|
|
3
|
-
* http://github.com
|
3
|
+
* http://github.com/iori/wparser
|
4
4
|
|
5
5
|
== DESCRIPTION:
|
6
6
|
|
7
|
+
http://wiki.github.com/iori/wparser/
|
8
|
+
|
7
9
|
This package is Wiki Format Parser.
|
8
10
|
Wiki => html
|
9
11
|
|
@@ -12,9 +14,11 @@ Wiki => html
|
|
12
14
|
|
13
15
|
== SYNOPSIS:
|
14
16
|
|
17
|
+
http://wiki.github.com/iori/wparser/tutorial
|
18
|
+
|
15
19
|
require 'wparser'
|
16
20
|
|
17
|
-
parser = WParser.
|
21
|
+
parser = WParser.new
|
18
22
|
parser.parse(text)
|
19
23
|
|
20
24
|
== REQUIREMENTS:
|
@@ -23,7 +27,9 @@ parser.parse(text)
|
|
23
27
|
|
24
28
|
== INSTALL:
|
25
29
|
|
26
|
-
|
30
|
+
http://wiki.github.com/iori/wparser/setup
|
31
|
+
|
32
|
+
$sudo gem install wparser
|
27
33
|
|
28
34
|
== LICENSE:
|
29
35
|
|
data/lib/wparser.rb
CHANGED
@@ -3,10 +3,10 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
3
3
|
|
4
4
|
#require File.join(directory, 'wparser', 'Parser')
|
5
5
|
require 'wparser/parser'
|
6
|
-
module
|
7
|
-
VERSION = '0.0
|
6
|
+
module WParser
|
7
|
+
VERSION = '0.1.0'
|
8
8
|
|
9
|
-
def
|
9
|
+
def WParser.new
|
10
10
|
Parser.new
|
11
11
|
end
|
12
12
|
end
|
data/lib/wparser/block/block.rb
CHANGED
@@ -1,17 +1,37 @@
|
|
1
|
-
require 'wparser/block/
|
1
|
+
require 'wparser/block/pre'
|
2
|
+
require 'wparser/block/blockquote'
|
2
3
|
require 'wparser/block/list_number'
|
3
4
|
require 'wparser/block/list_nonumber'
|
4
5
|
|
5
6
|
module Block
|
6
7
|
include Blocks
|
7
|
-
include List_number
|
8
|
-
include List_nonumber
|
9
8
|
|
10
9
|
def parse text
|
11
|
-
|
12
|
-
parse_text =
|
13
|
-
parse_text = List_nonumber.parse(parse_text)
|
10
|
+
@protected_preTag = nil
|
11
|
+
parse_text = text.collect{|line| parse_line line}
|
14
12
|
end
|
15
13
|
|
16
|
-
|
14
|
+
private
|
15
|
+
def parse_line line
|
16
|
+
parse_line = line
|
17
|
+
parse_line = Pre.parse parse_line
|
18
|
+
|
19
|
+
if parse_line =~ /^<pre.*>/
|
20
|
+
@protected_preTag = true
|
21
|
+
elsif parse_line =~ /<\/pre>/
|
22
|
+
@protected_preTag = nil
|
23
|
+
end
|
24
|
+
|
25
|
+
#puts @protected_preTag
|
26
|
+
|
27
|
+
if @protected_preTag == nil
|
28
|
+
parse_line = Blockquote.parse parse_line
|
29
|
+
parse_line = List_number.parse parse_line
|
30
|
+
parse_line = List_nonumber.parse parse_line
|
31
|
+
else
|
32
|
+
parse_line
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module_function :parse, :parse_line
|
17
37
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'wparser/parse'
|
2
|
+
|
3
|
+
module Blocks
|
4
|
+
class Blockquote < Parse
|
5
|
+
BLOCK_TABLE = {
|
6
|
+
">>" => '<blockquote>',
|
7
|
+
"<<" => '</blockquote>',
|
8
|
+
}
|
9
|
+
|
10
|
+
def self.parse line
|
11
|
+
@result = line.gsub(/(^>>)|(^<<)/){|s| BLOCK_TABLE[s]}
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,22 +1,19 @@
|
|
1
|
-
|
2
|
-
def parse text
|
3
|
-
start_ul_rex = %r!
|
4
|
-
^\s*$\n # 空行 => \n<ul>\n
|
5
|
-
^\*\s(\w*)\n # * list_start => <li>list_start</li>\n
|
6
|
-
!x
|
7
|
-
parse_text = text.gsub(start_ul_rex){|s| "\n<ul>\n<li>#$1</li>\n"}
|
1
|
+
require 'wparser/parser'
|
8
2
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
3
|
+
module Blocks
|
4
|
+
class List_nonumber < Parse
|
5
|
+
def self.parse line
|
6
|
+
rex = /^\*\s*(\w*)/
|
7
|
+
@result = if line =~ rex and @list_flag == nil
|
8
|
+
@list_flag = true
|
9
|
+
line.sub(rex, "<ul>\n<li>#$1</li>")
|
10
|
+
elsif line =~ rex
|
11
|
+
line.sub(rex, "<li>#$1</li>")
|
12
|
+
elsif line !~ rex and @list_flag == true
|
13
|
+
@list_flag = nil
|
14
|
+
"</ul>#{line}\n"
|
15
|
+
end
|
16
|
+
super
|
17
|
+
end
|
18
|
+
end
|
22
19
|
end
|
@@ -1,22 +1,20 @@
|
|
1
|
-
|
2
|
-
def parse text
|
3
|
-
start_ul_rex = %r!
|
4
|
-
^\s*$\n # 空行 => \n<ul>\n
|
5
|
-
^\#\s(\w*)\n # # list_start => <li>list_start</li>\n
|
6
|
-
!x
|
7
|
-
parse_text = text.gsub(start_ul_rex){|s| "\n<ol>\n<li>#$1</li>\n"}
|
1
|
+
require 'wparser/parse'
|
8
2
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
module Blocks
|
4
|
+
class List_number < Parse
|
5
|
+
def self.parse line
|
6
|
+
rex = /^\#\s*(\w*)/
|
7
|
+
@result = if line =~ rex and @list_flag == nil
|
8
|
+
@list_flag = true
|
9
|
+
line.sub(rex, "<ol>\n<li>#$1</li>")
|
10
|
+
elsif line =~ rex
|
11
|
+
line.sub(rex, "<li>#$1</li>")
|
12
|
+
elsif line !~ rex and @list_flag == true
|
13
|
+
@list_flag = nil
|
14
|
+
"</ol>#{line}\n"
|
15
|
+
end
|
16
|
+
super
|
14
17
|
|
15
|
-
|
16
|
-
|
17
|
-
return text if parse_text == nil
|
18
|
-
parse_text
|
19
|
-
end
|
20
|
-
|
21
|
-
module_function :parse
|
18
|
+
end
|
19
|
+
end
|
22
20
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'wparser/parse'
|
2
|
+
|
3
|
+
module Blocks
|
4
|
+
class Pre < Parse
|
5
|
+
BLOCK_TABLE = {
|
6
|
+
">||" => '<pre>',
|
7
|
+
"||<" => '</pre>',
|
8
|
+
">|code|" => '<pre class="prettyprint">',
|
9
|
+
"|code|<" => '</pre>'
|
10
|
+
}
|
11
|
+
|
12
|
+
def self.parse line
|
13
|
+
block_rex = %r!
|
14
|
+
(^>\|\|)|(^\|\|<) # pre
|
15
|
+
|
|
16
|
+
(^\>\|code\|)|(^\|code\|\<) # google-code-prettify
|
17
|
+
!x
|
18
|
+
|
19
|
+
@result = line.gsub(block_rex){|s| BLOCK_TABLE[s]}
|
20
|
+
super
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,9 +1,13 @@
|
|
1
|
-
|
2
|
-
def parse line
|
3
|
-
parse_line = line.sub(/-\b(\w*)\b-/){|s| "<S>#$1</S>"}
|
4
|
-
return line if parse_line == nil
|
5
|
-
parse_line
|
6
|
-
end
|
1
|
+
require 'wparser/parse'
|
7
2
|
|
8
|
-
|
3
|
+
module Inlines
|
4
|
+
class Deleted < Parse
|
5
|
+
def self.parse line
|
6
|
+
@result = line.gsub!(/(?:(?!\\-)(^|.)-)(.+?)(?:(?!\\-)(.)-)/){|s|
|
7
|
+
"#$1<S>#$2#$3</S>"
|
8
|
+
}
|
9
|
+
@result = line.gsub!(/\\-/, '-')
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
9
13
|
end
|
@@ -1,9 +1,10 @@
|
|
1
|
-
|
2
|
-
def parse line
|
3
|
-
parse_line = line.sub(/^h([1-6])\.\s(.*)\n/){|s| "<h#$1>#$2</h#$1>\n" }
|
4
|
-
return line if parse_line == nil
|
5
|
-
parse_line
|
6
|
-
end
|
1
|
+
require 'wparser/parse'
|
7
2
|
|
8
|
-
|
3
|
+
module Inlines
|
4
|
+
class Heading < Parse
|
5
|
+
def self.parse line
|
6
|
+
@result = line.sub(/^h([1-6])\.\s(.*)\n/){|s| "<h#$1>#$2</h#$1>\n"}
|
7
|
+
super
|
8
|
+
end
|
9
|
+
end
|
9
10
|
end
|
data/lib/wparser/inline/http.rb
CHANGED
@@ -1,19 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
require 'wparser/parse'
|
2
|
+
|
3
|
+
module Inlines
|
4
|
+
class Http < Parse
|
5
|
+
# (?<![.,?\!]) 1.8.7では後読みが出来ない、どーするか。
|
6
|
+
def self.parse text
|
7
|
+
url_rex = %r!
|
8
|
+
\b
|
8
9
|
(
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
parse_text
|
16
|
-
end
|
10
|
+
http:// [-a-z0-9]+(\.[-a-z0-9]+)*\.(com|edu|info|net) \b
|
11
|
+
(
|
12
|
+
/ [-a-z0-9_:\@&?=+,.\!/~*'%\$]*[^.,?\!]
|
13
|
+
)?
|
14
|
+
)
|
15
|
+
!x
|
17
16
|
|
18
|
-
|
17
|
+
@result = text.gsub(url_rex){|s| "<a href=\"#$1\">#$1</a>"}
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
19
21
|
end
|
@@ -4,31 +4,39 @@ require 'wparser/inline/italic'
|
|
4
4
|
require 'wparser/inline/underLine'
|
5
5
|
require 'wparser/inline/deleted'
|
6
6
|
require 'wparser/inline/http'
|
7
|
+
require 'wparser/inline/paragraph'
|
7
8
|
|
8
9
|
module Inline
|
9
|
-
include
|
10
|
-
include Strong
|
11
|
-
include Italic
|
12
|
-
include UnderLine
|
13
|
-
include Deleted
|
14
|
-
include Http
|
10
|
+
include Inlines
|
15
11
|
|
16
12
|
def parse text
|
17
|
-
|
13
|
+
@protected_preTag = nil
|
14
|
+
parse_lines = text.collect {|line| parse_line line}
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
parse_line = Strong.parse(parse_line)
|
22
|
-
parse_line = Italic.parse(parse_line)
|
23
|
-
parse_line = UnderLine.parse(parse_line)
|
24
|
-
parse_line = Deleted.parse(parse_line)
|
16
|
+
Http.parse parse_lines.to_s
|
17
|
+
end
|
25
18
|
|
26
|
-
|
19
|
+
private
|
20
|
+
# 1行ずつ処理したいメソッド郡
|
21
|
+
def parse_line line
|
22
|
+
if line =~ /^<pre.*>/
|
23
|
+
@protected_preTag = true
|
24
|
+
elsif line =~ /<\/pre>/
|
25
|
+
@protected_preTag = nil
|
27
26
|
end
|
28
27
|
|
29
|
-
|
30
|
-
|
28
|
+
parse_line = line
|
29
|
+
if @protected_preTag == nil
|
30
|
+
parse_line = Heading.parse parse_line
|
31
|
+
parse_line = Strong.parse parse_line
|
32
|
+
parse_line = Italic.parse parse_line
|
33
|
+
parse_line = UnderLine.parse parse_line
|
34
|
+
parse_line = Deleted.parse parse_line
|
35
|
+
parse_line = Paragraph.parse parse_line
|
36
|
+
else
|
37
|
+
parse_line
|
38
|
+
end
|
31
39
|
end
|
32
40
|
|
33
|
-
module_function :parse
|
41
|
+
module_function :parse, :parse_line
|
34
42
|
end
|
@@ -1,9 +1,13 @@
|
|
1
|
-
|
2
|
-
def parse line
|
3
|
-
parse_line = line.sub(/\b_(\w*)_\b/){|s| "<I>#$1</I>"}
|
4
|
-
return line if parse_line == nil
|
5
|
-
parse_line
|
6
|
-
end
|
1
|
+
require 'wparser/parse'
|
7
2
|
|
8
|
-
|
3
|
+
module Inlines
|
4
|
+
class Italic < Parse
|
5
|
+
def self.parse line
|
6
|
+
@result = line.gsub!(/(?:(?!\\_)(^|.)_)(.+?)(?:(?!\\_)(.)_)/){|s|
|
7
|
+
"#$1<I>#$2#$3</I>"
|
8
|
+
}
|
9
|
+
@result = line.gsub!(/\\_/, '_')
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
9
13
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'wparser/parse'
|
2
|
+
|
3
|
+
module Inline
|
4
|
+
class Paragraph < Parse
|
5
|
+
def self.parse line
|
6
|
+
rex = %r!
|
7
|
+
^((<(\/?pre.*|\/?h\d|\/?p|\/?ol|\/?ul|\/?li|\/?blockquote)>)
|
8
|
+
|
|
9
|
+
(\s?\n))
|
10
|
+
!x
|
11
|
+
@result = if @p_flag == nil
|
12
|
+
if line !~ rex and @pre_flag == nil
|
13
|
+
@p_flag = true
|
14
|
+
"<p>\n" + line.sub(/\n/, "<br />\n")
|
15
|
+
end
|
16
|
+
else # <p>と</>の間にいます。
|
17
|
+
if line =~ rex # 段落の終了点
|
18
|
+
@p_flag = nil
|
19
|
+
"</p>\n" + line
|
20
|
+
else
|
21
|
+
line.sub(/\n/, "<br />\n")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
super
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,9 +1,13 @@
|
|
1
|
-
|
2
|
-
def parse line
|
3
|
-
parse_line = line.sub(/\*\b(\w*)\b\*/){|s| "<strong>#$1</strong>"}
|
4
|
-
return line if parse_line == nil
|
5
|
-
parse_line
|
6
|
-
end
|
1
|
+
require 'wparser/parse'
|
7
2
|
|
8
|
-
|
3
|
+
module Inlines
|
4
|
+
class Strong < Parse
|
5
|
+
def self.parse line
|
6
|
+
@result = line.gsub!(/(?:(?!\\\*)(^|.)\*)(.+?)(?:(?!\\\*)(.)\*)/){|s|
|
7
|
+
"#$1<strong>#$2#$3</strong>"
|
8
|
+
}
|
9
|
+
@result = line.gsub!(/\\\*/, '*')
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
9
13
|
end
|
@@ -1,9 +1,13 @@
|
|
1
|
-
|
2
|
-
def parse line
|
3
|
-
parse_line = line.sub(/\+\b(\w*)\b\+/){|s| "<U>#$1</U>"}
|
4
|
-
return line if parse_line == nil
|
5
|
-
parse_line
|
6
|
-
end
|
1
|
+
require 'wparser/parse'
|
7
2
|
|
8
|
-
|
3
|
+
module Inlines
|
4
|
+
class UnderLine < Parse
|
5
|
+
def self.parse line
|
6
|
+
@result = line.gsub!(/(?:(?!\\\+)(^|.)\+)(.+?)(?:(?!\\\+)(.)\+)/){|s|
|
7
|
+
"#$1<U>#$2#$3</U>"
|
8
|
+
}
|
9
|
+
@result = line.gsub!(/\\\+/, '+')
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
9
13
|
end
|
data/lib/wparser/parser.rb
CHANGED
@@ -1,14 +1,18 @@
|
|
1
|
-
require 'wparser/break'
|
1
|
+
require 'wparser/util/break'
|
2
2
|
require 'wparser/inline/inline'
|
3
3
|
require 'wparser/block/block'
|
4
4
|
|
5
5
|
class Parser
|
6
6
|
def parse text
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
parse_all text
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
def parse_all text
|
12
|
+
parse_text = text
|
10
13
|
|
11
|
-
|
12
|
-
|
14
|
+
parse_text = Break.parse parse_text
|
15
|
+
parse_text = Block.parse parse_text
|
16
|
+
parse_text = Inline.parse parse_text # <p>の為にblockよりも後に!
|
13
17
|
end
|
14
18
|
end
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.2
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- iori
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-08-22 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -51,6 +51,8 @@ dependencies:
|
|
51
51
|
type: :development
|
52
52
|
version_requirements: *id002
|
53
53
|
description: |-
|
54
|
+
http://wiki.github.com/iori/wparser/
|
55
|
+
|
54
56
|
This package is Wiki Format Parser.
|
55
57
|
Wiki => html
|
56
58
|
email:
|
@@ -72,16 +74,18 @@ files:
|
|
72
74
|
- bin/wparser
|
73
75
|
- lib/wparser.rb
|
74
76
|
- lib/wparser/block/block.rb
|
75
|
-
- lib/wparser/block/
|
77
|
+
- lib/wparser/block/blockquote.rb
|
76
78
|
- lib/wparser/block/list_nonumber.rb
|
77
79
|
- lib/wparser/block/list_number.rb
|
78
|
-
- lib/wparser/
|
80
|
+
- lib/wparser/block/pre.rb
|
81
|
+
- lib/wparser/util/break.rb
|
79
82
|
- lib/wparser/cli.rb
|
80
83
|
- lib/wparser/inline/deleted.rb
|
81
84
|
- lib/wparser/inline/heading.rb
|
82
85
|
- lib/wparser/inline/http.rb
|
83
86
|
- lib/wparser/inline/inline.rb
|
84
87
|
- lib/wparser/inline/italic.rb
|
88
|
+
- lib/wparser/inline/paragraph.rb
|
85
89
|
- lib/wparser/inline/strong.rb
|
86
90
|
- lib/wparser/inline/underLine.rb
|
87
91
|
- lib/wparser/parser.rb
|
@@ -95,7 +99,7 @@ files:
|
|
95
99
|
- spec/wparser_spec.rb
|
96
100
|
- tasks/rspec.rake
|
97
101
|
has_rdoc: true
|
98
|
-
homepage: http://github.com
|
102
|
+
homepage: http://github.com/iori/wparser
|
99
103
|
licenses: []
|
100
104
|
|
101
105
|
post_install_message: PostInstall.txt
|
@@ -128,6 +132,6 @@ rubyforge_project: wparser
|
|
128
132
|
rubygems_version: 1.3.7
|
129
133
|
signing_key:
|
130
134
|
specification_version: 3
|
131
|
-
summary: This package is Wiki Format Parser
|
135
|
+
summary: http://wiki.github.com/iori/wparser/ This package is Wiki Format Parser
|
132
136
|
test_files: []
|
133
137
|
|
data/lib/wparser/block/blocks.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Blocks
|
2
|
-
BLOCK_TABLE = {
|
3
|
-
">>" => '<blockquote>',
|
4
|
-
"<<" => '</blockquote>',
|
5
|
-
">||" => '<pre>',
|
6
|
-
"||<" => '</pre>',
|
7
|
-
">|code|" => '<pre class="prettyprint">',
|
8
|
-
"|code|<" => '</pre>'
|
9
|
-
}
|
10
|
-
|
11
|
-
def parse text
|
12
|
-
block_rex = %r!
|
13
|
-
(^>>)|(^<<) # blockquote
|
14
|
-
|
|
15
|
-
(^>\|\|)|(^\|\|<) # pre
|
16
|
-
|
|
17
|
-
(^\>\|code\|)|(^\|code\|\<) # google-code-prettify
|
18
|
-
!x
|
19
|
-
|
20
|
-
parse_text = text.gsub(block_rex){|s| BLOCK_TABLE[s]}
|
21
|
-
return text if parse_text == nil
|
22
|
-
parse_text
|
23
|
-
end
|
24
|
-
|
25
|
-
module_function :parse
|
26
|
-
end
|