org-ruby 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.bnsignore +18 -0
- data/History.txt +24 -0
- data/README.txt +66 -0
- data/Rakefile +22 -0
- data/TAGS +128 -0
- data/bin/org-ruby +40 -0
- data/lib/org-ruby.rb +48 -0
- data/lib/org-ruby/headline.rb +75 -0
- data/lib/org-ruby/html_output_buffer.rb +80 -0
- data/lib/org-ruby/line.rb +172 -0
- data/lib/org-ruby/output_buffer.rb +154 -0
- data/lib/org-ruby/parser.rb +72 -0
- data/lib/org-ruby/regexp_helper.rb +156 -0
- data/lib/org-ruby/textile_output_buffer.rb +67 -0
- data/spec/data/freeform.org +111 -0
- data/spec/data/hyp-planning.org +335 -0
- data/spec/data/remember.org +53 -0
- data/spec/headline_spec.rb +55 -0
- data/spec/html_examples/block_code.html +29 -0
- data/spec/html_examples/block_code.org +35 -0
- data/spec/html_examples/blockquote.html +7 -0
- data/spec/html_examples/blockquote.org +13 -0
- data/spec/html_examples/inline-formatting.html +10 -0
- data/spec/html_examples/inline-formatting.org +17 -0
- data/spec/html_examples/lists.html +19 -0
- data/spec/html_examples/lists.org +36 -0
- data/spec/html_examples/tables.html +20 -0
- data/spec/html_examples/tables.org +26 -0
- data/spec/html_examples/text.html +2 -0
- data/spec/html_examples/text.org +16 -0
- data/spec/line_spec.rb +89 -0
- data/spec/parser_spec.rb +86 -0
- data/spec/regexp_helper_spec.rb +57 -0
- data/spec/spec_helper.rb +20 -0
- data/spec/textile_examples/block_code.org +35 -0
- data/spec/textile_examples/block_code.textile +29 -0
- data/spec/textile_examples/blockquote.org +13 -0
- data/spec/textile_examples/blockquote.textile +11 -0
- data/spec/textile_examples/keywords.org +13 -0
- data/spec/textile_examples/keywords.textile +11 -0
- data/spec/textile_examples/links.org +11 -0
- data/spec/textile_examples/links.textile +10 -0
- data/spec/textile_examples/lists.org +36 -0
- data/spec/textile_examples/lists.textile +20 -0
- data/spec/textile_examples/single-space-plain-list.org +13 -0
- data/spec/textile_examples/single-space-plain-list.textile +10 -0
- data/spec/textile_examples/tables.org +26 -0
- data/spec/textile_examples/tables.textile +23 -0
- data/spec/textile_output_buffer_spec.rb +21 -0
- data/test/test_orgmode_parser.rb +0 -0
- metadata +120 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
* New Ideas
|
2
|
+
** YAML header in Webby
|
3
|
+
|
4
|
+
Make sure you don't have TABS here. Best practice: Configure your
|
5
|
+
editor to use spaces instaed of tabs, and if you can see whitespace,
|
6
|
+
even better.
|
7
|
+
|
8
|
+
In emacs, set indent-tabs-mode to NIL.
|
9
|
+
** Ruby Gems behind Proxy
|
10
|
+
|
11
|
+
Set the following environment variable:
|
12
|
+
|
13
|
+
So, I added a User Variable for my account called http_proxy with
|
14
|
+
the value of http://<proxyserveraddress>:8080, rebooted, ran plan
|
15
|
+
old vanillia gem install rails –include-dependencies, and magically,
|
16
|
+
it worked
|
17
|
+
** Hyper-V technical info
|
18
|
+
|
19
|
+
http://technet.microsoft.com/en-us/dd565807.aspx
|
20
|
+
** VirtualBox
|
21
|
+
|
22
|
+
Virtualization software from Sun. Looks like it might be more for
|
23
|
+
dev/test. I'm surprised this hasn't popped at
|
24
|
+
all. http://www.virtualbox.org/. Backed by Sun.
|
25
|
+
** Interesting LaTeX article
|
26
|
+
|
27
|
+
http://nitens.org/taraborelli/latex -- on the virtues of LaTeX
|
28
|
+
** XEmacs / Emacs internals
|
29
|
+
|
30
|
+
Looks like an interesting resource if I want to learn how Emacs works.
|
31
|
+
|
32
|
+
http://www.xemacs.org/Documentation/21.5/html/internals_9.html#SEC19
|
33
|
+
** MikTeX
|
34
|
+
|
35
|
+
Get it here: http://www.miktex.org/portable/
|
36
|
+
** Orgmode publishing tutorial
|
37
|
+
|
38
|
+
[[http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.php][Publishing Org-mode files to HTML]]
|
39
|
+
** Git and Live Mesh
|
40
|
+
|
41
|
+
This is really helpful:
|
42
|
+
http://whereslou.com/2009/06/04/using-live-mesh-and-git-the-best-of-both-worlds
|
43
|
+
** VDI deployment stats
|
44
|
+
|
45
|
+
Key takeaways:
|
46
|
+
- 74% are using VDI in production or pilot ... but 45% of those using have less than 100 users
|
47
|
+
- Upward of 55% of the DAC members [project] they will have up to 50% of their users using VDI in 3 years (~1/2 of those will have > 50%)
|
48
|
+
- No real surprises on the reasons / benefits etc
|
49
|
+
- Interestingly ... even if TS supported all client apps / supported user-install apps - 100% of the DAC preferred VDI over TS
|
50
|
+
- Most companies said a portion of their users would have VDI as the primary replacement desktop (60% < 20% of users, 32% 21-50% of users)
|
51
|
+
** Hyper-V Scheduler Information
|
52
|
+
|
53
|
+
http://msdn.microsoft.com/en-us/library/bb969782.aspx
|
@@ -0,0 +1,55 @@
|
|
1
|
+
|
2
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
3
|
+
|
4
|
+
describe Orgmode::Headline do
|
5
|
+
|
6
|
+
it "should recognize headlines that start with asterisks" do
|
7
|
+
Orgmode::Headline.headline?("*** test\n").should_not be_nil
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should reject headlines without headlines at the start" do
|
11
|
+
Orgmode::Headline.headline?(" nope!").should be_nil
|
12
|
+
Orgmode::Headline.headline?(" tricked you!!!***").should be_nil
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should reject improper initialization" do
|
16
|
+
lambda { Orgmode::Headline.new " tricked**" }.should raise_error
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should properly determine headline level" do
|
20
|
+
samples = ["* one", "** two", "*** three", "**** four"]
|
21
|
+
expected = 1
|
22
|
+
samples.each do |sample|
|
23
|
+
h = Orgmode::Headline.new sample
|
24
|
+
h.level.should eql(expected)
|
25
|
+
expected += 1
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should find simple headline text" do
|
30
|
+
h = Orgmode::Headline.new "*** sample"
|
31
|
+
h.headline_text.should eql("sample")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should understand tags" do
|
35
|
+
h = Orgmode::Headline.new "*** sample :tag:tag2:\n"
|
36
|
+
h.headline_text.should eql("sample")
|
37
|
+
h.should have(2).tags
|
38
|
+
h.tags[0].should eql("tag")
|
39
|
+
h.tags[1].should eql("tag2")
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should understand a single tag" do
|
43
|
+
h = Orgmode::Headline.new "*** sample :tag:\n"
|
44
|
+
h.headline_text.should eql("sample")
|
45
|
+
h.should have(1).tags
|
46
|
+
h.tags[0].should eql("tag")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should understand keywords" do
|
50
|
+
h = Orgmode::Headline.new "*** TODO Feed cat :home:"
|
51
|
+
h.headline_text.should eql("Feed cat")
|
52
|
+
h.keyword.should eql("TODO")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<h1>Block Code</h1>
|
2
|
+
<p>I need to get block code examples working. In <code>orgmode</code>, they look like this:</p>
|
3
|
+
<pre>
|
4
|
+
|
5
|
+
|
6
|
+
def initialize(output)
|
7
|
+
@output = output
|
8
|
+
@buffer = ""
|
9
|
+
@output_type = :start
|
10
|
+
@list_indent_stack = []
|
11
|
+
@paragraph_modifier = nil
|
12
|
+
|
13
|
+
@logger = Logger.new(STDERR)
|
14
|
+
@logger.level = Logger::WARN
|
15
|
+
end
|
16
|
+
|
17
|
+
</pre>
|
18
|
+
<p>And now I should be back to normal text.</p>
|
19
|
+
<p>Putting in another paragraph for good measure.</p>
|
20
|
+
<p>Code should also get cancelled by a list, thus:</p>
|
21
|
+
<pre>
|
22
|
+
|
23
|
+
This is my code!
|
24
|
+
|
25
|
+
Another line!
|
26
|
+
</pre>
|
27
|
+
<ul>
|
28
|
+
<li>My list should cancel this.</li>
|
29
|
+
<li>Another list line.</li>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
* Block Code
|
2
|
+
|
3
|
+
I need to get block code examples working. In =orgmode=, they look
|
4
|
+
like this:
|
5
|
+
|
6
|
+
#+BEGIN_EXAMPLE
|
7
|
+
|
8
|
+
def initialize(output)
|
9
|
+
@output = output
|
10
|
+
@buffer = ""
|
11
|
+
@output_type = :start
|
12
|
+
@list_indent_stack = []
|
13
|
+
@paragraph_modifier = nil
|
14
|
+
|
15
|
+
@logger = Logger.new(STDERR)
|
16
|
+
@logger.level = Logger::WARN
|
17
|
+
end
|
18
|
+
|
19
|
+
#+END_EXAMPLE
|
20
|
+
|
21
|
+
And now I should be back to normal text.
|
22
|
+
|
23
|
+
Putting in another paragraph for good measure.
|
24
|
+
|
25
|
+
|
26
|
+
Code should also get cancelled by a list, thus:
|
27
|
+
|
28
|
+
#+BEGIN_EXAMPLE
|
29
|
+
This is my code!
|
30
|
+
|
31
|
+
Another line!
|
32
|
+
#+END_EXAMPLE
|
33
|
+
|
34
|
+
- My list should cancel this.
|
35
|
+
- Another list line.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<p>Inline Formatting</p>
|
2
|
+
<p>I want to make sure I handle all inline formatting. I need to handle <b>bold</b>, <i>italic</i>, <code>code</code>, <code>verbatim</code>, <span style="text-decoration:underline;">underline</span>, <del>strikethrough</del>.</p>
|
3
|
+
<p>In addition, I need to make sure I can handle links. We've got simple links, like this:</p>
|
4
|
+
<ul>
|
5
|
+
<li><a href="http://www.bing.com">http://www.bing.com</a></li>
|
6
|
+
<li><a href="http://www.google.com">http://www.google.com</a></li>
|
7
|
+
<li>http://www.gmail.com</li>
|
8
|
+
</ul>
|
9
|
+
<p>Note the last one <b>is not</b> a link, as the source doesn't include it in double-brackets and I don't auto-recognize URLs.</p>
|
10
|
+
<p>I should also handle links with <a href="http://www.xkcd.com">helpful text</a>.</p>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Inline Formatting
|
2
|
+
|
3
|
+
I want to make sure I handle all inline formatting. I need to handle
|
4
|
+
*bold*, /italic/, =code=, ~verbatim~, _underline_, +strikethrough+.
|
5
|
+
|
6
|
+
In addition, I need to make sure I can handle links. We've got simple
|
7
|
+
links, like this:
|
8
|
+
|
9
|
+
- [[http://www.bing.com]]
|
10
|
+
- [[http://www.google.com]]
|
11
|
+
- http://www.gmail.com
|
12
|
+
|
13
|
+
Note the last one *is not* a link, as the source doesn't include it in
|
14
|
+
double-brackets and I don't auto-recognize URLs.
|
15
|
+
|
16
|
+
I should also handle links with [[http://www.xkcd.com][helpful text]].
|
17
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<h1>Lists</h1>
|
2
|
+
<p>I want to make sure I have great support for lists.</p>
|
3
|
+
<ul>
|
4
|
+
<li>This is an unordered list</li>
|
5
|
+
<li>This continues the unordered list</li>
|
6
|
+
</ul>
|
7
|
+
<p>And this is a paragraph <b>after</b> the list.</p>
|
8
|
+
<h2>Wrapping within the list</h2>
|
9
|
+
<ul>
|
10
|
+
<li>This is a single-line list item in the org file.</li>
|
11
|
+
<li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
|
12
|
+
<li>And this is the next item. The previous item needs to be on one line to keep <code>textile</code> happy.</li>
|
13
|
+
<li>Ditto the previous line, actually.</li>
|
14
|
+
</ul>
|
15
|
+
<h2>Edge cases</h2>
|
16
|
+
<ul>
|
17
|
+
<li>This is a single-line list.</li>
|
18
|
+
</ul>
|
19
|
+
<p>And this is a <b>separate paragraph.</b> Note the indentation in the org file.</p>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
* Lists
|
2
|
+
|
3
|
+
I want to make sure I have great support for lists.
|
4
|
+
|
5
|
+
- This is an unordered list
|
6
|
+
- This continues the unordered list
|
7
|
+
|
8
|
+
And this is a paragraph *after* the list.
|
9
|
+
|
10
|
+
** Wrapping within the list
|
11
|
+
|
12
|
+
- This is a single-line list item in the org file.
|
13
|
+
- Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
14
|
+
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
15
|
+
erat, sed diam voluptua. At vero eos et accusam et justo duo
|
16
|
+
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
|
17
|
+
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
|
18
|
+
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
19
|
+
invidunt ut labore et dolore magna aliquyam erat, sed diam
|
20
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea
|
21
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
22
|
+
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
|
23
|
+
consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
24
|
+
invidunt ut labore et dolore magna aliquyam erat, sed diam
|
25
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea
|
26
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
27
|
+
Lorem ipsum dolor sit amet.
|
28
|
+
- And this is the next item. The previous item needs to be on one
|
29
|
+
line to keep =textile= happy.
|
30
|
+
- Ditto the previous line, actually.
|
31
|
+
|
32
|
+
** Edge cases
|
33
|
+
|
34
|
+
- This is a single-line list.
|
35
|
+
And this is a *separate paragraph.* Note the indentation in the org
|
36
|
+
file.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<p>TABLES</p>
|
2
|
+
<p>Different types of ORG tables.</p>
|
3
|
+
<h1>Simple table, no header.</h1>
|
4
|
+
<table>
|
5
|
+
<tr><td>Cell one</td><td>Cell two</td></tr>
|
6
|
+
<tr><td>Cell three</td><td>Cell four</td></tr>
|
7
|
+
</table>
|
8
|
+
<h1>Indented table</h1>
|
9
|
+
<table>
|
10
|
+
<tr><td>Cell one</td></tr>
|
11
|
+
<tr><td>Cell two</td></tr>
|
12
|
+
</table>
|
13
|
+
<p>And here's some paragraph content. The line breaks will need to get removed here, but not for the tables.</p>
|
14
|
+
<h1>Table with header</h1>
|
15
|
+
<table>
|
16
|
+
<tr><td>One</td><td>Two</td><td>Three</td></tr>
|
17
|
+
<tr><td>Four</td><td>Five</td><td>Six</td></tr>
|
18
|
+
<tr><td>Seven</td><td>Eight</td><td>Nine</td></tr>
|
19
|
+
</table>
|
20
|
+
<p>The separator row should not get printed out.</p>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
TABLES
|
2
|
+
|
3
|
+
Different types of ORG tables.
|
4
|
+
|
5
|
+
* Simple table, no header.
|
6
|
+
|
7
|
+
| Cell one | Cell two |
|
8
|
+
| Cell three | Cell four |
|
9
|
+
|
10
|
+
|
11
|
+
* Indented table
|
12
|
+
|
13
|
+
| Cell one |
|
14
|
+
| Cell two |
|
15
|
+
|
16
|
+
And here's some paragraph content. The line breaks will need to get
|
17
|
+
removed here, but not for the tables.
|
18
|
+
|
19
|
+
* Table with header
|
20
|
+
|
21
|
+
| One | Two | Three |
|
22
|
+
|-------+-------+-------|
|
23
|
+
| Four | Five | Six |
|
24
|
+
| Seven | Eight | Nine |
|
25
|
+
|
26
|
+
The separator row should not get printed out.
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<p>The simplest case: translating plain text.</p>
|
2
|
+
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
The simplest case: translating plain text.
|
2
|
+
|
3
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
4
|
+
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
5
|
+
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
6
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
|
7
|
+
ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
|
8
|
+
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
|
9
|
+
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam
|
10
|
+
et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
11
|
+
takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
|
12
|
+
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
13
|
+
invidunt ut labore et dolore magna aliquyam erat, sed diam
|
14
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea
|
15
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
|
16
|
+
ipsum dolor sit amet.
|
data/spec/line_spec.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
+
|
3
|
+
describe Orgmode::Line do
|
4
|
+
|
5
|
+
it "should tell comments" do
|
6
|
+
comments = ["# hello", "#hello", " #hello", "\t#hello\n"]
|
7
|
+
comments.each do |c|
|
8
|
+
line = Orgmode::Line.new c
|
9
|
+
line.comment?.should be_true
|
10
|
+
end
|
11
|
+
|
12
|
+
not_comments = ["", "\n", "hello\n", " foo ### bar\n"]
|
13
|
+
not_comments.each do |c|
|
14
|
+
line = Orgmode::Line.new c
|
15
|
+
line.comment?.should_not be_true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should tell blank lines" do
|
20
|
+
blank = ["", " ", "\t", "\n", " \t\t\n\n"]
|
21
|
+
blank.each do |b|
|
22
|
+
line = Orgmode::Line.new b
|
23
|
+
line.blank?.should be_true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should recognize plain lists" do
|
28
|
+
list_formats = ["-",
|
29
|
+
"+",
|
30
|
+
" -",
|
31
|
+
" +",
|
32
|
+
" 1.",
|
33
|
+
" 2)"]
|
34
|
+
list_formats.each do |list|
|
35
|
+
line = Orgmode::Line.new list
|
36
|
+
line.plain_list?.should be_true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should recognize table rows" do
|
41
|
+
Orgmode::Line.new("| One | Two | Three |").table_row?.should be_true
|
42
|
+
Orgmode::Line.new(" |-------+-------+-------|\n").table_separator?.should be_true
|
43
|
+
Orgmode::Line.new("| Four | Five | Six |").table_row?.should be_true
|
44
|
+
Orgmode::Line.new("| Seven | Eight | Nine |").table_row?.should be_true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should recognize indentation" do
|
48
|
+
Orgmode::Line.new("").indent.should eql(0)
|
49
|
+
Orgmode::Line.new(" a").indent.should eql(1)
|
50
|
+
Orgmode::Line.new(" ").indent.should eql(0)
|
51
|
+
Orgmode::Line.new(" \n").indent.should eql(0)
|
52
|
+
Orgmode::Line.new(" a").indent.should eql(3)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should return paragraph type" do
|
56
|
+
Orgmode::Line.new("").paragraph_type.should eql(:blank)
|
57
|
+
Orgmode::Line.new("1. foo").paragraph_type.should eql(:ordered_list)
|
58
|
+
Orgmode::Line.new("- [ ] checkbox").paragraph_type.should eql(:unordered_list)
|
59
|
+
Orgmode::Line.new("hello!").paragraph_type.should eql(:paragraph)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should recognize BEGIN and END comments" do
|
63
|
+
begin_examples = {
|
64
|
+
"#+BEGIN_SRC emacs-lisp -n -r\n" => "SRC",
|
65
|
+
"#+BEGIN_EXAMPLE" => "EXAMPLE",
|
66
|
+
"\t#+BEGIN_QUOTE " => "QUOTE"
|
67
|
+
}
|
68
|
+
|
69
|
+
end_examples = {
|
70
|
+
"#+END_SRC" => "SRC",
|
71
|
+
"#+END_EXAMPLE" => "EXAMPLE",
|
72
|
+
"\t#+END_QUOTE " => "QUOTE"
|
73
|
+
}
|
74
|
+
|
75
|
+
begin_examples.each_key do |str|
|
76
|
+
line = Orgmode::Line.new str
|
77
|
+
line.comment?.should be_true
|
78
|
+
line.begin_block?.should be_true
|
79
|
+
line.block_type.should eql(begin_examples[str])
|
80
|
+
end
|
81
|
+
|
82
|
+
end_examples.each_key do |str|
|
83
|
+
line = Orgmode::Line.new str
|
84
|
+
line.comment?.should be_true
|
85
|
+
line.end_block?.should be_true
|
86
|
+
line.block_type.should eql(end_examples[str])
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|