kansi_valid 0.0.10 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/GPL +0 -0
- data/LICENSE.txt +2 -2
- data/README +46 -12
- data/kansi_valid.gemspec +24 -21
- data/lib/kansi_valid/_24hudou.rb +0 -0
- data/lib/kansi_valid/_3ren.rb +0 -0
- data/lib/kansi_valid/be_hyo.rb +0 -0
- data/lib/kansi_valid/be_soku.rb +0 -0
- data/lib/kansi_valid/bouin.rb +0 -0
- data/lib/kansi_valid/check_okosi.rb +0 -0
- data/lib/kansi_valid/check_ouin.rb +0 -0
- data/lib/kansi_valid/check_ryouin.rb +0 -0
- data/lib/kansi_valid/check_tuuin.rb +2 -2
- data/lib/kansi_valid/check_zekku.rb +0 -0
- data/lib/kansi_valid/hyousoku.rb +0 -0
- data/lib/kansi_valid/inji.rb +0 -0
- data/lib/kansi_valid/kanji.rb +1 -1
- data/lib/kansi_valid/kansi_anaryze.rb +0 -0
- data/lib/kansi_valid/kansi_comment.rb +0 -0
- data/lib/kansi_valid/kansi_generate.rb +0 -0
- data/lib/kansi_valid/kansi_htm.rb +0 -0
- data/lib/kansi_valid/kansi_organize.rb +0 -0
- data/lib/kansi_valid/kohyo.rb +0 -0
- data/lib/kansi_valid/kougo.rb +4 -4
- data/lib/kansi_valid/nihongo.rb +0 -0
- data/lib/kansi_valid/pick.rb +0 -0
- data/lib/kansi_valid/run.rb +41 -0
- data/lib/kansi_valid/sample.rb +1 -1
- data/lib/kansi_valid/search.rb +0 -0
- data/lib/kansi_valid/seikei.rb +0 -0
- data/lib/kansi_valid/version.rb +4 -2
- data/lib/kansi_valid/wiktionary.rb +0 -0
- data/lib/kansi_valid.rb +6 -6
- data/license.rb +26 -0
- data/readme.rb +165 -0
- data/test/tc_kansi_valid.rb +0 -0
- data/usual.rb +6 -0
- data/www/cgi-bin/jrb.cgi +69 -0
- data/www/cgi-bin/kougo.cgi +54 -0
- data/www/cgi-bin/post.cgi +50 -0
- data/www/cgi-bin/rb.cgi +61 -0
- data/www/cgi-bin/web.rb +36 -0
- data/{dic → www}/dic.txt +0 -0
- data/www/index.htm +19 -0
- data/{dic → www}/ji_s.txt +0 -0
- data/{dic → www}/jouyou_kanji.txt +0 -0
- data/{dic → www}/kanji_list.txt +0 -0
- metadata +24 -20
- data/dic/kaku.dic +0 -31
- data/dic/parts.dic +0 -1313
- data/dic/yomi.dic +0 -6404
data/GPL
CHANGED
File without changes
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
'kansi_valid' can easy to make Kanshi(Han-poet).
|
1
|
+
'kansi_valid' can easy to make Kanshi(Han-poet). {keywords: 漢詩 作り方 作成 基礎 平仄辞書 添削 rubygems.org}
|
2
2
|
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2014 Takayasu Hayashi(T_H) (email: joe.ko9ji@gmail.com )
|
4
4
|
|
5
5
|
This program is free software; you can redistribute it and/or modify
|
6
6
|
it under the terms of the GNU General Public License, version 2, as
|
data/README
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#coding:utf-8
|
2
|
-
===
|
2
|
+
=== 漢詩を作る、平仄や添削したりするのに役立つモジュール、関数をつくりました。
|
3
3
|
kansi_valid is a varidator of Han character poem(Kan si).
|
4
4
|
Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
|
5
5
|
License::GPL v2
|
@@ -12,6 +12,9 @@ License::GPL v2
|
|
12
12
|
requrie "rubyems" if "RUBY_VERSION"<"1.9"
|
13
13
|
require "kansi_valid"
|
14
14
|
include Kansi_valid
|
15
|
+
|
16
|
+
run(port=8880) # => see 127.0.0.1:8880
|
17
|
+
|
15
18
|
puts kv(generate)
|
16
19
|
|
17
20
|
#winXPなど、文字コードが shift-jisなどのとき
|
@@ -29,8 +32,16 @@ script内部で
|
|
29
32
|
をつかってみてください。(Fixed >=0.0.9)
|
30
33
|
|
31
34
|
=== 先ずは有名なサンプルで。
|
32
|
-
sample # =>"#偶成
|
33
|
-
|
35
|
+
sample # =>"#偶成 朱熹
|
36
|
+
少年易老学難成
|
37
|
+
一寸光陰不可軽
|
38
|
+
未覚池塘春草夢
|
39
|
+
階前梧葉已秋声
|
40
|
+
"
|
41
|
+
#other valid=>"少年易老学難成
|
42
|
+
一寸光陰不可軽
|
43
|
+
未覚池塘春草夢
|
44
|
+
階前梧葉已秋声"
|
34
45
|
#other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
|
35
46
|
#other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
|
36
47
|
|
@@ -38,8 +49,14 @@ script内部で
|
|
38
49
|
samples(10) # =>make many 'Meaningless' poet.
|
39
50
|
|
40
51
|
* 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
|
41
|
-
srand(0);str1 = generate(7) # => "
|
42
|
-
|
52
|
+
srand(0);str1 = generate(7) # => "戻里唆双差及援
|
53
|
+
罷傷脈拘序周元
|
54
|
+
家据弱役露宵屋
|
55
|
+
稚守途紅稿軸温"
|
56
|
+
srand(0);generate(5) # => "戻里唆双飯
|
57
|
+
差猫及硬温
|
58
|
+
除慌女収嫁
|
59
|
+
枢寂厄痴援"
|
43
60
|
* srand は同じ詩を生成するために使用していますので通常は不要
|
44
61
|
|
45
62
|
===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
@@ -105,10 +122,17 @@ script内部で
|
|
105
122
|
Ji =["亜","唖",..,"禔","赶"]
|
106
123
|
|
107
124
|
===平仄韻からランダムに文字をあてはめます
|
108
|
-
poetter("
|
109
|
-
|
125
|
+
poetter("常国◇○●
|
126
|
+
◇○○●◎
|
127
|
+
○○●○●
|
128
|
+
○●●○◎",[Jouyou,inji[0]])
|
129
|
+
# =>"常国雇坪坂
|
130
|
+
飲戯眠分崇
|
131
|
+
諸番襲硝看
|
132
|
+
評緯越然籠"
|
110
133
|
zekku_list # =>絶句として適した文字を当てはめる配列
|
111
|
-
kougo("◇●常国○◎") # =>"
|
134
|
+
kougo("◇●常国○◎") # =>"囚故常国挑琴
|
135
|
+
#侵" 平仄式から字を充て、最後に韻をコメント。
|
112
136
|
# "◇不問 ●仄 ○平 ◎韻"
|
113
137
|
kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
|
114
138
|
|
@@ -151,7 +175,17 @@ script内部で
|
|
151
175
|
2、2、3(五言は2,3)の字で区切られているか
|
152
176
|
多少目をつむるなどの融通はきかない。
|
153
177
|
次は詩語表を登録したり、句のまとまりで当てはめられるようにしたい。
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
178
|
+
|
179
|
+
<h3>更新履歴</h3>
|
180
|
+
'0.0.12' checked windows.
|
181
|
+
'0.0.11' #Kansi_valid::run (add)
|
182
|
+
'0.0.10' 0.0.9 error in rdoc(win7)
|
183
|
+
'0.0.9' BugFixed kansi_valid.rb (RUBY >=1.9)ENCODING ERROR on Windows7(or later) console.
|
184
|
+
'0.0.8' kansi_valid Bug fixed.(_bouin word+=...)
|
185
|
+
'0.0.7' Also use NameSpace (module_function add).
|
186
|
+
'0.0.6' Rdoc error fixed. UnitTest add.
|
187
|
+
'0.0.5' search() add.
|
188
|
+
'0.0.4' Linux support. ,delete 'win32ole'
|
189
|
+
'0.0.3' for win 2009.2.6Takayasu_H
|
190
|
+
'0.0.2' some bug fix
|
191
|
+
'0.0.1' first on windows XP. Thanks Kantarou(Author:Jigen Konou),and its great dictionary.
|
data/kansi_valid.gemspec
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# coding:utf-8
|
2
2
|
if RUBY_VERSION<"1.9"
|
3
3
|
$KCODE="u"
|
4
|
+
require 'rubygems'
|
4
5
|
else
|
5
6
|
##for execute gemspec and build
|
6
7
|
#2013.2.7 Bug Fix on Windows7 console.(or later version)
|
@@ -8,19 +9,26 @@ else
|
|
8
9
|
Encoding.default_external = 'utf-8'
|
9
10
|
Encoding.default_internal = 'utf-8'
|
10
11
|
end
|
12
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib/")
|
13
|
+
Dir.chdir(File.dirname(__FILE__))
|
11
14
|
|
12
|
-
require 'rubygems'
|
13
15
|
require './lib/kansi_valid/version'
|
14
|
-
|
16
|
+
require './license'
|
17
|
+
require './readme'
|
18
|
+
|
19
|
+
desc="'kansi_valid' can easy to make Kanshi(Han-poet). {keywords: 漢詩 作り方 作成 基礎 平仄辞書 添削 rubygems.org}"
|
20
|
+
open("./LICENSE.txt","w"){|io| io.print license(desc)}
|
21
|
+
open("./README","w"){|io| io.print readme()}
|
22
|
+
|
15
23
|
spec = Gem::Specification.new do |s|
|
16
24
|
s.platform = Gem::Platform::RUBY
|
17
|
-
s.summary = "
|
25
|
+
s.summary = "漢詩の作り方 補助ツール、添削。 Easy to make Kanshi(Zekku)(Han-poet)and validate it. run(port=8880);kansi_valid(str)"
|
18
26
|
s.author="Takayasu Hayashi"
|
19
27
|
s.email="joe.ko9ji@gmail.com"
|
20
28
|
#s.homepage="http://maru.selfip.com/mygem/"
|
21
29
|
s.name = "kansi_valid"
|
22
30
|
s.version = Kansi_valid::Version
|
23
|
-
|
31
|
+
s.license="GPLv2"
|
24
32
|
#s.requirements << 'rmagick'
|
25
33
|
#s.requirements << 'gruff'
|
26
34
|
#s.add_dependency('serialport','>= 1.0.4')
|
@@ -28,28 +36,23 @@ require './lib/kansi_valid/version'
|
|
28
36
|
s.has_rdoc=true
|
29
37
|
|
30
38
|
#s.files = Dir.glob("{test,lib}/**/*.rb")
|
31
|
-
s.files = Dir.glob("{lib}/**/*.{rb,txt,dic}")+
|
39
|
+
s.files = Dir.glob("{lib}/**/*.{rb,txt,dic,bat}")+
|
32
40
|
Dir.glob("test/{ts,tc}*.rb")+
|
33
|
-
Dir.glob("dic/*")+
|
34
|
-
|
35
|
-
["kansi_valid.gemspec","GPL","LICENSE.txt"]
|
41
|
+
#Dir.glob("dic/*")+
|
42
|
+
Dir.glob("www/**/*.{rb,cgi,txt,htm}")+
|
43
|
+
["kansi_valid.gemspec","GPL","LICENSE.txt","license.rb","usual.rb","readme.rb"]
|
36
44
|
s.test_file="test/tc_kansi_valid.rb"
|
37
45
|
s.extra_rdoc_files="README"
|
38
46
|
s.description = <<EOF
|
39
47
|
Usage:
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
kv(str1) # => same above
|
49
|
-
valid(str1) # => same above
|
50
|
-
|
51
|
-
valid?(str1) # =>true,false(nil)
|
52
|
-
kv_bool(str1) # => same above
|
48
|
+
require "kansi_valid" ;inclide Kansi_valid <br/>
|
49
|
+
run(port=7980) ##New!(遊び系「漢詩作り」サーバー)
|
50
|
+
kansi_valid(sample) # =>漢詩の評価、添削 kv(sample)
|
51
|
+
valid?(sample) # =>true (五言か七言絶句ならば)
|
52
|
+
generate(7) #無意味な七言絶句を生成(7,5のみ)
|
53
|
+
dic("漢字") #平仄を調べる
|
54
|
+
search("かえで") #辞書で文字検索(部首、つくり、意味、音訓、画数ほか)
|
55
|
+
poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
|
53
56
|
EOF
|
54
57
|
end
|
55
58
|
|
data/lib/kansi_valid/_24hudou.rb
CHANGED
File without changes
|
data/lib/kansi_valid/_3ren.rb
CHANGED
File without changes
|
data/lib/kansi_valid/be_hyo.rb
CHANGED
File without changes
|
data/lib/kansi_valid/be_soku.rb
CHANGED
File without changes
|
data/lib/kansi_valid/bouin.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding:utf-8
|
2
2
|
|
3
|
-
module Kansi_valid
|
3
|
+
module Kansi_valid
|
4
4
|
module_function
|
5
5
|
#通韻のチェック
|
6
6
|
def check_tuuin(a,zekku,ouIn)
|
@@ -17,7 +17,7 @@ module_function
|
|
17
17
|
elsif zekku==5
|
18
18
|
#p ouIn
|
19
19
|
#p a[1][8]
|
20
|
-
return (ouIn==a[1][8] && ouIn==a[3][8] && (ouIn==a[0][8]) or be_soku(a[0][
|
20
|
+
return (ouIn==a[1][8] && ouIn==a[3][8] && (ouIn==a[0][8]) or be_soku(a[0][8]))
|
21
21
|
#その他(false)
|
22
22
|
else
|
23
23
|
return false
|
File without changes
|
data/lib/kansi_valid/hyousoku.rb
CHANGED
File without changes
|
data/lib/kansi_valid/inji.rb
CHANGED
File without changes
|
data/lib/kansi_valid/kanji.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/kansi_valid/kohyo.rb
CHANGED
File without changes
|
data/lib/kansi_valid/kougo.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding:utf-8
|
2
|
-
|
3
|
-
module Kansi_valid
|
2
|
+
|
3
|
+
module Kansi_valid
|
4
4
|
module_function
|
5
5
|
def zekku_list
|
6
6
|
hyo_7=["◇○◇●●○◎
|
@@ -90,7 +90,7 @@ rule=x[rand(x.size)]
|
|
90
90
|
rule+="
|
91
91
|
|
92
92
|
茲惟
|
93
|
-
新帰元
|
93
|
+
新帰元 ◇◇◇◇信仁"
|
94
94
|
#八字称 人格・徳行
|
95
95
|
rule+="
|
96
96
|
◇◇◇◇
|
@@ -121,7 +121,7 @@ rule+="
|
|
121
121
|
rule+="
|
122
122
|
◇◇◇◇◇◇●
|
123
123
|
◇◇◇◇◇◇◎
|
124
|
-
|
124
|
+
喝"
|
125
125
|
end
|
126
126
|
#p rule
|
127
127
|
#p list
|
data/lib/kansi_valid/nihongo.rb
CHANGED
File without changes
|
data/lib/kansi_valid/pick.rb
CHANGED
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "webrick"
|
2
|
+
module Kansi_valid
|
3
|
+
module_function
|
4
|
+
def run(port=8880,root=File.dirname(__FILE__)+"/../../www")
|
5
|
+
Dir.chdir(File.dirname(__FILE__))
|
6
|
+
#File.expand_path(File.dirname(__FILE__) + '/../..')
|
7
|
+
#require "../kansi_valid"
|
8
|
+
if RUBY_PLATFORM.include?("mswin")
|
9
|
+
#p rubybin = `exec ./which.bat ruby`.chomp
|
10
|
+
list=ENV["PATH"].split(";")
|
11
|
+
ls=list.select{|f| f.include?("ruby") && f.include?("bin")}
|
12
|
+
rubybin=ls[0].gsub("\\","/")+"/ruby"
|
13
|
+
else#linux
|
14
|
+
rubybin = `which ruby`.chomp
|
15
|
+
end
|
16
|
+
|
17
|
+
document_root = root
|
18
|
+
server = WEBrick::HTTPServer.new({
|
19
|
+
:DocumentRoot => document_root,
|
20
|
+
:BindAddress => '0.0.0.0',
|
21
|
+
:CGIInterpreter => rubybin,
|
22
|
+
:Port => port
|
23
|
+
})
|
24
|
+
|
25
|
+
cgi_root=document_root + '/**/*.{cgi,rb}'
|
26
|
+
cgilist = Dir.glob(cgi_root)
|
27
|
+
cgilist.each {|cgi_file|
|
28
|
+
server.mount(cgi_file, WEBrick::HTTPServlet::CGIHandler, document_root + cgi_file)
|
29
|
+
}
|
30
|
+
|
31
|
+
['INT', 'TERM'].each {|signal|
|
32
|
+
Signal.trap(signal){ server.shutdown }
|
33
|
+
}
|
34
|
+
puts "See! # => 127.0.0.1:#{port.to_s}"
|
35
|
+
server.start
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
if $0==__FILE__
|
40
|
+
Kansi_valid::run()
|
41
|
+
end
|
data/lib/kansi_valid/sample.rb
CHANGED
data/lib/kansi_valid/search.rb
CHANGED
File without changes
|
data/lib/kansi_valid/seikei.rb
CHANGED
File without changes
|
data/lib/kansi_valid/version.rb
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module Kansi_valid
|
4
4
|
module_function
|
5
|
-
Version = '0.0.
|
5
|
+
Version = '0.0.12'
|
6
6
|
|
7
|
-
CHENGE_LOG="'0.0.
|
7
|
+
CHENGE_LOG="'0.0.12' checked windows.
|
8
|
+
'0.0.11' #Kansi_valid::run (add)
|
9
|
+
'0.0.10' 0.0.9 error in rdoc(win7)
|
8
10
|
'0.0.9' BugFixed kansi_valid.rb (RUBY >=1.9)ENCODING ERROR on Windows7(or later) console.
|
9
11
|
'0.0.8' kansi_valid Bug fixed.(_bouin word+=...)
|
10
12
|
'0.0.7' Also use NameSpace (module_function add).
|
File without changes
|
data/lib/kansi_valid.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#coding:utf-8
|
2
|
-
if RUBY_VERSION<"1.9"
|
2
|
+
if RUBY_VERSION<"1.9"
|
3
3
|
$KCODE="u"
|
4
|
-
else
|
4
|
+
else
|
5
5
|
#2013.2.7 Bug Fix on Windows7 console.(or later version)
|
6
6
|
Encoding.default_external = 'utf-8'
|
7
7
|
Encoding.default_internal = 'utf-8'
|
@@ -20,10 +20,10 @@ module_function
|
|
20
20
|
#全辞書ハッシュ
|
21
21
|
Dic=kanji
|
22
22
|
#常用漢字の配列
|
23
|
-
Jouyou=File.read(File.dirname(__FILE__)+"/../
|
23
|
+
Jouyou=File.read(File.dirname(__FILE__)+"/../www/jouyou_kanji.txt").chomp.split(//)
|
24
24
|
|
25
25
|
#辞書の全ての漢字の配列(ひらがな等は、除外、国字は含む)
|
26
|
-
Ji =File.read(File.dirname(__FILE__)+"/../
|
26
|
+
Ji =File.read(File.dirname(__FILE__)+"/../www/kanji_list.txt").chomp.split(//)
|
27
27
|
|
28
28
|
#===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
29
29
|
# kansi_valid(sample)
|
@@ -85,13 +85,13 @@ module_function
|
|
85
85
|
#二六対(挟み平(転句)はOK)
|
86
86
|
hudo=_24hudou(a,zekku)
|
87
87
|
unless hudo
|
88
|
-
warning+="#
|
88
|
+
warning+="# 違反・二四不同、二六対(又は両韻字)\n"
|
89
89
|
end
|
90
90
|
|
91
91
|
#下三連禁
|
92
92
|
_simo3ren=_3ren(a)
|
93
93
|
unless _simo3ren
|
94
|
-
warning+="#
|
94
|
+
warning+="# 警告・下三連禁(下平三連、下仄三連)(又は両韻字)\n"
|
95
95
|
end
|
96
96
|
|
97
97
|
#二弧平禁(七言は四弧平禁)
|
data/license.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
#!ruby
|
2
|
+
|
3
|
+
#write licence (with year)
|
4
|
+
def license_gplv2(desc)
|
5
|
+
year=Time.now.year
|
6
|
+
|
7
|
+
str=<<HEREDOC
|
8
|
+
#{desc}
|
9
|
+
|
10
|
+
Copyright (C) 2009-#{year} Takayasu Hayashi(T_H) (email: joe.ko9ji@gmail.com )
|
11
|
+
|
12
|
+
This program is free software; you can redistribute it and/or modify
|
13
|
+
it under the terms of the GNU General Public License, version 2, as
|
14
|
+
published by the Free Software Foundation.
|
15
|
+
|
16
|
+
This program is distributed in the hope that it will be useful,
|
17
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
+
GNU General Public License for more details.
|
20
|
+
|
21
|
+
You should have received a copy of the GNU General Public License
|
22
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
23
|
+
HEREDOC
|
24
|
+
|
25
|
+
end
|
26
|
+
alias license license_gplv2
|
data/readme.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
def readme
|
3
|
+
str=<<eos
|
4
|
+
#coding:utf-8
|
5
|
+
=== 漢詩を作る、平仄や添削したりするのに役立つモジュール、関数をつくりました。
|
6
|
+
kansi_valid is a varidator of Han character poem(Kan si).
|
7
|
+
Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
|
8
|
+
License::GPL v2
|
9
|
+
* 辞書の使用は自己責任でお願いします。辞書は漢太郎の作者、Jigen様の作成された辞書を御許可いただきUTF-8テキストにしてあります。Jigen様、ありがとうございます。間違いがありましたら修正したいと思いますのでご連絡ください。joe.ko9ji@gmail.com
|
10
|
+
* Dictionary saved "/dic/dic.txt"UTF-8,about 6800 chars ,made by Jigen Kanou.
|
11
|
+
If you resume this,please tell me.
|
12
|
+
* 文字コードは UTF-8 ですので、WinXPなどは出力をKconvで変換したり、対応のエディタで見てください。
|
13
|
+
===:Usage 使い方
|
14
|
+
# coding:utf-8
|
15
|
+
requrie "rubyems" if "RUBY_VERSION"<"1.9"
|
16
|
+
require "kansi_valid"
|
17
|
+
include Kansi_valid
|
18
|
+
|
19
|
+
run(port=8880) # => see 127.0.0.1:8880
|
20
|
+
|
21
|
+
puts kv(generate)
|
22
|
+
|
23
|
+
#winXPなど、文字コードが shift-jisなどのとき
|
24
|
+
require "kconv"
|
25
|
+
print Kconv.kconv(Kansi_valid::sample,Kconv::SJIS,Kconv::UTF8)
|
26
|
+
|
27
|
+
#追記Windows7以降のコンソールで、ruby1.9以降、エラーがでるなら、
|
28
|
+
ruby -Ku kansi_valid_script
|
29
|
+
や
|
30
|
+
ruby -U kansi_valid_script
|
31
|
+
|
32
|
+
script内部で
|
33
|
+
Encoding.default_external = 'utf-8'
|
34
|
+
Encoding.default_internal = 'utf-8'
|
35
|
+
をつかってみてください。(Fixed >=0.0.9)
|
36
|
+
|
37
|
+
=== 先ずは有名なサンプルで。
|
38
|
+
sample # =>"#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
|
39
|
+
#other valid=>"少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声"
|
40
|
+
#other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
|
41
|
+
#other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
|
42
|
+
|
43
|
+
===漢詩ではないサンプル漢詩を機械的に生成します
|
44
|
+
samples(10) # =>make many 'Meaningless' poet.
|
45
|
+
|
46
|
+
* 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
|
47
|
+
srand(0);str1 = generate(7) # => "戻里唆双差及援\n罷傷脈拘序周元\n家据弱役露宵屋\n稚守途紅稿軸温"
|
48
|
+
srand(0);generate(5) # => "戻里唆双飯\n差猫及硬温\n除慌女収嫁\n枢寂厄痴援"
|
49
|
+
* srand は同じ詩を生成するために使用していますので通常は不要
|
50
|
+
|
51
|
+
===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
52
|
+
str=kansi_valid(sample)
|
53
|
+
# =>#偶成 朱熹
|
54
|
+
少年易老学難成
|
55
|
+
一寸光陰不可軽
|
56
|
+
未覚池塘春草夢
|
57
|
+
階前梧葉已秋声
|
58
|
+
|
59
|
+
# 庚 平起
|
60
|
+
#篠●先○陌●皓●覚●寒◇庚○
|
61
|
+
#質●願●陽○侵◇物◇哿●庚◇
|
62
|
+
#未●覚●支○陽○真○皓●東◇
|
63
|
+
#佳○先○虞◇葉●紙●尤○庚○
|
64
|
+
#Valid 絶句(Ver0.0.6)
|
65
|
+
#2013-01-03 22:58:18 +0900
|
66
|
+
|
67
|
+
#少:●:篠:嘯:ショウ:すくない すこし わかい
|
68
|
+
#年:○:一先::ネン:とし よわい みのり
|
69
|
+
以下省略#
|
70
|
+
(ver 0.0.8よりValid表示基準を見直し)
|
71
|
+
|
72
|
+
kv(sample) # =>同上、 same above
|
73
|
+
valid(sample) # =>同上、 same above
|
74
|
+
|
75
|
+
==html化して、wiktionaryなどで文字を調べられるようにするなら、
|
76
|
+
wik=to_wiktionary(str)
|
77
|
+
open("kansi.htm","w"){|io| io.print wik}
|
78
|
+
などとすると、html埋め込みデータができます。(ヘッダ等は必要なら適宜入れてください。)
|
79
|
+
firefox kansi.htm
|
80
|
+
などして、見てください
|
81
|
+
|
82
|
+
=== 文字列が絶句であれば true を返す
|
83
|
+
valid?(sample) # =>true (絶句が正しいならtrue。)
|
84
|
+
(両韻・畳字はtrueを返せない)
|
85
|
+
kv_bool(sample) # =>同上、 same above
|
86
|
+
|
87
|
+
===漢詩でないものも第二水準漢字程度まで調べられます。日本の国字<峠辻>なども調べられますが、絶句の評価はできません。
|
88
|
+
dic("漢字辞典") # =>文字列を調べる。普通こちら、Simple dictionary using Dic[]
|
89
|
+
# =>"漢:●:翰::カン:国名 あや から
|
90
|
+
字:●:寘::ジ:あざ あざな じ
|
91
|
+
辞:○:四支::ジ:やめる ことば ことわる
|
92
|
+
典:●:銑::テン:ふみ のり つかさどる
|
93
|
+
"
|
94
|
+
Dic["漢"] # =>単漢字を調べる、Character Hash Dictionary(Author Jigen Kanou,in Kantarou)
|
95
|
+
# =>["漢", "413", "", "0", "●", "翰", "去声", "", "カン", "",
|
96
|
+
"国名 あや から", "3441", "2033", "13", "水艸口夫漢", "0"]
|
97
|
+
|
98
|
+
=== 辞書の音訓などから調べる場合は search を使います
|
99
|
+
search("かえで") # =>Dicの内容から該当する漢字のハッシュをつくる
|
100
|
+
# =>{"楓"=>["楓", "2440", "", "0", "○", "一東", "上平", "", "フウ", "",
|
101
|
+
"かえで", "4976", "4186", "13", "木風几丿虫", "0"],
|
102
|
+
"槭"=>["槭", "4166", "", "0", "●", "屋", "入声", "", "セキ", "",
|
103
|
+
"かえで", "5C65", "6069", "15", "木戚戈上小", "0"]}
|
104
|
+
===平韻の字表の配列です
|
105
|
+
inji # =>平韻の配列表(inji[x],x=0..29)
|
106
|
+
(inji[0]が一東です)
|
107
|
+
inji[29] # =>"咸銜鹹緘岩巌杉衫凡鑑函監讒帆"
|
108
|
+
===常用漢字の配列です(約1945字)
|
109
|
+
Jouyou=["哀","愛",..,"湾","腕"]
|
110
|
+
===辞書漢字の配列です(約6715字、国字など含む。かな・記号類は除外してあります。)
|
111
|
+
Ji =["亜","唖",..,"禔","赶"]
|
112
|
+
|
113
|
+
===平仄韻からランダムに文字をあてはめます
|
114
|
+
poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
|
115
|
+
# =>"常国雇坪坂\n飲戯眠分崇\n諸番襲硝看\n評緯越然籠"
|
116
|
+
zekku_list # =>絶句として適した文字を当てはめる配列
|
117
|
+
kougo("◇●常国○◎") # =>"囚故常国挑琴\n#侵" 平仄式から字を充て、最後に韻をコメント。
|
118
|
+
# "◇不問 ●仄 ○平 ◎韻"
|
119
|
+
kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
|
120
|
+
|
121
|
+
|
122
|
+
hyousoku("菩薩") # =>"虞◇曷●" (韻と平仄式を返す)
|
123
|
+
hyosoku("菩薩") # =>同上、 same above
|
124
|
+
|
125
|
+
===漢詩バリデータ(ルールどおりか評価する)ができるまで…
|
126
|
+
漢詩のルールにしたがっているかをチェックするスクリプト
|
127
|
+
記号
|
128
|
+
平=韻+○
|
129
|
+
仄=韻+●
|
130
|
+
両韻=◇
|
131
|
+
国字など=■
|
132
|
+
それ以外=?
|
133
|
+
|
134
|
+
チェック可能漢詩:
|
135
|
+
七言絶句
|
136
|
+
五言絶句
|
137
|
+
|
138
|
+
チェック項目
|
139
|
+
押韻、おういん(重複禁)、踏み落とし(三句目)
|
140
|
+
二四不動、にしふどう(挟み平(転句)はOK)
|
141
|
+
二六対、にろくつい(挟み平(転句)はOK)
|
142
|
+
下三連禁、あさんれんきん
|
143
|
+
挟み平(転句はOK)
|
144
|
+
二弧平禁(七言は四弧平禁)
|
145
|
+
冒韻禁,韻字の句内での重複(畳字なども未チェック)
|
146
|
+
|
147
|
+
他のチェック事項
|
148
|
+
韻
|
149
|
+
平起、仄起
|
150
|
+
|
151
|
+
やりたいこと
|
152
|
+
読みかた(音、訓)# =>漢字辞書などへ転送など。
|
153
|
+
できてないこと
|
154
|
+
対句,畳字など技法のチェック
|
155
|
+
両韻の振り分けなど(◇でしか対応できない。基本1字1韻対応となる。)
|
156
|
+
たぶんチェックできないこと
|
157
|
+
2、2、3(五言は2,3)の字で区切られているか
|
158
|
+
多少目をつむるなどの融通はきかない。
|
159
|
+
次は詩語表を登録したり、句のまとまりで当てはめられるようにしたい。
|
160
|
+
|
161
|
+
<h3>更新履歴</h3>
|
162
|
+
#{Kansi_valid::CHENGE_LOG}
|
163
|
+
eos
|
164
|
+
|
165
|
+
end
|
data/test/tc_kansi_valid.rb
CHANGED
File without changes
|