Internet Explorer がサポートするベクトル図形記述言語。 SVGに統合される前の仕様。
Internet Explorer 7 は、SVG をサポートしないようなので、ブラウザのデファクト・スタンダードは、SVG より
古い VML のまま。
Opera は SVG に対応した。埋め込み画像は対応していない。
FireFox は日本語ファイル名にリンクできなかったり、文字がずれたりする、制限がある。
Word や Excel で Web ページに保存すると、VML が出力される。
InternetExplorer のみ対応した、複数ファイルをまとめた HTML ファイル。
内容は、Multi-part メール(MIME)形式。
Snap Note は、HTML だけでなく MHT に VML を出力可能。
Content-Location で、ファイル名を指定する。
メインの HTML ファイルに <IMG src="01/image.png"> があるとき、添付ファイルの Content-Location
に 01/image.png と記述する。
ネットで公開しないとき(場所が変わる可能性が高いとき)は、メインの HTML ファイルに
Content-Location は記述しない。
(*.mht, *.mhtml)
他のファイルから、MHT ファイルの途中へのリンクはできない。(IEの仕様?)
ファイル名に ! 文字があると、なぜか Vista IE7 でセキュリティが働いて VML が表示されない。
HTML または MHT のファイル名に # 文字があると、全く表示されない。
HTML Help Workshop のファイルを作成するときは、%script% フォルダにあるテンプレート
を使っています。
Windows の HTML Help (.chm 形式ファイル = Compiled HTML) の作成に必要なファイルを
出力することができます。
ただし、HTML Help ファイルを作成するには、HTML Help Workshop が必要です。
によって、HTML Help Workshop のプロジェクト
ファイルの一部が作成されます。 ファイル名は、以下のとおりです。
(release).help_hhp_head.txt
(release).help_hhk_head.txt
(release).help_tree.hhc
… プロジェクトファイルの一部
… 索引ファイルの一部
… 目次ファイル(完全)
ただし、バッチファイルを実行する前は、上記のファイルは完全ではありません。
バッチファイルを実行すると完全になり、以下のファイルが出力されます。
のキーワードが入っていません。
-hhc2 オプションを付けて VML 変換すると、必要なファイルが得られます。
出力されるファイルは、以下のとおり。(例:sample.svg の場合)
sample.hhp_sub.txt
sample.hhk_sub.txt
… プロジェクトファイルの [FILES] セクション
… 索引ファイルの一部
このファイルをすべて集めると、完全な、HTML Help Workshop プロジェクトファイルが
できます。 (集めなくてもコンパイルは通りますが、画像が無いなど不完全になります)
HTML Help Workshop プロジェクトファイルの作り方
"%ProgramFiles%\HTML Help Workshop\hhc.exe" release.help.hhp
chm ファイルの作成の仕方
コマンドプロンプトから、以下のように入力します。
画像ファイルや、
release.xml によるバッチファイル作成をしただけでは、HTML ファイルの(VML による)
(内部技術補足)
(release).help.hhp
(release).help_index.hhk
(release).help_tree.hhc
… プロジェクトファイル
… 索引ファイル
… 目次ファイル
… プロジェクトファイル
… 索引ファイル
… 目次ファイル
(release).help.hhp
(release).help_index.hhk
(release).help_tree.hhc
help_head.txt
help_index_head.txt
help_tree_head.txt
補足
HTML help で、パーソナルサーチを行うとエラーになります。
CreateObject("Microsoft.XMLDOM") に失敗します
『 エラー:オブジェクトがありません。 keywords.documentElement 』
ダウンロード
(Japanese version は不要です)
→ ProjectKySS(cache)
→ とほほのVML入門(Web)
参考
VML では、attribute を style に入れることがあります。 style に記述されている内容は、
Attribute を探してください。
Element (タグ名)
機能
Attribute (属性名、style属性値内の属性名)
position
破線
rotation
o:spt
MSオフィスのオートシェイプの番号
<div id="label1" style="position:absolute;" class="label">
<A href="http://www.yahoo.co.jp/">(A)</A></div>
xlink:href は対応していない
<div id="label1" style="position:absolute;" class="label">
<A href="http://www.yahoo.co.jp/"><IMG src="image01.png" border=0></A></div>
サンプル
<div> タグの style="line-height:" の値によって、文字の縦位置も変わります。
h y
-------
7 : -4
8 : -4
9 : -3
10 : -3
11 : -2
12 : -2
13 : -1
14 : 0
15 : 0
16 : +1
17 : +1
18 : +2
19 : +2
20 : +3
21 : +3
22 : +4
h は、line-height の値(単位はpx)
y は、文字の縦位置。(line-height=15 の位置が基準)
ABC
ABC
line-height:12px のとき
y=-1 は h=13だけ
他は、2つずつある
<line x1="73.5" y1="147.5" x2="135.5" y2="96.5"
style="fill:none;stroke:rgb(0,0,0);stroke-width:1;stroke-linecap:round"/>
rect
fillcolor
<v:rect fillcolor="green"
style="position:relative;top:1;left:1;width:50;height:50">
</v:rect>
塗りつぶす色
<v:arc style="position:absolute; margin-left:34; margin-top:292; width:100; height:100;"
fillcolor="#FF0080" strokecolor="#000000" strokeweight="1pt" startangle="0" endangle="90"/>
<v:shape style="position:absolute; margin-left:34; margin-top:392; width:100; height:100;"
fillcolor="#FF0080" strokecolor="#000000" strokeweight="1pt">
<v:path v="ar 0,0 1000,1000 0,0, 1000,1000"/>
</v:shape>
typeAの結果
typeA
typeB
typeBの結果
ar は常に左回り
<v:shape style="width:100;height:100" strokecolor="black" strokeweight="2pt" fillcolor="blue">
<v:path v="m 0,0 l 1000,0, 500,1000 x e"/>
</v:shape>
path は、1000,1000 が width, height からなる矩形の右下になる。
v:shape coordsize="100 100" とすると、100,100 が右下になる。
→ OpenVG の Path
1000
1000
0
デフォルトでは、必ず中が塗るが、v:shape filled="false" すると塗らない。
半透明で塗るときは、<v:shape> の中に <v:fill opacity="0.5"/> を入れる。
v 属性の nfコマンドでも塗らないようにします。
ns コマンドでは、境界線を塗らないようにします。
参考
<v:line style="position:absolute;"
from="73,147" to="135,96" strokecolor="#FF0000" strokeweight="0pt">
<v:stroke dashstyle="dashdot"/>
</v:line>
破線のパターン
dot
strokeweight="1pt" では、若干線幅ができます。
0pt にすると、画面上では線幅がちょうど 1ピクセルになりますが、印刷時に極細になります。
dash
dashdot
他にもあります
数値を指定した場合、最も近い dash など定義済みのものに置き換わります。
(グラフィックス・チップによるかもしれません)
VML ファイル
サーバ
Snap Note
FTP
アップロード
[ ファイル | 名前をつけて保存・拡張 ] で表示されるメニューから出力形式を選択します。
Snap Note のウィンドウのメニュー、SVGファイルをVMLに変換する方法を示します。
Snap Note で作成した SVG ファイルは、VML (HTML) に変換できます。
[ VML-HTML(FTP)形式で出力(F) ]
[ VML-HTML(イントラネット)形式で出力(E) ]
[ VML-MHTML形式で出力(V) ]
ファイル名に日本語を使わないようにします。
ファイル名はそのままです。
形式にします。
CSaveExDlg
ウィンドウ操作では、1つの VML ファイルしか作れません。
多くのファイルを変換するときは、コマンドラインから行います。
SVG ファイル
右記サンプルを解凍します。
setting.bat を編集します。
release.xml を編集します。
コマンドプロンプトを開き、release.xml のあるフォルダに移動します。
all0.bat を実行します。(Snap Note が終了します)
all1.bat を実行します。
リンクエラーを確認します。
ネット用なら release.index_local.html を、ローカル用なら vml\index.html
を開いて、できた VML を確認します。
all2.bat か all2s.bat を実行します。(all2s.bat は FireFox用 SVGの作成もします)
複数のファイルを VMLに変換するときは、release.xml を使います。
参考
1.
2.
3.
4.
5.
6.
7.
8.
9.
なお、変換中は、ウィンドウ処理に問題があり、他のプログラムも操作することが
できません。 Snap Note は、変換前後でバッチファイルにより一旦終了します。
修正のあったファイルだけ変換処理を行うことは対応できていません。
release.xml に多くのファイルを指定すると、処理にかなり時間がかかります。
FireFox用 SVG作成は、まだバグが多いです。
<?xml version="1.0" encoding="Shift_JIS"?>
<release>
<server url="\\pc01\folderA" pub="web" local="pub"
title="Snap Note 3 技術メモ" first="index2.html">
<folder src="%svgcats_src%\spec_test\private" dest="public_vml_A">
<file src="VML.svg" dest="VML.html" conv="vml">タイトル</file>
<separator />
<file src="VML.files\VML考察1.mht" dest="files\VML考察1.mht"/>
</folder>
</server>
<server url="\\pc01\folderB" local="C:\home\SVGCats_src\spec_test\public_vml_B">
<folder src="%svgcats_src%\spec_test\">
<file src="private\VBA\!VBA変換.svg" dest="VBA変換.html" conv="vml">VBA出力</file>
</folder>
</server>
</release>
<release>
XMLルートタグ。
<server>
サーバタグ。
url : サーバのルートURL(省略したら、ローカル用)。http://〜も可
setting.bat の pub_url と一致させること(ローカルなら pub_url=. [ピリオド])
local : サーバにアップロードするファイルを格納するフォルダ。
<folder>
フォルダタグ。<file> タグの基準フォルダを設定します。
src : file タグ src の基準となる絶対パス。またはカレントからの相対パス。
dest : file タグ dest の基準となるパス。server タグ local からの相対パス。
"."(カレント = server タグ local と同じ)の指定も可
<file>
ファイルタグ。
src : 元となるファイルのパス。 folder タグ src 属性からの相対パス
dest : 公開する場所。 folder タグ dest 属性からの相対パス
conv : 省略=単純コピー、"vml"=VML変換
<file>〜</file> の間 : files.html に出力するテキスト。さらに <A>〜</A>で囲むと
囲まれていない部分はハイパーリンクにならない。 <A> が無いとすべてなる。
例:<file><A>◇</A>txt</file> …
<file/> にした場合、ファイルの一覧に出力されません。
が使えます。
このフォルダの内容をサーバにコピーしてください。
ascii : 1=パスに英文字しか使えないとき。 省略または 0=漢字も使える
title : タイトル
index : index.html を出力するパス。url や local からの相対パス。省略可
menu : menu.html (左上フレーム)を出力するパス。同上の相対パス。省略可
files : files.html (左フレーム) を出力するパス。同上の相対パス。省略可
変換後のファイルのパス。基準は %pub%\index.html。
first : 最初に右フレーム表示するファイルのパス。同上の相対パス。省略可
ascii=1 なら、英語名を指定してください。
未対応
<separator/>
セパレータ。files.html のファイルリストに空行を入れます。
1つのみ対応
◇
txt
・
pub :
.chm を作成するときは、ローカル用にしてください。
(.chm に入ったリンクファイルを取り出せるようにするのに必要)
release.xml を使った VML 変換を行うには、以下のプログラムをインストールしてください。
release.xml を実行すると、リンクエラー情報ファイル(vml\all_out.links.txt)が作成され、
メモ帳で開かれます。
C:\release\sample_X.txt,←,サンプルへのリンク,1,C:\release\sample1.svg
C:\release\vml\sample1.html#p3,←,次のページ,1,C:\release\sample1.svg
http://www.sage-p.com/,←,Web,1,C:\release\sample1.svg
このファイルは、コンマで区切られた CSV 形式(表形式)です。
それぞれの行は、ローカルPC に見つからなかったという、リンクエラーの内容です。
1列目は、リンク先のパスです。
2列目は、リンク方向を示しており、← 固定です。
3列目は、リンク元(クリックするとジャンプするテキスト)の内容(1行目のみ)です。
4列目は、リンク元のページ番号です。
5列目は、リンク元の SVG ファイルのパスです。
このリンクエラーのうち、インターネットやイントラネットのリンクなど、リンクとしてそのまま
残すものをカットします。 カットしなかったものは、 release2.bat -c で出力される VML
ファイルでは、リンクのないものになります。
release.conv.bat
release.copy.bat
ファイルをコピーするバッチファイル
VMLファイルに変換するバッチファイル
release.repurl.txt
URL置換ルール・ファイル (*1)
出力ファイル一覧
SVGCat_Param::out_mode = 'R'
SnapNote.exe -rel release.xml
コマンドライン
コマンドを実行すると、下記のファイルが出力されます。
CSVGCatApp::MakeReleaseBat
open_path (ローカル変数)
release.repurl.plus.txt
release.repurl.cut.txt
リンクミスをすべてカットするときに指定する URL 置換ルール (*2)
追加する URL 置換ルール (*2)
(*1) release.conv.bat の中で、release.repurl.plus.txt と release.repurl.cut.txt と結合し、
release.repurl.work.txt を作成します。 このファイルが実際に使われます。
(*2) -rel オプションでは生成されないファイルです。 手動で作成してください。
(*1)の説明のように、コピーされるファイルなので、最初の行の [repurl] は、付けないでください。
参照
release0.bat
release1.bat
release2.bat (オプションなし)
release2.bat -c
release2.bat -s
release2.bat -d
release3.bat
release4.bat
release5.bat
リンクカット情報を元に VML 変換します
Operaなど用に SVG をコピーします
リンクカット情報を削除します
VML に変換します
SnapNote を終了します
SnapNote を終了します
chm ファイルを作成します
キーワードを集めます
バッチファイルモジュール
バッチファイルを作成、ファイルをコピーします
(バグ情報)
release0.bat は、C:\Document が見つからないエラーが出る問題の回避策です。
release5.bat は、ウィンドウキャッシュの処理に問題があり、SVG ファイルを開いたら、
メニューがないウィンドウが表示されてしまう問題の回避策です。
SnapNote -cv (option) src_folder dst_folder2
VML を出力するフォルダを dst_folder に指定する。
目次フレームや、fname..keywords.xml も生成する
検索窓 for AJAX の記述があれば、
keywords.xml も生成する。dst_folder の直下に。
searcher.xsl は、Snap Note の system フォルダからコピーする。
SnapNote -cv (option) src1.svg dst.html
SnapNote -cv (option) src2.svg src_folder dst_folder2
VML 変換オプション。-cV とすると、漢字のファイルパスを Ascii コードに変えない。
-cm とすると、
変換前の SVG ファイルのパス(相対パスならカレントフォルダから)
変換前の SVG ファイルのパス(相対パスならsrc_root_folderから)
変換後のファイルを入れるフォルダ(省略すると、src1.svg と同じフォルダ)
(相対パスならカレントフォルダから)
変換後の HTML ファイル(内容がVML)
変換前のファイルが入っているルートフォルダ(相対パスならカレントフォルダから)
変換後のファイルを入れるルートフォルダ(相対パスならカレントフォルダから)
SnapNote -cv (option) src1.svg [dst_folder1]
未対応
-cv
src1.svg
src2.svg
dst_folder1
dst.html
src_folder
dst_folder2
にします。
-repurl=rule.txt
-links
-ids
-hhc2
target=_blank でも、リンクしたときに新しいウィンドウを開かないようにする
(option)
リンク先のURL の一覧を出力する。ファイル名は src1.links.csv
リンク元(name)のURLを一覧する。ファイル名は src1.ids.csv
(相対パスならカレントフォルダから)
SnapNote -cv (option) src1.svg dst.html dst_folder2
type1
type2
type4
type5
コマンドプロンプトから、SVGファイルをVMLに変換する方法を示します。
関連
の作成に必要なファイルを出力する
メニュー(左上フレーム)を出力するパス。(相対パスならカレントフォルダから)
target=_top は、target=_blank にする
ハイパーリンクのリンク先は、変換前のままになり、多くのケースで、変換後のフォルダの中に入らないで、
リンクミスになります。
リンクミスにならないよう、URL置換ルールに登録してください。 (
面倒なときは、リンクを無くすのも1つの手です。 (
わざわざ登録制にしているのは、URL置換ルールに登録していないもの=公開する許可を得ていないもの
として、警告するためです。
a.svg
folderX
ref.pdf
a.html
folderB
→ ..\folderX\ref.pdf
→ ..\folderX\ref.pdf
folderA
folderB(変換後のルートフォルダ)
の外へのリンク (=リンクミス)
→ URL置換ルールで修復する
変換前
変換後
のみ)
のみ)
-repurl= に続けて指定するファイルを相対パスで指定する場合、
カレント・フォルダが基準になります。
src は、src_folderを指定していたら src_folder が基準になります。
指定していなかったら repurl.txt の入ったフォルダが基準になります。
dst は、dst_folderを指定していたら dst_folder が基準になります。
指定していなかったら、repurl.txt の入ったフォルダが基準になります。
URL置換ルールの src, dst を相対パスを指定する場合の、基準パスは次のとおりです。
StrX_toAbsPath
CSVGCatApp_parseParam
SVGCat_Param::repURLs_rulePath
ソース
ソース
SVGCat_Param::srcRootFolder
StrX_toAbsPath
CSVGCatApp_parseParam
SVGCat_Param::dstRootFolder
[repurl]
src = folderA\a.svg
dst = folderB\a.html
src = folderX\ref.pdf
dst = folderB\a.files\ref.pdf
src = :
dst = :
rep_rule.txt (URL置換ルール)
出力される HTML ファイルは、指定したファイルに書かれたルール(URL置換ルール)に従って、
リンク先のURLが変わります。
下記は、a.svg が持っている ..\folderX\ref.pdf へのリンクを、a.files\ref.pdf に置換する例です。
HTMLに変換するファイル自体も指定してください。同じファイルの中のリンクが正しくなりません。
(-repurl オプションを省略した場合は、同じファイルの中のリンクだけは自動的に正しくします)
→ a.files\ref.pdf
→ ..\folderX\ref.pdf
folderB
a.html
a.files
ref.pdf
ref.pdf
folderX
a.svg
folderA
= の前後に空白を
入れてはいけません
コマンドラインオプション
src = 置換前
dst = 置換後
[repurl]
src, dst は、何個でも
指定できます。
URL置換ルールは、ダイナミック・シンボル・リンクの Web keyword.xml ファイルへの URL に
対してだけでなく、ダイナミック・シンボル・リンクのリンク先の URL に対しても有効です。
Web keyword.xml ファイルへのリンク
URL置換ルール
別の Web keyword.xml ファイルへのリンク
ダイナミック・シンボル・リンク
ダイナミック・シンボル・リンク先
URL置換ルール
最終リンク先
URL置換ルールの置換前(src)には、パス変数が使えます。
パス変数を含んだリンク先パス
URL置換ルール
パス変数を含んだリンク先パスのまま
パス変数を含まないリンク先パス
パス変数を展開する
URL置換ルール
最終リンク先
[repurl]
src = %var%\ref.pdf
dst = folderB\a.files\ref.pdf
パス変数の処理順序
パス変数 var を使った例
Web keyword.xml ファイルへの
パスの置換
ダイナミック・シンボル・リンクの
リンク先の URL の置換
CadPrim::GetStepURL
CadPrim_PathVar_eval
KwdSearch_SymLink_getURL
URL一斉置換(1回目)
パス変数の展開
ダイナミックシンボルリンク
FTP用ファイル名に変更
URL一斉置換(2回目)
相対パスにする(変換後のパスが基準)
CadPrim::GetStepURL
公開しないファイルへのリンクがあった場合、その図形(テキスト)のリンクを無くしたり、
図形自体をカットすることができます。
文書(SVG)
公開文書(VML)
VML変換
[repurl]
src = ..\folderX
dst = script:cut
rep_rule.txt (URL置換ルール)
一部のリンクをカット
一部の図形をカット
-repurl=rep_rule.txt
= の前後に空白を
入れてはいけません
コマンドラインオプション
の、dst に 「script:cut」 または 「script:just_cut」 を指定
図形ごとカットしたいときは、
と
で、リンク情報を出力し、txt_mini_sql を使って、リンクミスの一覧を取得します。
をしてください。
リンクを無くすには、
リンクミスしたファイルを、公開しても良いか確認してください。
(特に、公開対象指定ができない一般ファイル)
リンクミスしているファイルを、今回は公開しない場合でも、リンク元となっているテキストを公開
してはいけないこともあります。 all_out_links.txt に書かれたテキストを確認してください。
リンクミスしているものを、全てリンクをつけないようにするには、all_out_links.txt (CSV) の1列目を
の src 属性に指定し、それぞれ dst 属性に script:cut を指定してください。
します。 cut では、フォルダ内のファイルやサブフォルダもリンクが無くなりますが、 just_cut では、
src が完全に一致しないとリンクがなくなりません。
未対応
pub = web, partnerA
上記の場合、Webと、パートナーA に出しても良い情報という意味で、web と partnerA というシンボルを
設定しています。 公開の対象を複数指定するときは、コンマで区切ります。 シンボルの例を示します。
プロパティ
するときに、コマンドラインから -pub=web というオプションを指定すると、 pub = web のもの
(大文字小文字区別なし) だけ変換します。
VML変換(-cv)しないで、SVG のまま公開するものをコピーすることもできます。
-pub オプションを指定しないときは、pub プロパティが無いものしか変換しません。
-pub のみ(公開対象のシンボルを= に続けて指定しないとき)は、自分用としてすべて変換します。
SnapNote -cv -pub=web src1.svg
コマンドライン
SnapNote -cv -pub src1.svg
SnapNote -cv src1.svg
すべて変換する
pub プロパティに設定が
あるものはすべて変換しない
中の階層のもの(ファイルに対してページ、ページに対して図形) は、外の階層のものの pub プロパティ
を継承します。 中の階層の pub プロパティの値と、外の階層のpub プロパティの値が異なる場合、両方
を見る権利がある人へだけ公開されます。
ファイル
ページ
図形
""
""
"A"
-pub=A
-pub=B
-pub
全部公開
全部非公開
"A"
"B"
ページ非公開
""
"A, B"
"B"
""
ページ非公開
""
"A"
ページ非公開
全部公開
""
-pubなし
""
""
""
全部公開
全部公開
全部公開
全部非公開
全部公開
全部公開
全部公開
全部非公開
全部非公開
ページ非公開
""
"B"
"A"
図形非公開
-pub=A,B
"A, B"
""
""
全部公開
全部公開
全部公開
全部非公開
ページ非公開
全部公開
全部公開
全部公開
X, Y が A に統合された場合、A 向けの資料は、-pub=A,X,Y と指定してください。
プロジェクトXに制限ユーザという枠組みを加えるときは、一般ユーザはこれまでと同じシンボルを使い、
制限ユーザにも公開するシンボル Z を新たに加えます。 制限ユーザ向けの資料を作成するときは、
-pub=Z、一般ユーザ向けには、-pub=X と指定します。
プロジェクトXに特権ユーザという枠組みを加えるときは、一般ユーザはこれまでと同じシンボルを使い、
特権ユーザだけに公開するシンボル Z を新たに加えます。 特権ユーザ向けの資料を作成するときは、
-pub=X,Z、一般ユーザ向けには、-pub=X と指定します。
cats-pub="A"
A が X, Y に分割された場合、pub プロパティの値を A から、X または Y または X,Y に変えないと、
X 向けの資料(-pub=X)、または Y 向けの資料(-pub=Y)は、公開されません。
下記の文字列を UNICODE 対応の全文検索ツールで検索してください。
webへ公開
全部公開
全部公開
全部公開
全部公開
全部公開
図形のみ公開
pub プロパティを使って、パス変数で示すフォルダ、ファイル、ページ、図形、テキストの公開対象を
制限することができます。
pub = me
公開できる状態にないもの
pub = groupX
組織グループXならだれでも公開するもの
pub = projectX
プロジェクトメンバに公開するもの
pub = projectX_mycom
プロジェクトメンバのうち自社のメンバに公開するもの
pub = me は、ファイルのプロパティにつける必要はありません。なぜなら、公開するファイルを
作るときに、そのファイルを指定しなければ、公開しないからです。
未対応
SnapNote -cs src1.svg src1_pub.svg
VML に変換しないで、pub プロパティ
に設定がないものを、コピーする。
全部非公開
全部非公開
全部非公開
未対応
ページのみ公開
未対応
親
判定対象
上記の表の元となった、親子の pub 属性の関係を示します。
""
""
未対応
-pub=A&B(*4)
-pubなし(*3)
-pub=*
-pub=B
-pub=A
非公開
非公開
非公開
公開
公開
""
"A"
公開
非公開
公開
非公開
"A"
""
非公開
公開
非公開
公開
"B"
"A"
公開
公開
非公開
非公開
(*1) pub 属性が "" のときは、親の pub 属性を適用します
(*2) pub 属性が指定してあるときは、親の pub 属性を引き継ぎません(A非公開)。そうしないと、pub 属性が B なのに
親の pub 属性によって A まで公開することになってしまいます。 pub 属性の指定があるときは、親の pub属性を
気にしなくて済むようになっています。
また、親にBは要りません。そうしないと、機械的に親に B を追加するようになり、A のみに公開する兄弟図形まで
*1 のルールによって、B に公開してしまうためです。
(*3) -pub オプションを使わないときは、pub 属性を指定していないものだけ公開します
(*4) -pub=A&B は、A と B の両方に公開できる資料を作成するときに使います。
(*5) -pub=A|B は、A だけ、または B だけにしか公開が許されていないものまで公開することに注意してください。
(*6) pub 属性 = A,B は、A と B のどちらにも公開できることを示しています。
非公開
非公開
非公開
"A,B"
""
(*1)
(*2)
公開
公開
公開
公開
非公開
公開
公開
公開
非公開
公開
-pub=A|B(*5)
未対応
(*6)
CadPrim::GetPub
Canvas::m_Pub
SVGCat_File::m_Canvas::m_FilePub
CSVGCatApp::SaveAsVML
CSVGCatApp_isPub
CadPrim_SaveParam::pub
コマンドラインの -pub
pub プロパティ
公開するか判定する
VML変換
テストケース
テスト手順
VML 変換後のファイルが pub 属性に従って、公開されていないかどうかを確認します。
パス条件
非公開になった図形を自動チェックします
[ 06.12.26 ]
テストフォルダ
を実行します
で、
pub_test
pub_test2
pub_answer
(出力フォルダ に VML ファイルが生成されます)
pub_answer と、result を比較します。
テスト対象ファイルの pub 属性と、バッチファイルの -pub オプションの関係から、
非公開にすべき図形がカットされていることを確認します。
テスト対象ファイル→
1_not.html
1_pub.html
1_pub_a.html
1_pub_b.html
2_pub_b.html
2_pub_a.html
2_pub.html
2_not.html
-pub
(-pubオプションなし)
-pub=A
-pub=B
VML出力ファイル名と -pub オプションの関係
出力フォルダ→result/pub
pub_test
pub_test2
pub(file) 属性=""
pub(file) 属性="A"、他は pub_test と同じ
ページごとの pub 属性
1ページ目: pub(page) 属性=""
2ページ目: pub(page) 属性="A"
3ページ目: pub(page) 属性="B"
各ページの図形
上から、pub="A", pub="B", pub="A,B", pub=""
A
B
なし
A,B
自動チェックに Fail し、調べていったら関係ないところに違いがあった場合、
と比較して構いません。(目視ですぐに違いが分かるように
目視で
なっています)、正しいことを確認したら、pub_answer の内容を更新してください)
pub_test.bat
テストケース
コピーしたときやショートカットを作成したときは、pub 属性を継承させます。
未対応
コピーしたときの pub 属性は、ページやファイルの pub 属性を引き継いでいません
ショートカットを作成するとき、リンク元の図形、ページ、ファイルの pub 属性を反映させます。
テスト手順
パス条件
ショートカットの pub 属性をチェックします
[ 06.12.26 ]
の親子の pub 属性の関係から、次のようになります。
ショートカットの pub 属性
図形のpub≠""
図形のpub=""、ページのpub≠""
図形のpub=""、ページのpub=""
図形のpub と同じ
ページのpub と同じ
ファイルのpub と同じ
→ src_pub_b
→ src_pub_no
テスト対象ファイル
pub(file) 属性=""
pub(file) 属性="B"、他は src_pub_no と同じ
→ src_pub_b
→ src_pub_no
と、新規ファイルウィンドウを開きます。
→ a.bat
を実行します。
a.bat
を実行してからリンク先が見えます。
↑
src_pub_no にあるテキストへのショートカットを、新規ファイルウィンドウに作成し、
できたショートカットの pub 属性を確かめます。(→パス条件)
同様に図形(四角)のショートカットを、新規ファイルウィンドウに作成し、チェックします。
2ページ目も同様にします。
と、新規ファイルウィンドウを開きます。
src_pub_no と同様にショートカットを作成し、チェックします。
[ 06.12.26 ]
[ 06.12.26 ]
→ clean.bat
で後始末します
VML のヘッダ部分は、
ファイルの中の下記 % 変数は、置き換えられます。
内容は、実際の vml_….txt ファイルと、できた VML ファイルを参考にしてください。
%title%
%frame_path%
%tree_path%
%path%
変数
意味
ファイルのタイトル
フレーム HTML への相対パス(VML ファイルが基準)
目次フレーム への相対パス(フレームHTMLファイルが基準)
vml_1_head.txt
ファイル
ファイル
vml_1_head_ns.txt
vml_frame.txt
… VML ファイルを含むフレーム HTML のヘッダ
ファイルのタイトル
意味
%title%
変数
%tree_path%
左フレームの相対パス
%main_path%
右フレームの相対パス
上下分割した上側にメニューフレームを入れるFRAMESETタグ
同、/FRAMESETタグ
%menu_tags1%
%menu_tags2%
VML ファイルへの相対パス(フレームHTMLファイルが基準)
の vml_….txt ファイルを元に作られています。
… スクリプトありの VML ファイルのヘッダ
… スクリプトなしの VML ファイルのヘッダ
目次
本文
a_index.html
a.html
a_frame.html
VML 形式で保存すると、ブラウザのフレームを使った目次を自動的に作成します。
目次の内容は、ページのタイトルになります。
CadPrim_SaveParam::indexPath
FILE* tree_f
← SaveAsVML のローカル変数
目次フレームのパス
/* 目次フレームへのリンクを出力する */
/* 目次フレームを出力する(class=head) */
/* 目次フレームのヘッダを出力する */
/* 目次項目へのリンクを出力する(class=head) */
/* 目次フレームを出力する(ページタイトル) */
class=title ベースのツリーの場合
class=head ベースのツリーの場合
/* 目次フレームのフッタを出力する */
toc_1_head.txt
toc_3_leaf.txt
toc_5_foot.txt
目次フレームの書式は、system フォルダの以下のテンプレートファイルから作成しているので、
カスタマイズすることができます。
テンプレートファイル
変数
変数の内容
toc_1_head.txt
toc_3_leaf.txt
toc_5_foot.txt
(なし)
%edge%
%path%
%name%
%title%
ツリーの枝の画像への <IMG>タグ
本文へのリンクパス
ツリー項目の name 属性
ツリー項目のテキスト
%title%
ファイルのタイトル
toc_2_node_start.txt
toc_4_node_end.txt
toc_2_node_start.txt
ツリー項目のテキスト
ツリー項目の name 属性
本文へのリンクパス
ツリーの枝の画像への <IMG>タグ
%title%
%name%
%path%
%edge%
%node_id%
ノードの名前、例:"node1"
%node_flag%
(1=下に要素あり) + (2=上に要素あり)、例: "3"
toc_4_node_end.txt
(なし)
ノードページ
リーフページ
ノードの中のリーフの終わり
%img_folder%
リーフ画像が入ったフォルダ相対パス(末尾 / あり)
リーフ画像が入ったフォルダ相対パス(末尾 / あり)
%img_folder%
CSVGCatApp_SaveAsVML_makeEdge
ツリーのラインを作成する
%img_folder%
リーフ画像が入ったフォルダ相対パス(末尾 / あり)
%t_leaf%
1ページ目なら t_file、2ページ目以降なら t_leaf
検索窓
パーソナルサーチ for Web ができるように、検索窓を Snap Note で作成する。
正確には Asynchronous (HTTP通信スクリプト) な部分は無いため、AJAX ではないが、テクニックは
AJAX のものを使う。
VML に変換する際に、スクリプトなどを出力する。
キーワード
サーチ
↑URL="script:personal_search" に設定
↑id="personal_search" に設定
XSL変換する SCRIPT を出力する。
<DIV id="res" style="visibility:hidden; position:absolute; margin-left:43; margin-top:363">
<A name="res">検索結果</A>:<BR></DIV>
<DIV id="xml" style="visibility:hidden; position:absolute; margin-left:43; margin-top:383"/>
検索結果を出力する位置に DIV タグを出力する。
<FORM name="form1" onsubmit="return submit_onClick()">
<INPUT style="position:absolute; margin-left:46; margin-top:50; width:130; height:25"
type=text name="personal_search" value="">
<INPUT style="position:absolute; margin-left:198; margin-top:52; width:56; height:21"
type=submit value="サーチ">
</FORM>
CGIをリクエストしに行かないように FORM タグの onsubmit で false を返す。
http://cgi.search.biglobe.ne.jp/cgi-bin/search-st?q=abc
<FORM name=srh1 method=GET action="http://cgi.search.biglobe.ne.jp/cgi-bin/search-st">
<INPUT type=text name=q size=34 value="">
<INPUT type=submit value="検索">
</FORM>
アドレス (cgi.search〜)は、FORM タグの action 属性
? の後に INPUT タグの name 属性 "q" に、入力したキーワード "abc" で "q=abc" となる
%8A%BF%8E%9A
(Shift-JIS)
漢字のキーワードの場合、
サイトによって異なる
<FORM action="http://cgi.search.biglobe.ne.jp/cgi-bin/search-st">
<INPUT style="position:absolute; margin-left:38; margin-top:41; width:150; height:20"
type=text name="q" value="">
<INPUT style="position:absolute; margin-left:198; margin-top:41; width:80; height:30"
type=submit value="検索">
</FORM>
自由配置FORM
%E6%BC%A2%E5%AD%97
(UTF-8)
「abc」 と入力して [検索] ボタンを押したときの URL
Snap Note での、インターネット検索ボタンの指定の仕方
キーワード
サーチ
↑URL属性の値。? があれば =? の前の id="q" のテキストに付く
↑id="q" に設定
一般的なFORM
<FORM action="http://cgi.search〜/cgi-bin/search-st">
<INPUT style="〜" type=text name="q" value="キーワード">
<INPUT type=hidden name="lr" value="">
<INPUT type=hidden name="num" value="20">
<INPUT style="〜" type=submit value="サーチ">
</FORM>
http://cgi.search〜/cgi-bin/search-st?q=?ps&lr=&num=20
VML形式で保存したときに出力されるソース
出力手順
URL に ? が含まれるテキストや画像があれば、INPUT タグにするテキストは、OutVMLしない。
? が含まれるものを出力するタイミングで、FORM タグ全体を出力する。
INPUT タグは、とりあえず1つだけとする。
<INPUT type=image src="search.jpg" alt="検索">
検索ボタンを画像にするとき
?ps : ShiftJIS の %表示
?p8 : UTF-8 の %表示
http://www.google.co.jp/search?hl=ja&q=?p8
http://cgi.search.biglobe.ne.jp/cgi-bin/search-st?q=?ps
Google
BIGLOBE
(Shift-JIS)
(UTF-8)
HTMLソース
CadPrim::OutVML
CMainFrame::OnSaveAsVML
SVGCat_Param::repURLs_rulePath
CadPrim_SaveParam::repURLs
図形
設定ウィンドウ
コマンドライン
CSVGCatApp::SaveKeywordXML
SnapNote -cv (option) src_folder dst_folder2
SnapNote -cv (option) src1.svg dst.html
SnapNote -cv (option) src2.svg src_folder dst_folder2
SnapNote -cv (option) src1.svg [dst_folder1]
SnapNote -cv (option) src1.svg dst.html dst_folder2
type1
type2
type3
type4
type5
dstRootFolder
dstRootFolder
dst_folder1
src_folder
srcRootFolder
srcRootFolder
path
dst.html
src2.svg
src1.svg
dst_folder2
svgPath
SVGCat_Param
CadPrim_SaveParam
open_path
out_path
CSVGCatApp_parseParam
src_folder
repurl.txt の src, dst 属性の相対パスの基準フォルダ
src を相対パスにして、dst 基準で絶対パスにする
dst_folder
FTP 用に Ascii 変換するルートフォルダ
偶数番目の要素:src
奇数番目の要素:dst
CSVGCatApp_parseParam
CSVGCatApp_loadRepURLs
CadPrim::GetStepURL
URL置換ルール・ファイル
または、CSVGCatApp_setDefaultRepURL
CadPrim_SaveParam::repURLs_type
dst=*.html を *.svg に変える
・ハイパーリンクできること
・ローカルへのリンクで、リンク先のファイル等が無ければ、リンクにしない。
・A タグの href と name の両方を同じテキストに持てること
変換後のみリンク先がある場合、リンク切れにしない
"%cats%" -cV -repurl=rep_rule1.txt ..\data\base.svg ..\result
"%cats%" -cV -repurl=rep_rule1.txt ..\data\link2.svg ..\result
src
[repurl]
src = ..\data\link1.svg
dst = link2.html
result
base.html
base.svg
data
link1.svg
link2.svg
link2.html
カレントフォルダ:
コマンドライン:
コマンドラインの -cV を -cv に変えても正しく変わること。
ただし、新linkリンク.html → link-jm4cpn7b9564.html になります。
src_folder 指定なし
ダイナミック・シンボルリンク
未対応
パス変数
[repurl]
src = link1.svg
dst = link2.html
src = link2.svg
dst = link2.html
コマンドライン:
"%cats%" -cV -repurl=rep_rule3.txt ..\data\base.svg ..\result\base2.html ..\result
"%cats%" -cV -repurl=rep_rule3.txt ..\data\link2.svg ..\result\link3.html ..\result
コマンドライン:
[ TP: test_1.bat ]
[ TP: vml_link_test フォルダ ]
link1.svg へのリンクを link2.html にします。
→ link1.svg へのリンクがある
→ link2.html
・base.svg から link1.svg へのリンクが、base.html から link2.html へのリンクになっていること
src
rep_rule1.txt
自動チェック・ポイント
(出力)
テストフォルダ
テストフォルダ
"%cats%" -cV -repurl=rep_rule2.txt base.svg ..\data ..\result
"%cats%" -cV -repurl=rep_rule2.txt link2.svg ..\data ..\result
src_folder 指定ありで、
URL置換ルール以外は、[Test1] と同じデータ
と同じ動作をするかどうか
→ rep_rule2.txt
自動チェック・ポイント
[Test1] と同じ
○
○
dst.html と dst_folder 指定ありで、出力ファイル名を変えられること。リンクが切れないこと。
base.svg
data
link1.svg
link2.svg
result
base2.html
link3.html
→ link3.html
(出力)
テストフォルダ
テストフォルダ
→ link1.svg
base.svg は base2.html に改名する。
base2.html は、base3.html (元が link2.svg) へリンクする。
自動チェック・ポイント
[repurl]
src = ..\data\base.svg
dst = base2.html
src = ..\data\link1.svg
dst = link3.html
src = ..\data\link2.svg
dst = link3.html
→ rep_rule3.txt
link1 へのリンクは link2 へ
link2 は、出力するので、指定する
[ TP: test_2.bat ]
[ TP: test_3.bat ]
×
→ tree_test フォルダ
・見た目
→ fig_test フォルダ
→ fig_test.svg
別のフォルダに保存
SVGファイルと別のフォルダに MHT ファイルを作成する。
リンクが切れていないこと。
他のファイルへのリンクを無くすオプション
→ MHTテスト.svg
テストファイル
基本テスト
1ページ目も2ページ目も画像が表示されること
target=_blank を無くすオプション
いずれも GUI で操作すること。
pub を指定するオプション
オプションを有効にしたら、
・ファイル内リンクが、有効、
・ローカルリンクが、無効、
・インターネットリンクが、有効
に、なっていること。
→ pub_test.svg
で、 pub なし、pub=_all、pub=A を指定して、結果を見る。
target=_blank になっているリンク(インターネットリンク)を、VML でクリックして、
新しいウィンドウができないこと。