raf2html 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|