nora_mark 0.2beta8 → 0.2beta9
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/README.md +13 -0
- data/lib/nora_mark/document.rb +19 -4
- data/lib/nora_mark/extensions.rb +18 -6
- data/lib/nora_mark/version.rb +1 -1
- data/spec/extensions_spec.rb +31 -0
- data/spec/fixtures/test-plugins/noramark_tester.rb +14 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff523cf34fbe8fa1e6288d26aa32455e1b9ce9be
|
4
|
+
data.tar.gz: 34c6c5386bd9c58f63afb9cf21f4a9688923d130
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e087b116de63c76b1a14c62fc85d07bd6aff7a06d1e2aa21017dae5a42f1273d3fbab321d0e931f780bbe38bf2224e91527a7cf52fd1e7e2ad3df5a108d450e4
|
7
|
+
data.tar.gz: c719ce76365568d89719f6554c5039f470c8b0fcd77b4d1eb4d73f08f617ee6cab6f468789c7572837e242364fe0e62faddee12ab6749fad9355f7f1b87511ee
|
data/README.md
CHANGED
@@ -362,3 +362,16 @@ https://github.com/skoji/noramark/blob/master/emacs-mode/noramark-mode.el
|
|
362
362
|
3. Commit your changes (`git commit -am 'Added some feature'`)
|
363
363
|
4. Push to the branch (`git push origin my-new-feature`)
|
364
364
|
5. Create new Pull Request
|
365
|
+
|
366
|
+
## Related Project
|
367
|
+
|
368
|
+
### NoraMark HTMLBook
|
369
|
+
|
370
|
+
https://github.com/skoji/nora_mark_htmlbook
|
371
|
+
HTMLBook generator plugin
|
372
|
+
|
373
|
+
### NoraMark.js
|
374
|
+
|
375
|
+
https://github.com/skoji/noramark.js
|
376
|
+
JavaScript port of NoraMark.
|
377
|
+
|
data/lib/nora_mark/document.rb
CHANGED
@@ -14,13 +14,24 @@ module NoraMark
|
|
14
14
|
generator_name = generator.name
|
15
15
|
@generators[generator_name] = generator
|
16
16
|
generator.activate self if generator.respond_to? :activate
|
17
|
-
|
18
|
-
|
19
|
-
generate(generator_name)
|
20
|
-
end
|
17
|
+
define_method(generator_name) do
|
18
|
+
generate(generator_name)
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
22
|
+
def self.unregister_generator(generator)
|
23
|
+
@generators ||= {}
|
24
|
+
if generator.is_a? Symbol or generator.is_a? String
|
25
|
+
generator_name = generator.to_sym
|
26
|
+
else
|
27
|
+
generator_name = generator.name
|
28
|
+
end
|
29
|
+
|
30
|
+
@generators.delete generator_name
|
31
|
+
generator.deactivate self if generator.respond_to? :deactivate
|
32
|
+
remove_method generator_name
|
33
|
+
end
|
34
|
+
|
24
35
|
register_generator(::NoraMark::Html::Generator)
|
25
36
|
|
26
37
|
def self.parse(string_or_io, param = {})
|
@@ -47,6 +58,10 @@ module NoraMark
|
|
47
58
|
page_no
|
48
59
|
end
|
49
60
|
end
|
61
|
+
frontmatter = instance.root.find_node :type => :Frontmatter
|
62
|
+
if (frontmatter&& frontmatter.yaml['generator'])
|
63
|
+
NoraMark::Extensions.register_generator(frontmatter.yaml['generator'].to_sym)
|
64
|
+
end
|
50
65
|
instance
|
51
66
|
end
|
52
67
|
|
data/lib/nora_mark/extensions.rb
CHANGED
@@ -7,10 +7,22 @@ module NoraMark
|
|
7
7
|
NoraMark::Document.register_generator(generator)
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
def self.unregister_generator(generator)
|
11
|
+
NoraMark::Document.unregister_generator(generator)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.const_get_if_available(name)
|
15
|
+
name.split(/::/).inject(Object){|o,c|
|
16
|
+
o.const_get(c) if !o.nil? and o.const_defined? c
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
def self.load_generator(generator)
|
22
|
+
module_name = "NoraMark::#{generator.to_s.capitalize}::Generator"
|
23
|
+
generator_module = const_get_if_available(module_name)
|
24
|
+
return generator_module unless generator_module.nil?
|
25
|
+
path = "#{generator.to_s.downcase}.rb"
|
14
26
|
current_dir_path = File.expand_path(File.join('.', '.noramark-plugins', path))
|
15
27
|
home_dir_path = File.expand_path(File.join(ENV['HOME'], '.noramark-plugins', path))
|
16
28
|
if File.exist? current_dir_path
|
@@ -18,9 +30,9 @@ module NoraMark
|
|
18
30
|
elsif File.exist? home_dir_path
|
19
31
|
require home_dir_path
|
20
32
|
else
|
21
|
-
require "
|
33
|
+
require "noramark_#{generator.to_s.downcase}"
|
22
34
|
end
|
23
|
-
|
35
|
+
const_get_if_available(module_name)
|
24
36
|
end
|
25
37
|
end
|
26
38
|
end
|
data/lib/nora_mark/version.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
3
|
+
require File.dirname(__FILE__) + '/../lib/nora_mark'
|
4
|
+
require 'nokogiri'
|
5
|
+
require File.dirname(__FILE__) + '/nokogiri_test_helper.rb'
|
6
|
+
|
7
|
+
describe NoraMark::Extensions do
|
8
|
+
describe "register generator in the path" do
|
9
|
+
before(:each) do
|
10
|
+
if NoraMark.const_defined? :Tester
|
11
|
+
NoraMark::Extensions.unregister_generator(:tester)
|
12
|
+
end
|
13
|
+
@test_plugin_dir = File.dirname(__FILE__) + '/fixtures/test-plugins'
|
14
|
+
$:.unshift @test_plugin_dir
|
15
|
+
end
|
16
|
+
it 'load generator from path' do
|
17
|
+
NoraMark::Extensions.register_generator(:tester)
|
18
|
+
nora = NoraMark::Document.parse('text')
|
19
|
+
expect(nora.tester).to eq 'it is just a test.'
|
20
|
+
end
|
21
|
+
it 'load generator from path using frontmatter' do
|
22
|
+
nora = NoraMark::Document.parse("---\ngenerator: tester\n---\ntext")
|
23
|
+
expect(nora.tester).to eq 'it is just a test.'
|
24
|
+
end
|
25
|
+
after(:each) do
|
26
|
+
$:.delete @test_plugin_dir
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nora_mark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2beta9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KOJIMA Satoshi
|
@@ -201,6 +201,8 @@ files:
|
|
201
201
|
- spec/epub30-schemas/package-30.nvdl
|
202
202
|
- spec/epub30-schemas/package-30.rnc
|
203
203
|
- spec/epub30-schemas/package-30.sch
|
204
|
+
- spec/extensions_spec.rb
|
205
|
+
- spec/fixtures/test-plugins/noramark_tester.rb
|
204
206
|
- spec/jing-20091111/bin/jing.jar
|
205
207
|
- spec/node_spec.rb
|
206
208
|
- spec/nokogiri_test_helper.rb
|
@@ -309,6 +311,8 @@ test_files:
|
|
309
311
|
- spec/epub30-schemas/package-30.nvdl
|
310
312
|
- spec/epub30-schemas/package-30.rnc
|
311
313
|
- spec/epub30-schemas/package-30.sch
|
314
|
+
- spec/extensions_spec.rb
|
315
|
+
- spec/fixtures/test-plugins/noramark_tester.rb
|
312
316
|
- spec/jing-20091111/bin/jing.jar
|
313
317
|
- spec/node_spec.rb
|
314
318
|
- spec/nokogiri_test_helper.rb
|