首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

开发了一个tiddlywiki的插件

Posted on 2010-11-24 22:09  金龙鱼  阅读(761)  评论(0编辑  收藏  举报

插件依赖 BetterTimelineMacro

作用:输入一个tag名字,在这个tiddler中显示这个tag对应的所有内容,按照时间排序。

 

代码如下:

!!Example
//{{{
<<queryTimeLine>>
//}}}
!!Code
***/
//{{{
(function($) {

var macro = config.macros.queryTimeLine = {
       locale: {
               btnLabel: "查询",
               btnTooltip: "查询所有信息"
       },

       handler: function(place, macroName, params, wikifier, paramString, tiddler) {
               var tagNameInputId = tiddler.title + "_TagName";
               jQuery("<input id='"+ tagNameInputId + "'/>").appendTo(place);
               var btn = createTiddlyButton(place, this.locale.btnLabel,
                       this.locale.btnTooltip, function() {});
               var divId = tiddler.title + "_OutputDivId";
               jQuery("<div id='"+ divId + "'/>").appendTo(place);
               delete btn.onclick; // XXX: hacky, but createTiddlyButton wouldn't add href otherwise

               $(btn).data("place", place);
               $(btn).data("macroName", macroName);
               $(btn).data("params", params);
               $(btn).data("wikifier", wikifier);
               $(btn).data("paramString", paramString);
               $(btn).data("tiddler", tiddler);
               $(btn).data("divId", divId);

               $(btn).data("tagNameInputId", tagNameInputId);

               $(btn).click(this.onClick);
       },
       onClick: function(ev) {
               var btn = $(this);

               var place = btn.data("place");
               var macroName = btn.data("macroName");
               var params = btn.data("params");
               var wikifier = btn.data("wikifier");
               var paramString = btn.data("paramString");
               var tiddler = btn.data("tiddler");
               var divId = btn.data("divId");

               var tagNameInputId = btn.data("tagNameInputId");

               var outputDiv = document.getElementById(divId);

               var tagNameDiv = document.getElementById(tagNameInputId);
               var tagName = "";

               if(tagNameDiv)
                 tagName = tagNameDiv.value;

               outputDiv.innerHTML = "";

               var paramString = "";

               if(tagName != "")
                 paramString += "better:true onlyTag:" + tagName;

               //将股票代码加入到参数

               //这里要调用BetterTimelineMacro的函数,以后要加入对这个的依赖
               config.macros.timeline.handler(outputDiv, macroName, params,wikifier, paramString, tiddler);

               //wikify("abcd", outputDiv);
       }
};

})(jQuery);
//}}}