Upgraded RedCloth to 3.0.3
This commit is contained in:
parent
2aa1aa8fad
commit
bb2d16c8a1
27 changed files with 1844 additions and 1092 deletions
|
@ -1,4 +1,5 @@
|
|||
HEAD:
|
||||
RedCloth 3.0.3 (read: mixing Textile and Markdown in the same page)
|
||||
Files/pictures can be uploaded to a wiki and served from / displayed in wiki pages
|
||||
Wiki link syntax doesn't conflict with Textile hyperlink syntax. Therefore
|
||||
"textile link":LinkToSomePlace will not look insane.
|
||||
|
|
|
@ -31,7 +31,7 @@ unless defined? ADDITIONAL_LOAD_PATHS
|
|||
ADDITIONAL_LOAD_PATHS.concat %w(
|
||||
vendor/bluecloth-1.0.0/lib
|
||||
vendor/madeleine-0.7.1/lib
|
||||
vendor/redcloth-2.0.11/lib
|
||||
vendor/RedCloth-3.0.3/lib
|
||||
vendor/rubyzip-0.5.6
|
||||
vendor/actionpack/lib
|
||||
vendor/activesupport/lib
|
||||
|
|
|
@ -27,7 +27,7 @@ Rake::TestTask.new { |t|
|
|||
t.libs << 'app/models'
|
||||
t.libs << 'vendor/bluecloth-1.0.0/lib'
|
||||
t.libs << 'vendor/madeleine-0.7.1/lib'
|
||||
t.libs << 'vendor/redcloth-2.0.11/lib'
|
||||
t.libs << 'vendor/RedCloth-3.0.3/lib'
|
||||
t.libs << 'vendor/rubyzip-0.5.6'
|
||||
t.pattern = 'test/**/*_test.rb'
|
||||
t.verbose = true
|
||||
|
|
|
@ -18,7 +18,7 @@ ADDITIONAL_LOAD_PATHS.concat %w(
|
|||
ADDITIONAL_LOAD_PATHS.concat %w(
|
||||
vendor/bluecloth-1.0.0/lib
|
||||
vendor/madeleine-0.7.1/lib
|
||||
vendor/redcloth-2.0.11/lib
|
||||
vendor/RedCloth-3.0.3/lib
|
||||
vendor/rubyzip-0.5.6
|
||||
vendor/actionpack/lib
|
||||
vendor/activesupport/lib
|
||||
|
|
|
@ -116,7 +116,7 @@ class RevisionTest < Test::Unit::TestCase
|
|||
|
||||
def test_content_with_pre_blocks
|
||||
assert_markup_parsed_as(
|
||||
'A <code>class SmartEngine end</code> would not mark up <pre>CodeBlocks</pre>',
|
||||
'<p>A <code>class SmartEngine end</code> would not mark up <pre>CodeBlocks</pre></p>',
|
||||
'A <code>class SmartEngine end</code> would not mark up <pre>CodeBlocks</pre>')
|
||||
end
|
||||
|
||||
|
@ -168,7 +168,7 @@ class RevisionTest < Test::Unit::TestCase
|
|||
def test_double_replacing
|
||||
@revision.content = "VersionHistory\r\n\r\ncry VersionHistory"
|
||||
assert_equal '<p><span class="newWikiWord">Version History' +
|
||||
"<a href=\"../show/VersionHistory\">?</a></span></p>\n\n\t<p>cry " +
|
||||
"<a href=\"../show/VersionHistory\">?</a></span></p>\n\n\n\t<p>cry " +
|
||||
'<span class="newWikiWord">Version History<a href="../show/VersionHistory">?</a>' +
|
||||
'</span></p>',
|
||||
@revision.display_content
|
||||
|
@ -176,8 +176,8 @@ class RevisionTest < Test::Unit::TestCase
|
|||
@revision.clear_display_cache
|
||||
|
||||
@revision.content = "f\r\nVersionHistory\r\n\r\ncry VersionHistory"
|
||||
assert_equal "<p>f<br />\n<span class=\"newWikiWord\">Version History" +
|
||||
"<a href=\"../show/VersionHistory\">?</a></span></p>\n\n\t<p>cry " +
|
||||
assert_equal "<p>f\n<span class=\"newWikiWord\">Version History" +
|
||||
"<a href=\"../show/VersionHistory\">?</a></span></p>\n\n\n\t<p>cry " +
|
||||
"<span class=\"newWikiWord\">Version History<a href=\"../show/VersionHistory\">?</a>" +
|
||||
"</span></p>",
|
||||
@revision.display_content
|
||||
|
|
52
vendor/RedCloth-3.0.3/RedCloth.gemspec
vendored
Normal file
52
vendor/RedCloth-3.0.3/RedCloth.gemspec
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
require 'rubygems'
|
||||
spec = Gem::Specification.new do |s|
|
||||
|
||||
## Basic Information
|
||||
|
||||
s.name = 'RedCloth'
|
||||
s.version = "3.0.3"
|
||||
s.platform = Gem::Platform::RUBY
|
||||
s.summary = <<-TXT
|
||||
RedCloth is a module for using Textile and Markdown in Ruby. Textile and Markdown are text formats.
|
||||
A very simple text format. Another stab at making readable text that can be converted to HTML.
|
||||
TXT
|
||||
s.description = <<-TXT
|
||||
No need to use verbose HTML to build your docs, your blogs, your pages. Textile gives you readable text while you're writing and beautiful text for your readers. And if you need to break out into HTML, Textile will allow you to do so.
|
||||
|
||||
Textile also handles some subtleties of formatting which will enhance your document's readability:
|
||||
|
||||
* Single- and double-quotes around words or phrases are converted to curly quotations, much easier on
|
||||
the eye. "Observe!"
|
||||
|
||||
* Double hyphens are replaced with an em-dash. Observe -- very nice!
|
||||
|
||||
* Single hyphens are replaced with en-dashes. Observe - so cute!
|
||||
|
||||
* Triplets of periods become an ellipsis. Observe...
|
||||
|
||||
* The letter 'x' becomes a dimension sign when used alone. Observe: 2 x 2.
|
||||
|
||||
* Conversion of ==(TM)== to (TM), ==(R)== to (R), ==(C)== to (C).
|
||||
|
||||
For more on Textile's language, hop over to "A Textile Reference":http://hobix.com/textile/. For more
|
||||
on Markdown, see "Daring Fireball's page":http://daringfireball.net/projects/markdown/.
|
||||
TXT
|
||||
|
||||
## Include tests, libs, docs
|
||||
|
||||
s.files = ['bin/**/*', 'tests/**/*', 'lib/**/*', 'docs/**/*', 'run-tests.rb'].collect do |dirglob|
|
||||
Dir.glob(dirglob)
|
||||
end.flatten.delete_if {|item| item.include?("CVS")}
|
||||
|
||||
## Load-time details
|
||||
|
||||
s.require_path = 'lib'
|
||||
s.autorequire = 'redcloth'
|
||||
|
||||
## Author and project details
|
||||
|
||||
s.author = "Why the Lucky Stiff"
|
||||
s.email = "why@ruby-lang.org"
|
||||
s.rubyforge_project = "redcloth"
|
||||
s.homepage = "http://www.whytheluckystiff.net/ruby/redcloth/"
|
||||
end
|
3
vendor/RedCloth-3.0.3/bin/redcloth
vendored
Normal file
3
vendor/RedCloth-3.0.3/bin/redcloth
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/local/bin/ruby18
|
||||
require 'redcloth'
|
||||
puts RedCloth.new( ARGF.read ).to_html
|
38
vendor/redcloth-2.0.11/doc/CHANGELOG → vendor/RedCloth-3.0.3/doc/CHANGELOG
vendored
Executable file → Normal file
38
vendor/redcloth-2.0.11/doc/CHANGELOG → vendor/RedCloth-3.0.3/doc/CHANGELOG
vendored
Executable file → Normal file
|
@ -1,4 +1,42 @@
|
|||
--- %YAML:1.0
|
||||
- version: 3.0.3
|
||||
date: 2005-02-06
|
||||
changes:
|
||||
- Stack overflow regexp on code inlines obliterated.
|
||||
- Citations scaled back.
|
||||
- Toggle span tags on CAPS with :no_span_tags accessor.
|
||||
|
||||
- version: 3.0.2
|
||||
date: 2005-02-02
|
||||
changes:
|
||||
- Stack overflow Regexps replaced.
|
||||
- All code blocks protected from formatting.
|
||||
- Hard breaks working.
|
||||
- Filter HTML now uses detailed cleaner.
|
||||
|
||||
- version: 3.0.1
|
||||
date: 2004-11-15
|
||||
changes:
|
||||
- Using `float' rather than `text-align' to align image blocks.
|
||||
- Shelving more HTML attributes to prevent them from clashing with Textile glyphs.
|
||||
- Simplifying the block regexp.
|
||||
|
||||
- version: 3.0
|
||||
date: 2004-10-26
|
||||
changes:
|
||||
- Broke up the Textile engine into smaller parts, recoded central block parser.
|
||||
- Added preliminary support for Markdown.
|
||||
- Added support for custom Textile prefixes.
|
||||
- RedCloth now generates XHTML fragments.
|
||||
- Complete HTML documents should now work, RedCloth ignores complex HTML.
|
||||
|
||||
- version: 2.0.12
|
||||
date: 2004-08-09
|
||||
changes:
|
||||
- Escaping tighter for <pre> tags that share a single line.
|
||||
- No more String#htmlesc!. Moved to RedCloth#htmlesc.
|
||||
- Pruned out the code that was handling multibyte.
|
||||
|
||||
- version: 2.0.11
|
||||
date: 2004-06-01
|
||||
changes:
|
0
vendor/redcloth-2.0.11/doc/COPYING → vendor/RedCloth-3.0.3/doc/COPYING
vendored
Executable file → Normal file
0
vendor/redcloth-2.0.11/doc/COPYING → vendor/RedCloth-3.0.3/doc/COPYING
vendored
Executable file → Normal file
26
vendor/redcloth-2.0.11/doc/README → vendor/RedCloth-3.0.3/doc/README
vendored
Executable file → Normal file
26
vendor/redcloth-2.0.11/doc/README → vendor/RedCloth-3.0.3/doc/README
vendored
Executable file → Normal file
|
@ -1,17 +1,19 @@
|
|||
p=. !redcloth-title.png!
|
||||
p=. !redcloth3-title.png!
|
||||
|
||||
<div id="sidebar">
|
||||
|
||||
h4. Get RedCloth
|
||||
h4. Get RedCloth 3
|
||||
|
||||
p(example1). *Latest version:* "2.0.10":http://rubyforge.org/frs/download.php/670/redcloth-2.0.10.tar.gz
|
||||
p(example1). *Stable version:* "2.0.11":http://rubyforge.org/frs/download.php/698/redcloth-2.0.11.tar.gz
|
||||
|
||||
p(example1). *Unstable version:* "3.0.2":http://rubyforge.org/frs/download.php/2852/RedCloth-3.0.2.tar.gz
|
||||
|
||||
Take a complete tour of Textile at "A Textile Reference":http://hobix.com/textile/.
|
||||
|
||||
For fast syntax checking, try the "Quick Reference":http://hobix.com/textile/quick.html.
|
||||
|
||||
p(example1). Upgrade with RubyGems! Try:
|
||||
@gem -Ri RedCloth@.
|
||||
p(example1). Upgrade with "RubyGems":http://rubygems.rubyforge.org/! Try:
|
||||
@gem install RedCloth@.
|
||||
|
||||
See the "project page":http://rubyforge.org/projects/redcloth/ for bug reporting, old releases and CVS instructions. "Documentation":http://redcloth.rubyforge.org/rdoc/ is also hosted at RubyForge.
|
||||
|
||||
|
@ -38,10 +40,10 @@ Textile is a simple markup language.
|
|||
|
||||
table{width:400px}.
|
||||
|_. textile|_. to|_. html|
|
||||
| ==_a phrase_== |->|_a phrase_|
|
||||
| ==*a phrase*== |->|*a phrase*|
|
||||
| ==_*a phrase*_== |->|_*a phrase*_|
|
||||
| =="Google":http://google.com== |->|"Google":http://google.com|
|
||||
| <notextile>_a phrase_</notextile> |->|_a phrase_|
|
||||
| <notextile>*a phrase*</notextile> |->|*a phrase*|
|
||||
| <notextile>_*a phrase*_</notextile> |->|_*a phrase*_|
|
||||
| <notextile>"Google":http://google.com</notextile> |->|"Google":http://google.com|
|
||||
|
||||
No need to use verbose HTML to build your docs, your blogs, your pages. Textile gives you readable text while you're writing and beautiful text for your readers. And if you need to break out into HTML, Textile will allow you to do so.
|
||||
|
||||
|
@ -58,7 +60,7 @@ Textile also handles some subtleties of formatting which will enhance your docum
|
|||
|
||||
* The letter 'x' becomes a dimension sign when used alone. Observe: 2 x 2.
|
||||
|
||||
* Conversion of ==(TM)== to (TM), ==(R)== to (R), ==(C)== to (C).
|
||||
* Conversion of <notextile>(TM)</notextile> to (TM), <notextile>(R)</notextile> to (R), <notextile>(C)</notextile> to (C).
|
||||
|
||||
For more on Textile's language, hop over to "A Textile Reference":http://hobix.com/textile/.
|
||||
|
||||
|
@ -86,10 +88,10 @@ h2. Installing RedCloth
|
|||
To install RedCloth via RubyGems:
|
||||
|
||||
<pre>
|
||||
gem -Ri RedCloth
|
||||
gem install RedCloth
|
||||
</pre>
|
||||
|
||||
Or "download RedCloth":http://rubyforge.org/frs/download.php/670/redcloth-2.0.10.tar.gz and simply run the install.rb like so:
|
||||
Or "download RedCloth":http://rubyforge.org/frs/download.php/2852/RedCloth-3.0.2.tar.gz and simply run the install.rb like so:
|
||||
|
||||
<pre>
|
||||
ruby install.rb config
|
0
vendor/redcloth-2.0.11/doc/REFERENCE → vendor/RedCloth-3.0.3/doc/REFERENCE
vendored
Executable file → Normal file
0
vendor/redcloth-2.0.11/doc/REFERENCE → vendor/RedCloth-3.0.3/doc/REFERENCE
vendored
Executable file → Normal file
22
vendor/redcloth-2.0.11/doc/make.rb → vendor/RedCloth-3.0.3/doc/make.rb
vendored
Executable file → Normal file
22
vendor/redcloth-2.0.11/doc/make.rb → vendor/RedCloth-3.0.3/doc/make.rb
vendored
Executable file → Normal file
|
@ -1,6 +1,20 @@
|
|||
$:.unshift '../lib'
|
||||
require 'yaml'
|
||||
require 'redcloth'
|
||||
|
||||
class String
|
||||
#
|
||||
# Flexible HTML escaping
|
||||
#
|
||||
def htmlesc!( mode )
|
||||
gsub!( '&', '&' )
|
||||
gsub!( '"', '"' ) if mode != :NoQuotes
|
||||
gsub!( "'", ''' ) if mode == :Quotes
|
||||
gsub!('<', '<')
|
||||
gsub!('>', '>')
|
||||
end
|
||||
end
|
||||
|
||||
def a_name( phrase )
|
||||
phrase.downcase.
|
||||
gsub( /\W+/, '-' )
|
||||
|
@ -119,8 +133,8 @@ when 'QUICK-REFERENCE'
|
|||
sections.shift
|
||||
|
||||
puts <<-HTML
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"DTD/xhtml1-transitional.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
@ -221,8 +235,8 @@ when 'REFERENCE'
|
|||
sections.shift
|
||||
|
||||
puts <<-HTML
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"DTD/xhtml1-transitional.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
0
vendor/redcloth-2.0.11/install.rb → vendor/RedCloth-3.0.3/install.rb
vendored
Executable file → Normal file
0
vendor/redcloth-2.0.11/install.rb → vendor/RedCloth-3.0.3/install.rb
vendored
Executable file → Normal file
1113
vendor/RedCloth-3.0.3/lib/redcloth.rb
vendored
Normal file
1113
vendor/RedCloth-3.0.3/lib/redcloth.rb
vendored
Normal file
File diff suppressed because it is too large
Load diff
12
vendor/redcloth-2.0.11/run-tests.rb → vendor/RedCloth-3.0.3/run-tests.rb
vendored
Executable file → Normal file
12
vendor/redcloth-2.0.11/run-tests.rb → vendor/RedCloth-3.0.3/run-tests.rb
vendored
Executable file → Normal file
|
@ -1,12 +1,20 @@
|
|||
#!/usr/bin/env ruby
|
||||
require 'redcloth'
|
||||
require 'lib/redcloth'
|
||||
require 'yaml'
|
||||
|
||||
Dir["tests/*.yml"].each do |testfile|
|
||||
YAML::load_documents( File.open( testfile ) ) do |doc|
|
||||
if doc['in'] and doc['out']
|
||||
html = RedCloth.new( doc['in'] ).to_html
|
||||
red = RedCloth.new( doc['in'] )
|
||||
html = if testfile =~ /markdown/
|
||||
red.to_html( :markdown )
|
||||
else
|
||||
red.to_html
|
||||
end
|
||||
puts "---"
|
||||
|
||||
html.gsub!( /\n+/, "\n" )
|
||||
doc['out'].gsub!( /\n+/, "\n" )
|
||||
if html == doc['out']
|
||||
puts "success: true"
|
||||
else
|
39
vendor/redcloth-2.0.11/tests/code.yml → vendor/RedCloth-3.0.3/tests/code.yml
vendored
Executable file → Normal file
39
vendor/redcloth-2.0.11/tests/code.yml → vendor/RedCloth-3.0.3/tests/code.yml
vendored
Executable file → Normal file
|
@ -24,6 +24,7 @@ in: |-
|
|||
out: |-
|
||||
<p>Testing nested pre tags…</p>
|
||||
|
||||
|
||||
<pre>
|
||||
<code>
|
||||
Good code here.
|
||||
|
@ -64,3 +65,41 @@ out: '<p><strong>this <span>test</span> is strong</strong></p>'
|
|||
---
|
||||
in: <pre class="code"> __inline__</pre>
|
||||
out: <pre class="code"> __inline__</pre>
|
||||
---
|
||||
in: |-
|
||||
* @foo@
|
||||
* @bar@
|
||||
* and @x@ is also.
|
||||
out: "<ul>\n\t<li><code>foo</code></li>\n\t\t<li><code>bar</code></li>\n\t\t<li>and <code>x</code> is also.</li>\n\t</ul>"
|
||||
---
|
||||
in: |-
|
||||
<pre class="code"> <hello> </pre>
|
||||
<pre class="code"> <hello> </pre>
|
||||
out: |-
|
||||
<pre class="code"> <hello> </pre>
|
||||
<pre class="code"> <hello> </pre>
|
||||
---
|
||||
in: |
|
||||
Test of Markdown-style indented code.
|
||||
|
||||
a = [1, 2, 3]
|
||||
a.each do |x|
|
||||
puts "test number", x,
|
||||
"and more!"
|
||||
end
|
||||
|
||||
Paragraph 2.
|
||||
|
||||
Paragraph 3.
|
||||
out: |-
|
||||
<p>Test of Markdown-style indented code.</p>
|
||||
|
||||
<pre><code>a = [1, 2, 3]
|
||||
a.each do |x|
|
||||
puts "test number", x,
|
||||
"and more!"
|
||||
end</code></pre>
|
||||
|
||||
<p>Paragraph 2.</p>
|
||||
|
||||
<p>Paragraph 3.</p>
|
96
vendor/redcloth-2.0.11/tests/images.yml → vendor/RedCloth-3.0.3/tests/images.yml
vendored
Executable file → Normal file
96
vendor/redcloth-2.0.11/tests/images.yml → vendor/RedCloth-3.0.3/tests/images.yml
vendored
Executable file → Normal file
|
@ -27,145 +27,145 @@ in: This is not an image!!!
|
|||
out: <p>This is not an image!!!</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:#1
|
||||
out: <p>This is an <a href="#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:#a
|
||||
out: <p>This is an <a href="#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="#a"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:#a1
|
||||
out: <p>This is an <a href="#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:#a10
|
||||
out: <p>This is an <a href="#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html
|
||||
out: <p>This is an <a href="index.html"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html#1
|
||||
out: <p>This is an <a href="index.html#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html#a1
|
||||
out: <p>This is an <a href="index.html#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html#a10
|
||||
out: <p>This is an <a href="index.html#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html?foo=bar
|
||||
out: <p>This is an <a href="index.html?foo=bar"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html?foo=bar"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html?foo=bar#1
|
||||
out: <p>This is an <a href="index.html?foo=bar#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html?foo=bar#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html?foo=bar#a
|
||||
out: <p>This is an <a href="index.html?foo=bar#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html?foo=bar#a"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html?foo=bar#a1
|
||||
out: <p>This is an <a href="index.html?foo=bar#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html?foo=bar#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:index.html?foo=bar#a10
|
||||
out: <p>This is an <a href="index.html?foo=bar#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="index.html?foo=bar#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/
|
||||
out: <p>This is an <a href="http://example.com/"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/#1
|
||||
out: <p>This is an <a href="http://example.com/#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/#a
|
||||
out: <p>This is an <a href="http://example.com/#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/#a"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/#a1
|
||||
out: <p>This is an <a href="http://example.com/#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/#a10
|
||||
out: <p>This is an <a href="http://example.com/#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html
|
||||
out: <p>This is an <a href="http://example.com/index.html"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html#1
|
||||
out: <p>This is an <a href="http://example.com/index.html#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html#a
|
||||
out: <p>This is an <a href="http://example.com/index.html#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html#a"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html#a1
|
||||
out: <p>This is an <a href="http://example.com/index.html#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html#a10
|
||||
out: <p>This is an <a href="http://example.com/index.html#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar#1
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar#a
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#a"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar#a1
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar#a10
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#1
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a1
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a10
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a></p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" /></a></p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" /></a>.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#1.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" /></a>.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" /></a>.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a1.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" /></a>.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a10.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" /></a>.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b, but this is not.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>, but this is not.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" /></a>, but this is not.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#1, but this is not.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>, but this is not.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" /></a>, but this is not.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a, but this is not.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>, but this is not.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" /></a>, but this is not.</p>
|
||||
---
|
||||
in: This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a1, but this is not.
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>, but this is not.</p>
|
||||
out: <p>This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" /></a>, but this is not.</p>
|
||||
---
|
||||
in: (This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a10) This is not.
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>) This is not.</p>
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" /></a>) This is not.</p>
|
||||
---
|
||||
in: (This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b) This is not.
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>) This is not.</p>
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b"><img src="http://example.com/i/image.jpg" alt="" /></a>) This is not.</p>
|
||||
---
|
||||
in: (This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#1) This is not.
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>) This is not.</p>
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#1"><img src="http://example.com/i/image.jpg" alt="" /></a>) This is not.</p>
|
||||
---
|
||||
in: (This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a) This is not.
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>) This is not.</p>
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a"><img src="http://example.com/i/image.jpg" alt="" /></a>) This is not.</p>
|
||||
---
|
||||
in: (This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a1) This is not.
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>) This is not.</p>
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a1"><img src="http://example.com/i/image.jpg" alt="" /></a>) This is not.</p>
|
||||
---
|
||||
in: (This is an !http://example.com/i/image.jpg!:http://example.com/index.html?foo=bar&a=b#a10) This is not.
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" border="0" /></a>) This is not.</p>
|
||||
out: <p>(This is an <a href="http://example.com/index.html?foo=bar&a=b#a10"><img src="http://example.com/i/image.jpg" alt="" /></a>) This is not.</p>
|
10
vendor/redcloth-2.0.11/tests/instiki.yml → vendor/RedCloth-3.0.3/tests/instiki.yml
vendored
Executable file → Normal file
10
vendor/redcloth-2.0.11/tests/instiki.yml → vendor/RedCloth-3.0.3/tests/instiki.yml
vendored
Executable file → Normal file
|
@ -18,17 +18,19 @@ out: '<p><span style="color:red;">nested span because of <span><span class="newW
|
|||
---
|
||||
in: |-
|
||||
h2. Version History
|
||||
* "Version
|
||||
|
||||
* "Version
|
||||
0.0":http://www.threewordslong.com/render-0-8-9b.patch - Early version using MD5 hashes.
|
||||
* "Version
|
||||
* "Version
|
||||
0.1":http://www.threewordslong.com/chunk-0-1.patch.gz - First cut of new system. Much cleaner.
|
||||
* "Version 0.2":http://www.threewordslong.com/chunk-0-2.patch.gz - Fixed problem with "authors" page and some tests.
|
||||
out: |-
|
||||
<h2>Version History</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://www.threewordslong.com/render-0-8-9b.patch">Version <br />
|
||||
<li><a href="http://www.threewordslong.com/render-0-8-9b.patch">Version
|
||||
0.0</a> – Early version using <span class="caps">MD5</span> hashes.</li>
|
||||
<li><a href="http://www.threewordslong.com/chunk-0-1.patch.gz">Version <br />
|
||||
<li><a href="http://www.threewordslong.com/chunk-0-1.patch.gz">Version
|
||||
0.1</a> – First cut of new system. Much cleaner.</li>
|
||||
<li><a href="http://www.threewordslong.com/chunk-0-2.patch.gz">Version 0.2</a> – Fixed problem with “authors” page and some tests.</li>
|
||||
</ul>
|
3
vendor/redcloth-2.0.11/tests/links.yml → vendor/RedCloth-3.0.3/tests/links.yml
vendored
Executable file → Normal file
3
vendor/redcloth-2.0.11/tests/links.yml → vendor/RedCloth-3.0.3/tests/links.yml
vendored
Executable file → Normal file
|
@ -150,3 +150,6 @@ out: <p>Go to <a href="http://www.dreammoods.com/cgibin/cutecast/cutecast.pl?for
|
|||
---
|
||||
in: '* "rubylang":http://www.ruby-lang.org/en/'
|
||||
out: "<ul>\n\t<li><a href=\"http://www.ruby-lang.org/en/\">rubylang</a></li>\n\t</ul>"
|
||||
---
|
||||
in: 'The ION coding style document found at "IONCodingStyleGuide.doc":http://perforce:8081/@md=d&cd=//&c=82E@//depot/systest/system/main/pub/doc/IONCodingStyleGuide.doc?ac=22 codifies a couple of rules to ensure reasonably consistent code and documentation of libraries in ION. Test text'
|
||||
out: <p>The <span class="caps">ION</span> coding style document found at <a href="http://perforce:8081/@md=d&cd=//&c=82E@//depot/systest/system/main/pub/doc/IONCodingStyleGuide.doc?ac=22">IONCodingStyleGuide.doc</a> codifies a couple of rules to ensure reasonably consistent code and documentation of libraries in <span class="caps">ION</span>. Test text</p>
|
10
vendor/redcloth-2.0.11/tests/lists.yml → vendor/RedCloth-3.0.3/tests/lists.yml
vendored
Executable file → Normal file
10
vendor/redcloth-2.0.11/tests/lists.yml → vendor/RedCloth-3.0.3/tests/lists.yml
vendored
Executable file → Normal file
|
@ -24,11 +24,10 @@ in: |-
|
|||
p. end
|
||||
out: |-
|
||||
<p>start</p>
|
||||
|
||||
<ul>
|
||||
<li>one<br />
|
||||
<li>one
|
||||
and one</li>
|
||||
<li>two<br />
|
||||
<li>two
|
||||
and two</li>
|
||||
<li>three</li>
|
||||
</ul>
|
||||
|
@ -46,13 +45,11 @@ in: |-
|
|||
yeah number
|
||||
#* bullet
|
||||
*** okay
|
||||
|
||||
****# what
|
||||
|
||||
|
||||
out: |-
|
||||
<p>Funky:</p>
|
||||
|
||||
<ul>
|
||||
<li>Testing
|
||||
<ol>
|
||||
|
@ -62,13 +59,12 @@ out: |-
|
|||
</ul>
|
||||
</li>
|
||||
<li>number</li>
|
||||
<li>number<br />
|
||||
<li>number
|
||||
yeah number</li>
|
||||
<ul>
|
||||
<li>bullet
|
||||
<ul>
|
||||
<li>okay
|
||||
|
||||
<ol>
|
||||
<li>what</li>
|
||||
</ul></li>
|
218
vendor/RedCloth-3.0.3/tests/markdown.yml
vendored
Normal file
218
vendor/RedCloth-3.0.3/tests/markdown.yml
vendored
Normal file
|
@ -0,0 +1,218 @@
|
|||
in: |
|
||||
This is a regular paragraph.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Foo</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
This is another regular paragraph.
|
||||
out: |-
|
||||
<p>This is a regular paragraph.</p>
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Foo</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>This is another regular paragraph.</p>
|
||||
---
|
||||
in: '"Larry Bird":http://images.google.com/images?num=30&q=larry+bird'
|
||||
out: '<p>"Larry Bird":http://images.google.com/images?num=30&q=larry+bird</p>'
|
||||
---
|
||||
in: '©'
|
||||
out: <p>©</p>
|
||||
---
|
||||
in: AT&T
|
||||
out: <p>AT&T</p>
|
||||
|
||||
# We don't do this.
|
||||
# ---
|
||||
# in: 4 < 5
|
||||
# out: 4 < 5
|
||||
---
|
||||
in: |
|
||||
This is an H1
|
||||
=============
|
||||
|
||||
This is an H2
|
||||
-------------
|
||||
out: |-
|
||||
<h1>This is an H1</h1>
|
||||
|
||||
<h2>This is an H2</h2>
|
||||
---
|
||||
in: |
|
||||
# This is an H1
|
||||
|
||||
## This is an H2
|
||||
|
||||
###### This is an H6
|
||||
out: |-
|
||||
<h1>This is an H1</h1>
|
||||
|
||||
<h2>This is an H2</h2>
|
||||
|
||||
<h6>This is an H6</h6>
|
||||
---
|
||||
in: |
|
||||
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
|
||||
> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
|
||||
> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
|
||||
>
|
||||
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
|
||||
> id sem consectetuer libero luctus adipiscing.
|
||||
out: |-
|
||||
<blockquote>
|
||||
<p>This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
|
||||
consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
|
||||
Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.</p>
|
||||
|
||||
<p>Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
|
||||
id sem consectetuer libero luctus adipiscing.</p>
|
||||
|
||||
</blockquote>
|
||||
---
|
||||
in: |
|
||||
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
|
||||
consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
|
||||
Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
|
||||
>
|
||||
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
|
||||
id sem consectetuer libero luctus adipiscing.
|
||||
out: |-
|
||||
<blockquote>
|
||||
<p>This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
|
||||
consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
|
||||
Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.</p>
|
||||
|
||||
<p>Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
|
||||
id sem consectetuer libero luctus adipiscing.</p>
|
||||
|
||||
</blockquote>
|
||||
---
|
||||
in: |
|
||||
> This is the first level of quoting.
|
||||
>
|
||||
> > This is nested blockquote.
|
||||
>
|
||||
> Back to the first level.
|
||||
out: |-
|
||||
<blockquote>
|
||||
<p>This is the first level of quoting.</p>
|
||||
<blockquote>
|
||||
<p>This is nested blockquote.</p>
|
||||
|
||||
</blockquote>
|
||||
|
||||
|
||||
|
||||
<p>Back to the first level.</p>
|
||||
|
||||
</blockquote>
|
||||
---
|
||||
in: |
|
||||
> ## This is a header.
|
||||
>
|
||||
> 1. This is the first list item.
|
||||
> 2. This is the second list item.
|
||||
>
|
||||
> Here's some example code:
|
||||
>
|
||||
> return shell_exec("echo $input | $markdown_script");
|
||||
out: |-
|
||||
<blockquote>
|
||||
<h2>This is a header.</h2>
|
||||
|
||||
|
||||
|
||||
<p>1. This is the first list item.
|
||||
2. This is the second list item.</p>
|
||||
|
||||
<p>Here's some example code:</p>
|
||||
<pre><code>return shell_exec("echo $input | $markdown_script");</code></pre>
|
||||
|
||||
</blockquote>
|
||||
---
|
||||
in: |
|
||||
* * *
|
||||
|
||||
***
|
||||
|
||||
*****
|
||||
|
||||
- - -
|
||||
|
||||
---------------------------------------
|
||||
|
||||
_ _ _
|
||||
out: |-
|
||||
<hr />
|
||||
|
||||
<hr />
|
||||
|
||||
<hr />
|
||||
|
||||
<hr />
|
||||
|
||||
<hr />
|
||||
|
||||
<hr />
|
||||
---
|
||||
in: |
|
||||
This is [an example](http://example.com/ "Title") inline link.
|
||||
|
||||
[This link](http://example.net/) has no title attribute.
|
||||
out: |-
|
||||
<p>This is <a href="http://example.com/" title="Title">an example</a> inline link.</p>
|
||||
|
||||
<p><a href="http://example.net/">This link</a> has no title attribute.</p>
|
||||
---
|
||||
in: See my [About](/about/) page for details.
|
||||
out: <p>See my <a href="/about/">About</a> page for details.</p>
|
||||
---
|
||||
in: |
|
||||
This is [an example][id] reference-style link.
|
||||
|
||||
This is [an example] [id] reference-style link.
|
||||
|
||||
[id]: http://example.com/ "Optional Title Here"
|
||||
out: |-
|
||||
<p>This is <a href="http://example.com/" title="Optional Title Here">an example</a> reference-style link.</p>
|
||||
|
||||
<p>This is <a href="http://example.com/" title="Optional Title Here">an example</a> reference-style link.</p>
|
||||
---
|
||||
in: |
|
||||
[Google][]
|
||||
[Google]: http://google.com/
|
||||
out: <p><a href="http://google.com/">Google</a></p>
|
||||
---
|
||||
in: |
|
||||
Visit [Daring Fireball][] for more information.
|
||||
[Daring Fireball]: http://daringfireball.net/
|
||||
out: <p>Visit <a href="http://daringfireball.net/">Daring Fireball</a> for more information.</p>
|
||||
---
|
||||
in: |
|
||||
I get 10 times more traffic from [Google] [1] than from
|
||||
[Yahoo] [2] or [MSN] [3].
|
||||
|
||||
[1]: http://google.com/ "Google"
|
||||
[2]: http://search.yahoo.com/ "Yahoo Search"
|
||||
[3]: http://search.msn.com/ "MSN Search"
|
||||
|
||||
out: |-
|
||||
<p>I get 10 times more traffic from <a href="http://google.com/" title="Google">Google</a> than from
|
||||
<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
|
||||
---
|
||||
in: |
|
||||
I get 10 times more traffic from [Google][] than from
|
||||
[Yahoo][] or [MSN][].
|
||||
|
||||
[google]: http://google.com/ "Google"
|
||||
[yahoo]: http://search.yahoo.com/ "Yahoo Search"
|
||||
[msn]: http://search.msn.com/ "MSN Search"
|
||||
out: |-
|
||||
<p>I get 10 times more traffic from <a href="http://google.com/" title="Google">Google</a> than from
|
||||
<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
|
64
vendor/RedCloth-3.0.3/tests/poignant.yml
vendored
Normal file
64
vendor/RedCloth-3.0.3/tests/poignant.yml
vendored
Normal file
|
@ -0,0 +1,64 @@
|
|||
--- # Tests from the (Poignant Guide)
|
||||
in: >
|
||||
h3. False
|
||||
|
||||
|
||||
!<i/blix-neg.gif(Shape of a cat.)!
|
||||
|
||||
|
||||
_The cat Trady Blix. Frozen in emptiness. Immaculate whiskers rigid. Placid
|
||||
eyes of lake. Tail of warm icicle. Sponsored by a Very Powerful Pause Button._
|
||||
|
||||
|
||||
The darkness surrounding Blix can be called *negative space*. Hang on to that phrase.
|
||||
Let it suggest that the emptiness has a negative connotation. In a similar way,
|
||||
@nil@ has a slightly sour note that it whistles.
|
||||
|
||||
|
||||
Generally speaking, everything in Ruby has a positive charge to it. This spark
|
||||
flows through strings, numbers, regexps, all of it. Only two keywords wear a
|
||||
shady cloak: @nil@ and @false@ draggin us down.
|
||||
|
||||
|
||||
You can test that charge with an @if@ keyword. It looks very much like the
|
||||
@do@ blocks we saw in the last chapter, in that both end with an @end@.
|
||||
|
||||
|
||||
<pre>
|
||||
if plastic_cup
|
||||
print "Plastic cup is on the up 'n' up!"
|
||||
end
|
||||
</pre>
|
||||
|
||||
|
||||
If @plastic_cup@ contains either @nil@ or @false@, you won't see anything print
|
||||
to the screen. They're not on the @if@ guest list. So @if@ isn't going to run
|
||||
any of the code it's protecting.
|
||||
|
||||
|
||||
But @nil@ and @false@ need not walk away in shame. They may be of questionable
|
||||
character, but @unless@ runs a smaller establishment that caters to the bedraggled.
|
||||
The @unless@ keyword has a policy of only allowing those with a negative charge in.
|
||||
Who are: @nil@ and @false@.
|
||||
|
||||
|
||||
<pre>
|
||||
unless plastic_cup
|
||||
print "Plastic cup is on the down low."
|
||||
end
|
||||
</pre>
|
||||
|
||||
|
||||
You can also use @if@ and @unless@ at the end of a single line of code, if that's
|
||||
all that is being protected.
|
||||
|
||||
|
||||
<pre>
|
||||
print "Yeah, plastic cup is up again!" if plastic_cup
|
||||
print "Hardly. It's down." unless plastic_cup
|
||||
</pre>
|
||||
|
||||
|
||||
Now that you've met @false@, I'm sure you can see what's on next.
|
||||
|
||||
out: "<h3>False</h3>\n\n\t<p style=\"float:left\"><img src=\"i/blix-neg.gif\" title=\"Shape of a cat.\" alt=\"Shape of a cat.\" /></p>\n\n\t<p><em>The cat Trady Blix. Frozen in emptiness. Immaculate whiskers rigid. Placid eyes of lake. Tail of warm icicle. Sponsored by a Very Powerful Pause Button.</em></p>\n\n\t<p>The darkness surrounding Blix can be called <strong>negative space</strong>. Hang on to that phrase. Let it suggest that the emptiness has a negative connotation. In a similar way, <code>nil</code> has a slightly sour note that it whistles.</p>\n\n\t<p>Generally speaking, everything in Ruby has a positive charge to it. This spark flows through strings, numbers, regexps, all of it. Only two keywords wear a shady cloak: <code>nil</code> and <code>false</code> draggin us down.</p>\n\n\t<p>You can test that charge with an <code>if</code> keyword. It looks very much like the <code>do</code> blocks we saw in the last chapter, in that both end with an <code>end</code>.</p>\n\n\n<pre>\n if plastic_cup\n print \"Plastic cup is on the up 'n' up!\" \n end\n</pre>\n\t<p>If <code>plastic_cup</code> contains either <code>nil</code> or <code>false</code>, you won’t see anything print to the screen. They’re not on the <code>if</code> guest list. So <code>if</code> isn’t going to run any of the code it’s protecting.</p>\n\n\t<p>But <code>nil</code> and <code>false</code> need not walk away in shame. They may be of questionable character, but <code>unless</code> runs a smaller establishment that caters to the bedraggled. The <code>unless</code> keyword has a policy of only allowing those with a negative charge in. Who are: <code>nil</code> and <code>false</code>.</p>\n\n\n<pre>\n unless plastic_cup\n print \"Plastic cup is on the down low.\" \n end\n</pre>\n\t<p>You can also use <code>if</code> and <code>unless</code> at the end of a single line of code, if that’s all that is being protected.</p>\n\n\n<pre>\n print \"Yeah, plastic cup is up again!\" if plastic_cup\n print \"Hardly. It's down.\" unless plastic_cup\n</pre>\n\t<p>Now that you’ve met <code>false</code>, I’m sure you can see what’s on next.</p>"
|
198
vendor/RedCloth-3.0.3/tests/table.yml
vendored
Normal file
198
vendor/RedCloth-3.0.3/tests/table.yml
vendored
Normal file
|
@ -0,0 +1,198 @@
|
|||
in: |
|
||||
{background:#ddd}. |S|Target|Complete|App|Milestone|
|
||||
|!/i/g.gif!|11/18/04|11/18/04|070|XML spec complete|
|
||||
|!/i/g.gif!|11/29/04|11/29/04|011|XML spec complete (KH is on schedule)|
|
||||
|!/i/g.gif!|11/29/04|11/29/04|051|XML spec complete (KH is on schedule)|
|
||||
|!/i/g.gif!|11/29/04|11/29/04|081|XML spec complete (KH is on schedule)|
|
||||
|!/i/g.gif!|11/19/04|11/22/04|070|Preprocessor complete|
|
||||
|!/i/g.gif!|11/22/04|11/22/04|070|Dialog pass 1 builds an index file|
|
||||
|!/i/g.gif!|11/24/04|11/24/04|070|Dialog pass 2 98% complete|
|
||||
|!/i/g.gif!|11/30/04|11/30/04|070|Feature complete. Passes end-to-end smoke test.|
|
||||
|!/i/g.gif!|11/30/04|11/30/04|011|Preprocessor updates complete|
|
||||
|!/i/g.gif!|11/30/04|11/30/04|051|Preprocessor updates complete|
|
||||
|!/i/g.gif!|11/30/04|11/29/04|081|Preprocessor updates complete|
|
||||
|!/i/w.gif!|12/02/04|.|011|Dialog pass 1 and 2 complete (98+%)|
|
||||
|!/i/w.gif!|12/02/04|.|051|Dialog pass 1 and 2 complete (98+%)|
|
||||
|!/i/w.gif!|12/02/04|.|081|Dialog pass 1 and 2 complete (98+%)|
|
||||
|!/i/w.gif!|12/03/04|.|011|Feature complete|
|
||||
|!/i/w.gif!|12/03/04|.|051|Feature complete|
|
||||
|!/i/w.gif!|12/03/04|.|081|Feature complete|
|
||||
|!/i/w.gif!|12/10/04|.|011|Deployed to Napa test workstation. Passes smoke test.|
|
||||
|!/i/w.gif!|12/10/04|.|051|Deployed to Napa test workstation. Passes smoke test.|
|
||||
|!/i/w.gif!|12/10/04|.|081|Deployed to Napa test workstation. Passes smoke test.|
|
||||
|!/i/w.gif!|12/10/04|.|070|Deployed to Napa test workstation. Passes smoke test.|
|
||||
|!/i/w.gif!|12/17/04|.|011|System testing complete. Begin testing with live customer data.|
|
||||
|!/i/w.gif!|12/17/04|.|051|System testing complete. Begin testing with live customer data.|
|
||||
|!/i/w.gif!|12/17/04|.|081|System testing complete. Begin testing with live customer data.|
|
||||
|!/i/w.gif!|12/17/04|.|070|System testing complete. Begin testing with live customer data.|
|
||||
out: |-
|
||||
<table>
|
||||
<tr style="background:#ddd;">
|
||||
<td>S</td>
|
||||
<td>Target</td>
|
||||
<td>Complete</td>
|
||||
<td>App</td>
|
||||
<td>Milestone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/18/04</td>
|
||||
<td>11/18/04</td>
|
||||
<td>070</td>
|
||||
<td>XML spec complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/29/04</td>
|
||||
<td>11/29/04</td>
|
||||
<td>011</td>
|
||||
<td>XML spec complete (KH is on schedule)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/29/04</td>
|
||||
<td>11/29/04</td>
|
||||
<td>051</td>
|
||||
<td>XML spec complete (KH is on schedule)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/29/04</td>
|
||||
<td>11/29/04</td>
|
||||
<td>081</td>
|
||||
<td>XML spec complete (KH is on schedule)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/19/04</td>
|
||||
<td>11/22/04</td>
|
||||
<td>070</td>
|
||||
<td>Preprocessor complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/22/04</td>
|
||||
<td>11/22/04</td>
|
||||
<td>070</td>
|
||||
<td>Dialog pass 1 builds an index file</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/24/04</td>
|
||||
<td>11/24/04</td>
|
||||
<td>070</td>
|
||||
<td>Dialog pass 2 98% complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/30/04</td>
|
||||
<td>11/30/04</td>
|
||||
<td>070</td>
|
||||
<td>Feature complete. Passes end-to-end smoke test.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/30/04</td>
|
||||
<td>11/30/04</td>
|
||||
<td>011</td>
|
||||
<td>Preprocessor updates complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/30/04</td>
|
||||
<td>11/30/04</td>
|
||||
<td>051</td>
|
||||
<td>Preprocessor updates complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/g.gif" alt="" /></td>
|
||||
<td>11/30/04</td>
|
||||
<td>11/29/04</td>
|
||||
<td>081</td>
|
||||
<td>Preprocessor updates complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/02/04</td>
|
||||
<td>011</td>
|
||||
<td>Dialog pass 1 and 2 complete (98+%)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/02/04</td>
|
||||
<td>051</td>
|
||||
<td>Dialog pass 1 and 2 complete (98+%)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/02/04</td>
|
||||
<td>081</td>
|
||||
<td>Dialog pass 1 and 2 complete (98+%)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/03/04</td>
|
||||
<td>011</td>
|
||||
<td>Feature complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/03/04</td>
|
||||
<td>051</td>
|
||||
<td>Feature complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/03/04</td>
|
||||
<td>081</td>
|
||||
<td>Feature complete</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/10/04</td>
|
||||
<td>011</td>
|
||||
<td>Deployed to Napa test workstation. Passes smoke test.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/10/04</td>
|
||||
<td>051</td>
|
||||
<td>Deployed to Napa test workstation. Passes smoke test.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/10/04</td>
|
||||
<td>081</td>
|
||||
<td>Deployed to Napa test workstation. Passes smoke test.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/10/04</td>
|
||||
<td>070</td>
|
||||
<td>Deployed to Napa test workstation. Passes smoke test.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/17/04</td>
|
||||
<td>011</td>
|
||||
<td>System testing complete. Begin testing with live customer data.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/17/04</td>
|
||||
<td>051</td>
|
||||
<td>System testing complete. Begin testing with live customer data.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/17/04</td>
|
||||
<td>081</td>
|
||||
<td>System testing complete. Begin testing with live customer data.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/i/w.gif" alt="" /></td>
|
||||
<td>12/17/04</td>
|
||||
<td>070</td>
|
||||
<td>System testing complete. Begin testing with live customer data.</td>
|
||||
</tr>
|
||||
</table>
|
25
vendor/redcloth-2.0.11/tests/textism.yml → vendor/RedCloth-3.0.3/tests/textism.yml
vendored
Executable file → Normal file
25
vendor/redcloth-2.0.11/tests/textism.yml → vendor/RedCloth-3.0.3/tests/textism.yml
vendored
Executable file → Normal file
|
@ -114,7 +114,7 @@ in: h3=. centered header
|
|||
out: <h3 style="text-align:center;">centered header</h3>
|
||||
---
|
||||
in: '!>/image.gif! right-aligned image'
|
||||
out: <p><img src="/image.gif" align="right" alt="" /> right-aligned image</p>
|
||||
out: <p style="float:right"><img src="/image.gif" alt="" /> right-aligned image</p>
|
||||
---
|
||||
in: p[no]{color:red}. A Norse of a different colour.
|
||||
out: <p style="color:red;" lang="no">A Norse of a different colour.</p>
|
||||
|
@ -255,7 +255,7 @@ in: |-
|
|||
# Yes they do
|
||||
# But you knew that
|
||||
|
||||
Some more text of dubious character. Here is a noisome string of CAPITAL letters. Here is something we want to _emphasize_.
|
||||
Some more text of dubious character. Here is a noisome string of CAPITAL letters. Here is something we want to _emphasize_.
|
||||
That was a linebreak. And something to indicate *strength*. Of course I could use <em>my own HTML tags</em> if I <strong>felt</strong> like it.
|
||||
|
||||
h3. Coding
|
||||
|
@ -287,13 +287,12 @@ out: |-
|
|||
<h3>This is a subhead</h3>
|
||||
|
||||
<p style="color:red;">This is some text of dubious character. Isn’t the use of “quotes” just lazy writing—and theft of ‘intellectual property’ besides? I think the time has come to see a block quote.</p>
|
||||
|
||||
|
||||
<blockquote>
|
||||
<p lang="fr">This is a block quote. I’ll admit it’s not the most exciting block quote ever devised.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Simple list:</p>
|
||||
|
||||
<ol style="color:blue;">
|
||||
<li>one</li>
|
||||
<li>two</li>
|
||||
|
@ -301,7 +300,6 @@ out: |-
|
|||
</ol>
|
||||
|
||||
<p>Multi-level list:</p>
|
||||
|
||||
<ol>
|
||||
<li>one
|
||||
<ol>
|
||||
|
@ -320,7 +318,6 @@ out: |-
|
|||
</ol>
|
||||
|
||||
<p>Mixed list:</p>
|
||||
|
||||
<ul>
|
||||
<li>Point one</li>
|
||||
<li>Point two
|
||||
|
@ -340,7 +337,7 @@ out: |-
|
|||
<p>Well, that went well. How about we insert an <a href="/" title="watch out">old-fashioned hypertext link</a>? Will the quote marks in the tags get messed up? No!</p>
|
||||
|
||||
<p><a href="http://www.textism.com" title="optional title">This is a link</a></p>
|
||||
|
||||
|
||||
<table style="border:1px solid black;">
|
||||
<tr>
|
||||
<th>this</th>
|
||||
|
@ -361,23 +358,25 @@ out: |-
|
|||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<p>An image:</p>
|
||||
|
||||
<p><img src="/common/textist.gif" title="optional alt text" alt="optional alt text" /></p>
|
||||
|
||||
<ol>
|
||||
<li>Librarians rule</li>
|
||||
<li>Yes they do</li>
|
||||
<li>But you knew that</li>
|
||||
</ol>
|
||||
|
||||
<p>Some more text of dubious character. Here is a noisome string of <span class="caps">CAPITAL</span> letters. Here is something we want to <em>emphasize</em>. <br />
|
||||
<p>Some more text of dubious character. Here is a noisome string of <span class="caps">CAPITAL</span> letters. Here is something we want to <em>emphasize</em>.
|
||||
That was a linebreak. And something to indicate <strong>strength</strong>. Of course I could use <em>my own <span class="caps">HTML</span> tags</em> if I <strong>felt</strong> like it.</p>
|
||||
|
||||
|
||||
<h3>Coding</h3>
|
||||
|
||||
<p>This <code>is some code, "isn't it"</code>. Watch those quote marks! Now for some preformatted text:</p>
|
||||
|
||||
|
||||
<pre>
|
||||
<code>
|
||||
$text = str_replace("<p>%::%</p>","",$text);
|
||||
|
@ -386,11 +385,9 @@ out: |-
|
|||
|
||||
</code>
|
||||
</pre>
|
||||
|
||||
<p>This isn’t code.</p>
|
||||
|
||||
<p>So you see, my friends:</p>
|
||||
|
||||
<ul>
|
||||
<li>The time is now</li>
|
||||
<li>The time is not later</li>
|
||||
|
@ -398,7 +395,3 @@ out: |-
|
|||
<li>We must act</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
34
vendor/redcloth-2.0.11/RedCloth.gemspec
vendored
34
vendor/redcloth-2.0.11/RedCloth.gemspec
vendored
|
@ -1,34 +0,0 @@
|
|||
require 'rubygems'
|
||||
spec = Gem::Specification.new do |s|
|
||||
|
||||
## Basic Information
|
||||
|
||||
s.name = 'RedCloth'
|
||||
s.version = "2.0.11"
|
||||
s.platform = Gem::Platform::RUBY
|
||||
s.summary = <<-TXT
|
||||
RedCloth is a module for using Textile in Ruby. Textile is a text format.
|
||||
A very simple text format. Another stab at making readable text that can be converted to HTML.
|
||||
TXT
|
||||
|
||||
## Include tests, libs, docs
|
||||
|
||||
s.files = ['tests/**/*', 'lib/**/*', 'docs/**/*', 'run-tests.rb'].collect do |dirglob|
|
||||
Dir.glob(dirglob)
|
||||
end.flatten.delete_if {|item| item.include?("CVS")}
|
||||
|
||||
## Load-time details
|
||||
|
||||
s.require_path = 'lib'
|
||||
s.autorequire = 'redcloth'
|
||||
|
||||
## Author and project details
|
||||
|
||||
s.author = "Why the Lucky Stiff"
|
||||
s.email = "why@ruby-lang.org"
|
||||
s.rubyforge_project = "redcloth"
|
||||
s.homepage = "http://www.whytheluckystiff.net/ruby/redcloth/"
|
||||
end
|
||||
if $0==__FILE__
|
||||
Gem::Builder.new(spec).build
|
||||
end
|
894
vendor/redcloth-2.0.11/lib/redcloth.rb
vendored
894
vendor/redcloth-2.0.11/lib/redcloth.rb
vendored
|
@ -1,894 +0,0 @@
|
|||
# vim:ts=4:sw=4:
|
||||
# = RedCloth - Textile for Ruby
|
||||
#
|
||||
# Homepage:: http://whytheluckystiff.net/ruby/redcloth/
|
||||
# Author:: why the lucky stiff (http://whytheluckystiff.net/)
|
||||
# Copyright:: (c) 2004 why the lucky stiff (and his puppet organizations.)
|
||||
# License:: BSD
|
||||
#
|
||||
# (see http://hobix.com/textile/ for a Textile Reference.)
|
||||
#
|
||||
# Based on (and also inspired by) both:
|
||||
#
|
||||
# PyTextile: http://diveintomark.org/projects/textile/textile.py.txt
|
||||
# Textism for PHP: http://www.textism.com/tools/textile/
|
||||
#
|
||||
#
|
||||
|
||||
class String
|
||||
#
|
||||
# Flexible HTML escaping
|
||||
#
|
||||
def htmlesc!( mode )
|
||||
gsub!( '&', '&' )
|
||||
gsub!( '"', '"' ) if mode != :NoQuotes
|
||||
gsub!( "'", ''' ) if mode == :Quotes
|
||||
gsub!('<', '<')
|
||||
gsub!('>', '>')
|
||||
end
|
||||
end
|
||||
|
||||
# = RedCloth
|
||||
#
|
||||
# RedCloth is a Ruby library for converting Textile
|
||||
# into HTML.
|
||||
#
|
||||
# == What is Textile?
|
||||
#
|
||||
# Textile is a simple formatting style for text
|
||||
# documents, loosely based on some HTML conventions.
|
||||
#
|
||||
# == Sample Textile Text
|
||||
#
|
||||
# h2. This is a title
|
||||
#
|
||||
# h3. This is a subhead
|
||||
#
|
||||
# This is a bit of paragraph.
|
||||
#
|
||||
# bq. This is a blockquote.
|
||||
#
|
||||
# = Writing Textile
|
||||
#
|
||||
# A Textile document consists of paragraphs. Paragraphs
|
||||
# can be specially formatted by adding a small instruction
|
||||
# to the beginning of the paragraph.
|
||||
#
|
||||
# h[n]. Header of size [n].
|
||||
# bq. Blockquote.
|
||||
# # Numeric list.
|
||||
# * Bulleted list.
|
||||
#
|
||||
# == Quick Phrase Modifiers
|
||||
#
|
||||
# Quick phrase modifiers are also included, to allow formatting
|
||||
# of small portions of text within a paragraph.
|
||||
#
|
||||
# \_emphasis\_
|
||||
# \_\_italicized\_\_
|
||||
# \*strong\*
|
||||
# \*\*bold\*\*
|
||||
# ??citation??
|
||||
# -deleted text-
|
||||
# +inserted text+
|
||||
# ^superscript^
|
||||
# ~subscript~
|
||||
# @code@
|
||||
# %(classname)span%
|
||||
#
|
||||
# ==notextile== (leave text alone)
|
||||
#
|
||||
# == Links
|
||||
#
|
||||
# To make a hypertext link, put the link text in "quotation
|
||||
# marks" followed immediately by a colon and the URL of the link.
|
||||
#
|
||||
# Optional: text in (parentheses) following the link text,
|
||||
# but before the closing quotation mark, will become a Title
|
||||
# attribute for the link, visible as a tool tip when a cursor is above it.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# "This is a link (This is a title) ":http://www.textism.com
|
||||
#
|
||||
# Will become:
|
||||
#
|
||||
# <a href="http://www.textism.com" title="This is a title">This is a link</a>
|
||||
#
|
||||
# == Images
|
||||
#
|
||||
# To insert an image, put the URL for the image inside exclamation marks.
|
||||
#
|
||||
# Optional: text that immediately follows the URL in (parentheses) will
|
||||
# be used as the Alt text for the image. Images on the web should always
|
||||
# have descriptive Alt text for the benefit of readers using non-graphical
|
||||
# browsers.
|
||||
#
|
||||
# Optional: place a colon followed by a URL immediately after the
|
||||
# closing ! to make the image into a link.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# !http://www.textism.com/common/textist.gif(Textist)!
|
||||
#
|
||||
# Will become:
|
||||
#
|
||||
# <img src="http://www.textism.com/common/textist.gif" alt="Textist" />
|
||||
#
|
||||
# With a link:
|
||||
#
|
||||
# !/common/textist.gif(Textist)!:http://textism.com
|
||||
#
|
||||
# Will become:
|
||||
#
|
||||
# <a href="http://textism.com"><img src="/common/textist.gif" alt="Textist" /></a>
|
||||
#
|
||||
# == Defining Acronyms
|
||||
#
|
||||
# HTML allows authors to define acronyms via the tag. The definition appears as a
|
||||
# tool tip when a cursor hovers over the acronym. A crucial aid to clear writing,
|
||||
# this should be used at least once for each acronym in documents where they appear.
|
||||
#
|
||||
# To quickly define an acronym in Textile, place the full text in (parentheses)
|
||||
# immediately following the acronym.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# ACLU(American Civil Liberties Union)
|
||||
#
|
||||
# Will become:
|
||||
#
|
||||
# <acronym title="American Civil Liberties Union">ACLU</acronym>
|
||||
#
|
||||
# == Adding Tables
|
||||
#
|
||||
# In Textile, simple tables can be added by seperating each column by
|
||||
# a pipe.
|
||||
#
|
||||
# |a|simple|table|row|
|
||||
# |And|Another|table|row|
|
||||
#
|
||||
# Attributes are defined by style definitions in parentheses.
|
||||
#
|
||||
# table(border:1px solid black).
|
||||
# (background:#ddd;color:red). |{}| | | |
|
||||
#
|
||||
# == Using RedCloth
|
||||
#
|
||||
# RedCloth is simply an extension of the String class, which can handle
|
||||
# Textile formatting. Use it like a String and output HTML with its
|
||||
# RedCloth#to_html method.
|
||||
#
|
||||
# doc = RedCloth.new "
|
||||
#
|
||||
# h2. Test document
|
||||
#
|
||||
# Just a simple test."
|
||||
#
|
||||
# puts doc.to_html
|
||||
|
||||
class RedCloth < String
|
||||
|
||||
VERSION = '2.0.11'
|
||||
|
||||
#
|
||||
# Two accessor for setting security restrictions.
|
||||
#
|
||||
# This is a nice thing if you're using RedCloth for
|
||||
# formatting in public places (e.g. Wikis) where you
|
||||
# don't want users to abuse HTML for bad things.
|
||||
#
|
||||
# If +:filter_html+ is set, HTML which wasn't
|
||||
# created by the Textile processor will be escaped.
|
||||
#
|
||||
# If +:filter_styles+ is set, it will also disable
|
||||
# the style markup specifier. ('{color: red}')
|
||||
#
|
||||
attr_accessor :filter_html, :filter_styles
|
||||
|
||||
#
|
||||
# Accessor for toggling line folding.
|
||||
#
|
||||
# If +:fold_lines+ is set, single newlines will
|
||||
# not be converted to break tags.
|
||||
#
|
||||
attr_accessor :fold_lines
|
||||
|
||||
#
|
||||
# Returns a new RedCloth object, based on _string_ and
|
||||
# enforcing all the included _restrictions_.
|
||||
#
|
||||
# r = RedCloth.new( "h1. A <b>bold</b> man", [:filter_html] )
|
||||
# r.to_html
|
||||
# #=>"<h1>A <b>bold</b> man</h1>"
|
||||
#
|
||||
def initialize( string, restrictions = [] )
|
||||
@lite = false
|
||||
restrictions.each { |r| method( "#{ r }=" ).call( true ) }
|
||||
super( string )
|
||||
end
|
||||
|
||||
#
|
||||
# Generates HTML from the Textile contents. The _lite_ flag
|
||||
# may be used to honor only inline markup, ignoring lists, tables,
|
||||
# and block formatting.
|
||||
#
|
||||
# r = RedCloth.new( "And then? She *fell*!" )
|
||||
# r.to_html( true )
|
||||
# #=>"And then? She <strong>fell</strong>!"
|
||||
#
|
||||
def to_html( lite = nil )
|
||||
|
||||
@lite = lite unless lite.nil?
|
||||
|
||||
# make our working copy
|
||||
text = self.dup
|
||||
|
||||
@urlrefs = {}
|
||||
@shelf = []
|
||||
|
||||
incoming_entities text
|
||||
## encode_entities text
|
||||
## fix_entities text
|
||||
clean_white_space text
|
||||
|
||||
get_refs text
|
||||
|
||||
no_textile text
|
||||
|
||||
inline text
|
||||
|
||||
unless @lite
|
||||
fold text
|
||||
block text
|
||||
end
|
||||
|
||||
retrieve text
|
||||
|
||||
text.gsub!( /<\/?notextile>/, '' )
|
||||
text.gsub!( /x%x%/, '&' )
|
||||
text.gsub!( /<br \/>/, "<br />\n" )
|
||||
text.strip!
|
||||
text
|
||||
|
||||
end
|
||||
|
||||
#######
|
||||
private
|
||||
#######
|
||||
#
|
||||
# Mapping of 8-bit ASCII codes to HTML numerical entity equivalents.
|
||||
# (from PyTextile)
|
||||
#
|
||||
TEXTILE_TAGS =
|
||||
|
||||
[[128, 8364], [129, 0], [130, 8218], [131, 402], [132, 8222], [133, 8230],
|
||||
[134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249],
|
||||
[140, 338], [141, 0], [142, 0], [143, 0], [144, 0], [145, 8216], [146, 8217],
|
||||
[147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732],
|
||||
[153, 8482], [154, 353], [155, 8250], [156, 339], [157, 0], [158, 0], [159, 376]].
|
||||
|
||||
collect! do |a, b|
|
||||
[a.chr, ( b.zero? and "" or "&#{ b };" )]
|
||||
end
|
||||
|
||||
#
|
||||
# Regular expressions to convert to HTML.
|
||||
#
|
||||
A_HLGN = /(?:(?:<>|<|>|\=|[()]+)+)/
|
||||
A_VLGN = /[\-^~]/
|
||||
C_CLAS = '(?:\([^)]+\))'
|
||||
C_LNGE = '(?:\[[^\]]+\])'
|
||||
C_STYL = '(?:\{[^}]+\})'
|
||||
S_CSPN = '(?:\\\\\d+)'
|
||||
S_RSPN = '(?:/\d+)'
|
||||
A = "(?:#{A_HLGN}?#{A_VLGN}?|#{A_VLGN}?#{A_HLGN}?)"
|
||||
S = "(?:#{S_CSPN}?#{S_RSPN}|#{S_RSPN}?#{S_CSPN}?)"
|
||||
C = "(?:#{C_CLAS}?#{C_STYL}?#{C_LNGE}?|#{C_STYL}?#{C_LNGE}?#{C_CLAS}?|#{C_LNGE}?#{C_STYL}?#{C_CLAS}?)"
|
||||
# PUNCT = Regexp::quote( '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' )
|
||||
PUNCT = Regexp::quote( '!"#$%&\'*+,-./:;=?@\\^_`|~' )
|
||||
HYPERLINK = '(\S+?)([^\w\s/;=\?]*?)(\s|$)'
|
||||
|
||||
GLYPHS = [
|
||||
# [ /([^\s\[{(>])?\'([dmst]\b|ll\b|ve\b|\s|:|$)/, '\1’\2' ], # single closing
|
||||
[ /([^\s\[{(>])\'/, '\1’' ], # single closing
|
||||
[ /\'(?=\s|s\b|[#{PUNCT}])/, '’' ], # single closing
|
||||
[ /\'/, '‘' ], # single opening
|
||||
# [ /([^\s\[{(])?"(\s|:|$)/, '\1”\2' ], # double closing
|
||||
[ /([^\s\[{(>])"/, '\1”' ], # double closing
|
||||
[ /"(?=\s|[#{PUNCT}])/, '”' ], # double closing
|
||||
[ /"/, '“' ], # double opening
|
||||
[ /\b( )?\.{3}/, '\1…' ], # ellipsis
|
||||
[ /\b([A-Z][A-Z0-9]{2,})\b(?:[(]([^)]*)[)])/, '<acronym title="\2">\1</acronym>' ], # 3+ uppercase acronym
|
||||
[ /(^|[^"][>\s])([A-Z][A-Z0-9 ]{2,})([^<a-z0-9]|$)/, '\1<span class="caps">\2</span>\3' ], # 3+ uppercase caps
|
||||
[ /(\.\s)?\s?--\s?/, '\1—' ], # em dash
|
||||
[ /\s->\s/, ' → ' ], # en dash
|
||||
[ /\s-\s/, ' – ' ], # en dash
|
||||
[ /(\d+) ?x ?(\d+)/, '\1×\2' ], # dimension sign
|
||||
[ /\b ?[(\[]TM[\])]/i, '™' ], # trademark
|
||||
[ /\b ?[(\[]R[\])]/i, '®' ], # registered
|
||||
[ /\b ?[(\[]C[\])]/i, '©' ] # copyright
|
||||
]
|
||||
|
||||
I_ALGN_VALS = {
|
||||
'<' => 'left',
|
||||
'=' => 'center',
|
||||
'>' => 'right'
|
||||
}
|
||||
|
||||
H_ALGN_VALS = {
|
||||
'<' => 'left',
|
||||
'=' => 'center',
|
||||
'>' => 'right',
|
||||
'<>' => 'justify'
|
||||
}
|
||||
|
||||
V_ALGN_VALS = {
|
||||
'^' => 'top',
|
||||
'-' => 'middle',
|
||||
'~' => 'bottom'
|
||||
}
|
||||
|
||||
QTAGS = [
|
||||
['**', 'b'],
|
||||
['*', 'strong'],
|
||||
['??', 'cite'],
|
||||
['-', 'del'],
|
||||
['__', 'i'],
|
||||
['_', 'em'],
|
||||
['%', 'span'],
|
||||
['+', 'ins'],
|
||||
['^', 'sup'],
|
||||
['~', 'sub']
|
||||
].collect do |rc, ht|
|
||||
ttr = Regexp.quote(rc)
|
||||
punct = PUNCT.sub( Regexp::quote(rc), '' )
|
||||
re = /(^|[\s\>#{punct}{(\[])
|
||||
#{ttr}
|
||||
(#{C})
|
||||
(?::(\S+?))?
|
||||
([^\s#{ttr}]+?(?:[^\n]|\n(?!\n))*?)
|
||||
([#{punct}]*?)
|
||||
#{ttr}
|
||||
(?=[\s\])}<#{punct}]|$)/xm
|
||||
[re, ht]
|
||||
end
|
||||
|
||||
def pgl( text )
|
||||
GLYPHS.each do |re, resub|
|
||||
text.gsub! re, resub
|
||||
end
|
||||
end
|
||||
|
||||
def pba( text_in, element = "" )
|
||||
|
||||
return '' unless text_in
|
||||
|
||||
style = []
|
||||
text = text_in.dup
|
||||
if element == 'td'
|
||||
colspan = $1 if text =~ /\\(\d+)/
|
||||
rowspan = $1 if text =~ /\/(\d+)/
|
||||
style << "vertical-align:#{ v_align( $& ) };" if text =~ A_VLGN
|
||||
end
|
||||
|
||||
style << "#{ $1 };" if not @filter_styles and
|
||||
text.sub!( /\{([^}]*)\}/, '' )
|
||||
|
||||
lang = $1 if
|
||||
text.sub!( /\[([^)]+?)\]/, '' )
|
||||
|
||||
cls = $1 if
|
||||
text.sub!( /\(([^()]+?)\)/, '' )
|
||||
|
||||
style << "padding-left:#{ $1.length }em;" if
|
||||
text.sub!( /([(]+)/, '' )
|
||||
|
||||
style << "padding-right:#{ $1.length }em;" if text.sub!( /([)]+)/, '' )
|
||||
|
||||
style << "text-align:#{ h_align( $& ) };" if text =~ A_HLGN
|
||||
|
||||
cls, id = $1, $2 if cls =~ /^(.*?)#(.*)$/
|
||||
|
||||
atts = ''
|
||||
atts << " style=\"#{ style.join }\"" unless style.empty?
|
||||
atts << " class=\"#{ cls }\"" unless cls.to_s.empty?
|
||||
atts << " lang=\"#{ lang }\"" if lang
|
||||
atts << " id=\"#{ id }\"" if id
|
||||
atts << " colspan=\"#{ colspan }\"" if colspan
|
||||
atts << " rowspan=\"#{ rowspan }\"" if rowspan
|
||||
|
||||
atts
|
||||
end
|
||||
|
||||
TABLE_RE = /^(?:table(_?#{S}#{A}#{C})\. ?\n)?^(#{A}#{C}\.? ?\|.*?\|)(\n\n|\Z)/m
|
||||
|
||||
def table( text )
|
||||
text.gsub!( TABLE_RE ) do |matches|
|
||||
|
||||
tatts, fullrow = $~[1..2]
|
||||
tatts = pba( tatts, 'table' )
|
||||
rows = []
|
||||
|
||||
fullrow.
|
||||
split( /\|$/m ).
|
||||
delete_if { |x| x.empty? }.
|
||||
each do |row|
|
||||
|
||||
ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m
|
||||
|
||||
cells = []
|
||||
row.split( '|' ).each do |cell|
|
||||
ctyp = 'd'
|
||||
ctyp = 'h' if cell =~ /^_/
|
||||
|
||||
catts = ''
|
||||
catts, cell = pba( $1, 'td' ), $2 if cell =~ /^(_?#{S}#{A}#{C}\. )(.*)/
|
||||
|
||||
unless cell.strip.empty?
|
||||
cells << "\t\t\t<t#{ ctyp }#{ catts }>#{ cell }</t#{ ctyp }>"
|
||||
end
|
||||
end
|
||||
rows << "\t\t<tr#{ ratts }>\n#{ cells.join( "\n" ) }\n\t\t</tr>"
|
||||
end
|
||||
"\t<table#{ tatts }>\n#{ rows.join( "\n" ) }\n\t</table>\n\n"
|
||||
end
|
||||
end
|
||||
|
||||
LISTS_RE = /^([#*]+?#{C} .*?)$(?![^#*])/m
|
||||
LISTS_CONTENT_RE = /^([#*]+)(#{A}#{C}) (.*)$/m
|
||||
|
||||
def lists( text )
|
||||
text.gsub!( LISTS_RE ) do |match|
|
||||
lines = match.split( /\n/ )
|
||||
last_line = -1
|
||||
depth = []
|
||||
lines.each_with_index do |line, line_id|
|
||||
if line =~ LISTS_CONTENT_RE
|
||||
tl,atts,content = $~[1..3]
|
||||
if depth.last
|
||||
if depth.last.length > tl.length
|
||||
(depth.length - 1).downto(0) do |i|
|
||||
break if depth[i].length == tl.length
|
||||
lines[line_id - 1] << "</li>\n\t</#{ lT( depth[i] ) }l>\n\t"
|
||||
depth.pop
|
||||
end
|
||||
end
|
||||
if depth.last.length == tl.length
|
||||
lines[line_id - 1] << '</li>'
|
||||
end
|
||||
end
|
||||
unless depth.last == tl
|
||||
depth << tl
|
||||
atts = pba( atts )
|
||||
lines[line_id] = "\t<#{ lT(tl) }l#{ atts }>\n\t<li>#{ content }"
|
||||
else
|
||||
lines[line_id] = "\t\t<li>#{ content }"
|
||||
end
|
||||
last_line = line_id
|
||||
|
||||
elsif line =~ /^\s+\S/
|
||||
last_line = line_id
|
||||
elsif line_id - last_line < 2 and line =~ /^\S/
|
||||
last_line = line_id
|
||||
end
|
||||
if line_id - last_line > 1 or line_id == lines.length - 1
|
||||
depth.delete_if do |v|
|
||||
lines[last_line] << "</li>\n\t</#{ lT( v ) }l>"
|
||||
end
|
||||
end
|
||||
end
|
||||
lines.join( "\n" )
|
||||
end
|
||||
end
|
||||
|
||||
def lT( text )
|
||||
text =~ /\#$/ ? 'o' : 'u'
|
||||
end
|
||||
|
||||
def fold( text )
|
||||
text.gsub!( /(.+)\n(?![#*\s|])/, "\\1#{ @fold_lines ? ' ' : '<br />' }" )
|
||||
end
|
||||
|
||||
BLOCK_RE = ['bq','h[1-6]','fn\d+','p'].collect!{|stag|
|
||||
[stag,
|
||||
/^(#{ stag })(#{A}#{C})\.(?::(\S+))? (.*)$/]
|
||||
}
|
||||
|
||||
def block( text )
|
||||
pre = false
|
||||
find = ['bq','h[1-6]','fn\d+','p']
|
||||
|
||||
lines = text.split( /\n/ ) + [' ']
|
||||
new_text =
|
||||
lines.collect do |line|
|
||||
pre = true if line =~ /<(pre|notextile)[^>]*>/i
|
||||
BLOCK_RE.each do |stag, ctag|
|
||||
line.gsub!( ctag ) do |m|
|
||||
tag,atts,cite,content = $~[1..4]
|
||||
|
||||
atts = pba( atts )
|
||||
|
||||
if tag =~ /fn(\d+)/
|
||||
tag = 'p';
|
||||
atts << " id=\"fn#{ $1 }\""
|
||||
content = "<sup>#{ $1 }</sup> #{ content }"
|
||||
end
|
||||
|
||||
start = "\t<#{ tag }"
|
||||
tend = "</#{ tag }>"
|
||||
|
||||
if tag == "bq"
|
||||
cite = check_refs( cite )
|
||||
cite = " cite=\"#{ cite }\"" if cite
|
||||
start = "\t<blockquote#{ cite }>\n\t\t<p";
|
||||
tend = "</p>\n\t</blockquote>";
|
||||
end
|
||||
|
||||
"#{ start }#{ atts }>#{ content }#{ tend }"
|
||||
end unless pre
|
||||
end
|
||||
|
||||
line.gsub!( /^(?!\t|<\/?div|<\/?pre|<\/?notextile|<\/?code|$| )(.*)/, "\t<p>\\1</p>" ) unless pre
|
||||
|
||||
line.gsub!( "<br />", "\n" ) if pre
|
||||
pre = false if line =~ /<\/(pre|notextile)>/i
|
||||
|
||||
line
|
||||
end.join( "\n" )
|
||||
text.replace( new_text )
|
||||
end
|
||||
|
||||
def span( text )
|
||||
QTAGS.each do |ttr, ht|
|
||||
text.gsub!(ttr) do |m|
|
||||
|
||||
start,atts,cite,content,tend = $~[1..5]
|
||||
atts = pba( atts )
|
||||
atts << " cite=\"#{ cite }\"" if cite
|
||||
|
||||
"#{ start }<#{ ht }#{ atts }>#{ content }#{ tend }</#{ ht }>"
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
LINK_RE = /
|
||||
([\s\[{(]|[#{PUNCT}])? # $pre
|
||||
" # start
|
||||
(#{C}) # $atts
|
||||
([^"]+?) # $text
|
||||
\s?
|
||||
(?:\(([^)]+?)\)(?="))? # $title
|
||||
":
|
||||
(\S+?) # $url
|
||||
(\/)? # $slash
|
||||
([^\w\/;]*?) # $post
|
||||
(?=<|\s|$)
|
||||
/x
|
||||
|
||||
def links( text )
|
||||
text.gsub!( LINK_RE ) do |m|
|
||||
pre,atts,text,title,url,slash,post = $~[1..7]
|
||||
|
||||
url = check_refs( url )
|
||||
|
||||
atts = pba( atts )
|
||||
atts << " title=\"#{ title }\"" if title
|
||||
atts = shelve( atts ) if atts
|
||||
|
||||
"#{ pre }<a href=\"#{ url }#{ slash }\"#{ atts }>#{ text }</a>#{ post }"
|
||||
end
|
||||
end
|
||||
|
||||
REFS_RE = /(^|\s)\[(.+?)\]((?:http:\/\/|javascript:|ftp:\/\/|\/)\S+?)(?=\s|$)/
|
||||
|
||||
def get_refs( text )
|
||||
text.gsub!( REFS_RE ) do |m|
|
||||
flag, url = $~[2..3]
|
||||
@urlrefs[flag] = url
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def check_refs( text )
|
||||
@urlrefs[text] || text
|
||||
end
|
||||
|
||||
IMAGE_RE = /
|
||||
\! # opening
|
||||
(\<|\=|\>)? # optional alignment atts
|
||||
(#{C}) # optional style,class atts
|
||||
(?:\. )? # optional dot-space
|
||||
([^\s(!]+?) # presume this is the src
|
||||
\s? # optional space
|
||||
(?:\(((?:[^\(\)]|\([^\)]+\))+?)\))? # optional title
|
||||
\! # closing
|
||||
(?::#{ HYPERLINK })? # optional href
|
||||
/x
|
||||
|
||||
def image( text )
|
||||
text.gsub!( IMAGE_RE ) do |m|
|
||||
algn,atts,url,title,href,href_a1,href_a2 = $~[1..7]
|
||||
atts = pba( atts )
|
||||
atts << " align=\"#{ i_align( algn ) }\"" if algn
|
||||
atts << " title=\"#{ title }\"" if title
|
||||
atts << " alt=\"#{ title }\""
|
||||
# size = @getimagesize($url);
|
||||
# if($size) $atts.= " $size[3]";
|
||||
|
||||
href = check_refs( href ) if href
|
||||
url = check_refs( url )
|
||||
atts << " border=\"0\"" if href
|
||||
|
||||
out = ''
|
||||
out << "<a href=\"#{ href }\">" if href
|
||||
out << "<img src=\"#{ url }\"#{ atts } />"
|
||||
out << "</a>#{ href_a1 }#{ href_a2 }" if href
|
||||
|
||||
out
|
||||
end
|
||||
end
|
||||
|
||||
CODE_RE = /
|
||||
(^|[\s>#{PUNCT}{(\[]) # 1 open bracket?
|
||||
@ # opening
|
||||
(?:\|(\w+?)\|)? # 2 language
|
||||
(\S(?:[^\n]|\n(?!\n))*?) # 3 code
|
||||
@ # closing
|
||||
(?=[\s\]}\)<#{PUNCT}]|$) # 4 closing bracket?
|
||||
/x
|
||||
|
||||
def code( text )
|
||||
text.gsub!( CODE_RE ) do |m|
|
||||
before,lang,code,after = $~[1..4]
|
||||
lang = " language=\"#{ lang }\"" if lang
|
||||
"#{ before }<code#{ lang }>#{ code }</code>#{ after }"
|
||||
end
|
||||
end
|
||||
|
||||
def shelve( val )
|
||||
@shelf << val
|
||||
" <#{ @shelf.length }>"
|
||||
end
|
||||
|
||||
def retrieve( text )
|
||||
@shelf.each_with_index do |r, i|
|
||||
text.gsub!( " <#{ i + 1 }>", r )
|
||||
end
|
||||
end
|
||||
|
||||
def incoming_entities( text )
|
||||
## turn any incoming ampersands into a dummy character for now.
|
||||
## This uses a negative lookahead for alphanumerics followed by a semicolon,
|
||||
## implying an incoming html entity, to be skipped
|
||||
|
||||
text.gsub!( /&(?![#a-z0-9]+;)/i, "x%x%" )
|
||||
end
|
||||
|
||||
def encode_entities( text )
|
||||
## Convert high and low ascii to entities.
|
||||
# if $-K == "UTF-8"
|
||||
# encode_high( text )
|
||||
# else
|
||||
text.htmlesc!( :NoQuotes )
|
||||
# end
|
||||
end
|
||||
|
||||
def fix_entities( text )
|
||||
## de-entify any remaining angle brackets or ampersands
|
||||
text.gsub!( ">", ">" )
|
||||
text.gsub!( "<", "<" )
|
||||
text.gsub!( "&", "&" )
|
||||
end
|
||||
|
||||
def clean_white_space( text )
|
||||
text.gsub!( /\r\n/, "\n" )
|
||||
text.gsub!( /\t/, '' )
|
||||
text.gsub!( /\n{3,}/, "\n\n" )
|
||||
text.gsub!( /\n *\n/, "\n\n" )
|
||||
text.gsub!( /"$/, "\" " )
|
||||
end
|
||||
|
||||
def no_textile( text )
|
||||
text.gsub!( /(^|\s)==(.*?)==(\s|$)?/,
|
||||
'\1<notextile>\2</notextile>\3' )
|
||||
end
|
||||
|
||||
def footnote_ref( text )
|
||||
text.gsub!( /\b\[([0-9]+?)\](\s)?/,
|
||||
'<sup><a href="#fn\1">\1</a></sup>\2' )
|
||||
end
|
||||
|
||||
OFFTAGS = /(code|pre|kbd|notextile)/
|
||||
OFFTAG_MATCH = /(?:(<\/#{ OFFTAGS }>)|(<#{ OFFTAGS }[^>]*>))(.*?)(?=<\/?#{ OFFTAGS }>|\Z)/mi
|
||||
OFFTAG_OPEN = /<#{ OFFTAGS }/
|
||||
OFFTAG_CLOSE = /<\/?#{ OFFTAGS }/
|
||||
HASTAG_MATCH = /(<\/?\w[^\n]*?>)/m
|
||||
ALLTAG_MATCH = /(<\/?\w[^\n]*?>)|.*?(?=<\/?\w[^\n]*?>|$)/m
|
||||
|
||||
def glyphs( text, level = 0 )
|
||||
if text !~ HASTAG_MATCH
|
||||
pgl text
|
||||
footnote_ref text
|
||||
else
|
||||
codepre = 0
|
||||
text.gsub!( ALLTAG_MATCH ) do |line|
|
||||
## matches are off if we're between <code>, <pre> etc.
|
||||
if $1
|
||||
if @filter_html
|
||||
line.htmlesc!( :NoQuotes )
|
||||
elsif line =~ OFFTAG_OPEN
|
||||
codepre += 1
|
||||
elsif line =~ OFFTAG_CLOSE
|
||||
codepre -= 1
|
||||
codepre = 0 if codepre < 0
|
||||
end
|
||||
## do htmlspecial if between <code>
|
||||
elsif codepre.zero?
|
||||
glyphs( line, level + 1 )
|
||||
else
|
||||
line.htmlesc!( :NoQuotes )
|
||||
end
|
||||
## p [level, codepre, orig_line, line]
|
||||
|
||||
line
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def rip_offtags( text )
|
||||
pre_list = []
|
||||
if text =~ /<.*>/
|
||||
## strip and encode <pre> content
|
||||
codepre, used_offtags = 0, {}
|
||||
text.gsub!( OFFTAG_MATCH ) do |line|
|
||||
if $3
|
||||
offtag, aftertag = $4, $5
|
||||
codepre += 1
|
||||
used_offtags[offtag] = true
|
||||
if codepre - used_offtags.length > 0
|
||||
line.htmlesc!( :NoQuotes )
|
||||
pre_list.last << line
|
||||
line = ""
|
||||
else
|
||||
aftertag.htmlesc!( :NoQuotes ) if aftertag
|
||||
line = "<redpre##{ pre_list.length }>"
|
||||
pre_list << "#{ $3 }#{ aftertag }"
|
||||
end
|
||||
elsif $1 and codepre > 0
|
||||
if codepre - used_offtags.length > 0
|
||||
line.htmlesc!( :NoQuotes )
|
||||
pre_list.last << line
|
||||
line = ""
|
||||
end
|
||||
codepre -= 1 unless codepre.zero?
|
||||
used_offtags = {} if codepre.zero?
|
||||
end
|
||||
line
|
||||
end
|
||||
end
|
||||
pre_list
|
||||
end
|
||||
|
||||
def smooth_offtags( text, pre_list )
|
||||
unless pre_list.empty?
|
||||
## replace <pre> content
|
||||
text.gsub!( /<redpre#(\d+)>/ ) { pre_list[$1.to_i] }
|
||||
end
|
||||
end
|
||||
|
||||
def inline( text )
|
||||
text.gsub!( /"\z/, "\" " )
|
||||
pre_list = rip_offtags text
|
||||
|
||||
## apply inline markup
|
||||
unless @lite
|
||||
lists text
|
||||
table text
|
||||
end
|
||||
|
||||
image text
|
||||
links text
|
||||
code text
|
||||
span text
|
||||
|
||||
## replace entities
|
||||
glyphs text
|
||||
smooth_offtags text, pre_list
|
||||
end
|
||||
|
||||
def i_align( text )
|
||||
I_ALGN_VALS[text]
|
||||
end
|
||||
|
||||
def h_align( text )
|
||||
H_ALGN_VALS[text]
|
||||
end
|
||||
|
||||
def v_align( text )
|
||||
V_ALGN_VALS[text]
|
||||
end
|
||||
|
||||
def encode_high( text )
|
||||
## mb_encode_numericentity($text, $cmap, $charset);
|
||||
end
|
||||
|
||||
def decode_high( text )
|
||||
## mb_decode_numericentity($text, $cmap, $charset);
|
||||
end
|
||||
|
||||
def textile_popup_help( name, helpvar, windowW, windowH )
|
||||
' <a target="_blank" href="http://www.textpattern.com/help/?item=' + helpvar + '" onclick="window.open(this.href, \'popupwindow\', \'width=' + windowW + ',height=' + windowH + ',scrollbars,resizable\'); return false;">' + name + '</a><br />'
|
||||
end
|
||||
|
||||
CMAP = [
|
||||
160, 255, 0, 0xffff,
|
||||
402, 402, 0, 0xffff,
|
||||
913, 929, 0, 0xffff,
|
||||
931, 937, 0, 0xffff,
|
||||
945, 969, 0, 0xffff,
|
||||
977, 978, 0, 0xffff,
|
||||
982, 982, 0, 0xffff,
|
||||
8226, 8226, 0, 0xffff,
|
||||
8230, 8230, 0, 0xffff,
|
||||
8242, 8243, 0, 0xffff,
|
||||
8254, 8254, 0, 0xffff,
|
||||
8260, 8260, 0, 0xffff,
|
||||
8465, 8465, 0, 0xffff,
|
||||
8472, 8472, 0, 0xffff,
|
||||
8476, 8476, 0, 0xffff,
|
||||
8482, 8482, 0, 0xffff,
|
||||
8501, 8501, 0, 0xffff,
|
||||
8592, 8596, 0, 0xffff,
|
||||
8629, 8629, 0, 0xffff,
|
||||
8656, 8660, 0, 0xffff,
|
||||
8704, 8704, 0, 0xffff,
|
||||
8706, 8707, 0, 0xffff,
|
||||
8709, 8709, 0, 0xffff,
|
||||
8711, 8713, 0, 0xffff,
|
||||
8715, 8715, 0, 0xffff,
|
||||
8719, 8719, 0, 0xffff,
|
||||
8721, 8722, 0, 0xffff,
|
||||
8727, 8727, 0, 0xffff,
|
||||
8730, 8730, 0, 0xffff,
|
||||
8733, 8734, 0, 0xffff,
|
||||
8736, 8736, 0, 0xffff,
|
||||
8743, 8747, 0, 0xffff,
|
||||
8756, 8756, 0, 0xffff,
|
||||
8764, 8764, 0, 0xffff,
|
||||
8773, 8773, 0, 0xffff,
|
||||
8776, 8776, 0, 0xffff,
|
||||
8800, 8801, 0, 0xffff,
|
||||
8804, 8805, 0, 0xffff,
|
||||
8834, 8836, 0, 0xffff,
|
||||
8838, 8839, 0, 0xffff,
|
||||
8853, 8853, 0, 0xffff,
|
||||
8855, 8855, 0, 0xffff,
|
||||
8869, 8869, 0, 0xffff,
|
||||
8901, 8901, 0, 0xffff,
|
||||
8968, 8971, 0, 0xffff,
|
||||
9001, 9002, 0, 0xffff,
|
||||
9674, 9674, 0, 0xffff,
|
||||
9824, 9824, 0, 0xffff,
|
||||
9827, 9827, 0, 0xffff,
|
||||
9829, 9830, 0, 0xffff,
|
||||
338, 339, 0, 0xffff,
|
||||
352, 353, 0, 0xffff,
|
||||
376, 376, 0, 0xffff,
|
||||
710, 710, 0, 0xffff,
|
||||
732, 732, 0, 0xffff,
|
||||
8194, 8195, 0, 0xffff,
|
||||
8201, 8201, 0, 0xffff,
|
||||
8204, 8207, 0, 0xffff,
|
||||
8211, 8212, 0, 0xffff,
|
||||
8216, 8218, 0, 0xffff,
|
||||
8218, 8218, 0, 0xffff,
|
||||
8220, 8222, 0, 0xffff,
|
||||
8224, 8225, 0, 0xffff,
|
||||
8240, 8240, 0, 0xffff,
|
||||
8249, 8250, 0, 0xffff,
|
||||
8364, 8364, 0, 0xffff
|
||||
]
|
||||
end
|
||||
|
64
vendor/redcloth-2.0.11/tests/poignant.yml
vendored
64
vendor/redcloth-2.0.11/tests/poignant.yml
vendored
|
@ -1,64 +0,0 @@
|
|||
--- # Tests from the (Poignant Guide)
|
||||
in: >
|
||||
h3. False
|
||||
|
||||
|
||||
!<i/blix-neg.gif(Shape of a cat.)!
|
||||
|
||||
|
||||
_The cat Trady Blix. Frozen in emptiness. Immaculate whiskers rigid. Placid
|
||||
eyes of lake. Tail of warm icicle. Sponsored by a Very Powerful Pause Button._
|
||||
|
||||
|
||||
The darkness surrounding Blix can be called *negative space*. Hang on to that phrase.
|
||||
Let it suggest that the emptiness has a negative connotation. In a similar way,
|
||||
@nil@ has a slightly sour note that it whistles.
|
||||
|
||||
|
||||
Generally speaking, everything in Ruby has a positive charge to it. This spark
|
||||
flows through strings, numbers, regexps, all of it. Only two keywords wear a
|
||||
shady cloak: @nil@ and @false@ draggin us down.
|
||||
|
||||
|
||||
You can test that charge with an @if@ keyword. It looks very much like the
|
||||
@do@ blocks we saw in the last chapter, in that both end with an @end@.
|
||||
|
||||
|
||||
<pre>
|
||||
if plastic_cup
|
||||
print "Plastic cup is on the up 'n' up!"
|
||||
end
|
||||
</pre>
|
||||
|
||||
|
||||
If @plastic_cup@ contains either @nil@ or @false@, you won't see anything print
|
||||
to the screen. They're not on the @if@ guest list. So @if@ isn't going to run
|
||||
any of the code it's protecting.
|
||||
|
||||
|
||||
But @nil@ and @false@ need not walk away in shame. They may be of questionable
|
||||
character, but @unless@ runs a smaller establishment that caters to the bedraggled.
|
||||
The @unless@ keyword has a policy of only allowing those with a negative charge in.
|
||||
Who are: @nil@ and @false@.
|
||||
|
||||
|
||||
<pre>
|
||||
unless plastic_cup
|
||||
print "Plastic cup is on the down low."
|
||||
end
|
||||
</pre>
|
||||
|
||||
|
||||
You can also use @if@ and @unless@ at the end of a single line of code, if that's
|
||||
all that is being protected.
|
||||
|
||||
|
||||
<pre>
|
||||
print "Yeah, plastic cup is up again!" if plastic_cup
|
||||
print "Hardly. It's down." unless plastic_cup
|
||||
</pre>
|
||||
|
||||
|
||||
Now that you've met @false@, I'm sure you can see what's on next.
|
||||
|
||||
out: "<h3>False</h3>\n\n\t<p><img src=\"i/blix-neg.gif\" align=\"left\" title=\"Shape of a cat.\" alt=\"Shape of a cat.\" /></p>\n\n\t<p><em>The cat Trady Blix. Frozen in emptiness. Immaculate whiskers rigid. Placid eyes of lake. Tail of warm icicle. Sponsored by a Very Powerful Pause Button.</em></p>\n\n\t<p>The darkness surrounding Blix can be called <strong>negative space</strong>. Hang on to that phrase. Let it suggest that the emptiness has a negative connotation. In a similar way, <code>nil</code> has a slightly sour note that it whistles.</p>\n\n\t<p>Generally speaking, everything in Ruby has a positive charge to it. This spark flows through strings, numbers, regexps, all of it. Only two keywords wear a shady cloak: <code>nil</code> and <code>false</code> draggin us down.</p>\n\n\t<p>You can test that charge with an <code>if</code> keyword. It looks very much like the <code>do</code> blocks we saw in the last chapter, in that both end with an <code>end</code>.</p>\n\n<pre>\n if plastic_cup\n print \"Plastic cup is on the up 'n' up!\" \n end\n</pre>\n\n\t<p>If <code>plastic_cup</code> contains either <code>nil</code> or <code>false</code>, you won’t see anything print to the screen. They’re not on the <code>if</code> guest list. So <code>if</code> isn’t going to run any of the code it’s protecting.</p>\n\n\t<p>But <code>nil</code> and <code>false</code> need not walk away in shame. They may be of questionable character, but <code>unless</code> runs a smaller establishment that caters to the bedraggled. The <code>unless</code> keyword has a policy of only allowing those with a negative charge in. Who are: <code>nil</code> and <code>false</code>.</p>\n\n<pre>\n unless plastic_cup\n print \"Plastic cup is on the down low.\" \n end\n</pre>\n\n\t<p>You can also use <code>if</code> and <code>unless</code> at the end of a single line of code, if that’s all that is being protected.</p>\n\n<pre>\n print \"Yeah, plastic cup is up again!\" if plastic_cup\n print \"Hardly. It's down.\" unless plastic_cup\n</pre>\n\n\t<p>Now that you’ve met <code>false</code>, I’m sure you can see what’s on next.<br />\n</p>"
|
Loading…
Add table
Reference in a new issue