Skip to content

Commit

Permalink
Update Wiki编程的定义.tid
Browse files Browse the repository at this point in the history
  • Loading branch information
Zacharia2 committed Jan 5, 2025
1 parent f94817d commit 172979e
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions tiddlers/Wiki编程的定义.tid
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class: autonumhead
created: 20230809234409764
creator: 星蓝
modified: 20231001134023220
modified: 20250105142058724
modifier: 星蓝
tags: 插件开发
title: Wiki编程的定义
Expand All @@ -20,7 +20,9 @@ title: Wiki编程的定义

什么是Wiki编程?(解释)

得益于三种两大类(编译和笔记)的维基文本解析器模式,以及部分Wiki解析语法,使得条目不仅可以用于写作还可以用于Wiki编程。Wiki编程是在条目中进行定义、调用不同形式封装或定义的方法和变量,为了完成某种任务,将解决问题的步骤写成指令,使TiddlyWiki根据这些指令一步步执行,最后完成任务。
得益于维基文本解析器的三种模式——编译指示模式、区块模式和内联模式,这些模式通过对条目"text"字段的解析,赋予了条目既能够进行写作又能够用于编程的双重功能。

Wiki编程是在条目中进行定义、调用不同形式封装或定义的方法和变量,为了完成某种任务,将解决问题的步骤写成指令,使TiddlyWiki根据这些指令一步步执行,最后完成任务。

维基文本的可编程性,在维基文本中可实现功能。

Expand All @@ -36,6 +38,21 @@ title: Wiki编程的定义

<<<

---
在TiddlyWiki中一等公民是微件(widget)其等价于React,包含微件消息、核心变量、set let vars等变量类型微件、自定义微件。主要负责构建UI界面,有wikitext和js两种用法,状态管理是其中核心,qualify限定微件是常用的状态管理微件;二等公民是函数及筛选器,主要负责数据输出,有wikitext和js两种用法;三等公民为进程(包含宏、JS宏),主要负责tiddlywiki方法,仅有wikitext一种使用方法;四等公民为模块包,是通用JS模块,主要负责作为微件、JS宏的依赖使用。以上四类的底层实现均为JS模块。

关于tiddlywiki的笔记模型,可以想象成一个Excel表格,表格中的每一行都代表tiddlywiki的一个条目。每一个条目都有自己的字段,这些字段就相当于Excel表格的每一列,字段的字段名相当于表格的表头定义。可以想象,tiddlywiki是一张无限多条目记录的表格。该表格中比较特殊的字段列是title、tag、type、text等字段。其中text字段是条目的核心字段,它关联了解析器模式用于展示笔记或编程内容。

由上述笔记模型可以理解''范本条目''也就是模版,也就是在条目中使用嵌入语法,嵌入某个条目的某个字段列。如:你可以新建名为A范本的条目,在条目中写下`{{!!title}}` 类似Excel的单元格引用的条目中某个字段的文本引用,此文本引用类似一个Excel单元格地址指向具体内容。然后你可以新建B普通条目,在条目中写下 `{{||A范本}}`,这样就会将B普通条目的全部字段传递给A范本。A范本中的文本引用会自动填充为B普通条目字段内容,最后将A范本填充好的内容嵌入到B普通条目中。

因为tiddlywiki的笔记模型非常简洁稳定,所以自然而然的引出筛选器并函数这类称为输出的功能。筛选器中也会存在变量的使用,一般分为特殊变量、角括号<>、大括号{}、多参数。角括号表示该参数是一个变量名称。例如:`[search<currentTiddler>]`、大括号表示该参数是一个文本引用。例如:`[tag{preference}]`、筛选器操作符支持多个参数,这些参数由一个 , 字符分隔。`[param1],[param2]`或`<param1>,{param2}`。例子:`[<jsondata>jsonextract[d],[f],[0]]`。参考[[筛选器参数|https://bramchen.github.io/tw5-docs/zh-Hans/#Filter%20Parameter]]。调用筛选器有两种方式:先定义函数,然后调用函数`<<myfn param:"value">>`;嵌入筛选器`{{{ [[ ]] }}}`。
其中函数不仅可以用角括号调用,还可以通过function筛选器操作符作为函数筛选器操作符使用:`[function[myfn],[value],···]`。函数定义是包含筛选器表达式的有名称命名的文本片段。使用`\function`编译指示模式定义。筛选器其实非常常见,比如Excel中、Linq语言集成查询、DQL关系型数据库查询语言等等。


tiddlywiki Cascade级联,CSS(Cascading Style Sheet)。

---

tree宏提供了一种Wiki编程参考。编辑器工具栏的文本片段snippet。似乎整个Wiki编程都围绕条目进行操作。之所以叫Wiki编程是因为,Wiki编程核心由js实现且降低了复杂度但又和平常的记录笔记相差较大,更类似一种功能实现,即它介于写作与编程语言之间,且偏向编程语言的方面。

Wiki编程核心是:小工具(Widget)[包含小工具消息(Messages)]、筛选器(Filters)、TiddlyWiki核心变量(包含于变量)、模块等,这些由TiddlyWiki提供的类API的工具或功能集。
Expand Down

0 comments on commit 172979e

Please sign in to comment.