--> -->

skimemo


skimemo - 日記/2024-04-05/最新のtracでテンプレートプラグインを使う の変更点


#blog2navi()
*最新のtracでテンプレートプラグインを使う [#n5516515]

** 概要 [#w9bcf485]
今時 [[Trac:https://trac.edgewall.org/]] なんて使っている人はいないと思いますが、歴史的な経緯があって使わざるを得ない人もごく希にいるかもしれません。~
そして最新の Trac1.6 を入れると、[[TracTicketTemplatePlugin:https://trac-hacks.org/wiki/TracTicketTemplatePlugin]] が動かなくなります。~
~
チケットのテンプレート機能が無いと内容が統一できないため、代わりに [[TicketStencilPlugin:https://trac-hacks.org/wiki/TicketStencilPlugin]] を入れる事にします。~
ただし、素のままだと日本語に対応していないので、ついでに日本語対応も行います。

** プラグインのインストール [#h4ee3c8e]
 sudo /usr/local/bin/pip install svn+https://trac-hacks.org/svn/ticketstencilplugin/1.0

** ファイルの編集 [#nd86b99d]
+ プラグインのインストールされたディレクトリに移動します。~
 cd /usr/local/lib/python3.9/site-packages
+ pyファイルを編集します
 sudo vi ticketstencil.py
#code("javascript","nooutline",40){{{
stencils = {}
prefix_len = len('TicketStencil')
all_types = [enum.name for enum in Type.select(self.env)]
# Set defaults for remaining ticket types
for ticket_type in all_types:
    stencils[ticket_type] = ''
for name in self.wiki_system.get_pages('TicketStencil'):
    page = WikiPage(env = self.env, name = name)
    ticket_type = name[prefix_len:]
}}}
-- 上記5行目: 最後の方にあった &inlinecode(){stencils}; の初期化を上に持ってきます。こうしないと何故か最後に全てクリアされてしまいます。
-- 上記9行目: 不要な &inlinecode(){.lower()}; を削除します。~
~
+ jsファイルを編集します
 sudo vi htdocs/ticketstencil.js
#code(javascript){{{
var new_type = $('#field-type option:selected').val();
}}}
-- &inlinecode(){.lower()};を削除します。~
~
+ 最後にhttpdを再起動してプラグインは完了です。~
 sudo systemctl reload httpd

** テンプレート定義 [#c7fa8ebe]
TicketStencilはwikiのページでテンプレート定義をおこないます。~
&inlinecode(){/wiki/TicketStencilBug(バグ)};(「Bug(バグ)」部分はチケットの「種類」)のようなwikiページを作成すると、その種類を選択した場合にwikiページの内容が初期表示されます。

最後にhttpdを再起動して完了です。~
 sudo systemctl reload httpd

#htmlinsert(twitterbutton.html)
RIGHT:Category: [[[Linux>日記/Category/Linux]]] - 16:20:26
----
RIGHT:&blog2trackback();
#comment(above)
#blog2navi()