gimli 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -3,7 +3,9 @@ h1. gimli - utility for converting markup to pdf
3
3
  h2. Description
4
4
 
5
5
  Gimli is a utility for converting markup to pdf files. Useful for reports and such things.
6
- It's inspired by the markup convertion in "gollum":https://github.com/github/gollum
6
+ It's a developed version of "textile2pdf":https://github.com/walle/textile2pdf to support multiple markup styles and to get syntax highlighting.
7
+
8
+ It's inspired by the markup convertion in "gollum":https://github.com/github/gollum. The markup code is adapted from gollum.
7
9
  It works by converting the markup to html using "PDFKit":https://github.com/jdpace/PDFKit
8
10
  The markup is converted to html using "github/markup":https://github.com/github/markup
9
11
 
data/lib/gimli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'gimli/version'
2
4
  require 'gimli/setup'
3
5
  require 'gimli/file'
data/lib/gimli/albino.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'albino/multi'
2
4
 
3
5
  # Use Albino Multi
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'fileutils'
2
4
 
3
5
  require 'pdfkit'
data/lib/gimli/file.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  module Gimli
2
4
 
3
5
  # Class used to load files and determine if they are valid
data/lib/gimli/markup.rb CHANGED
@@ -1,3 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ # This file is based on the markup class in gollum - https://github.com/github/gollum
4
+ # (The MIT License)
5
+ #
6
+ # Copyright (c) Tom Preston-Werner, Rick Olson
7
+
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ # of this software and associated documentation files (the 'Software'), to deal
10
+ # in the Software without restriction, including without limitation the rights
11
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ # copies of the Software, and to permit persons to whom the Software is
13
+ # furnished to do so, subject to the following conditions:
14
+
1
15
  require 'digest/sha1'
2
16
  require 'cgi'
3
17
 
@@ -30,7 +44,7 @@ module Gimli
30
44
  data = extract_code(@data.dup)
31
45
  data = extract_tags(data)
32
46
  begin
33
- data = GitHub::Markup.render(@filename, data)
47
+ data = GitHub::Markup.render(@filename, data.force_encoding('utf-8'))
34
48
  if data.nil?
35
49
  raise "There was an error converting #{@name} to HTML."
36
50
  end
@@ -40,7 +54,7 @@ module Gimli
40
54
  data = process_tags(data)
41
55
  data = process_code(data)
42
56
 
43
- doc = Nokogiri::HTML::DocumentFragment.parse(data)
57
+ doc = Nokogiri::HTML::DocumentFragment.parse(data.force_encoding('utf-8'))
44
58
  yield doc if block_given?
45
59
  data = doc_to_html(doc)
46
60
 
data/lib/gimli/setup.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'optiflag'
2
4
 
3
5
  # Set up the flags available
data/lib/gimli/version.rb CHANGED
@@ -1,6 +1,8 @@
1
+ # encoding: utf-8
2
+
1
3
  module Gimli
2
4
 
3
- Version = "0.1.0"
5
+ Version = "0.1.1"
4
6
 
5
7
  end
6
8
 
@@ -0,0 +1,7 @@
1
+ a
2
+
3
+ ```html
4
+ <h1>Abcåäö</h1>
5
+ <img src="åäö.png" alt="ÅÄÖ" />
6
+ ```
7
+
@@ -0,0 +1,6 @@
1
+ a
2
+
3
+ @<img src="åäö.png" alt="Abcåäö" />@
4
+
5
+ b
6
+
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require './spec/spec_helper'
2
4
 
3
5
  require './lib/gimli'
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require './spec/spec_helper'
2
4
 
3
5
  require './lib/gimli'
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require './spec/spec_helper'
2
4
 
3
5
  require './lib/gimli'
@@ -16,6 +18,30 @@ describe Gimli::Markup do
16
18
  markup.render.should == output
17
19
  end
18
20
 
21
+ it 'should give correct code block for utf8' do
22
+
23
+ output = "<p>a</p>\n<div class=\"highlight\"><pre>" +
24
+ "<span class=\"nt\">&lt;h1&gt;</span>Abc&#xC3;&#xA5;&#xC3;&#xA4;&#xC3;&#xB6;<span class=\"nt\">&lt;/h1&gt;</span>\n" +
25
+ "<span class=\"nt\">&lt;img</span> <span class=\"na\">src=</span><span class=\"s\">\"&#xC3;&#xA5;&#xC3;&#xA4;&#xC3;&#xB6;.png\"" +
26
+ "</span> <span class=\"na\">alt=</span><span class=\"s\">\"&#xC3;&#x85;&#xC3;&#x84;&#xC3;&#x96;\"" +
27
+ "</span> <span class=\"nt\">/&gt;</span>\n</pre>\n</div>\n"
28
+
29
+ file = Gimli::File.new File.expand_path('../../fixtures/code_block_with_utf8.textile', __FILE__)
30
+ markup = Gimli::Markup.new file
31
+
32
+ markup.render.should == output
33
+ end
34
+
35
+ it 'should give correct code for utf8' do
36
+
37
+ output = "<p>a</p>\n<code>&lt;img src=\"&#xE5;&#xE4;&#xF6;.png\" " +
38
+ "alt=\"Abc&#xE5;&#xE4;&#xF6;\" /&gt;</code>\n<p>b</p>"
39
+
40
+ file = Gimli::File.new File.expand_path('../../fixtures/code_with_utf8.textile', __FILE__)
41
+ markup = Gimli::Markup.new file
42
+
43
+ markup.render.should == output
44
+ end
19
45
 
20
46
  end
21
47
 
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  RSpec.configure do |config|
2
4
  config.mock_with :rr
3
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gimli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-29 00:00:00.000000000 +02:00
12
+ date: 2011-04-30 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: github-markup
17
- requirement: &16957440 !ruby/object:Gem::Requirement
17
+ requirement: &19105540 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *16957440
25
+ version_requirements: *19105540
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: redcarpet
28
- requirement: &16957020 !ruby/object:Gem::Requirement
28
+ requirement: &19105100 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *16957020
36
+ version_requirements: *19105100
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: RedCloth
39
- requirement: &16956600 !ruby/object:Gem::Requirement
39
+ requirement: &19104680 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *16956600
47
+ version_requirements: *19104680
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: org-ruby
50
- requirement: &16956180 !ruby/object:Gem::Requirement
50
+ requirement: &19104260 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *16956180
58
+ version_requirements: *19104260
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: creole
61
- requirement: &16955760 !ruby/object:Gem::Requirement
61
+ requirement: &19103840 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *16955760
69
+ version_requirements: *19103840
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: wikicloth
72
- requirement: &16955340 !ruby/object:Gem::Requirement
72
+ requirement: &19103420 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *16955340
80
+ version_requirements: *19103420
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: albino
83
- requirement: &16954920 !ruby/object:Gem::Requirement
83
+ requirement: &19103000 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *16954920
91
+ version_requirements: *19103000
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: nokogiri
94
- requirement: &16954500 !ruby/object:Gem::Requirement
94
+ requirement: &19102580 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *16954500
102
+ version_requirements: *19102580
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: wkhtmltopdf-binary
105
- requirement: &16985560 !ruby/object:Gem::Requirement
105
+ requirement: &19102160 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :runtime
112
112
  prerelease: false
113
- version_requirements: *16985560
113
+ version_requirements: *19102160
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: pdfkit
116
- requirement: &16985140 !ruby/object:Gem::Requirement
116
+ requirement: &19101740 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :runtime
123
123
  prerelease: false
124
- version_requirements: *16985140
124
+ version_requirements: *19101740
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: optiflag
127
- requirement: &16984720 !ruby/object:Gem::Requirement
127
+ requirement: &19101320 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :runtime
134
134
  prerelease: false
135
- version_requirements: *16984720
135
+ version_requirements: *19101320
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: rspec
138
- requirement: &16984300 !ruby/object:Gem::Requirement
138
+ requirement: &19133080 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: '0'
144
144
  type: :development
145
145
  prerelease: false
146
- version_requirements: *16984300
146
+ version_requirements: *19133080
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: rr
149
- requirement: &16983880 !ruby/object:Gem::Requirement
149
+ requirement: &19132660 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ! '>='
@@ -154,10 +154,10 @@ dependencies:
154
154
  version: '0'
155
155
  type: :development
156
156
  prerelease: false
157
- version_requirements: *16983880
157
+ version_requirements: *19132660
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: yard
160
- requirement: &16983460 !ruby/object:Gem::Requirement
160
+ requirement: &19132240 !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
163
163
  - - ! '>='
@@ -165,7 +165,7 @@ dependencies:
165
165
  version: '0'
166
166
  type: :development
167
167
  prerelease: false
168
- version_requirements: *16983460
168
+ version_requirements: *19132240
169
169
  description: Utility for converting markup files to pdf files. Useful for reports
170
170
  etc.
171
171
  email: fredrik.wallgren@gmail.com
@@ -185,6 +185,8 @@ files:
185
185
  - lib/gimli/converter.rb
186
186
  - lib/gimli.rb
187
187
  - spec/spec_helper.rb
188
+ - spec/fixtures/code_with_utf8.textile
189
+ - spec/fixtures/code_block_with_utf8.textile
188
190
  - spec/fixtures/code_block.textile
189
191
  - spec/gimli/converter_spec.rb
190
192
  - spec/gimli/markup_spec.rb