mok2html 0.1.2 → 0.1.3
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/Gemfile.lock +3 -3
- data/History.rdoc +5 -0
- data/RELEASE +1 -1
- data/VERSION +1 -1
- data/bin/mok2html +80 -29
- data/conf/mok2html.yaml.sample +50 -0
- data/lib/mok2html.rb +26 -11
- data/mok2html.gemspec +1 -1
- metadata +5 -5
- data/mok2html.yaml.sample +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e23b6f6138a4925170d9cf76b33cd2d6c9f1c52
|
4
|
+
data.tar.gz: 8b1ab1477dd107cb4f19366d19cdc884ece41afb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4ac12b4c76e67f868c5190fcb9c0b3c3da4ee1eecb64c8f40e47a9d91da4b5ccb829821c1df0b0694df959b5406faec35bc4cedd1b6480cdddbc969d14d90ea
|
7
|
+
data.tar.gz: 016a2b03a55cd670ab5510b4e174ec7042092081b3f7e12ee1b476c9307cca633ffac0044528e6d3501182be8fce0140b4adcbee1710f93358783599f2403ffe
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mok2html (0.1.
|
5
|
-
mok-parser (>= 0.3.
|
4
|
+
mok2html (0.1.2)
|
5
|
+
mok-parser (>= 0.3.2)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
mimemagic (0.2.1)
|
11
|
-
mok-parser (0.3.
|
11
|
+
mok-parser (0.3.2)
|
12
12
|
mimemagic
|
13
13
|
rake (10.1.0)
|
14
14
|
|
data/History.rdoc
CHANGED
data/RELEASE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2013-12-
|
1
|
+
2013-12-21
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/bin/mok2html
CHANGED
@@ -7,8 +7,23 @@ require "yaml"
|
|
7
7
|
require "optparse"
|
8
8
|
require "mok2html"
|
9
9
|
|
10
|
-
#
|
11
|
-
options = {
|
10
|
+
# デフォルト設定値
|
11
|
+
options = {
|
12
|
+
:config => ["/etc/mok/mok.yaml", "/etc/mok/mok2html.yaml",
|
13
|
+
"~/.mok/mok.yaml", "~/.mok/mok2html.yaml"],
|
14
|
+
:css => "",
|
15
|
+
:javascript => "",
|
16
|
+
:reference_extension => ".html",
|
17
|
+
:reference_directory => "",
|
18
|
+
:partial_directory => "",
|
19
|
+
:media_directory => "",
|
20
|
+
:variable => ["/etc/mok/variable.yaml","~/.mok/variable.yaml"],
|
21
|
+
:language => "ja",
|
22
|
+
:index => true,
|
23
|
+
:quiet => false,
|
24
|
+
:custom_element => "" ,
|
25
|
+
}
|
26
|
+
options_default = options
|
12
27
|
|
13
28
|
# 使い方
|
14
29
|
def usage(opt)
|
@@ -16,47 +31,83 @@ def usage(opt)
|
|
16
31
|
exit 0
|
17
32
|
end
|
18
33
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
34
|
+
# 設定ファイルの読み込み
|
35
|
+
def set_config_by_file(files,options)
|
36
|
+
files.each do |file|
|
37
|
+
file_path = File.expand_path(file)
|
38
|
+
next unless File.file?(file_path)
|
39
|
+
config = YAML.load_file( file_path )
|
40
|
+
if config
|
41
|
+
options.each do |key,val|
|
42
|
+
options[key.to_sym] = config[key.to_s] unless config[key.to_s].nil?
|
43
|
+
end
|
26
44
|
end
|
27
45
|
end
|
28
46
|
options
|
29
47
|
end
|
30
48
|
|
49
|
+
# 設定内容の表示
|
50
|
+
def show_config(options)
|
51
|
+
options.each do |key, val|
|
52
|
+
next if key == :show_config or key == :src_file
|
53
|
+
puts "#{key.to_s.ljust(20)}: #{Array(val).join(',')}"
|
54
|
+
end
|
55
|
+
exit 0
|
56
|
+
end
|
57
|
+
|
58
|
+
# mok-parser のバージョンを表示
|
59
|
+
def mok_parser_version
|
60
|
+
"mok-parser #{Mok::VERSION} (#{Mok::RELEASE})"
|
61
|
+
end
|
62
|
+
|
63
|
+
# 設定ファイル
|
64
|
+
unless ARGV.find {|val| val == "--no-config"}
|
65
|
+
options = set_config_by_file(options[:config], options)
|
66
|
+
end
|
67
|
+
|
31
68
|
# コマンドラインオプション
|
32
69
|
opt = OptionParser.new do |opt|
|
33
|
-
opt.banner = "Usage: mok2html [options] file"
|
34
70
|
opt.version = Mok::Mok2Html::VERSION
|
35
71
|
opt.release = Mok::Mok2Html::RELEASE
|
36
|
-
opt.on("-c", "--css file[,file,..]", "HTMLに埋め込むスタイルシートを指定") {|f| options[:css] = f}
|
37
|
-
opt.on("-j", "--javascript file[,file,..]", "HTMLに埋め込むJavaScriptを指定") {|f| options[:
|
38
|
-
opt.on("-
|
39
|
-
opt.on("--
|
40
|
-
opt.on("--
|
41
|
-
opt.on("--[no-]
|
42
|
-
opt.on("-
|
43
|
-
opt.on("-
|
44
|
-
opt.on("-
|
45
|
-
opt.on("-
|
72
|
+
opt.on("-c", "--css file[,file,..]", "HTMLに埋め込むスタイルシートを指定(デフォルト:なし)") {|f| options[:css] = f}
|
73
|
+
opt.on("-j", "--javascript file[,file,..]", "HTMLに埋め込むJavaScriptを指定(デフォルト:なし)") {|f| options[:javascript] = f}
|
74
|
+
opt.on("-l", "--language LANG", "言語(デフォルト:#{options[:language]} 。ドキュメント側で指定した場合はそちらを優先)"){|l| options[:language] = l}
|
75
|
+
opt.on("--no-config", "設定ファイル(#{options[:config]})を使用しない"){|v| options[:config] = v }
|
76
|
+
opt.on("--variable file", "ドキュメント内変数((@..@))の外部定義ファイル(デフォルト:なし)"){|v| options[:variable] = v }
|
77
|
+
opt.on("--[no-]index", "目次を生成する/しない(デフォルト:する)"){|v| options[:index] = v }
|
78
|
+
opt.on("--[no-]metadata", "メタ情報を出力する/しない(デフォルト:する)"){|v| options[:metadata] = v }
|
79
|
+
opt.on("-q","--quiet", "ヘッダやフッタを除いた本文のみを出力する(デフォルト:しない)"){ options[:quiet] = true }
|
80
|
+
opt.on("-e","--reference_extension string", "リファレンス修飾((<..>)で最後の「.%」を置換する拡張子(デフォルト:.html)"){|s| options[:reference_extension] = s }
|
81
|
+
opt.on("-R", "--reference_directory directory", "リンク修飾((<..>))のファイルを配置するディレクトリ(デフォルト:なし)"){|d| options[:media_directory] = d }
|
82
|
+
opt.on("-M", "--media_directory directory", "メディア修飾(($..$))で画像や動画などのファイルを配置するディレクトリ(デフォルト:なし)"){|d| options[:media_directory] = d }
|
83
|
+
opt.on("-P", "--partial_directory directory", "部分テンプレート(partial)記法((!..!))のファイルを配置するディレクトリ(デフォルト:変換元ファイルのカレントディレクトリ)"){|d| options[:partial_directory] = d }
|
46
84
|
opt.on("--custom_element file", "HTMLタグをカスタマイズするためのRubyファイル)"){|f| options[:custom_element] = f }
|
47
|
-
opt.on("-
|
48
|
-
|
49
|
-
|
50
|
-
}
|
51
|
-
|
52
|
-
opt.
|
85
|
+
opt.on("-s","--show-config", "現在の設定値を表示"){|flg| options[:show_config] = true }
|
86
|
+
opt.on("-S","--show-config-default", "mok2htmlのデフォルト設定値を表示"){ show_config options_default }
|
87
|
+
opt.on("-v","--version", "mok2htmlのバージョンを表示"){ puts opt.ver ; exit 0 }
|
88
|
+
opt.on("-V","--parser-version", "使用する mok-parser のバージョンを表示"){ puts mok_perser_version ; exit 0 }
|
89
|
+
opt.banner = <<EOL
|
90
|
+
#{opt.ver}
|
53
91
|
|
54
|
-
|
92
|
+
== Usage
|
93
|
+
$ mok2html [options] file
|
94
|
+
|
95
|
+
== Description
|
96
|
+
"mok2html" is mok document to HTML converter.
|
97
|
+
Read more: https://github.com/garin/mok2html
|
55
98
|
|
56
|
-
|
57
|
-
|
99
|
+
== Parser
|
100
|
+
#{mok_parser_version}
|
101
|
+
|
102
|
+
== Options
|
103
|
+
EOL
|
104
|
+
end
|
105
|
+
opt.parse!(ARGV)
|
58
106
|
|
59
107
|
# main
|
108
|
+
options[:src_file] = ARGV[0]
|
109
|
+
show_config(options) if options[:show_config] # 設定内容の表示
|
110
|
+
usage(opt) unless ARGV[0]
|
60
111
|
src = File.open(ARGV[0],"r").readlines
|
61
112
|
mok = Mok::Mok2Html.new(src, options)
|
62
113
|
puts mok.to_html
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# = mok2html.yaml.sample
|
2
|
+
# mok2html 設定ファイルのサンプル
|
3
|
+
#
|
4
|
+
# == 使い方
|
5
|
+
# ~/.mok/mok2html.yaml にファイルを置き、必要な設定を記述します。
|
6
|
+
# $ mkdir ~/.mok
|
7
|
+
# $ cp mok2html.yaml.sample ~/.mok/mok2html.yaml
|
8
|
+
# $ vi ~/.mok2html.yaml
|
9
|
+
#
|
10
|
+
#
|
11
|
+
# == 設定項目
|
12
|
+
# コンバート時にHTMLファイルに埋め込むスタイルシート(デフォルト:なし)
|
13
|
+
#css:
|
14
|
+
# - "~/doc/mok/css/bootstrap.css"
|
15
|
+
# - "~/doc/mok/css/prettify.css"
|
16
|
+
# - "~/doc/mok/css/_document.css"
|
17
|
+
#
|
18
|
+
# コンバート時にHTMLファイルに埋め込むjavascript(デフォルト:なし)
|
19
|
+
#javascript:
|
20
|
+
# - "~/doc/mok/js/jquery.js"
|
21
|
+
# - "~/doc/mok/js/bootstrap.js"
|
22
|
+
# - "~/doc/mok/js/prettify.js"
|
23
|
+
# - "~/doc/mok/js/prettify_onload.js"
|
24
|
+
#
|
25
|
+
# リファレンス修飾((<..>)で最後の「.%」を置換する拡張子( デフォルト:.html)
|
26
|
+
#reference_extension: ".html"
|
27
|
+
#
|
28
|
+
# リンク修飾((<..>))のファイルを配置するディレクトリ(デフォルト:なし)
|
29
|
+
#reference_directory: ""
|
30
|
+
#
|
31
|
+
# メディア修飾(($..$))で画像や動画などのファイルを配置す るディレクトリ(デフォルト:なし)
|
32
|
+
#media_directory: "/usr/local/media"
|
33
|
+
#
|
34
|
+
# 部分テンプレート(partial)記法((!..!))のファイルを配置するディレクトリ(デフォルト:変換元ファイルのカレントディレクトリ)
|
35
|
+
#partial_directory:
|
36
|
+
#
|
37
|
+
# HTMLタグをカスタマイズするためのRubyファイル(デフォルト:なし)
|
38
|
+
#custom_element: "/home/myname/mok2html/mycustom.rb"
|
39
|
+
#
|
40
|
+
# ドキュメントのフォーマット(デフォルト:ja)
|
41
|
+
#language: "ja"
|
42
|
+
#
|
43
|
+
# 目次(index)を作成するかどうか(デフォルト: true)
|
44
|
+
#index: true
|
45
|
+
#
|
46
|
+
# メタデータを作成するかどうか(デフォルト: true)
|
47
|
+
#metadata: true
|
48
|
+
#
|
49
|
+
# HTMLヘッダを出力((*しない*))かどうか(デフォルト: false)
|
50
|
+
#quiet: false
|
data/lib/mok2html.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
# See the included file COPYING for details.
|
4
4
|
require "mok2html_element"
|
5
5
|
require "cgi"
|
6
|
+
require "yaml"
|
6
7
|
|
7
8
|
module Mok
|
8
9
|
class Mok2Html
|
@@ -13,14 +14,15 @@ module Mok
|
|
13
14
|
@debug = true
|
14
15
|
|
15
16
|
# options
|
16
|
-
@css
|
17
|
-
@
|
18
|
-
@language
|
19
|
-
@index
|
20
|
-
@metadata
|
21
|
-
@quiet
|
22
|
-
|
17
|
+
@css = files_to_str(options[:css])
|
18
|
+
@javascript = files_to_str(options[:javascript])
|
19
|
+
@language = options[:language]
|
20
|
+
@index = options[:index]
|
21
|
+
@metadata = options[:metadata]
|
22
|
+
@quiet = options[:quiet]
|
23
|
+
options[:variables] = get_variables(files_to_str(options[:variable], true))
|
23
24
|
get_customized_element(options[:custom_element]) unless options[:custom_element].empty?
|
25
|
+
|
24
26
|
@mok = BlockParser.new(options)
|
25
27
|
@metadata = setup_metadata
|
26
28
|
@nodes = @mok.parse src
|
@@ -28,14 +30,23 @@ module Mok
|
|
28
30
|
|
29
31
|
# 複数ファイルの文字列を返す
|
30
32
|
# files: ファイルの配列または","区切り文字列
|
31
|
-
|
33
|
+
# ignore: ファイルが存在しない時に無視する
|
34
|
+
def files_to_str(files = [], ignore = false)
|
32
35
|
files = files.split(",") unless defined? files.each
|
33
36
|
files.map do |f|
|
34
37
|
path = File.expand_path(f.strip)
|
38
|
+
unless File.exist? path
|
39
|
+
next if ignore
|
40
|
+
end
|
35
41
|
File.open(path).readlines.join + "\n" unless path.empty?
|
36
42
|
end.join
|
37
43
|
end
|
38
44
|
|
45
|
+
# variables を生成する
|
46
|
+
def get_variables(str = "")
|
47
|
+
YAML.load( str )
|
48
|
+
end
|
49
|
+
|
39
50
|
# エレメントのカスタム用ファイルを読み込む
|
40
51
|
def get_customized_element(file)
|
41
52
|
require File.expand_path(file)
|
@@ -133,15 +144,19 @@ module Mok
|
|
133
144
|
EOL
|
134
145
|
str += css
|
135
146
|
str += javascript
|
147
|
+
str += "<title>#{CGI.escapeHTML(@metadata[:subject])}</title>" unless @metadata[:subject].nil?
|
136
148
|
str += <<EOL
|
137
|
-
<title>#{CGI.escapeHTML(@metadata[:subject])}</title>
|
138
149
|
</head>
|
139
150
|
<body>
|
140
151
|
EOL
|
141
152
|
end
|
142
153
|
|
143
154
|
def header_title
|
144
|
-
|
155
|
+
unless @metadata[:subject].nil?
|
156
|
+
"<h1>#{CGI.escapeHTML(@metadata[:subject])}</h1>\n"
|
157
|
+
else
|
158
|
+
""
|
159
|
+
end
|
145
160
|
end
|
146
161
|
|
147
162
|
def css
|
@@ -152,7 +167,7 @@ EOL
|
|
152
167
|
|
153
168
|
def javascript
|
154
169
|
str = ""
|
155
|
-
str += %[<script type="text/javascript">#{@
|
170
|
+
str += %[<script type="text/javascript">#{@javascript}</script>\n] unless @javascript.empty?
|
156
171
|
str
|
157
172
|
end
|
158
173
|
|
data/mok2html.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mok2html
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- garin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.3.
|
47
|
+
version: 0.3.2
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.3.
|
54
|
+
version: 0.3.2
|
55
55
|
description: mok is simple document format
|
56
56
|
email:
|
57
57
|
- garin54@gmail.com
|
@@ -71,10 +71,10 @@ files:
|
|
71
71
|
- Rakefile
|
72
72
|
- VERSION
|
73
73
|
- bin/mok2html
|
74
|
+
- conf/mok2html.yaml.sample
|
74
75
|
- lib/mok2html.rb
|
75
76
|
- lib/mok2html_element.rb
|
76
77
|
- mok2html.gemspec
|
77
|
-
- mok2html.yaml.sample
|
78
78
|
homepage: ''
|
79
79
|
licenses:
|
80
80
|
- GPLv3
|
data/mok2html.yaml.sample
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# = mok2html.yaml.sample
|
2
|
-
# mok2html 設定ファイルのサンプルです
|
3
|
-
#
|
4
|
-
# == 使い方
|
5
|
-
# 自身のホームディレクトリに .mok2html.yaml というファイル名で設置して値を編集します
|
6
|
-
# $ cp mok2html.yaml.sample ~/.mok2html.yaml
|
7
|
-
# $ vi ~/.mok2html.yaml
|
8
|
-
#
|
9
|
-
# == 設定項目
|
10
|
-
# コンバート時にHTMLファイルに埋め込むスタイルシート(デフォルト:なし)
|
11
|
-
# css:
|
12
|
-
# - "~/doc/mok/css/bootstrap.css"
|
13
|
-
# - "~/doc/mok/css/prettify.css"
|
14
|
-
# - "~/doc/mok/css/_document.css"
|
15
|
-
|
16
|
-
# コンバート時にHTMLファイルに埋め込むjavascript(デフォルト:なし)
|
17
|
-
# js:
|
18
|
-
# - "~/doc/mok/js/jquery.js"
|
19
|
-
# - "~/doc/mok/js/bootstrap.js"
|
20
|
-
# - "~/doc/mok/js/prettify.js"
|
21
|
-
# - "~/doc/mok/js/prettify_onload.js"
|
22
|
-
|
23
|
-
# リファレンス記法の「.%」を変換する拡張子(デフォルト:.html)
|
24
|
-
#reference_extension: ".html"
|
25
|
-
|
26
|
-
# リンク記法((<..>))のファイルを配置する基底ディレクトリ(デフォルト:なし)
|
27
|
-
#reference_base_directory: ""
|
28
|
-
|
29
|
-
# 画像やビデオ、音声などを配置するディレクトリ(デフォルト:なし)
|
30
|
-
#media_base_directory: "/usr/local/media"
|
31
|
-
|
32
|
-
# HTMLタグをカスタマイズするためのRubyファイル(デフォルト:なし)
|
33
|
-
#custom_element: "/home/myname/mok2html/mycustom.rb"
|
34
|
-
|
35
|
-
# ドキュメントのフォーマット(デフォルト:ja)
|
36
|
-
#language: "ja"
|
37
|
-
|
38
|
-
# 目次(index)を作成するかどうか(デフォルト: true)
|
39
|
-
#index: true
|
40
|
-
|
41
|
-
# メタデータを作成するかどうか(デフォルト: true)
|
42
|
-
#metadata: true
|
43
|
-
|
44
|
-
# HTMLヘッダを出力((*しない*))かどうか(デフォルト: false)
|
45
|
-
#quiet: false
|