org-ruby 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.9.4 / 2014-04-18
2
+
3
+ * Track block names within the line properties
4
+ * Add option to skip-syntax-highlighting explicitly
5
+
1
6
  == 0.9.3 / 2014-03-25
2
7
 
3
8
  * Fix code blocks prepended comma stripping
data/lib/org-ruby.rb CHANGED
@@ -25,6 +25,7 @@ require 'org-ruby/tilt'
25
25
  module OrgRuby
26
26
 
27
27
  # :stopdoc:
28
+ VERSION = '0.9.4'
28
29
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
29
30
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
30
31
  # :startdoc:
@@ -1,14 +1,3 @@
1
- begin
2
- require 'pygments'
3
- rescue LoadError
4
- # Pygments is not supported so we try instead with CodeRay
5
- begin
6
- require 'coderay'
7
- rescue LoadError
8
- # No code syntax highlighting
9
- end
10
- end
11
-
12
1
  module Orgmode
13
2
 
14
3
  class HtmlOutputBuffer < OutputBuffer
@@ -47,6 +36,19 @@ module Orgmode
47
36
  @footnotes = {}
48
37
  @unclosed_tags = []
49
38
  @logger.debug "HTML export options: #{@options.inspect}"
39
+
40
+ unless @options[:skip_syntax_highlight]
41
+ begin
42
+ require 'pygments'
43
+ rescue LoadError
44
+ # Pygments is not supported so we try instead with CodeRay
45
+ begin
46
+ require 'coderay'
47
+ rescue LoadError
48
+ # No code syntax highlighting
49
+ end
50
+ end
51
+ end
50
52
  end
51
53
 
52
54
  # Output buffer is entering a new mode. Use this opportunity to
@@ -57,7 +59,7 @@ module Orgmode
57
59
 
58
60
  if HtmlBlockTag[mode]
59
61
  unless ((mode_is_table?(mode) and skip_tables?) or
60
- (mode == :src and defined? Pygments))
62
+ (mode == :src and !@options[:skip_syntax_highlight] and defined? Pygments))
61
63
  css_class = case
62
64
  when (mode == :src and @block_lang.empty?)
63
65
  " class=\"src\""
@@ -88,7 +90,7 @@ module Orgmode
88
90
  m = super(mode)
89
91
  if HtmlBlockTag[m]
90
92
  unless ((mode_is_table?(m) and skip_tables?) or
91
- (m == :src and defined? Pygments))
93
+ (m == :src and !@options[:skip_syntax_highlight] and defined? Pygments))
92
94
  add_paragraph if @new_paragraph
93
95
  @new_paragraph = true
94
96
  @logger.debug "</#{HtmlBlockTag[m]}>"
@@ -107,6 +109,8 @@ module Orgmode
107
109
  # NOTE: CodeRay and Pygments already escape the html once, so
108
110
  # no need to escapeHTML
109
111
  case
112
+ when (current_mode == :src and @options[:skip_syntax_highlight])
113
+ @buffer = escapeHTML @buffer
110
114
  when (current_mode == :src and defined? Pygments)
111
115
  lang = normalize_lang @block_lang
112
116
  @output << "\n" unless @new_paragraph == :start
data/lib/org-ruby/line.rb CHANGED
@@ -24,12 +24,16 @@ module Orgmode
24
24
  # type. This will then affect the value of +paragraph_type+.
25
25
  attr_accessor :assigned_paragraph_type
26
26
 
27
+ # In case more contextual info is needed we can put here
28
+ attr_accessor :properties
29
+
27
30
  def initialize(line, parser=nil, assigned_paragraph_type=nil)
28
31
  @parser = parser
29
32
  @line = line
30
33
  @indent = 0
31
34
  @line =~ /\s*/
32
35
  @assigned_paragraph_type = assigned_paragraph_type
36
+ @properties = { }
33
37
  determine_paragraph_type
34
38
  determine_major_mode
35
39
  @indent = $&.length unless blank?
@@ -250,8 +250,8 @@ module Orgmode
250
250
  false
251
251
  end
252
252
 
253
- def buffer_indentation
254
- return false
255
- end
253
+ def buffer_indentation; false; end
254
+ def flush!; false; end
255
+ def output_footnotes!; false; end
256
256
  end # class OutputBuffer
257
257
  end # module Orgmode
@@ -183,7 +183,10 @@ module Orgmode
183
183
  table_header_set = false if !line.table?
184
184
 
185
185
  when :example, :html, :src
186
- set_mode_for_results_block_contents(previous_line, line) if previous_line
186
+ if previous_line
187
+ set_name_for_code_block(previous_line, line)
188
+ set_mode_for_results_block_contents(previous_line, line)
189
+ end
187
190
 
188
191
  # As long as we stay in code mode, force lines to be code.
189
192
  # Don't try to interpret structural items, like headings and tables.
@@ -200,6 +203,7 @@ module Orgmode
200
203
  mode = line.paragraph_type if line.begin_block?
201
204
 
202
205
  if previous_line
206
+ set_name_for_code_block(previous_line, line)
203
207
  set_mode_for_results_block_contents(previous_line, line)
204
208
 
205
209
  mode = :property_drawer if previous_line.property_drawer_begin_block?
@@ -274,6 +278,12 @@ module Orgmode
274
278
  include_data
275
279
  end
276
280
 
281
+ def set_name_for_code_block(previous_line, line)
282
+ previous_line.in_buffer_setting? do |key, value|
283
+ line.properties['block_name'] = value if key.downcase == 'name'
284
+ end
285
+ end
286
+
277
287
  def set_mode_for_results_block_contents(previous_line, line)
278
288
  if previous_line.start_of_results_code_block? \
279
289
  or previous_line.assigned_paragraph_type == :comment
@@ -331,7 +341,8 @@ module Orgmode
331
341
  :export_todo => export_todo?,
332
342
  :use_sub_superscripts => use_sub_superscripts?,
333
343
  :export_footnotes => export_footnotes?,
334
- :link_abbrevs => @link_abbrevs
344
+ :link_abbrevs => @link_abbrevs,
345
+ :skip_syntax_highlight => @parser_options[:skip_syntax_highlight]
335
346
  }
336
347
  export_options[:skip_tables] = true if not export_tables?
337
348
  output = ""
@@ -1,3 +1,3 @@
1
1
  module OrgRuby
2
- VERSION = '0.9.3'
2
+ VERSION = '0.9.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: org-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-03-25 00:00:00.000000000 Z
13
+ date: 2014-04-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubypants
17
- requirement: &70204882859800 !ruby/object:Gem::Requirement
17
+ requirement: &70356891100960 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 0.2.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70204882859800
25
+ version_requirements: *70356891100960
26
26
  description: An Org mode parser written in Ruby.
27
27
  email: waldemar.quevedo@gmail.com
28
28
  executables:
@@ -75,3 +75,4 @@ signing_key:
75
75
  specification_version: 3
76
76
  summary: This gem contains Ruby routines for parsing org-mode files.
77
77
  test_files: []
78
+ has_rdoc: