darkmouun 1.2.0 → 2.1.1
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 +2 -2
- data/lib/darkmouun/{converter/span.rb → kramdown/converter/html.rb} +1 -6
- data/lib/darkmouun/{parser → kramdown/parser/kramdown}/extensions.rb +4 -7
- data/lib/darkmouun/kramdown/parser/kramdown/link.rb +110 -0
- data/lib/darkmouun/{parser → kramdown/parser/kramdown}/span.rb +9 -16
- data/lib/darkmouun/kramdown.rb +13 -0
- data/lib/darkmouun/main.rb +4 -28
- data/lib/darkmouun/version.rb +1 -1
- data/lib/darkmouun.rb +2 -6
- metadata +10 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4a2c3b66f4fb9ab93a3c8671b722b770baed774650dfc2ce0d84d300198d5c30
|
|
4
|
+
data.tar.gz: 98b7467119e5af5bd55f0b5e309db72fb3063a40eb2577a907319b87d2ddd24c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 818936002fd0553e472bbf6cf3b533d80659729db7c066dbed502c42c44c17497a0e83722ae86b887b1575c68c2e4546d75ff1775f0e4fc80a0ecb90f6d78904
|
|
7
|
+
data.tar.gz: 3ce4f78657b946b1f23f8f73c4eb218ebc77a7ec70cf58387ab005f2357e96b481fbee0b3daca212bcf129837a36ee5ae4a7f235ab4d72c428fcc7ea2bcc6a69
|
data/README.md
CHANGED
|
@@ -95,9 +95,9 @@ dkmn.convert #=> <p>The Calculation:</p>
|
|
|
95
95
|
|
|
96
96
|
Darkmouun has extended to kramdown. Extensions are below;
|
|
97
97
|
|
|
98
|
-
1. **Plain
|
|
98
|
+
1. **Plain span element form.** `[spanned phrase]` is converted to `<span>spanned phrase</span>`.
|
|
99
99
|
|
|
100
|
-
2. **Style
|
|
100
|
+
2. **Style IAL form.** `%attritute_name:value;` in IAL is converted to `style="attribute_name:value;"`.<br/>**ex.** `{:%color:#ffffff; %font-weight:bold;}` -> `style="color:#ffffff; font-weight:bold;"`<br/>**ATTENSION:** Every attribute must be started from "`%`" and ended with "`;`".
|
|
101
101
|
|
|
102
102
|
## Development
|
|
103
103
|
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8; frozen_string_literal: true -*-
|
|
2
2
|
#
|
|
3
3
|
#--
|
|
4
|
-
# Copyright (C)
|
|
4
|
+
# Copyright (C) 2009-2019 Thomas Leitner <t_leitner@gmx.at>
|
|
5
5
|
#
|
|
6
6
|
# This file is part of kramdown which is licensed under the MIT.
|
|
7
7
|
#++
|
|
8
8
|
#
|
|
9
9
|
|
|
10
|
-
require 'kramdown'
|
|
11
|
-
|
|
12
10
|
module Kramdown
|
|
13
11
|
module Parser
|
|
14
12
|
class Kramdown
|
|
@@ -25,8 +23,7 @@ module Kramdown
|
|
|
25
23
|
elsif id_and_or_class
|
|
26
24
|
id_and_or_class.scan(ALD_TYPE_ID_OR_CLASS).each do |id_attr, class_attr|
|
|
27
25
|
if class_attr
|
|
28
|
-
opts[IAL_CLASS_ATTR] =
|
|
29
|
-
opts[IAL_CLASS_ATTR].lstrip!
|
|
26
|
+
opts[IAL_CLASS_ATTR] = "#{opts[IAL_CLASS_ATTR]} #{class_attr}".lstrip
|
|
30
27
|
else
|
|
31
28
|
opts['id'] = id_attr
|
|
32
29
|
end
|
|
@@ -43,7 +40,7 @@ module Kramdown
|
|
|
43
40
|
end
|
|
44
41
|
end
|
|
45
42
|
(opts['style'] = style_attr.join(' ')) unless style_attr.empty?
|
|
46
|
-
warning("No or invalid attributes found in IAL/ALD content: #{str}") if attrs.
|
|
43
|
+
warning("No or invalid attributes found in IAL/ALD content: #{str}") if attrs.empty?
|
|
47
44
|
end
|
|
48
45
|
|
|
49
46
|
ALD_TYPE_STYLE_ATTR = /%((?:--)?#{ALD_ID_NAME}:)\s*?((?:\\\}|\\;|[^\};])*?;)/
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# -*- coding: utf-8; frozen_string_literal: true -*-
|
|
2
|
+
#
|
|
3
|
+
#--
|
|
4
|
+
# Copyright (C) 2009-2019 Thomas Leitner <t_leitner@gmx.at>
|
|
5
|
+
#
|
|
6
|
+
# This file is part of kramdown which is licensed under the MIT.
|
|
7
|
+
#++
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
require 'kramdown/parser/kramdown/escaped_chars'
|
|
11
|
+
|
|
12
|
+
module Kramdown
|
|
13
|
+
module Parser
|
|
14
|
+
class Kramdown
|
|
15
|
+
|
|
16
|
+
# Parse the link at the current scanner position. This method is used to parse normal links as
|
|
17
|
+
# well as image links, plain spans.
|
|
18
|
+
def parse_link
|
|
19
|
+
start_line_number = @src.current_line_number
|
|
20
|
+
result = @src.scan(LINK_START)
|
|
21
|
+
cur_pos = @src.pos
|
|
22
|
+
saved_pos = @src.save_pos
|
|
23
|
+
|
|
24
|
+
link_type = (result =~ /^!/ ? :img : :a)
|
|
25
|
+
|
|
26
|
+
# no nested links allowed
|
|
27
|
+
if link_type == :a && (@tree.type == :img || @tree.type == :a ||
|
|
28
|
+
@stack.any? {|t, _| t && (t.type == :img || t.type == :a) })
|
|
29
|
+
add_text(result)
|
|
30
|
+
return
|
|
31
|
+
end
|
|
32
|
+
el = Element.new(link_type, nil, nil, location: start_line_number)
|
|
33
|
+
|
|
34
|
+
count = 1
|
|
35
|
+
found = parse_spans(el, LINK_BRACKET_STOP_RE) do
|
|
36
|
+
count += (@src[1] ? -1 : 1)
|
|
37
|
+
count - el.children.select {|c| c.type == :img }.size == 0
|
|
38
|
+
end
|
|
39
|
+
unless found
|
|
40
|
+
@src.revert_pos(saved_pos)
|
|
41
|
+
add_text(result)
|
|
42
|
+
return
|
|
43
|
+
end
|
|
44
|
+
alt_text = extract_string(cur_pos...@src.pos, @src).gsub(ESCAPED_CHARS, '\1')
|
|
45
|
+
@src.scan(LINK_BRACKET_STOP_RE)
|
|
46
|
+
|
|
47
|
+
# reference style link or no link url
|
|
48
|
+
if @src.scan(LINK_INLINE_ID_RE) || !@src.check(/\(/)
|
|
49
|
+
emit_warning = !@src[1]
|
|
50
|
+
link_id = normalize_link_id(@src[1] || alt_text)
|
|
51
|
+
if @link_defs.key?(link_id)
|
|
52
|
+
link_def = @link_defs[link_id]
|
|
53
|
+
add_link(el, link_def[0], link_def[1], alt_text,
|
|
54
|
+
link_def[2] && link_def[2].options[:ial])
|
|
55
|
+
else
|
|
56
|
+
if emit_warning
|
|
57
|
+
warning("No link definition for link ID '#{link_id}' found on line #{start_line_number}")
|
|
58
|
+
end
|
|
59
|
+
@src.revert_pos(saved_pos)
|
|
60
|
+
if @src.check(/./) == ']'
|
|
61
|
+
add_text(result)
|
|
62
|
+
else
|
|
63
|
+
parse_span
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
return
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# link url in parentheses
|
|
70
|
+
if @src.scan(/\(<(.*?)>/)
|
|
71
|
+
link_url = @src[1]
|
|
72
|
+
if @src.scan(/\)/)
|
|
73
|
+
add_link(el, link_url, nil, alt_text)
|
|
74
|
+
return
|
|
75
|
+
end
|
|
76
|
+
else
|
|
77
|
+
link_url = +''
|
|
78
|
+
nr_of_brackets = 0
|
|
79
|
+
while (temp = @src.scan_until(LINK_PAREN_STOP_RE))
|
|
80
|
+
link_url << temp
|
|
81
|
+
if @src[2]
|
|
82
|
+
nr_of_brackets -= 1
|
|
83
|
+
break if nr_of_brackets == 0
|
|
84
|
+
elsif @src[1]
|
|
85
|
+
nr_of_brackets += 1
|
|
86
|
+
else
|
|
87
|
+
break
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
link_url = link_url[1..-2]
|
|
91
|
+
link_url.strip!
|
|
92
|
+
|
|
93
|
+
if nr_of_brackets == 0
|
|
94
|
+
add_link(el, link_url, nil, alt_text)
|
|
95
|
+
return
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
if @src.scan(LINK_INLINE_TITLE_RE)
|
|
100
|
+
add_link(el, link_url, @src[2], alt_text)
|
|
101
|
+
else
|
|
102
|
+
@src.revert_pos(saved_pos)
|
|
103
|
+
add_text(result)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
# define_parser(:link, LINK_START, '!?\[')
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# Copyright (C) 2016 Akinori Ichigo <akinori.ichigo@gmail.com>
|
|
5
|
-
#
|
|
6
|
-
# This file is part of kramdown which is licensed under the MIT.
|
|
7
|
-
#++
|
|
8
|
-
#
|
|
2
|
+
|
|
3
|
+
require 'kramdown'
|
|
9
4
|
|
|
10
5
|
module Kramdown
|
|
11
6
|
module Parser
|
|
12
7
|
class Kramdown
|
|
13
8
|
|
|
14
|
-
SPAN_START = /(?:\[\[\s*?)/
|
|
15
|
-
|
|
16
9
|
# Parse the span at the current location.
|
|
17
10
|
def parse_span
|
|
18
11
|
start_line_number = @src.current_line_number
|
|
19
12
|
saved_pos = @src.save_pos
|
|
20
13
|
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
span_start = /(?:\[\s*?)/
|
|
15
|
+
result = @src.scan(span_start)
|
|
16
|
+
stop_re = /(?:\s*?\])/
|
|
23
17
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
el = Element.new(:span, nil, nil, :location => start_line_number)
|
|
19
|
+
found = parse_spans(el, stop_re) do
|
|
20
|
+
el.children.size > 0
|
|
21
|
+
end
|
|
28
22
|
|
|
29
23
|
if found
|
|
30
24
|
@src.scan(stop_re)
|
|
@@ -35,7 +29,6 @@ module Kramdown
|
|
|
35
29
|
add_text(result)
|
|
36
30
|
end
|
|
37
31
|
end
|
|
38
|
-
define_parser(:span, SPAN_START, '\[\[')
|
|
39
32
|
|
|
40
33
|
end
|
|
41
34
|
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require_relative "kramdown/parser/kramdown/extensions"
|
|
4
|
+
require_relative "kramdown/parser/kramdown/span"
|
|
5
|
+
require_relative "kramdown/parser/kramdown/link"
|
|
6
|
+
require_relative "kramdown/converter/html"
|
|
7
|
+
|
|
8
|
+
module Kramdown
|
|
9
|
+
class Element
|
|
10
|
+
CATEGORY[:span] = :span
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
data/lib/darkmouun/main.rb
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
1
3
|
require "mustache"
|
|
2
4
|
require "Kramdown"
|
|
3
5
|
require "htmlbeautifier"
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
require "darkmouun/parser/extensions"
|
|
7
|
-
require "darkmouun/parser/span"
|
|
8
|
-
require "darkmouun/converter/span"
|
|
9
|
-
|
|
10
|
-
module Kramdown
|
|
11
|
-
module Parser
|
|
12
|
-
class Kramdown
|
|
13
|
-
alias_method :super_initialize, :initialize
|
|
14
|
-
def initialize(source, options)
|
|
15
|
-
super_initialize(source, options)
|
|
16
|
-
@span_parsers.insert(5, :span)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
7
|
+
require_relative "kramdown"
|
|
21
8
|
|
|
22
9
|
module Darkmouun
|
|
23
10
|
class << self
|
|
@@ -32,18 +19,7 @@ module Darkmouun
|
|
|
32
19
|
def initialize(source, options ={}, converter = :html)
|
|
33
20
|
@source, @options = source, options
|
|
34
21
|
@templates = {}
|
|
35
|
-
|
|
36
|
-
@converter = case converter
|
|
37
|
-
when String
|
|
38
|
-
('to_' + converter).intern
|
|
39
|
-
when Symbol
|
|
40
|
-
('to_' + (converter.to_s)).intern
|
|
41
|
-
else
|
|
42
|
-
Exception.new "Invalid converter: Neither Symbol nor String"
|
|
43
|
-
end
|
|
44
|
-
rescue => e
|
|
45
|
-
p e
|
|
46
|
-
end
|
|
22
|
+
@converter = ('to_' + (converter.to_s)).intern
|
|
47
23
|
end
|
|
48
24
|
|
|
49
25
|
def add_templates(dir, *tmpls)
|
data/lib/darkmouun/version.rb
CHANGED
data/lib/darkmouun.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: darkmouun
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 2.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Akinori Ichigo
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-09-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -111,10 +111,12 @@ files:
|
|
|
111
111
|
- bin/setup
|
|
112
112
|
- darkmouun.gemspec
|
|
113
113
|
- lib/darkmouun.rb
|
|
114
|
-
- lib/darkmouun/
|
|
114
|
+
- lib/darkmouun/kramdown.rb
|
|
115
|
+
- lib/darkmouun/kramdown/converter/html.rb
|
|
116
|
+
- lib/darkmouun/kramdown/parser/kramdown/extensions.rb
|
|
117
|
+
- lib/darkmouun/kramdown/parser/kramdown/link.rb
|
|
118
|
+
- lib/darkmouun/kramdown/parser/kramdown/span.rb
|
|
115
119
|
- lib/darkmouun/main.rb
|
|
116
|
-
- lib/darkmouun/parser/extensions.rb
|
|
117
|
-
- lib/darkmouun/parser/span.rb
|
|
118
120
|
- lib/darkmouun/version.rb
|
|
119
121
|
homepage: https://github.com/akinori-ichigo/darkmouun
|
|
120
122
|
licenses:
|
|
@@ -123,7 +125,7 @@ metadata:
|
|
|
123
125
|
homepage_uri: https://github.com/akinori-ichigo/darkmouun
|
|
124
126
|
source_code_uri: https://github.com/akinori-ichigo/darkmouun
|
|
125
127
|
changelog_uri: https://github.com/akinori-ichigo/darkmouun
|
|
126
|
-
post_install_message:
|
|
128
|
+
post_install_message:
|
|
127
129
|
rdoc_options: []
|
|
128
130
|
require_paths:
|
|
129
131
|
- lib
|
|
@@ -139,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
139
141
|
version: '0'
|
|
140
142
|
requirements: []
|
|
141
143
|
rubygems_version: 3.1.6
|
|
142
|
-
signing_key:
|
|
144
|
+
signing_key:
|
|
143
145
|
specification_version: 4
|
|
144
146
|
summary: The Processting tool from Markdown to HTML
|
|
145
147
|
test_files: []
|