TiddlyWiki使用心得

最近接了个比较有挑战性的任务——写帮助文档...@_@。由于需要收集资料,第一时间就想到了Tiddlywiki。以前用Tiddlywiki的时候只是当个好玩的记事本来用,这几天脑力过剩,工作之余就摆弄下插件,改改样式,看看代码,倒也不亦乐乎。越来越发觉Tiddlywiki的确是个好东东,如果让我早几年发现这个东西,也许我就会对javascript早点改观,不会象如今这样看着一些ajax的应用兴叹:原来javascript还可以做成这样的……。

关于Tiddlywiki的基本知识就不多费唇舌了,有兴趣的朋友可以去 http://jiangzhanyong.com/tiddlywiki.html 看看介绍(注意:如果你用的是IE6,进入网站后要立刻打开右边栏的“偏好设置”,把“使用动画显示”取消掉。否则就等着看一秒8格的幻灯片吧......)。用一句简单的话来说,Tiddlywiki就是一个完全用html+javascript+css编写的带有wiki特性的记事本。它把程序逻辑和内容数据都放在一个html文件中,因此只要把这个html文件email或者放到USB盘里,找台有浏览器的电脑就可以继续干活了。心血来潮的话把文件往WEB服务器上一放,别人就可以通过http访问了。

当然,这造成了一个问题:文件会越来越大。好在一个空的Tiddlywiki本身并不大,200来K左右,我曾经把一个Tiddlywiki文件填到2M左右,在本地打开倒也没发现什么问题(放在网上,客户端就要先把这2M的文件的html文件下载下来才能打开)。Tiddlywiki提供了从另一个Tiddlywiki文件中导入条目的功能,因此如果文件的确太大,要分成多个Tiddlywiki文件也很方便,只是分离之后交叉引用就不方便了。

Tiddlywiki的另一个优点是网上有不少免费插件,通过合理利用这些插件,可以令Tiddlywiki实现许多有趣的功能。但是同样,安装插件也会令文件体积增大(通常这是Tiddlywiki文件过大的主要原因),所以要根据需要合理选择。我现在一般是一个项目用两个专门的Tiddlywiki文件,一个是日常记事和时间计划,另一个是知识库,根据项目的需要装必要的插件。许多刚开始用Tiddlywiki的朋友往往不知道怎样安装插件,其实很简单:插件其实就是一个wiki条目。网上的插件一般都也是放在一个Tiddlywiki文件中的,你把关于这个插件的条目打开编辑,源代码就在里面了。在自己的Tiddlywiki里新建一条条目,把代码copy过来,取同样的标题和分类名(分类中必须有systemConfig)。保存后刷新页面,插件就起作用了。当然,还有个更方便的做法是把包含插件的tiddlywiki文件整个下载回来,然后在自己的tiddlywiki中使用“导入条目”功能把插件成批导入。

Tiddlywiki有个最大的问题是在IE6中表现一般。它默认打开的条目动画效果在IE6中会变得非常慢,一定要关掉。而且安装了某些插件后可能会出现在IE下保存出错,通常是文件头部分编码出错导致CSS布局混乱,如果出现这种情况又没有备份,只要用一个好的Tiddlywiki把文件前几行copy过来就行了。如果还不行,也不用担心会掉失有用信息,找一个空的Tiddlywiki把坏文件里面的信息条目都导进去就可以了。当然,防范胜于治疗,如果以IE6为主要浏览器时,安装新插件前一定要先备份,安装完后保存刷新页面后立刻再保存一次并刷新(第一次启动插件,第二次测试),确认没有问题再输入有用信息。以上说的情况,在Firefox里就不会出现。顺带一提,Firefox有个tiddlysnip免费扩展可以很方便的把网页的内容添加到tiddlywiki中,挺好用。

以上是简单用法介绍,这里谈谈这几天摆弄Tiddlywiki的一些心得,

一、应用

1. 活动桌面

个人觉得这是Tiddlywiki一个最另类但实用的功能:将它设置为windows的活动桌面。现在你的桌面图标就可以全部扔进回收站了。Tiddlywiki支持用file:///链接本地文件或目录,而活动桌面是IE内核……你该明白我说什么了吧。你可以通过Tiddlywiki活动桌面打开chm, pdf, html, txt, doc等等文件,能直接运行exe和cmd文件,还能直接打开目录,基本上可以满足日常需要了。你可以很方便通过Tiddlywiki的内容组织能力去组织这些“快捷方式”,例如用">"标签建立Treeview结构,或者在说明文字中放一个“点这里运行”的链接。别忘了Tiddlywiki本身是个记事本,现在你不用满世界找notepad的图标或者安装桌面便贴软件,直接在桌面上点“新建条目”就可以了。这个方案的缺点有:

a.无法直接打开lnk快捷方式。有些应用程序需要通过lnk快捷方式打开,例如需要设置启动目录位置或者运行参数的应用程序。由于IE不认识lnk文件,如果在tiddlywiki中直接连接的话,它会先下载再打开,期间弹出两次对话框,很麻烦。解决的方法是:1. 做个同样效果的cmd文件;2. 把lnk放到快速启动栏;3.把lnk文件集中到一个目录中,然后在Tiddlywiki的醒目位置放一条打开这个目录的连接。第3点适用于所有IE不认识的文件,当然,你也可以直接把目录甚至快捷方式放在桌面上。

b. 由于活动桌面其实就是IE,上面提到在IE6中的问题都会遇到。所以一定要关掉动画效果,装插件时必须小心。有些样式风格和插件用来做桌面很不错,但由于与IE6冲突也只好忍痛割爱了。据说IE7有所改善,但我没有试过。

c. 有时某些操作会引起桌面自动刷新,这时如果tiddlywiki活动桌面中有尚未保存的数据,就会丢失。(系统会有对话框提示,但这时候无论选确定还是取消,信息都无法保存了)好在这种情况并不常见,我这几天平均每天在电脑前15小时以上,一天也就刷新了3、4次,只需要及时存盘基本上问题不大。也可以考虑打开自动保存选项,此选项保证确认修改一个条目都自动存盘,同时应关闭保存备份选项。

对于活动桌面,我总觉得装太多插件会影响系统性能,因此只装了一些必要的,大概有:
a. CalendarPlugin, CalendarPluginConfig, DatePlugin, DatePluginConfig:这四个插件一起可以为tiddlywiki添加一个类似blog的月历。高亮显示今天和有修改记录的日期,点击日期可以打开下拉菜单查看修改的条目
b. ToggleSideBarMacro: 这个插件可以添加一个按钮打开或隐藏右边工具栏
c. SinglePageModePlugin: 这个插件增加三个配置选项,可以定制同时只会显示一条条目(打开新条目将关闭其他旧条目),或者新条目总在最顶打开,或总在最底打开。因为我不太喜欢在活动桌面里拉滚动条,因此这个插件在这种时候非常有用。
d. BreadCrumbsPlugin: 显示打开条目的历史,javascript富客户端的通病之一就是无法返回前一页面,当使用SinglePageModePlugin时这个缺点就特别突出。这个插件让你可以在点历史路径上的条目名来返回前面的页面

2. GTD计划表

据说GettingThingsDone是一个很实用的日常事务管理方法,有关的书籍我没看过,不过从monkeyGTD ( http://monkeygtd.tiddlyspot.com/ ) 的版面看上去的确不错。monkeyGTD是tiddlywiki的一个mod,提供了GTD计划管理的功能。它已经包括了几个基本的插件,例如前面提到的月历插件,有个比较有趣的功能是,如果设置了提醒条目,你拉下日历中的下拉菜单时会显示距离这个提醒还有多少天。前面提到对每个项目使用两个tiddlywiki文件,monkeyGTD就非常适宜用来计划与记事。我甚至想用它来做活动桌面,可惜它的样式在IE里无法正确显示,只好放弃了。

3. 知识库
既然名字里有wiki,这是基本功能了。通过搭配合适的插件,可以为tiddlywiki加入blog的特性,变成一个bliki,或者叫wikilog。通常的搭配是前面的日历插件加上ForEachPlugin(或tiddlerList)。ForEachPlugin支持对条目进行复杂的筛选循环,这样就可以在首页中顺序列出最近更新的条目了。有一个专门的WeblogPlugin据说可以更直接地在启动时自动打开最近更新的条目,但我试了一下,并不运作,可能是版本问题或者插件冲突。现在正在研究中...
在原始版的Tiddlywiki里,分类标签并不起眼。但通过一些插件就可以实现很方便的组织功能。较常用的组合是:IntelliTagger(辅助填写分类信息的工具栏)+QuickOpenTagPlugin(把Tag作为条目打开)+NewHere(把当前条目标题作为分类名创建一条新条目)+RenameTagsPlugin(统一修改分类名称)

二 插件资源

官方网站推荐了一些插件网站:
http://www.tiddlywiki.com/#AbegoSoftware%20BidiXTW%20Gimcrack'd%20JacksTiddlyWiki%20LewcidTW%20MonkeyPirateTW%20PeachTW%20RedMountainVista%20TiddlyStyles%20TiddlyTools

列一下我觉得有用的插件,我的选择标准主要是倾向信息组织方面和易用性方面的
1. AbegoSoftware http://tiddlywiki.abego-software.de/
ForEachTiddlerPlugin 可以根据循环条件列出条目
IntelliTaggerPlugin 填写分类的工具条

2. Jack's TiddlyWiki  http://jackparke.googlepages.com/jtw.html
PublishMacro 将内容导出到多个html文件
SectionMacro 一个方便的可展开的按钮 (用原版虽然也可做到同样效果,但需要使用多条条目)
TiddlerListMacro 可以根据循环条件列出条目
BreadCrumbsPlugin 在标题栏下列出你打开条目的历史记录,非常适合配合SinglePageModePlugin一起使用
DoBackupMacro 提供一个备份按钮(原版备份需要先在配置中勾选“保存备份”然后再选“保存”,若下次保存不想保存备份,则还要取消“保存备份”)

3. Lewcid http://tw.lewcid.org/
FullScreenPlugin 提供一个快捷按钮切换到全屏模式(隐藏标题、菜单栏与右栏)
JumpToTopMacro 提供一个可以直接回到文档顶部的按钮
OpenTiddlersMacro 可用一个连接打开多个条目
PopupMacro 在内容中创建弹出菜单
TaggerPlugin: 为条目增加一个tags下拉菜单,可以为条目设置或取消分类
ToggleSideBarMacro: 提供一个可以隐藏/显示右边栏的按钮

4. MonkeyPirateTW http://mptw.tiddlyspot.com/
CloseOnCancelPlugin 若新建条目时在编辑状态选了“取消”,则直接关闭该条目
ExtentTagButtonPlugin 在Tag标签的下拉菜单中增加一条添加新条目的选项
NewHerePlugin 在条目的快捷按钮中增加一个按钮,新建一条目并以当前条目名称作为分类名
QuickOpenTagPlugin 把分类作为条目打开
RenameTagsPlugin 对分类统一重命名或删除

5 PeachTW http://bradleymeck.tiddlyspot.com/
InlineJavascriptPlugin 在条目中插入javascript

6 tiddlytools http://www.tiddlytools.com/
CalendarPlugin 提供可显示日历的标签 (网站上另有一CalendarPluginConfig条目设置外观)
DatePlugin 与CalendarPlugin配合可为日历加上下拉菜单 (网站上另有一DatePluginConfig条目设置外观)
AutoTaggerPlugin 自动为条目添加作者,日期等分类信息
HTMLFormattingPlugin 可在内容中加入html标签(原版在<html></html>标签中的内容无法使用wiki特性,而这个plugin则不受影响)
(这个网站上还有不少很炫的插件,但与我的需求无关也就没有仔细尝试了)

样式资源
http://tiddlythemes.com/

(未完待续)

三 定制页面
四 编写插件

2007-3-31 2:55:55   
  发表评语»»»   

2007-4-18 3:28:27    三. 定制页面

tiddlywiki明确地分离了内容、表现和行为。其中内容是由用户输入,行为是由插件和宏来实现。表现则可以通过定义一些特殊的条目来进行配置。这些条目在英文版中称为shadowed tiddler,中文标准版中称为默认tiddler,也有些版本称为影子条目。在原始版本中,页面右下方有一标签页,有一页叫“更多”或“more”,点进去后下面又是一个子标签页,有一页叫“默认tiddler”或“Shadowed”,此页列出了所有的默认特殊条目。

如果由于定制原因找不到这个标签页,可以新建一个条目,输入<<list shadowed>>(必须使用两个小于号与两个大于号括起来),确定后就可以列出所有默认tiddler的条目了。初始情况下,这些条目并不存在,在列表中可以看到它们属于未定义的WikiWord(初始情况下是斜体字),但实际上它们已被系统赋予了默认值。当向这些条目输入了新内容,就以输入的内容的为准,当删掉输入的同名条目后,则回复到原来的默认值,而默认的条目就无法删除了,这就是它们称为“影子”的原因。

合理使用这些影子条目可以定制TiddlyWiki的表现特性,它们又可以细分为三类:系统内容,页面框架(模板),页面样式。

1. 系统内容:包括配置信息、列表信息、与表现内容

1.1 配置信息
AdvancedOptions: 高级配置选项条目。编辑这个条目可以看到,这里基本上是一些配置复选框的宏(宏是用<< >>括起的部分)。
PlugManager: 用来配置插件
ImportTiddlers: 用来导入外部条目
DefaultTiddlers: 用来设置打开TiddlyWiki时自动打开显示的条目
SiteUrl: 当放在HTTP服务器上时,设置本页的根路径
ColorPalette: 设置一些命名的颜色值

1.2 列表信息
TabAll: 列出所有条目。(不包括未被覆盖的影子条目)
TabMoreMissing: 列出未定义的WikiWord (不包括未被覆盖的影子条目)
TabMoreOrphans: 列出没有被任何条目连接的条目
TabMoreShadowed: 列出影子条目
TabTags: 列出所有已定义的分类标签
TabTimeline: 按最后修改日期排序列出所有条目
GettingStarted: 一条指导用户进行简单初始配置的条目(DefaultTiddlers默认指向此条目)

1.3 表现内容
SiteTitle: 页面标题
SiteSubtitle: 页面子标题
MainMenu: 主菜单内容
OptionsPanel: “偏好设定”配置栏内容
SideBarTabs: 右栏下方的标签页内容
SideBarOptions: 右栏内容。初始情况下包括搜索框与右栏一系列按钮,若使用日历插件可考虑在此加入显示日历的宏。
TabMore: “其他”分页标签

2. 页面框架:
PageTemplate: 页面的整体嵌套布局模板。通过修改此条目可以改变页面的结构,例如去掉标题部分,把左栏竖列显示菜单改为在标题栏下横排显示等等。要注意默认情况下,标题栏的底色是在这个条目中定义的,个人认为这是一个败笔(颜色属于样式,应在StyleSheetLayout或StyleSheetColor条目中定义)。除了这点之外,这个条目非常好地体现了布局与样式分离的原则,默认情况下这一条目内容非常简单:
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
从内容中可以清楚看到各板块的嵌套关系,而且也只包括了嵌套信息(除了第一行那很碍眼的颜色设置),具体的定位与颜色搭配都留给StyleSheet系列条目定义。

注意在编辑时可以看到内容中开始和结尾带有<!--{{{---> ... <!--}}}-->两行,这是种很有趣的用法:由于这个条目的内容是代码,作者不想tiddlywiki对其进行语法解释,因此用tiddlywiki的代码标记{{{...}}}将其括起;但这个条目作为HTML代码条目需要暴露给浏览器进行解释,而浏览器不认识{{{...}}}标记,因此需要用<!-- ... -->HTML注释标记将其括起。在编写插件时经常会使用这种交叉注释的做法。
-----------------------------
ViewTemplate: 显示条目时使用的模板。默认内容也是非常简单(交叉注释部分略去,下同):

<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>

第一行定义了条目上方的快捷按钮,第二行显示条目标题,第三行显示条目信息,第四行列出以本条目为分类标签的条目,第五行显示本条目所属的分类标签,第六行显示正文。这个条目也完全不涉及样式。若要添加或减少条目的快捷按钮或在条目中添加其他宏(例如返回页面顶部的插件宏),可以修改此条目。
-----------------------------
EditTemplate: 编辑条目时的模板。进入编辑条目状态时,使用这个模板来显示输入界面。结构类似ViewTemplate。

TiddlyWiki使用心得相关推荐

  1. 使用tiddlywiki的用途和心得?

    作者:Cheny Dimpurr 链接:https://www.zhihu.com/question/31214433/answer/244696951 来源:知乎 著作权归作者所有.商业转载请联系作 ...

  2. 一个小巧好用的个人知识管理系统-TiddlyWiki.

    TiddlyWiki是HTML+CSS+JavaScript写成的一个 单html文件 的Wiki系统. 我觉得它起码有如下一些优势: 1.非常方便的tag,可以给一篇文章打任意多个tag,只需要选择 ...

  3. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  4. 测试心得:微图书销售小程序

    测试心得:微图书销售小程序 前言 这个学期差不多也将近结束,经过大半个学期,从项目需求的确认和项目文档的编写,到一步步的设计与实现,现在终于到了测试阶段,但是我们在测试阶段也暴露出了很多bug,但是每 ...

  5. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  6. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档

    计算机会计实习心得 计算机会计实习心得1 毕业实践环节是大学生在完成全部课程后.走向社会之前最真实的一个模拟实验,对于我们财会专业的学生,平时注意注重理论学习,缺乏实践锻炼,因此实习显得尤为重要.在本 ...

  7. html5考试总结300字,期中考心得300字5

    为了检验学生半个学期所学的知识而进行的一次考试,有利于学生比较正式地检验自己平时的学习水平,根据这个成绩,学生可以及时的调整学习心态和方法,更有效率地进行下一阶段的学习,期中考试主要考察学生前半学期的 ...

  8. Assembly学习心得

    http://blog.csdn.net/etmonitor/ Assembly学习心得 说明: 最近开始准备把学到的.NET知识重新整理一遍,眼过千遍不如手过一遍,所以我准备记下我的学习心得,已备参 ...

  9. 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得

    [IT168 专稿]不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?其实,Windows Ser ...

最新文章

  1. python使用matplotlib可视化、移除可视化图像坐标轴的刻度线和标签( remove the default axis ticks and labels)
  2. 两数之和 II - 输入有序数组
  3. 网络编程(part11)--socket模块方法及socket套接字属性
  4. fat32 linux 打包工具_11款最棒的Linux数据恢复工具发布啦!
  5. 交叉熵(cross_entropy)作为损失函数在神经网络中的作用
  6. jenkins java常用插件下载,Jenkins简单介绍以及插件入门
  7. Activiti WAR 包简介
  8. uwsgi怎么通过浏览器访问某个脚本_4个Shell小技巧帮你提高机器学习效率:写好脚本,事半功倍...
  9. 从入门到入土:机器学习part02|python|初步学习|numpy|Matplotlib
  10. XP引导Ubuntu--Ubuntu手记之系统配置
  11. 高等数学复习笔记(四)- 零点问题与微分不等式
  12. STM32F407 FSMC驱动NAND FLASH MX30LF2GE8AB 附带测试程序链接
  13. java 一年 周数_java获取一年共有多少周
  14. 芋头哥:从码农到农民,靠微博3个月卖出20万斤
  15. 《黑马程序员》 正则的匹配 切割 替换 获取的操作演示
  16. op 消除 消除自激振荡
  17. Architect架构师简历模板
  18. 【山东事业单位】公共基础知识——重要国际经济组织
  19. php7.1.6验证码错误,steam输入验证码不正确怎么办
  20. Dockers镜像分层

热门文章

  1. incsgo唯一能立即取回的CSGO饰品皮肤开箱网站
  2. java项目-第59期ssm项目源码嘟嘟健身房管理系统
  3. C# 简单制作一个看门狗程序
  4. Linkin导出简历
  5. 软件产品的自然更新换代过程
  6. 今日小程序推荐:查名宝-取好名,创好业!
  7. linux firefox 无法播放视频,关于linux下firefox无法播放mp3文件
  8. 关于Topaz Video Enhance Al常见问题解答
  9. 打开word2007提示“无法初始化Visual basic环境”
  10. 乐忧商城项目总结-3