raf2html 0.0.7 → 0.0.8
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 +5 -3
- data/History.rdoc +16 -0
- data/README.rdoc +19 -14
- data/RELEASE +1 -1
- data/VERSION +1 -1
- data/bin/raf2html +10 -2
- data/lib/raf2html.rb +19 -10
- data/lib/raf2html_element.rb +22 -5
- data/raf2html.gemspec +1 -1
- data/raf2html.yaml.sample +22 -6
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a919fa589de9a092cfc4d6b7e4b1a4d85df8cdb8
|
4
|
+
data.tar.gz: c4285b4b83fccbb44060bdf0d2658df06fa8792c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 163ae6e6b0b468e5d03ed5cd6e870979908f2298f36a802ce4046f303a45aa5ee6b8a923522c242799eb98d0210605a2ab20a0f4aa833ddcb66de2add86ebd2b
|
7
|
+
data.tar.gz: b3409ac7fce9355ba030cf9ffd176d06c29a015b4cd61cfae67b5a87de7c1b333f7fc63e848404d671d0c76bb2d7e6d57a067b72fd384f13ebd96ead390779ff
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
raf2html (0.0.
|
5
|
-
raf-parser (>= 0.2.
|
4
|
+
raf2html (0.0.8)
|
5
|
+
raf-parser (>= 0.2.3)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
|
10
|
+
mimemagic (0.2.1)
|
11
|
+
raf-parser (0.2.3)
|
12
|
+
mimemagic
|
11
13
|
rake (10.1.0)
|
12
14
|
|
13
15
|
PLATFORMS
|
data/History.rdoc
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
== 0.0.8 (2013-12-10)
|
2
|
+
* new: Reference の 拡張子書式(.%) に対応(@options[:extension])
|
3
|
+
* new: LabelLink エレメントに対応
|
4
|
+
* new: エレメント(タグ)をカスタマイズできる機能を追加
|
5
|
+
* new: スタイルシート指定のオプション(--css)にショートネーム(-c)を追加
|
6
|
+
* new: javascript を読み込むコマンドラインオプションを追加
|
7
|
+
* new: Quote クラスに出力に google prettify のコードを追加
|
8
|
+
* change: IMAGE エレメントを廃止して、MEDIA エレメントに対応
|
9
|
+
* change: メタデータの項目を変更
|
10
|
+
* change: manuedo の出力フォーマットを変更
|
11
|
+
* change: css, javascript, custom_element オプションのデフォルト値を nil から ""(empty) に変更
|
12
|
+
* fix: Label エレメントのリンクが name ではなく href になっていたのを修正
|
13
|
+
|
14
|
+
== 0.0.7 (2013-12-05)
|
15
|
+
* Variable に対応
|
16
|
+
|
1
17
|
== 0.0.6 (2013-12-05)
|
2
18
|
* 設定ファイル(~/.raf2html.yaml)を追加
|
3
19
|
|
data/README.rdoc
CHANGED
@@ -1,27 +1,32 @@
|
|
1
1
|
= raf2html
|
2
|
-
"raf2html" is raf
|
3
|
-
refer to : http://garin.jp/doc/raf/raf (this page is japanese)
|
2
|
+
"raf2html" is raf document convert to HTML.
|
4
3
|
|
5
|
-
==
|
6
|
-
|
7
|
-
$ ruby -v
|
8
|
-
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
|
4
|
+
== Require
|
5
|
+
* ruby-2.0.0p353 or later
|
9
6
|
|
10
|
-
|
7
|
+
== Installation
|
8
|
+
// package install
|
11
9
|
$ gem install raf2html
|
12
10
|
|
13
|
-
==
|
14
|
-
===
|
15
|
-
raf format to HTML format conveter.
|
11
|
+
== Getting Started
|
12
|
+
=== Edit raf document
|
16
13
|
|
17
|
-
+ Usage
|
18
|
-
// edit
|
19
14
|
$ vi mydoc.raf
|
20
15
|
= This is My document
|
21
16
|
raf is simple document format.
|
22
17
|
|
23
|
-
|
24
|
-
|
18
|
+
format manutal : http://garin.jp/doc/raf/raf (this page is japanese)
|
19
|
+
|
20
|
+
=== to HTML
|
21
|
+
$ raf2html mydoc.raf
|
22
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
23
|
+
...
|
24
|
+
<h1>This is My document</h1> ...
|
25
|
+
<p>raf is simple document format.<br /></p>
|
26
|
+
...
|
27
|
+
|
28
|
+
=== Print Help
|
29
|
+
$ raf2html --help
|
25
30
|
|
26
31
|
== Read more
|
27
32
|
Official Web Site : http://garin.jp/doc/raf/raf (this page is japanese)
|
data/RELEASE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2013-12-
|
1
|
+
2013-12-10
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/bin/raf2html
CHANGED
@@ -12,7 +12,7 @@ CONFIG_FILE="~/.raf2html.yaml"
|
|
12
12
|
config_file_path = File.expand_path(CONFIG_FILE)
|
13
13
|
|
14
14
|
# デフォルトの設定値
|
15
|
-
options = {:css =>
|
15
|
+
options = {:css => "", :js => "", :extension => '.html', :media_directory => "", :custom_element => "" , :language => 'ja', :index => true, :quiet => false}
|
16
16
|
|
17
17
|
# 設定ファイルの読み込み
|
18
18
|
if File.exist?(config_file_path)
|
@@ -35,11 +35,19 @@ opt = OptionParser.new do |opt|
|
|
35
35
|
opt.banner = "Usage: raf2html [options] file"
|
36
36
|
opt.version = Raf::Raf2Html::VERSION
|
37
37
|
opt.release = Raf::Raf2Html::RELEASE
|
38
|
-
opt.on("--css file", "
|
38
|
+
opt.on("-c", "--css file", "HTMLに埋め込むスタイルシートを指定") {|f| options[:css] = f}
|
39
|
+
opt.on("-j", "--javascript file", "HTMLに埋め込むJavaScriptを指定") {|f| options[:js] = f}
|
39
40
|
opt.on("-L", "--language LANG", "言語(デフォルトは #{options[:language]} 。ドキュメント側で指定されていればそちらを優先)"){|l| options[:language] = l}
|
40
41
|
opt.on("--[no-]index", "目次を生成する(デフォルトは生成する)"){|v| options[:index] = v }
|
41
42
|
opt.on("--[no-]metadata", "メタ情報を出力しない(デフォルトは出力する)"){|v| options[:metadata] = v }
|
42
43
|
opt.on("-q","--quiet", "本文だけを出力する(ヘッダやフッタは出力しない)"){ options[:quiet] = true }
|
44
|
+
opt.on("-s","--extension string", "リファレンス記法で「.%」を置換する拡張子(デフォルト .html)"){|s| options[:extension] = s }
|
45
|
+
opt.on("-m", "--media_directory directory", "画像や動画などのメディアファイルを配置する基底ディレクトリ"){|d| options[:media_directory] = d }
|
46
|
+
opt.on("--custom_element file", "HTMLタグをカスタマイズするためのRubyファイル)"){|f| options[:custom_element] = f }
|
47
|
+
opt.on("-V","--parser-version", "使用する raf-parser のバージョンを表示"){
|
48
|
+
puts "raf-parser: #{Raf::VERSION} (#{Raf::RELEASE})"
|
49
|
+
exit 0
|
50
|
+
}
|
43
51
|
end
|
44
52
|
opt.parse!(ARGV)
|
45
53
|
usage(opt) unless ARGV[0]
|
data/lib/raf2html.rb
CHANGED
@@ -13,17 +13,24 @@ module Raf
|
|
13
13
|
@debug = true
|
14
14
|
|
15
15
|
# options
|
16
|
-
@css = File.open(File.expand_path(options[:css])).readlines.to_s unless options[:css].
|
16
|
+
@css = File.open(File.expand_path(options[:css])).readlines.to_s unless options[:css].empty?
|
17
|
+
@js = File.open(File.expand_path(options[:js])).readlines.to_s unless options[:js].empty?
|
17
18
|
@language = options[:language]
|
18
19
|
@index = options[:index]
|
19
20
|
@metadata = options[:metadata]
|
20
21
|
@quiet = options[:quiet]
|
21
22
|
|
22
|
-
|
23
|
+
get_customized_element(options[:custom_element]) unless options[:custom_element].empty?
|
24
|
+
@raf = BlockParser.new(options)
|
23
25
|
@metadata = setup_metadata
|
24
26
|
@nodes = @raf.parse src
|
25
27
|
end
|
26
28
|
|
29
|
+
# エレメントのカスタム用ファイルを読み込む
|
30
|
+
def get_customized_element(file)
|
31
|
+
require File.expand_path(file)
|
32
|
+
end
|
33
|
+
|
27
34
|
def setup_metadata
|
28
35
|
metadata = @raf.metadata
|
29
36
|
metadata[:language] = @language if metadata[:language].nil?
|
@@ -54,7 +61,7 @@ module Raf
|
|
54
61
|
next if h[:level] == 1 or h[:level] == 6
|
55
62
|
|
56
63
|
if h[:level] == 5
|
57
|
-
str +=
|
64
|
+
str += %[<div class="nonum"><a href="#raf-head#{h[:level]}-#{i+1}"><span class="space" />#{h[:title]}</a></div>\n]
|
58
65
|
else
|
59
66
|
str += index_terminate(h[:level], level_pre)
|
60
67
|
str += "<li><a href='#raf-head#{h[:level]}-#{i+1}'>#{h[:index]}#{h[:title]}</a>\n"
|
@@ -87,7 +94,7 @@ module Raf
|
|
87
94
|
str = "<div id='raf-metadata'>"
|
88
95
|
str += %[<div>#{CGI.escapeHTML(@metadata[:description])}</div>] unless @metadata[:description].nil?
|
89
96
|
str += %[<ul class="list-inline">]
|
90
|
-
%w{
|
97
|
+
%w{ author create update publisher version tag }.each do |m|
|
91
98
|
str += %[<li><strong>#{m}</strong>:#{CGI.escapeHTML(@metadata[m.to_sym])}</li>] unless @metadata[m.to_sym].nil?
|
92
99
|
end
|
93
100
|
str += "</ul>"
|
@@ -116,6 +123,7 @@ module Raf
|
|
116
123
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
117
124
|
EOL
|
118
125
|
str += css
|
126
|
+
str += javascript
|
119
127
|
str += <<EOL
|
120
128
|
<title>#{@metadata[:subject]}</title>
|
121
129
|
</head>
|
@@ -128,13 +136,14 @@ EOL
|
|
128
136
|
end
|
129
137
|
|
130
138
|
def css
|
131
|
-
# str = <<EOL
|
132
|
-
#<link href="screen.css" rel="stylesheet" type="text/css" media="screen" />
|
133
|
-
#<link href="handheld.css" rel="stylesheet" type="text/css" media="handheld" />
|
134
|
-
#<link href="print.css" rel="stylesheet" type="text/css" media="print" />
|
135
|
-
#EOL
|
136
139
|
str = ""
|
137
|
-
str +=
|
140
|
+
str += %[<style type="text/css"><!--\n#{@css}\n--></style>\n] unless @css.nil?
|
141
|
+
str
|
142
|
+
end
|
143
|
+
|
144
|
+
def javascript
|
145
|
+
str = ""
|
146
|
+
str += %[<script type="text/javascript">#{@js}</script>\n] unless @js.nil?
|
138
147
|
str
|
139
148
|
end
|
140
149
|
|
data/lib/raf2html_element.rb
CHANGED
@@ -54,7 +54,7 @@ module Raf
|
|
54
54
|
|
55
55
|
class Quote < Element
|
56
56
|
def apply
|
57
|
-
|
57
|
+
%[<pre class="prettyprint linenums">#{CGI.escapeHTML(@contents.join)}</pre>\n]
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -136,7 +136,14 @@ module Raf
|
|
136
136
|
class Label < Element
|
137
137
|
# @contents = [label, title]
|
138
138
|
def apply
|
139
|
-
|
139
|
+
%[<a name="#{@contents[0]}" id="#{@contents[0]}">#{@contents[1]}</a>]
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
class LabelLink < Element
|
144
|
+
# @contents = [label, title]
|
145
|
+
def apply
|
146
|
+
%[<a href="##{@contents[0]}">#{@contents[1]}</a>]
|
140
147
|
end
|
141
148
|
end
|
142
149
|
|
@@ -185,7 +192,7 @@ module Raf
|
|
185
192
|
|
186
193
|
class Manuedo < Element
|
187
194
|
def apply
|
188
|
-
|
195
|
+
%{<span class="manuedo">[#{@contents.map{|c| c.apply}}]</span>}
|
189
196
|
end
|
190
197
|
end
|
191
198
|
class Ruby < Element
|
@@ -205,9 +212,19 @@ module Raf
|
|
205
212
|
end
|
206
213
|
end
|
207
214
|
|
208
|
-
class
|
215
|
+
class Media < Element
|
209
216
|
def apply
|
210
|
-
|
217
|
+
# @contents = [Name, Mime::MediaType, Mime::SubType]
|
218
|
+
case @contents[1]
|
219
|
+
when 'image'
|
220
|
+
%[<a href="#{@contents[0]}"><img src="#{@contents[0]}" alt="#{@contents[0]}" class="img-rounded img-responsive" /></a>]
|
221
|
+
when 'video'
|
222
|
+
%[<video src="#{@contents[0]}" controls></video>]
|
223
|
+
when 'audio'
|
224
|
+
%[<audio src="#{@contents[0]}" controls></audio>]
|
225
|
+
else
|
226
|
+
%[<a href="#{@contents[0]}">#{@contents[0].split("/").last}</a>]
|
227
|
+
end
|
211
228
|
end
|
212
229
|
end
|
213
230
|
end
|
data/raf2html.gemspec
CHANGED
data/raf2html.yaml.sample
CHANGED
@@ -7,13 +7,29 @@
|
|
7
7
|
# $ vi ~/.raf2html.yaml
|
8
8
|
#
|
9
9
|
# == 設定項目
|
10
|
-
# コンバート時にHTMLファイルに埋め込むスタイルシート(デフォルト:
|
11
|
-
#
|
10
|
+
# コンバート時にHTMLファイルに埋め込むスタイルシート(デフォルト:"")
|
11
|
+
#css: "~/raf2html.css"
|
12
|
+
|
13
|
+
# コンバート時にHTMLファイルに埋め込むjavascript(デフォルト:"")
|
14
|
+
#js: "~/raf2html.js"
|
15
|
+
|
16
|
+
# リファレンス記法の「.%」を変換する拡張子(デフォルト:.html)
|
17
|
+
#extension: ".html"
|
18
|
+
|
19
|
+
# 画像やビデオ、音声などを配置するディレクトリ(デフォルト:"")
|
20
|
+
#media_directory: "/usr/local/media"
|
21
|
+
|
22
|
+
# HTMLタグをカスタマイズするためのRubyファイル(デフォルト:"")
|
23
|
+
#custom_element: "/home/myname/raf2html/mycustom.rb"
|
24
|
+
|
12
25
|
# ドキュメントのフォーマット(デフォルト:ja)
|
13
|
-
language: "ja"
|
26
|
+
#language: "ja"
|
27
|
+
|
14
28
|
# 目次(index)を作成するかどうか(デフォルト: true)
|
15
|
-
index: true
|
29
|
+
#index: true
|
30
|
+
|
16
31
|
# メタデータを作成するかどうか(デフォルト: true)
|
17
|
-
metadata: true
|
32
|
+
#metadata: true
|
33
|
+
|
18
34
|
# HTMLヘッダを出力"しない"かどうか(デフォルト: false)
|
19
|
-
quiet: false
|
35
|
+
#quiet: false
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raf2html
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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-10 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.2.
|
47
|
+
version: 0.2.3
|
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.2.
|
54
|
+
version: 0.2.3
|
55
55
|
description: raf is simple document format
|
56
56
|
email:
|
57
57
|
- garin54@gmail.com
|