maruku 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -283,6 +283,29 @@ These can also be separated by newlines:
283
283
 
284
284
  Paragraph 1 is a warning
285
285
 
286
+
287
+ ### Shortcuts ###
288
+
289
+ This:
290
+
291
+ @ .xyz
292
+ Paragraph
293
+
294
+ is equivalent to:
295
+
296
+ @ class: xyz
297
+ Paragraph
298
+
299
+ This:
300
+
301
+ @ #xyz
302
+ Paragraph
303
+
304
+ is equivalent to:
305
+
306
+ @ id: xyz
307
+ Paragraph
308
+
286
309
  Also, if the value is not present, it defaults to `true`:
287
310
 
288
311
  @ test
@@ -293,8 +316,9 @@ Also, if the value is not present, it defaults to `true`:
293
316
 
294
317
 
295
318
 
319
+ @ #metalist
296
320
 
297
- ### List of meta-data ### {#metalist}
321
+ ### List of meta-data ###
298
322
 
299
323
  [listings]: http://www.ctan.org/tex-archive/macros/latex/contrib/listings/
300
324
 
@@ -14,6 +14,9 @@ require 'maruku/string_utils'
14
14
  # Code for creating a table of contents
15
15
  require 'maruku/toc'
16
16
 
17
+ # Version and URL
18
+ require 'maruku/version'
19
+
17
20
 
18
21
  # Exporting to html
19
22
  require 'maruku/to_html'
@@ -10,7 +10,7 @@ class Maruku
10
10
  a
11
11
  end
12
12
 
13
- ## This parses email headers. Returns an hash. hash['data'] is the message
13
+ # This parses email headers. Returns an hash. hash['data'] is the message.
14
14
  def parse_email_headers(s)
15
15
  keys={}
16
16
  match = (s =~ /((\w+: .*\n)+)\n/)
@@ -30,16 +30,26 @@ class Maruku
30
30
  keys
31
31
  end
32
32
 
33
+ # `.xyz` => class: xyz
34
+ # `#xyz` => id: xyz
33
35
  def normalize_key_and_value(k,v)
34
36
  v = v ? v.strip : true # no value defaults to true
35
-
36
- # check synonyms
37
- v = true if ['yes','true'].include?(v.to_s.downcase)
38
- v = false if ['no','false'].include?(v.to_s.downcase)
37
+ k = k.strip
39
38
 
40
- k = k.strip.downcase.gsub(' ','_')
39
+ # `.xyz` => class: xyz
40
+ if k =~ /^\.([\w\d]+)/
41
+ return :class, $1
42
+ # `#xyz` => id: xyz
43
+ elsif k =~ /^\#([\w\d]+)/
44
+ return :id, $1
45
+ else
46
+ # check synonyms
47
+ v = true if ['yes','true'].include?(v.to_s.downcase)
48
+ v = false if ['no','false'].include?(v.to_s.downcase)
41
49
 
42
- return k, v
50
+ k = k.downcase.gsub(' ','_')
51
+ return k, v
52
+ end
43
53
  end
44
54
 
45
55
  # Returns the number of leading spaces, considering that
@@ -1,13 +1,42 @@
1
+ # I did not want to have a class for each possible element.
2
+ # Instead I opted to have the class "MDElement"
3
+ # that represents eveything in the document (paragraphs, headers, etc).
4
+ #
5
+ # You can tell what it is by the variable `node_type`.
6
+ #
7
+ # In the instance-variable `children` there are the children. These
8
+ # can be of class 1) String or 2) MDElement.
9
+ #
10
+ # The @doc variable points to the document to which the MDElement
11
+ # belongs (which is an instance of Maruku, subclass of MDElement).
12
+ #
13
+ # Meta data is specified the hash `meta`. Keys are symbols (downcased, with
14
+ # spaces substituted by underscores)
15
+ #
16
+ # For example, if you write in the source document.
17
+ #
18
+ # Title: test document
19
+ # My property: value
20
+ #
21
+ # content content
22
+ #
23
+ # You can access `value` by writing:
24
+ #
25
+ # @doc.meta[:my_property] # => 'value'
26
+ #
27
+ # from whichever MDElement.
1
28
 
2
29
  class MDElement
3
- # Allowed: :document, :paragraph, :ul, :ol, :li, :li_span, :strong, :emphasis, :link
30
+ # XXX List not complete
31
+ # Allowed: :document, :paragraph, :ul, :ol, :li,
32
+ # :li_span, :strong, :emphasis, :link, :email
4
33
  attr_accessor :node_type
5
34
  # Children are either Strings or MDElement
6
35
  attr_accessor :children
7
36
  # Hash for metadata
8
37
  # contains :id for :link1
9
38
  # :li :want_my_paragraph
10
- # :header: :level
39
+ # :header: :level
11
40
  # code, inline_code: :raw_code
12
41
  attr_accessor :meta
13
42
  # reference of containing document (document has list of ref)
@@ -34,8 +63,11 @@ class Maruku < MDElement
34
63
  end
35
64
 
36
65
  class MDElement
66
+
67
+ # This represents a section in the TOC.
37
68
  class Section
38
- attr_accessor :section_level # a Fixnum, is == header_element.meta[:level]
69
+ # a Fixnum, is == header_element.meta[:level]
70
+ attr_accessor :section_level
39
71
 
40
72
  # An array of fixnum, like [1,2,5] for Section 1.2.5
41
73
  attr_accessor :section_number
@@ -20,9 +20,9 @@ class String
20
20
 
21
21
  # other things that are good on the eyes
22
22
  OtherGoodies = {
23
- /(\s)LaTeX/ => '\1\\LaTeX\\xspace', # XXX not if already \latex
24
- 'HTML' => '\\textsc{html}\\xspace',
25
- 'PDF' => '\\textsc{pdf}\\xspace'
23
+ /(\s)LaTeX/ => '\1\\LaTeX\\xspace ', # XXX not if already \latex
24
+ 'HTML' => '\\textsc{html}\\xspace ',
25
+ 'PDF' => '\\textsc{pdf}\\xspace '
26
26
  }
27
27
 
28
28
  def String.convert_entities(s)
@@ -0,0 +1,6 @@
1
+
2
+ class Maruku
3
+ Version = '0.2.7'
4
+
5
+ MarukuURL = 'http://maruku.rubyforge.org/'
6
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.8.10
3
3
  specification_version: 1
4
4
  name: maruku
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.6
7
- date: 2006-12-27 00:00:00 +01:00
6
+ version: 0.2.7
7
+ date: 2006-12-27
8
8
  summary: A Markdown interpreter in Ruby
9
9
  require_paths:
10
- - lib
10
+ - lib
11
11
  email: andrea@rubyforge.org
12
12
  homepage: http://maruku.rubyforge.org
13
13
  rubyforge_project:
@@ -18,80 +18,75 @@ bindir: bin
18
18
  has_rdoc: false
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
21
+ -
22
+ - ">"
23
+ - !ruby/object:Gem::Version
24
+ version: 0.0.0
24
25
  version:
25
26
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
27
  authors:
30
- - Andrea Censi
28
+ - Andrea Censi
31
29
  files:
32
- - lib/maruku.rb
33
- - lib/maruku/parse_block.rb
34
- - lib/maruku/parse_span.rb
35
- - lib/maruku/string_utils.rb
36
- - lib/maruku/structures.rb
37
- - lib/maruku/to_html.rb
38
- - lib/maruku/to_latex.rb
39
- - lib/maruku/to_latex_strings.rb
40
- - lib/maruku/to_s.rb
41
- - lib/maruku/toc.rb
42
- - docs/markdown_syntax.md
43
- - docs/maruku.md
44
- - docs/todo.md
45
- - tests/abbreviations.md
46
- - tests/blank.md
47
- - tests/code.md
48
- - tests/code2.md
49
- - tests/code3.md
50
- - tests/email.md
51
- - tests/entities.md
52
- - tests/escaping.md
53
- - tests/extra_dl.md
54
- - tests/extra_header_id.md
55
- - tests/extra_table1.md
56
- - tests/footnotes.md
57
- - tests/headers.md
58
- - tests/hrule.md
59
- - tests/images.md
60
- - tests/inline_html.md
61
- - tests/links.md
62
- - tests/list1.md
63
- - tests/list2.md
64
- - tests/list3.md
65
- - tests/lists.md
66
- - tests/lists_ol.md
67
- - tests/misc_sw.md
68
- - tests/one.md
69
- - tests/paragraphs.md
70
- - tests/sss06.md
71
- - tests/test.md
72
- - tests/bugs/code_in_links.md
73
- - bin/maruku
74
- - bin/marutex
30
+ - lib/maruku.rb
31
+ - lib/maruku/parse_block.rb
32
+ - lib/maruku/parse_span.rb
33
+ - lib/maruku/string_utils.rb
34
+ - lib/maruku/structures.rb
35
+ - lib/maruku/to_html.rb
36
+ - lib/maruku/to_latex.rb
37
+ - lib/maruku/to_latex_strings.rb
38
+ - lib/maruku/to_s.rb
39
+ - lib/maruku/toc.rb
40
+ - lib/maruku/version.rb
41
+ - docs/markdown_syntax.md
42
+ - docs/maruku.md
43
+ - docs/todo.md
44
+ - tests/abbreviations.md
45
+ - tests/blank.md
46
+ - tests/code.md
47
+ - tests/code2.md
48
+ - tests/code3.md
49
+ - tests/email.md
50
+ - tests/entities.md
51
+ - tests/escaping.md
52
+ - tests/extra_dl.md
53
+ - tests/extra_header_id.md
54
+ - tests/extra_table1.md
55
+ - tests/footnotes.md
56
+ - tests/headers.md
57
+ - tests/hrule.md
58
+ - tests/images.md
59
+ - tests/inline_html.md
60
+ - tests/links.md
61
+ - tests/list1.md
62
+ - tests/list2.md
63
+ - tests/list3.md
64
+ - tests/lists.md
65
+ - tests/lists_ol.md
66
+ - tests/misc_sw.md
67
+ - tests/one.md
68
+ - tests/paragraphs.md
69
+ - tests/sss06.md
70
+ - tests/test.md
71
+ - tests/bugs/code_in_links.md
72
+ - bin/maruku
73
+ - bin/marutex
75
74
  test_files: []
76
-
77
75
  rdoc_options: []
78
-
79
76
  extra_rdoc_files: []
80
-
81
77
  executables:
82
- - maruku
83
- - marutex
78
+ - maruku
79
+ - marutex
84
80
  extensions: []
85
-
86
81
  requirements: []
87
-
88
82
  dependencies:
89
- - !ruby/object:Gem::Dependency
90
- name: syntax
91
- version_requirement:
92
- version_requirements: !ruby/object:Gem::Version::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 1.0.0
97
- version:
83
+ - !ruby/object:Gem::Dependency
84
+ name: syntax
85
+ version_requirement:
86
+ version_requirements: !ruby/object:Gem::Version::Requirement
87
+ requirements:
88
+ -
89
+ - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 1.0.0
92
+ version: