亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tracwikimacros

?? trac是一款svn服務器的web客戶端
??
字號:
= Trac Macros =

[[PageOutline]]

Trac macros are plugins to extend the Trac engine with custom 'functions' written in Python. A macro inserts dynamic HTML data in any context supporting WikiFormatting.

Another kind of macros are WikiProcessors. They typically deal with alternate markup formats and representation of larger blocks of information (like source code highlighting).

== Using Macros ==
Macro calls are enclosed in two ''square brackets''. Like Python functions, macros can also have arguments, a comma separated list within parentheses. 

Trac macros can also be written as TracPlugins. This gives them some capabilities that macros do not have, such as being able to directly access the HTTP request.

=== Example ===

A list of 3 most recently changed wiki pages starting with 'Trac':

{{{
 [[RecentChanges(Trac,3)]]
}}}

Display:
 [[RecentChanges(Trac,3)]]

== Available Macros ==

''Note that the following list will only contain the macro documentation if you've not enabled `-OO` optimizations, or not set the `PythonOptimize` option for [wiki:TracModPython mod_python].''

[[MacroList]]

== Macros from around the world ==

The [http://trac-hacks.org/ Trac Hacks] site provides a wide collection of macros and other Trac [TracPlugins plugins] contributed by the Trac community. If you're looking for new macros, or have written one that you'd like to share with the world, please don't hesitate to visit that site.

== Developing Custom Macros ==
Macros, like Trac itself, are written in the [http://python.org/ Python programming language].

For more information about developing macros, see the [wiki:TracDev development resources] on the main project site.


== Implementation ==

Here are 2 simple examples on how to create a Macro with [wiki:0.11 Trac 0.11] have a look at source:trunk/sample-plugins/Timestamp.py for an example that shows the difference between old style and new style macros and also source:trunk/wiki-macros/README which provides a little more insight about the transition.

=== Macro without arguments ===
It should be saved as `TimeStamp.py` as Trac will use the module name as the Macro name
{{{
#!python
from datetime import datetime
# Note: since Trac 0.11, datetime objects are used internally

from genshi.builder import tag

from trac.util.datefmt import format_datetime, utc
from trac.wiki.macros import WikiMacroBase

class TimestampMacro(WikiMacroBase):
    """Inserts the current time (in seconds) into the wiki page."""

    revision = "$Rev$"
    url = "$URL$"

    def expand_macro(self, formatter, name, args):
        t = datetime.now(utc)
        return tag.b(format_datetime(t, '%c'))
}}}

=== Macro with arguments ===
It should be saved as `HelloWorld.py` (in the plugins/ directory) as Trac will use the module name as the Macro name
{{{
#!python
from trac.wiki.macros import WikiMacroBase

class HelloWorldMacro(WikiMacroBase):
    """Simple HelloWorld macro.

    Note that the name of the class is meaningful:
     - it must end with "Macro"
     - what comes before "Macro" ends up being the macro name

    The documentation of the class (i.e. what you're reading)
    will become the documentation of the macro, as shown by
    the !MacroList macro (usually used in the TracWikiMacros page).
    """

    revision = "$Rev$"
    url = "$URL$"

    def expand_macro(self, formatter, name, args):
        """Return some output that will be displayed in the Wiki content.

        `name` is the actual name of the macro (no surprise, here it'll be
        `'HelloWorld'`),
        `args` is the text enclosed in parenthesis at the call of the macro.
          Note that if there are ''no'' parenthesis (like in, e.g.
          [[HelloWorld]]), then `args` is `None`.
        """
        return 'Hello World, args = ' + unicode(args)
    
    # Note that there's no need to HTML escape the returned data,
    # as the template engine (Genshi) will do it for us.
}}}


=== {{{expand_macro}}} details ===
{{{expand_macro}}} should return either a simple Python string which will be interpreted as HTML, or preferably a Markup object (use {{{from trac.util.html import Markup}}}).  {{{Markup(string)}}} just annotates the string so the renderer will render the HTML string as-is with no escaping.

If your macro creates wiki markup instead of HTML, you can convert it to HTML like this:

{{{
#!python
  text = "whatever wiki markup you want, even containing other macros"
  # Convert Wiki markup to HTML, new style
  out = StringIO()
  Formatter(formatter.context).format(text, out)
  return Markup(out.getvalue())
}}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品免费在线| 日韩精品专区在线影院重磅| 亚欧色一区w666天堂| 久久―日本道色综合久久| 色婷婷综合五月| 国产乱码精品一品二品| 亚洲1区2区3区视频| 国产精品国产精品国产专区不蜜 | 欧美三级在线看| 国模冰冰炮一区二区| 亚洲va欧美va国产va天堂影院| 久久久久久久久久久久电影| 欧美日韩一级片在线观看| 成人av影视在线观看| 另类小说欧美激情| 亚洲一区二区三区四区五区黄| 亚洲国产精品成人久久综合一区| 制服丝袜激情欧洲亚洲| 色婷婷av久久久久久久| 成人高清视频在线| 狠狠久久亚洲欧美| 蜜桃精品视频在线| 肉色丝袜一区二区| 亚洲综合在线观看视频| 中文字幕在线不卡| 国产精品免费av| 久久九九国产精品| 欧美成人精精品一区二区频| 欧美一区二区日韩一区二区| 欧美高清dvd| 欧美肥妇bbw| 欧美一区永久视频免费观看| 69精品人人人人| 在线成人免费视频| 7777精品伊人久久久大香线蕉经典版下载 | 精品国产乱码久久久久久夜甘婷婷| 欧美日韩国产一级二级| 欧美午夜理伦三级在线观看| 在线精品视频一区二区三四| 欧美主播一区二区三区美女| 在线国产亚洲欧美| 欧美日韩综合在线免费观看| 欧美日韩一区二区在线观看 | 91一区二区在线| 北岛玲一区二区三区四区| 福利一区二区在线观看| 国产69精品久久99不卡| 成人爱爱电影网址| 99精品视频在线观看免费| 91首页免费视频| 色哟哟欧美精品| 欧美亚日韩国产aⅴ精品中极品| 欧美亚洲尤物久久| 欧美亚洲国产一卡| 在线播放亚洲一区| 欧美一区二区三区四区视频| 欧美大黄免费观看| 久久久亚洲综合| 国产精品蜜臀在线观看| 亚洲激情中文1区| 日韩精彩视频在线观看| 国内精品不卡在线| 成人丝袜高跟foot| 日本韩国一区二区| 91精品国产一区二区三区香蕉| 日韩一区二区三区视频在线观看| 欧美电影免费观看完整版| 国产日韩欧美一区二区三区乱码 | 亚洲777理论| 蜜臀国产一区二区三区在线播放| 激情文学综合插| av资源站一区| 欧美一级久久久| 国产精品热久久久久夜色精品三区 | 3atv在线一区二区三区| 欧美精品一区二区三区视频| 日韩理论片在线| 蜜桃在线一区二区三区| 国产成+人+日韩+欧美+亚洲| 欧美三级视频在线播放| 精品99一区二区三区| 自拍偷拍亚洲激情| 免费成人av在线| 日本精品裸体写真集在线观看 | 91精品国产乱码| 国产欧美va欧美不卡在线| 亚洲自拍偷拍图区| 国产成人亚洲综合色影视| 在线免费观看日本欧美| 精品国产91久久久久久久妲己| 亚洲特黄一级片| 久久er99精品| 日本伦理一区二区| 国产午夜亚洲精品不卡| 日韩在线观看一区二区| av综合在线播放| 精品国产乱码久久久久久影片| 亚洲精品国产一区二区三区四区在线| 麻豆国产欧美一区二区三区| 色素色在线综合| 国产人成一区二区三区影院| 亚洲va欧美va国产va天堂影院| jlzzjlzz亚洲日本少妇| 91精品国产91久久综合桃花| 亚洲人吸女人奶水| 国产精品原创巨作av| 精品视频一区二区不卡| 亚洲三级在线看| 国产成人精品亚洲777人妖| 欧美夫妻性生活| 亚洲自拍偷拍麻豆| 91首页免费视频| 国产色一区二区| 国产精品亚洲午夜一区二区三区 | 成人天堂资源www在线| 精品国产三级a在线观看| 日韩综合在线视频| 欧美自拍偷拍午夜视频| 亚洲日本在线看| 波多野结衣中文字幕一区 | 国产激情视频一区二区在线观看 | 日本美女一区二区三区视频| 在线观看亚洲a| 夜夜亚洲天天久久| 一本大道久久a久久综合| 国产精品日日摸夜夜摸av| 国模套图日韩精品一区二区 | 欧美日韩国产在线播放网站| 亚洲另类色综合网站| av在线不卡观看免费观看| 欧美激情一区二区三区四区 | 欧美一级午夜免费电影| 五月天精品一区二区三区| 欧美性xxxxxx少妇| 亚洲高清一区二区三区| 欧美精品自拍偷拍| 天天色天天操综合| 在线综合亚洲欧美在线视频| 日本视频在线一区| 欧美大片在线观看| 国产综合一区二区| 欧美国产日韩a欧美在线观看 | 男男成人高潮片免费网站| 欧美一区二区久久久| 日本不卡一区二区三区高清视频| 91精品免费在线| 国产在线精品免费| 国产日韩欧美制服另类| 99精品欧美一区二区三区小说| 亚洲伦在线观看| 91麻豆精品国产91久久久使用方法 | 一区二区三区波多野结衣在线观看 | 男女性色大片免费观看一区二区| 精品久久国产字幕高潮| 国产盗摄女厕一区二区三区| 亚洲欧洲国产日本综合| 欧美色图片你懂的| 老司机免费视频一区二区 | 国产欧美日韩一区二区三区在线观看| 国产超碰在线一区| 亚洲精品va在线观看| 欧美一级黄色片| 成人福利在线看| 亚洲成在人线在线播放| 精品奇米国产一区二区三区| 国产91富婆露脸刺激对白| 亚洲精品一二三四区| 日韩欧美资源站| 成人黄色777网| 五月婷婷综合激情| 久久久久国产成人精品亚洲午夜| 成人h动漫精品一区二区| 午夜精品久久久| 国产精品久久久久毛片软件| 欧美色综合网站| 国产精品1区2区3区| 亚洲免费伊人电影| 欧美一级二级三级蜜桃| 99视频一区二区三区| 婷婷丁香久久五月婷婷| 国产欧美日韩在线看| 欧美日韩视频不卡| 成人激情午夜影院| 免费一级欧美片在线观看| 亚洲视频在线一区二区| 日韩午夜精品视频| 91视频在线观看免费| 看片网站欧美日韩| 一区二区三区产品免费精品久久75| 精品伦理精品一区| 欧美日韩黄色一区二区| 成人少妇影院yyyy| 久久99国内精品| 亚洲最快最全在线视频| 国产欧美日韩另类视频免费观看| 欧美巨大另类极品videosbest| 99久久精品国产网站| 国产综合成人久久大片91| 午夜精品久久久久久久| 亚洲视频图片小说|