Python 擴充套件Trac的Macro

2021-08-27 17:43:04 字數 1056 閱讀 2461

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author: lintao

import pprint

from trac.wiki.macros import wikimacrobase

from tracusermanager.profile.api import userprofilemanager

from genshi.core import markup

from trac.wiki import formatter

import stringio

class jmneinstitution(wikimacrobase):

# this is no args macro

def expand_macro(self, formatter, name, text):

env = self.env

upm = userprofilemanager(env)

profile_fields = upm.get_user_profile_fields()

pprint.pprint(profile_fields)

result = ""

if "institution" in profile_fields:

for perinst in profile_fields["institution"]["options"]:

result += "* %s\n"%perinst

out = stringio.stringio()

formatter(self.env, formatter.context).format(result, out)

return markup(out.getvalue())

先貼一段**。

擴充套件trac的macro不是很複雜,首先,需要把這些指令碼放到trac專案的plugins中。trac會載入這裡的指令碼。

我們只要實現介面expand_macro即可。另外,我們可以在裡面使用wiki。

具體:

Trac的wiki列印功能

花了大半天的時間,終於將trac的 tracwikiprintplugin 安裝上,並能夠支援中文。期間走了很多彎路,但也終於通過查資料和嘗試,一一解決。下面是tracwikiprintplugin安裝步驟 1.用easy install來安裝 xhtml2pdf pisa,html5lib,pyp...

Linux下Trac的安裝

tar xzvf trac 0.12.1.tar.gz 檢視install檔案 1 python,version 2.4.python 2.4 下面以python2.7為例,python3好像有問題,setuptools安裝不相容 2 setuptools,version 0.6 3 genshi,...

Python之Anaconda入門2 mac版

更改anaconda預設環境 前面一篇下的anaconda預設python環境為3.7,想要python3.6的環境,因此在anaconda上create了python3.6,但是系統的python版本為3.7,pip的庫都是3.7版本的,如何修改預設環境為3.6呢?conda activate p...