nora_mark 0.2beta11 → 0.2beta12
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.
- 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
|