nora_mark 0.2beta11 → 0.2beta12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/LICENSE +25 -18
- data/README.md +3 -1
- data/lib/nora_mark/html/context.rb +15 -5
- data/lib/nora_mark/html/frontmatter_writer.rb +6 -0
- data/lib/nora_mark/version.rb +1 -1
- data/lib/tilt/nora_mark.rb +18 -0
- data/nora_mark.gemspec +1 -0
- data/spec/fixtures/tilt/html/sample.html +20 -0
- data/spec/fixtures/tilt/nora/sample.nora +18 -0
- data/spec/nora_mark_spec.rb +29 -0
- data/spec/tilt_spec.rb +16 -0
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 878b5a25f32b34e6c9ba1cf27418f876e6ee3bed
|
4
|
+
data.tar.gz: d0079061039cf71ee91f554cafefd8613cb06895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b85d6e2c5ac7d9f05fba7548976874a63176573fd3fb3245934cde97b627a948e1dff94717622625c1d3aa3b136506d0511181bcac47d5673314e274963c064
|
7
|
+
data.tar.gz: 42cc2bc8cbc5181f365e759c6c61e883b513ae8d8e148d10ed7e53abb6ee5553004889c90e866b2c675fbd434e0fb2e70393aea094fb92de384fc92ab27a1614
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# version 0.2beta8 to 0.2beta12
|
2
|
+
|
3
|
+
* Plugin API for generator
|
4
|
+
* Support video and audio tag
|
5
|
+
* Support nested unordered list
|
6
|
+
* Support GFM style inline code block
|
7
|
+
* Tilt Adapter (@KitaitiMakoto)
|
8
|
+
|
1
9
|
# version 0.2beta7 (NoraMark beta)
|
2
10
|
|
3
11
|
* new table of contents feature. assign table of contents heading to every heading element (h1-h2 and Markdown style header)
|
data/LICENSE
CHANGED
@@ -1,22 +1,29 @@
|
|
1
|
-
|
1
|
+
# LICENSE:
|
2
2
|
|
3
|
-
|
3
|
+
(The New BSD License)
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
5
|
+
Copyright (c) 2012-2014, KOJIMA Satoshi
|
6
|
+
All rights reserved.
|
12
7
|
|
13
|
-
|
14
|
-
|
8
|
+
Redistribution and use in source and binary forms, with or without
|
9
|
+
modification, are permitted provided that the following conditions are met:
|
15
10
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
11
|
+
* Redistributions of source code must retain the above copyright
|
12
|
+
notice, this list of conditions and the following disclaimer.
|
13
|
+
* Redistributions in binary form must reproduce the above copyright
|
14
|
+
notice, this list of conditions and the following disclaimer in the
|
15
|
+
documentation and/or other materials provided with the distribution.
|
16
|
+
* Neither the name of the <organization> nor the
|
17
|
+
names of its contributors may be used to endorse or promote products
|
18
|
+
derived from this software without specific prior written permission.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
24
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
25
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
26
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
27
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
28
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
29
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
CHANGED
@@ -335,10 +335,12 @@ Result.
|
|
335
335
|
</body>
|
336
336
|
</html>
|
337
337
|
```
|
338
|
-
###
|
338
|
+
### Transformer examples
|
339
339
|
|
340
340
|
[HTML generator default transformer](https://github.com/skoji/noramark/blob/master/lib/nora_mark/html/default_transformer.rb) is a good example of transformer.
|
341
341
|
|
342
|
+
HTMLBook also implements its own [transformer](https://github.com/skoji/nora_mark_htmlbook/blob/master/lib/nora_mark_htmlbook/transformer.rb).
|
343
|
+
|
342
344
|
## noramark-mode.el
|
343
345
|
|
344
346
|
Experimental implementation of noramark major mode is available here. It provides font-lock for NoraMark syntax and supports outline-minor-mode for the present.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module NoraMark
|
2
2
|
module Html
|
3
3
|
class Context
|
4
|
-
attr_accessor :title, :head_inserters, :lang, :stylesheets, :enable_pgroup, :render_parameter
|
4
|
+
attr_accessor :title, :head_inserters, :lang, :stylesheets, :enable_pgroup, :render_parameter, :namespaces, :metas
|
5
5
|
def initialize(param = {})
|
6
6
|
@head_inserters = []
|
7
7
|
@lang = param[:lang] || 'en'
|
@@ -10,11 +10,12 @@ module NoraMark
|
|
10
10
|
@enable_pgroup = param[:enable_pgroup] || true
|
11
11
|
self.paragraph_style= param[:paragraph_style]
|
12
12
|
@pages = Pages.new(param[:sequence_format])
|
13
|
-
@
|
13
|
+
@namespaces = {}
|
14
|
+
@metas = []
|
14
15
|
@render_parameter = {}
|
15
16
|
head_inserter do
|
16
17
|
ret = ""
|
17
|
-
@stylesheets.each
|
18
|
+
@stylesheets.each do |s|
|
18
19
|
if s.is_a? String
|
19
20
|
ret << "<link rel=\"stylesheet\" type=\"text/css\" href=\"#{s}\" />\n"
|
20
21
|
elsif s.is_a? Array
|
@@ -22,7 +23,12 @@ module NoraMark
|
|
22
23
|
else
|
23
24
|
raise "Can't use #{s} as a stylesheet"
|
24
25
|
end
|
25
|
-
|
26
|
+
end
|
27
|
+
ret << @metas.map do |meta|
|
28
|
+
"<meta " + meta.map do |k,v|
|
29
|
+
"#{k}=\"#{v}\""
|
30
|
+
end.join(" ") + " />"
|
31
|
+
end.join("\n")
|
26
32
|
ret
|
27
33
|
end
|
28
34
|
end
|
@@ -60,7 +66,11 @@ module NoraMark
|
|
60
66
|
end_html
|
61
67
|
end
|
62
68
|
page = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
63
|
-
page << "<html xmlns=\"http://www.w3.org/1999/xhtml\"
|
69
|
+
page << "<html xmlns=\"http://www.w3.org/1999/xhtml\""
|
70
|
+
page << @namespaces.map do |k,v|
|
71
|
+
"xmlns:#{k}=\"#{v}\""
|
72
|
+
end.join(' ')
|
73
|
+
page << " lang=\"#{@lang}\" xml:lang=\"#{@lang}\">\n"
|
64
74
|
page << "<head>\n"
|
65
75
|
page << "<title>#{@title}</title>\n"
|
66
76
|
@head_inserters.each {
|
@@ -18,6 +18,12 @@ module NoraMark
|
|
18
18
|
end,
|
19
19
|
paragraph_style: proc do |value|
|
20
20
|
@context.paragraph_style = value.strip.to_sym
|
21
|
+
end,
|
22
|
+
namespace: proc do |value|
|
23
|
+
@context.namespaces.merge! value
|
24
|
+
end,
|
25
|
+
meta: proc do |value|
|
26
|
+
@context.metas << value
|
21
27
|
end
|
22
28
|
}
|
23
29
|
end
|
data/lib/nora_mark/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'tilt'
|
2
|
+
require 'nora_mark'
|
3
|
+
|
4
|
+
module Tilt
|
5
|
+
class NoraMarkTemplate < Template
|
6
|
+
protected
|
7
|
+
|
8
|
+
def prepare
|
9
|
+
@document = NoraMark::Document.parse(data).render_parameter(nonpaged: true)
|
10
|
+
end
|
11
|
+
|
12
|
+
def evaluate(scope, locals, &block)
|
13
|
+
@html ||= @document.html[0]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
register NoraMarkTemplate, 'nora'
|
18
|
+
end
|
data/nora_mark.gemspec
CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
|
18
18
|
gem.required_ruby_version = '>= 2.0.0'
|
19
19
|
gem.add_dependency "kpeg"
|
20
|
+
gem.add_development_dependency "tilt", ">= 2.0"
|
20
21
|
gem.add_development_dependency "rspec", "~> 2.14"
|
21
22
|
gem.add_development_dependency "rake"
|
22
23
|
gem.add_development_dependency "byebug"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
|
3
|
+
<head>
|
4
|
+
<title>test title</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
|
6
|
+
<link rel="stylesheet" type="text/css" href="css/main.css" />
|
7
|
+
</head>
|
8
|
+
<body><article><h1 id='heading_index_1'>header 1</h1>
|
9
|
+
<div class='pgroup'><p>article comes here.</p>
|
10
|
+
<p>linebreak will produce paragraph.</p>
|
11
|
+
</div>
|
12
|
+
<div class='pgroup'><p>blank line will procude div.pgroup.</p>
|
13
|
+
</div>
|
14
|
+
<div class='column'><div class='pgroup'><p>This block will produce div.column.</p>
|
15
|
+
<p>Inline commands like <a href='http://github.com/skoji/nora_mark/'>this</a> and <span class='strong'>this</span> is available.</p>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</article>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
lang: ja
|
3
|
+
title: test title
|
4
|
+
stylesheets: [css/normalize.css, css/main.css]
|
5
|
+
---
|
6
|
+
|
7
|
+
art {
|
8
|
+
h1: header 1
|
9
|
+
article comes here.
|
10
|
+
linebreak will produce paragraph.
|
11
|
+
|
12
|
+
blank line will procude div.pgroup.
|
13
|
+
|
14
|
+
d.column {
|
15
|
+
This block will produce div.column.
|
16
|
+
Inline commands like [link(http://github.com/skoji/nora_mark/){this}] and [sp.strong{this}] is available.
|
17
|
+
}
|
18
|
+
}
|
data/spec/nora_mark_spec.rb
CHANGED
@@ -1436,5 +1436,34 @@ EOF
|
|
1436
1436
|
)
|
1437
1437
|
end
|
1438
1438
|
end
|
1439
|
+
describe 'Frontmatter MetaData' do
|
1440
|
+
it 'handle namespace' do
|
1441
|
+
text = <<EOF
|
1442
|
+
---
|
1443
|
+
namespace: { epub: "http://www.idpf.org/2007/ops" }
|
1444
|
+
---
|
1445
|
+
text
|
1446
|
+
EOF
|
1447
|
+
converted = NoraMark::Document.parse(text)
|
1448
|
+
xhtml = Nokogiri::XML::Document.parse(converted.html[0])
|
1449
|
+
expect(xhtml.root.namespaces['xmlns:epub'])
|
1450
|
+
.to eq 'http://www.idpf.org/2007/ops'
|
1451
|
+
end
|
1452
|
+
|
1453
|
+
it 'handle meta tag' do
|
1454
|
+
text = <<EOF
|
1455
|
+
---
|
1456
|
+
meta: { name: mymeta, content: mycontent }
|
1457
|
+
namespace: { epub: "http://www.idpf.org/2007/ops" }
|
1458
|
+
---
|
1459
|
+
text
|
1460
|
+
EOF
|
1461
|
+
converted = NoraMark::Document.parse(text)
|
1462
|
+
xhtml = Nokogiri::XML::Document.parse(converted.html[0])
|
1463
|
+
expect(xhtml.root.at_xpath('xmlns:head/xmlns:body')).to be_nil
|
1464
|
+
expect(xhtml.root.at_xpath('xmlns:head/xmlns:meta').selector_and_children)
|
1465
|
+
.to eq ["meta[name='mymeta'][content='mycontent']"]
|
1466
|
+
end
|
1467
|
+
end
|
1439
1468
|
end
|
1440
1469
|
|
data/spec/tilt_spec.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
require 'pathname'
|
3
|
+
require 'tilt/nora_mark'
|
4
|
+
|
5
|
+
describe Tilt::NoraMarkTemplate do
|
6
|
+
let(:fixtures_dir) { Pathname.new(__dir__) + 'fixtures/tilt' }
|
7
|
+
subject { Tilt.new(fixtures_dir + 'nora/sample.nora') }
|
8
|
+
|
9
|
+
it "should be registered for '.nora' files" do
|
10
|
+
expect(subject).to be_an_instance_of(Tilt::NoraMarkTemplate)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should convert '.nora' files to HTML" do
|
14
|
+
expect(subject.render).to eq (fixtures_dir + 'html/sample.html').read
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nora_mark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2beta12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KOJIMA Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kpeg
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: tilt
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rspec
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +137,7 @@ files:
|
|
123
137
|
- lib/nora_mark/parser.rb
|
124
138
|
- lib/nora_mark/transformer.rb
|
125
139
|
- lib/nora_mark/version.rb
|
140
|
+
- lib/tilt/nora_mark.rb
|
126
141
|
- nora_mark.gemspec
|
127
142
|
- spec/created_files/.gitignore
|
128
143
|
- spec/epub30-schemas/epub-nav-30.nvdl
|
@@ -204,11 +219,14 @@ files:
|
|
204
219
|
- spec/epub30-schemas/package-30.sch
|
205
220
|
- spec/extensions_spec.rb
|
206
221
|
- spec/fixtures/test-plugins/nora_mark_tester.rb
|
222
|
+
- spec/fixtures/tilt/html/sample.html
|
223
|
+
- spec/fixtures/tilt/nora/sample.nora
|
207
224
|
- spec/jing-20091111/bin/jing.jar
|
208
225
|
- spec/node_spec.rb
|
209
226
|
- spec/nokogiri_test_helper.rb
|
210
227
|
- spec/nora_mark_spec.rb
|
211
228
|
- spec/spec_helper.rb
|
229
|
+
- spec/tilt_spec.rb
|
212
230
|
- spec/transformer_spec.rb
|
213
231
|
homepage: ''
|
214
232
|
licenses: []
|
@@ -314,9 +332,12 @@ test_files:
|
|
314
332
|
- spec/epub30-schemas/package-30.sch
|
315
333
|
- spec/extensions_spec.rb
|
316
334
|
- spec/fixtures/test-plugins/nora_mark_tester.rb
|
335
|
+
- spec/fixtures/tilt/html/sample.html
|
336
|
+
- spec/fixtures/tilt/nora/sample.nora
|
317
337
|
- spec/jing-20091111/bin/jing.jar
|
318
338
|
- spec/node_spec.rb
|
319
339
|
- spec/nokogiri_test_helper.rb
|
320
340
|
- spec/nora_mark_spec.rb
|
321
341
|
- spec/spec_helper.rb
|
342
|
+
- spec/tilt_spec.rb
|
322
343
|
- spec/transformer_spec.rb
|