bluefeather 0.10
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/Rakefile.rb +168 -0
- data/bin/bluefeather +4 -0
- data/doc/author-and-license.bfdoc +16 -0
- data/doc/base.css +135 -0
- data/doc/basic-usage.bfdoc +265 -0
- data/doc/black.css +130 -0
- data/doc/class-reference.bfdoc +105 -0
- data/doc/difference.bfdoc +63 -0
- data/doc/en/author-and-license.bfdoc +20 -0
- data/doc/en/base.css +136 -0
- data/doc/en/basic-usage.bfdoc +266 -0
- data/doc/en/black.css +130 -0
- data/doc/en/class-reference.bfdoc +6 -0
- data/doc/en/difference.bfdoc +72 -0
- data/doc/en/format-extension.bfdoc +324 -0
- data/doc/en/index.bfdoc +41 -0
- data/doc/en/metadata-reference.bfdoc +7 -0
- data/doc/format-extension.bfdoc +325 -0
- data/doc/index.bfdoc +36 -0
- data/doc/metadata-reference.bfdoc +86 -0
- data/lib/bluefeather.rb +1872 -0
- data/lib/bluefeather/cui.rb +207 -0
- data/license/gpl-2.0.txt +339 -0
- data/license/gpl.ja.txt +416 -0
- data/original-tests/00_Class.tests.rb +42 -0
- data/original-tests/05_Markdown.tests.rb +1530 -0
- data/original-tests/10_Bug.tests.rb +44 -0
- data/original-tests/15_Contrib.tests.rb +130 -0
- data/original-tests/bftestcase.rb +278 -0
- data/original-tests/data/antsugar.txt +34 -0
- data/original-tests/data/ml-announce.txt +17 -0
- data/original-tests/data/re-overflow.txt +67 -0
- data/original-tests/data/re-overflow2.txt +281 -0
- data/readme_en.txt +37 -0
- data/readme_ja.txt +33 -0
- data/spec/auto-link.rb +100 -0
- data/spec/code-block.rb +91 -0
- data/spec/dl.rb +182 -0
- data/spec/escape-char.rb +18 -0
- data/spec/footnote.rb +34 -0
- data/spec/header-id.rb +38 -0
- data/spec/lib/common.rb +103 -0
- data/spec/table.rb +70 -0
- data/spec/toc.rb +64 -0
- data/spec/warning.rb +61 -0
- metadata +99 -0
    
        data/spec/auto-link.rb
    ADDED
    
    | @@ -0,0 +1,100 @@ | |
| 1 | 
            +
            require 'pathname'
         | 
| 2 | 
            +
            require(Pathname.new(__FILE__).parent + 'lib/common.rb')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'Auto Link:' do
         | 
| 6 | 
            +
            	before(:each) do
         | 
| 7 | 
            +
            		@html = BlueFeather.parse(@src)
         | 
| 8 | 
            +
            		@doc = Hpricot(@html)
         | 
| 9 | 
            +
            	end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            	describe 'Valid URL:' do
         | 
| 12 | 
            +
            		
         | 
| 13 | 
            +
            		data = [
         | 
| 14 | 
            +
            			'http://www.example.com/',
         | 
| 15 | 
            +
            			'https://www.example.com/',
         | 
| 16 | 
            +
            			'skype:example-id',
         | 
| 17 | 
            +
            			'mailto:nobody@example.net',
         | 
| 18 | 
            +
            		]
         | 
| 19 | 
            +
            	
         | 
| 20 | 
            +
            		data.each do |url|
         | 
| 21 | 
            +
            			src = "<#{url}>"
         | 
| 22 | 
            +
            			describe src do
         | 
| 23 | 
            +
            				before(:all) do
         | 
| 24 | 
            +
            					@src = src
         | 
| 25 | 
            +
            				end
         | 
| 26 | 
            +
            				
         | 
| 27 | 
            +
            				specify 'p > a' do
         | 
| 28 | 
            +
            					@doc.should have_elements(1, 'p')
         | 
| 29 | 
            +
            					@doc.should have_elements(1, 'p a')
         | 
| 30 | 
            +
            				end
         | 
| 31 | 
            +
            			
         | 
| 32 | 
            +
            				specify 'text' do
         | 
| 33 | 
            +
            					@doc.at('a').inner_text.should == url
         | 
| 34 | 
            +
            				end
         | 
| 35 | 
            +
            				
         | 
| 36 | 
            +
            				specify 'href' do
         | 
| 37 | 
            +
            					@doc.at('a')['href'].should == url
         | 
| 38 | 
            +
            				end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            			end
         | 
| 41 | 
            +
            		end
         | 
| 42 | 
            +
            	end
         | 
| 43 | 
            +
            	
         | 
| 44 | 
            +
            	describe 'Invalid URL:' do
         | 
| 45 | 
            +
            		
         | 
| 46 | 
            +
            		data = [
         | 
| 47 | 
            +
            			'http//www.example.com/',
         | 
| 48 | 
            +
            		]
         | 
| 49 | 
            +
            	
         | 
| 50 | 
            +
            		data.each do |url|
         | 
| 51 | 
            +
            			src = "<#{url}>"
         | 
| 52 | 
            +
            			describe src do
         | 
| 53 | 
            +
            				before(:all) do
         | 
| 54 | 
            +
            					@src = src
         | 
| 55 | 
            +
            				end
         | 
| 56 | 
            +
            				
         | 
| 57 | 
            +
            				specify 'no anchor' do
         | 
| 58 | 
            +
            					@doc.should have_element('p')
         | 
| 59 | 
            +
            					@doc.should_not have_element('p a')
         | 
| 60 | 
            +
            				end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            			end
         | 
| 63 | 
            +
            		end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
             | 
| 66 | 
            +
            	end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
             | 
| 69 | 
            +
             | 
| 70 | 
            +
            	describe 'Valid Address:' do
         | 
| 71 | 
            +
            		
         | 
| 72 | 
            +
            		data = [
         | 
| 73 | 
            +
            			'nobody.user@example.com',
         | 
| 74 | 
            +
            			'nobody.user@example.com',
         | 
| 75 | 
            +
            			'.nobody..user.@example.com',
         | 
| 76 | 
            +
            		]
         | 
| 77 | 
            +
            	
         | 
| 78 | 
            +
            		data.each do |address|
         | 
| 79 | 
            +
            			src = "<#{address}>"
         | 
| 80 | 
            +
            			describe src do
         | 
| 81 | 
            +
            				before(:all) do
         | 
| 82 | 
            +
            					@src = src
         | 
| 83 | 
            +
            				end
         | 
| 84 | 
            +
            				
         | 
| 85 | 
            +
            				specify 'overview' do
         | 
| 86 | 
            +
            					@doc.should have_elements(1, 'p')
         | 
| 87 | 
            +
            					@doc.should have_elements(1, 'p a')
         | 
| 88 | 
            +
            				end
         | 
| 89 | 
            +
            			
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            			end
         | 
| 92 | 
            +
            		end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
            	end
         | 
| 95 | 
            +
             | 
| 96 | 
            +
             | 
| 97 | 
            +
            	
         | 
| 98 | 
            +
             | 
| 99 | 
            +
             | 
| 100 | 
            +
            end
         | 
    
        data/spec/code-block.rb
    ADDED
    
    | @@ -0,0 +1,91 @@ | |
| 1 | 
            +
            require 'pathname'
         | 
| 2 | 
            +
            require(Pathname.new(__FILE__).parent + 'lib/common.rb')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'Normal Code Block:' do
         | 
| 6 | 
            +
            	before(:each) do
         | 
| 7 | 
            +
            		@bf = BlueFeather::Parser.new
         | 
| 8 | 
            +
            		@html = @bf.parse_text(@src)
         | 
| 9 | 
            +
            		@doc = Hpricot(@html)
         | 
| 10 | 
            +
            	end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
             | 
| 13 | 
            +
            	describe '> ol:' do
         | 
| 14 | 
            +
            		before(:all) do
         | 
| 15 | 
            +
            			@src = "    1. item-1\n    2. item-2\n    3. item-3\n"
         | 
| 16 | 
            +
            		end
         | 
| 17 | 
            +
            		
         | 
| 18 | 
            +
            		specify 'basic' do
         | 
| 19 | 
            +
            			@doc.should have_elements(1, 'pre code')
         | 
| 20 | 
            +
            			@doc.should_not have_element('ol')
         | 
| 21 | 
            +
            		end
         | 
| 22 | 
            +
            	end
         | 
| 23 | 
            +
            end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            describe 'Fenced Code Block:' do
         | 
| 26 | 
            +
            	before(:each) do
         | 
| 27 | 
            +
            		@bf = BlueFeather::Parser.new
         | 
| 28 | 
            +
            		@html = @bf.parse_text(@src)
         | 
| 29 | 
            +
            		@doc = Hpricot(@html)
         | 
| 30 | 
            +
            	end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
             | 
| 33 | 
            +
            	describe 'Basic:' do
         | 
| 34 | 
            +
            		share_as :Examples do
         | 
| 35 | 
            +
            			specify 'overview' do
         | 
| 36 | 
            +
            				@doc.should have_elements(1, 'pre code')
         | 
| 37 | 
            +
            				@doc.should_not have_element('p')
         | 
| 38 | 
            +
            			end
         | 
| 39 | 
            +
            			
         | 
| 40 | 
            +
            			specify 'body' do
         | 
| 41 | 
            +
            				@doc.at('pre code').inner_text.should == "Fenced Code\nBlock\n"
         | 
| 42 | 
            +
            			end
         | 
| 43 | 
            +
            		end
         | 
| 44 | 
            +
            		
         | 
| 45 | 
            +
            		share_as :NegativeExamples do
         | 
| 46 | 
            +
            			specify 'overview' do
         | 
| 47 | 
            +
            				@doc.should_not have_elements(1, 'pre code')
         | 
| 48 | 
            +
            				@doc.should have_elements(1, 'p')
         | 
| 49 | 
            +
            			end
         | 
| 50 | 
            +
            		end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            	
         | 
| 53 | 
            +
            		describe 'Standard:' do
         | 
| 54 | 
            +
            			include Examples
         | 
| 55 | 
            +
            			before(:all) do
         | 
| 56 | 
            +
            				@src = "~~~\nFenced Code\nBlock\n~~~"
         | 
| 57 | 
            +
            			end
         | 
| 58 | 
            +
            		end
         | 
| 59 | 
            +
            		
         | 
| 60 | 
            +
            		describe 'Many Symbols:' do
         | 
| 61 | 
            +
            			include Examples
         | 
| 62 | 
            +
            			before(:all) do
         | 
| 63 | 
            +
            				@src = "~~~~~~\nFenced Code\nBlock\n~~~~~~"
         | 
| 64 | 
            +
            			end
         | 
| 65 | 
            +
            		end
         | 
| 66 | 
            +
            		
         | 
| 67 | 
            +
            		describe 'Original Code Block:' do
         | 
| 68 | 
            +
            			include Examples
         | 
| 69 | 
            +
            			before(:all) do
         | 
| 70 | 
            +
            				@src = "    Fenced Code\n    Block"
         | 
| 71 | 
            +
            			end
         | 
| 72 | 
            +
            		end
         | 
| 73 | 
            +
            		
         | 
| 74 | 
            +
            		describe 'Bad (wrong number of symbols):' do
         | 
| 75 | 
            +
            			include NegativeExamples
         | 
| 76 | 
            +
            			before(:all) do
         | 
| 77 | 
            +
            				@src = "~~~~~~\nFenced Code\nBlock\n~~~"
         | 
| 78 | 
            +
            			end
         | 
| 79 | 
            +
            		end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            		describe 'Bad (symbols is not on line-head.):' do
         | 
| 82 | 
            +
            			include NegativeExamples
         | 
| 83 | 
            +
            			before(:all) do
         | 
| 84 | 
            +
            				@src = " ~~~\nFenced Code\nBlock\n ~~~"
         | 
| 85 | 
            +
            			end
         | 
| 86 | 
            +
            		end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            		
         | 
| 89 | 
            +
            	end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            end
         | 
    
        data/spec/dl.rb
    ADDED
    
    | @@ -0,0 +1,182 @@ | |
| 1 | 
            +
            require 'pathname'
         | 
| 2 | 
            +
            require(Pathname.new(__FILE__).parent + 'lib/common.rb')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'Definition List:' do
         | 
| 6 | 
            +
            	before(:each) do
         | 
| 7 | 
            +
            		@bf = BlueFeather::Parser.new
         | 
| 8 | 
            +
            		@html = @bf.parse_text(@src)
         | 
| 9 | 
            +
            		@doc = Hpricot(@html)
         | 
| 10 | 
            +
            	end
         | 
| 11 | 
            +
            	
         | 
| 12 | 
            +
            	describe 'Basic:' do
         | 
| 13 | 
            +
            		describe 'most standard:'do
         | 
| 14 | 
            +
            			before(:all) do
         | 
| 15 | 
            +
            				@src = ("dt1\n:dd1\n\ndt2\n:dd2-\ndouble-line")
         | 
| 16 | 
            +
            			end
         | 
| 17 | 
            +
            			
         | 
| 18 | 
            +
            			specify 'overview' do
         | 
| 19 | 
            +
            				@doc.should have_elements(1, 'dl')
         | 
| 20 | 
            +
            				@doc.should have_elements(2, 'dl dt')
         | 
| 21 | 
            +
            				@doc.should have_elements(2, 'dl dd')
         | 
| 22 | 
            +
            			end
         | 
| 23 | 
            +
            			
         | 
| 24 | 
            +
            			specify 'text' do
         | 
| 25 | 
            +
            				@doc.search('dl dt')[0].inner_text.should == "dt1"
         | 
| 26 | 
            +
            				@doc.search('dl dt')[1].inner_text.should == "dt2"
         | 
| 27 | 
            +
            				@doc.search('dl dd')[0].inner_text.should == "dd1"
         | 
| 28 | 
            +
            				@doc.search('dl dd')[1].inner_text.should == "dd2-\ndouble-line"
         | 
| 29 | 
            +
            			end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            		end
         | 
| 32 | 
            +
            		
         | 
| 33 | 
            +
            		describe 'double dt:'do
         | 
| 34 | 
            +
            			before(:all) do
         | 
| 35 | 
            +
            				@src = ("dt1\ndt2\n:dd")
         | 
| 36 | 
            +
            			end
         | 
| 37 | 
            +
            			
         | 
| 38 | 
            +
            			specify 'overview' do
         | 
| 39 | 
            +
            				@doc.should have_elements(1, 'dl')
         | 
| 40 | 
            +
            				@doc.should have_elements(2, 'dl dt')
         | 
| 41 | 
            +
            				@doc.should have_elements(1, 'dl dd')
         | 
| 42 | 
            +
            			end
         | 
| 43 | 
            +
            			
         | 
| 44 | 
            +
            			specify 'text' do
         | 
| 45 | 
            +
            				@doc.search('dl dt')[0].inner_text.should == 'dt1'
         | 
| 46 | 
            +
            				@doc.search('dl dt')[1].inner_text.should == 'dt2'
         | 
| 47 | 
            +
            				@doc.at('dl dd').inner_text.should == "dd"
         | 
| 48 | 
            +
            			end
         | 
| 49 | 
            +
            		end
         | 
| 50 | 
            +
            		
         | 
| 51 | 
            +
            		describe 'double dd:'do
         | 
| 52 | 
            +
            			before(:all) do
         | 
| 53 | 
            +
            				@src = ("dt\n:dd1\n:dd2")
         | 
| 54 | 
            +
            			end
         | 
| 55 | 
            +
            			
         | 
| 56 | 
            +
            			specify 'overview' do
         | 
| 57 | 
            +
            				@doc.should have_elements(1, 'dl')
         | 
| 58 | 
            +
            				@doc.should have_elements(1, 'dl dt')
         | 
| 59 | 
            +
            				@doc.should have_elements(2, 'dl dd')
         | 
| 60 | 
            +
            			end
         | 
| 61 | 
            +
            			
         | 
| 62 | 
            +
            			specify 'text' do
         | 
| 63 | 
            +
            				@doc.search('dl dd')[0].inner_text.should == "dd1"
         | 
| 64 | 
            +
            				@doc.search('dl dd')[1].inner_text.should == "dd2"
         | 
| 65 | 
            +
            				@doc.at('dl dt').inner_text.should == 'dt'
         | 
| 66 | 
            +
            			end
         | 
| 67 | 
            +
            		end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
             | 
| 70 | 
            +
            	end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
             | 
| 73 | 
            +
            	describe '> code-block > ol:' do
         | 
| 74 | 
            +
            		before(:all) do
         | 
| 75 | 
            +
            			@src = <<-SRC
         | 
| 76 | 
            +
            title
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            :
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            		1. olitem-1
         | 
| 81 | 
            +
            		2. olitem-2
         | 
| 82 | 
            +
            		3. olitem-3
         | 
| 83 | 
            +
                    
         | 
| 84 | 
            +
            			SRC
         | 
| 85 | 
            +
            		end
         | 
| 86 | 
            +
            		
         | 
| 87 | 
            +
            		specify 'overview' do
         | 
| 88 | 
            +
            			@doc.should have_elements(1, 'dl dt')
         | 
| 89 | 
            +
            			@doc.should have_elements(1, 'dl dd')
         | 
| 90 | 
            +
            		end
         | 
| 91 | 
            +
            		
         | 
| 92 | 
            +
            		specify 'dt text' do
         | 
| 93 | 
            +
            			@doc.at('dt').inner_text.should == 'title'
         | 
| 94 | 
            +
            		end
         | 
| 95 | 
            +
            		
         | 
| 96 | 
            +
            		specify 'ol in code-block' do
         | 
| 97 | 
            +
            			@doc.should have_element('dd pre code')
         | 
| 98 | 
            +
            			
         | 
| 99 | 
            +
            			code = @doc / 'dd pre code'
         | 
| 100 | 
            +
            			code.inner_text.should =~ /\A1.+\n2.+\n3.+\n\z/
         | 
| 101 | 
            +
            		end
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            	end
         | 
| 104 | 
            +
            	
         | 
| 105 | 
            +
            	describe '> code-block > ol(with paragraphs):' do
         | 
| 106 | 
            +
            		before(:all) do
         | 
| 107 | 
            +
            			@src = <<-SRC
         | 
| 108 | 
            +
            title
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            :paragraph1
         | 
| 111 | 
            +
             | 
| 112 | 
            +
            		1. olitem-1
         | 
| 113 | 
            +
            		2. olitem-2
         | 
| 114 | 
            +
            		3. olitem-3
         | 
| 115 | 
            +
            		
         | 
| 116 | 
            +
            	paragraph2
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            			SRC
         | 
| 119 | 
            +
            		end
         | 
| 120 | 
            +
            		
         | 
| 121 | 
            +
            		specify 'overview' do
         | 
| 122 | 
            +
            			@doc.should have_elements(1, 'dl dt')
         | 
| 123 | 
            +
            			@doc.should have_elements(1, 'dl dd')
         | 
| 124 | 
            +
            			@doc.should have_elements(2, 'dl dd p')
         | 
| 125 | 
            +
            		end
         | 
| 126 | 
            +
            		
         | 
| 127 | 
            +
            		specify 'dt text' do
         | 
| 128 | 
            +
            			@doc.at('dt').inner_text.should == 'title'
         | 
| 129 | 
            +
            		end
         | 
| 130 | 
            +
            		
         | 
| 131 | 
            +
            		specify 'ol in code-block' do
         | 
| 132 | 
            +
            			@doc.should have_element('dd pre code')
         | 
| 133 | 
            +
            			
         | 
| 134 | 
            +
            			code = @doc / 'dd pre code'
         | 
| 135 | 
            +
            			code.inner_text.should =~ /\A1.+\n2.+\n3.+\n\z/
         | 
| 136 | 
            +
            		end
         | 
| 137 | 
            +
            		
         | 
| 138 | 
            +
            		specify 'paragraphs' do
         | 
| 139 | 
            +
            			paragraphs = @doc / 'dl dd p'
         | 
| 140 | 
            +
            			paragraphs[0].inner_text.should == 'paragraph1'
         | 
| 141 | 
            +
            			paragraphs[1].inner_text.should == 'paragraph2'
         | 
| 142 | 
            +
            		end
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            	end
         | 
| 145 | 
            +
            	
         | 
| 146 | 
            +
             | 
| 147 | 
            +
            	describe 'blockquote > code-block > ol and paragraphs:' do
         | 
| 148 | 
            +
            		before(:all) do
         | 
| 149 | 
            +
            			@src = <<-SRC
         | 
| 150 | 
            +
            >title
         | 
| 151 | 
            +
            >
         | 
| 152 | 
            +
            >:paragraph1
         | 
| 153 | 
            +
            >
         | 
| 154 | 
            +
            >         1. olitem-1
         | 
| 155 | 
            +
            >         2. olitem-2
         | 
| 156 | 
            +
            >         3. olitem-3
         | 
| 157 | 
            +
            >
         | 
| 158 | 
            +
            >     paragraph2
         | 
| 159 | 
            +
             | 
| 160 | 
            +
            			SRC
         | 
| 161 | 
            +
            		end
         | 
| 162 | 
            +
            		
         | 
| 163 | 
            +
            		specify 'overview' do
         | 
| 164 | 
            +
            			@doc.should have_elements(1, 'blockquote dl dt')
         | 
| 165 | 
            +
            			@doc.should have_elements(1, 'blockquote dl dd')
         | 
| 166 | 
            +
            			@doc.should have_elements(2, 'blockquote dl dd p')
         | 
| 167 | 
            +
            		end
         | 
| 168 | 
            +
            		
         | 
| 169 | 
            +
            		specify 'dt text' do
         | 
| 170 | 
            +
            			@doc.at('blockquote dt').inner_text.should == 'title'
         | 
| 171 | 
            +
            		end
         | 
| 172 | 
            +
            		
         | 
| 173 | 
            +
            		specify 'paragraphs' do
         | 
| 174 | 
            +
            			paragraphs = @doc / 'blockquote dl dd p'
         | 
| 175 | 
            +
            			paragraphs[0].inner_text.should == 'paragraph1'
         | 
| 176 | 
            +
            			paragraphs[1].inner_text.should == 'paragraph2'
         | 
| 177 | 
            +
            		end
         | 
| 178 | 
            +
             | 
| 179 | 
            +
            	end
         | 
| 180 | 
            +
             | 
| 181 | 
            +
             | 
| 182 | 
            +
            end
         | 
    
        data/spec/escape-char.rb
    ADDED
    
    | @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            require 'pathname'
         | 
| 2 | 
            +
            require(Pathname.new(__FILE__).parent + 'lib/common.rb')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'Escape Characters:' do
         | 
| 6 | 
            +
            	before(:each) do
         | 
| 7 | 
            +
            		@bf = BlueFeather::Parser.new
         | 
| 8 | 
            +
            	end
         | 
| 9 | 
            +
            	
         | 
| 10 | 
            +
            	'\\`*_{}[]()#.!|:~'.each_char do |c|
         | 
| 11 | 
            +
            		specify "'#{c}'" do
         | 
| 12 | 
            +
            			@bf.parse_text("\\#{c}").should == "<p>#{c}</p>"
         | 
| 13 | 
            +
            		end
         | 
| 14 | 
            +
            	end
         | 
| 15 | 
            +
            	
         | 
| 16 | 
            +
             | 
| 17 | 
            +
             | 
| 18 | 
            +
            end
         | 
    
        data/spec/footnote.rb
    ADDED
    
    | @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            require 'pathname'
         | 
| 2 | 
            +
            require(Pathname.new(__FILE__).parent + 'lib/common.rb')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            describe 'Footnote:' do
         | 
| 5 | 
            +
            	before(:all) do
         | 
| 6 | 
            +
            		@bf = BlueFeather::Parser.new
         | 
| 7 | 
            +
            	end
         | 
| 8 | 
            +
            	
         | 
| 9 | 
            +
            	describe 'simple:' do
         | 
| 10 | 
            +
            		before(:all) do
         | 
| 11 | 
            +
            			@html = @bf.parse_text("[^testid]\n\n[^testid]: none")
         | 
| 12 | 
            +
            			@doc = Hpricot(@html)
         | 
| 13 | 
            +
            		end
         | 
| 14 | 
            +
            	
         | 
| 15 | 
            +
            		specify "reference a" do
         | 
| 16 | 
            +
            			a = @doc.at('p sup a')
         | 
| 17 | 
            +
            			a['href'].should == '#footnote:testid'
         | 
| 18 | 
            +
            			a.inner_html.should == '[1]'
         | 
| 19 | 
            +
            		end
         | 
| 20 | 
            +
            		
         | 
| 21 | 
            +
            		specify "reference id" do
         | 
| 22 | 
            +
            			@doc.at('p sup')['id'].should == 'footnote-ref:testid'
         | 
| 23 | 
            +
            		end
         | 
| 24 | 
            +
            		
         | 
| 25 | 
            +
            		specify "footnotes" do
         | 
| 26 | 
            +
            			div = @doc.at('div.footnotes')
         | 
| 27 | 
            +
            			div.should have_element('hr')
         | 
| 28 | 
            +
            			div.at('ol li')['id'].should == 'footnote:testid'
         | 
| 29 | 
            +
            			div.at('ol li p a')['href'].should == '#footnote-ref:testid'
         | 
| 30 | 
            +
            		end
         | 
| 31 | 
            +
            	end
         | 
| 32 | 
            +
            	
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            end
         | 
    
        data/spec/header-id.rb
    ADDED
    
    | @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            require 'pathname'
         | 
| 2 | 
            +
            require(Pathname.new(__FILE__).parent + 'lib/common.rb')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'Header ID:' do
         | 
| 6 | 
            +
            	before(:each) do
         | 
| 7 | 
            +
            		@bf = BlueFeather::Parser.new
         | 
| 8 | 
            +
            		@html = @bf.parse_text(@src)
         | 
| 9 | 
            +
            		@doc = Hpricot(@html)
         | 
| 10 | 
            +
            	end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
             | 
| 13 | 
            +
            	describe 'basic:' do
         | 
| 14 | 
            +
            		before(:all) do
         | 
| 15 | 
            +
            			@src = '## h2 ## {#test-id}'
         | 
| 16 | 
            +
            		end
         | 
| 17 | 
            +
            		
         | 
| 18 | 
            +
            		specify 'correct id' do
         | 
| 19 | 
            +
            			@doc.should have_element('h2#test-id')
         | 
| 20 | 
            +
            		end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            	end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            	
         | 
| 25 | 
            +
            	describe 'use span transform format:' do
         | 
| 26 | 
            +
            		before(:all) do
         | 
| 27 | 
            +
            			@src = '## h2 ## {#the_test_id}'
         | 
| 28 | 
            +
            		end
         | 
| 29 | 
            +
            		
         | 
| 30 | 
            +
            		specify 'correct id' do
         | 
| 31 | 
            +
            			@doc.should have_element('h2#the_test_id')
         | 
| 32 | 
            +
            		end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            	end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
             | 
| 37 | 
            +
             | 
| 38 | 
            +
            end
         |