BpymenusをHTMLに

投稿ツリー


このトピックの投稿一覧へ

通常 BpymenusをHTMLに

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2007/4/22 11:42
まんだ  長老 居住地: むかしは本州の西端  投稿数: 570
変換元が'Bpymenus'というだけなので、それ以外はblenderと関係ないんですが…

こんなコード書いてみました。.blender/Bpymenusを簡単なHTMLにするスクリプトです。「自分の環境でどんなBPyスクリプトが登録されているか」を俯瞰する目的で作りました。

下記スクリプトを~/.blenderディレクトリに作成し、
bpymenus2html.pyという名前で保存します。
そして、Bpymenusが同ディレクトリにあることを確認して
$ bpymenus2html.py > log.html
とするとhtmlが作成されます。

かなり「力技」です
[EDIT]表ヘッダ(セル)のタグ、tdで閉じてました…(thが正解)お恥ずかしい。

#
#  Convert to html ( Bpymenus )
#
#  1.copy this flie to  ~/.blender/
#  2.check if exists 'Bpymenus'
#  3.type 'bpymenus2html.py > log.html'
#  4.browse log.html
#  5.enjoy :-)
#

menufile = "Bpymenus"

#store to buffer
fi = open(menufile)
mbuf = []
for x in fi:
    mbuf.append(x.rstrip())
fi.close

# parse each lines

lv = 0

header = """\
<html>
<head><title>Bpymenus</title></head>
<body>
<hr>
<center><h1>Bpymenus</h1></center>
<hr>
"""

footer = """\
</body></html>
"""

print header

for x in mbuf:
    x=x.strip()
    if lv == 0:
       elm= x.split()
       if len(elm) ==2:
           if elm[1].find('{') != -1:
                #print elm[0]
                lv = 1
                print "<h2>",elm[0],"<h2>"
                print "<tr>"
                print "<table border=2 padding=2>"
                print "<th>Filename</th>"
                print "<th>Command</th>"
                print "<th>Description</th>"
                print "<th>Version</th>"
                print "</tr>"
    elif lv == 1:
        if x.find('}') != -1 or len(x) == 0:
            lv=0
            print "</table>"
        elif x.find('|') != 0:
            y= x.split('\x27')
            z = y[2].split()
            #print "[command    ]:",y[1].replace('&','&)
            #print "[version    ]:",z[0]
            #print "[filename   ]:",z[1]
            #print "[number     ]:",z[2]
            #print "[description]:",y[3]  <-- if exists
            print "<tr>"
            print "<td>",z[1],"</td>"
            print "<td>",y[1].replace('&','&'),"</td>"
            if len(y) > 3:
               print "<td>",y[3],"</td>"
            else:
               print "<td>*No description*</td>"
            print "<td>",z[0],"</td>"
            print "</tr>"

print footer

投票数:4 平均点:10.00

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki