Skip to content

Commit

Permalink
Updated with Git-Sync
Browse files Browse the repository at this point in the history
Updated with Git-Sync
  • Loading branch information
tiddlygit-test authored and Zacharia2 committed Sep 1, 2023
1 parent df37ce2 commit 8637f10
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 22 deletions.
53 changes: 34 additions & 19 deletions tiddlers/Wiki编程的定义.tid
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class: autonumhead
created: 20230809234409764
creator: WhiteFall
modified: 20230901025050261
modified: 20230901064157761
modifier: WhiteFall
tags: 插件开发 笔记思维
title: Wiki编程的定义
Expand All @@ -20,52 +20,56 @@ title: Wiki编程的定义

什么是Wiki编程?(解释)

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

TiddlyWiki可以大致分成几个部分wikitext写作,wiki编程、插件开发。tree宏为我们提供了一种Wiki编程参考。编辑器工具栏的文本片段snippet。似乎整个Wiki编程都围绕条目进行操作。
<<<
[[太微独特之处-技术部分]]、[[太微是开发框架/知识管理操作系统,不是笔记软件|太微与太记的区别]]

机制(Mechanisms):组成 TiddlyWiki 的内部机制。

级联(Cascades)是用于构建和自定义 TiddlyWiki 用户界面的关键机制。

<<<

TiddlyWiki可以大致分成几个部分wikitext写作,wiki编程、插件开发。tree宏提供了一种Wiki编程参考。编辑器工具栏的文本片段snippet。似乎整个Wiki编程都围绕条目进行操作。

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


小工具消息乃由小工具生成,以回应用户的操作。消息具有一个 name、一个可选的主要 parameter,以及一个或多个可选的命名参数。这些消息沿着小工具树向上传播,在那里它们由上层小工具或核心本身处理。小工具消息通常是触发式的,这意味着常常有一个小工具生成,另一个小工具处理。或者任意方式生成,生成此小工具消息的小工具处理。

机制(Mechanisms):组成 TiddlyWiki 的内部机制。

级联(Cascades)是用于构建和自定义 TiddlyWiki 用户界面的关键机制。

之所以叫Wiki编程是因为,Wiki编程核心由js实现且降低了复杂度但又和平常的记录笔记相差较大,更类似一种功能实现,即它介于写作与编程语言之间,且偏向编程语言的方面。

!!! TW API & JS API

TW API就是TiddlyWiki提供定义好的微件(也称元素小工具,类似HTML元素)、微件消息(由微件提供)、筛选器、进程(宏,JS宏)、函数、核心变量、变量($set $let $vars),JS代码定义好的JS模块类型,提供所有功能的全部定义。
TW API就是TiddlyWiki提供定义好的微件(也称元素小工具,类似HTML元素)、微件消息(由微件提供)、筛选器、进程(宏,JS宏)、函数、核心变量、变量($set $let $vars),模块(JS代码定义好的JS模块类型,提供所有功能的全部定义。

JS API就是TiddlyWiki JavaScript源代码级别的编程调用。

!!!! 使用范围

* 微件:wiki
* 微件消息:wiki
* 微件消息:js,wiki
* 筛选器:js、wiki
* 进程:wiki
* 函数:wiki
* 核心变量:js、wiki
* JS模块类型:js,wiki
* 模块(JS模块类型:js,wiki

同一个方法在不同的方法实现(微件、筛选器、JS等等)中可能有相同的功能。比如获取条目内容,你可以使用筛选器的`[[tiddlerTitle]text[]]`,也可以使用js的`$tw.wiki.getTiddlerText(title)`。

微件是wiki编程的核心部分,它几乎独立与JS/TS编程部分,且自给自足,更像是一个服务于wiki和写作的编程语言。所以关于UI和视图的部分可以大胆交给它完成。你可以使用html和元素小工具混用,并使用相应功能的元素小工具替代html标签。比如button可以使用button微件代替、img可以使用image微件代替、input可以使用[[定义输入框与变量]]描述的代替等等。微件的目标结果感觉是视图。

所以对于想要引入JS编程的想法来说,使用这些JS代码的入口点已知有:微件和微件参数定义,JS宏和宏参数定义、定义事件等等。你可以在微件或JS宏中引入js库,在tiddler中直接调用微件和js宏。

但无论如何做,最终都是在条目中进行调用和编程。只是JS占比多少,是否更为简单优雅的区别。
若想要引入JS编程,模块(JS模块类型)是最好的选择,其中macro和widget两种JavaScript模块类型可以直接在条目中调用。最终无论如何,都是在条目中编程和调用。

!!! 方法

> Wiki编程中方法有以下几类:进程(宏)、微件、函数
> Wiki编程中的方法有以下几种形式:进程(宏)、微件、函数

维基文本解析器模式:为了显示条目(通常是 text 字段),维基文本解析器读取和解释内容,并应用维基文本规则。就是写在条目中笔记。比如你现在看到的内容就是
运用维基文本解析器有三种模式的其中一种:Pragmas(编译指示)在维基文本(条目)中定义不同形式的方法,提供对剩余文本解析方式的控制。也可以使用【模块】使用JavaScript实现对微件、宏模块类型的定义并在维基文本中调用

解析器有三种模式的其中一种:Pragmas(编译指示)是维基文本 的一个特殊组件,提供对剩余文本解析方式的控制。剩余的两种解析器模式都是笔记的解析渲染和正常显示。
剩余的两种解析器模式都是笔记的解析渲染和正常显示。

```tw
Pragma: \define
Expand All @@ -78,7 +82,7 @@ Pragma: \whitespace
Pragma: \widget
```

你可以自己定义方法(动作)在TiddlyWiki中叫作进程或宏,推荐使用进程(Procedures),它可以接受参数,不同位置,变量是引用方式不一样。你可以使用小工具定义变量。也可以在某个小工具添加属性导出变量。在方法体中,你可以使用小工具、筛选器、小工具消息、变量进行一系列动作。
进程(Procedures),可以接受参数变量。不同位置,变量是引用方式不一样。你可以使用小工具定义变量。也可以在某个小工具添加属性导出变量。在方法体中,你可以使用小工具、筛选器、小工具消息、变量进行一系列动作。

筛选器作用于所有条目的所有字段,它是对条目字段进行操作的方法。或者说访问并操作所有条目字段数据的函数。TiddlyWiki提供一种方法,查找哪些条目符合给定的模型。条目或数据条目作为原始数据集,函数、筛选器作为原始数据集的函数处理和筛选工具。

Expand All @@ -100,9 +104,7 @@ Pragma: \widget

# 可以作为变量的过程定义:进程(宏、JS宏)、微件、函数;
# 变量定义:$set、$let、$vars、核心变量;
# JS模块类型定义:包括所有TW API。例如:JS宏、微件、筛选器、通用模块等等

JS模块类型:一个 模块 是包含可运行 JavaScript 的条目。可以用js定义小工具,筛选器,解析器,通用模块、JS宏等等。具体查看模块类型。
# 模块(JS模块类型)定义:包括所有TW API。例如:JS宏、微件、筛选器、通用模块等等

> https://bramchen.github.io/tw5-docs/zh-Hans/#Variable%20Usage

Expand Down Expand Up @@ -140,3 +142,16 @@ TiddlyWiki 的显示是由一些底层的小工具驱动。这些小工具都组

action-log、log小工具、[[调试筛选器]]

!!! 模块

一个 TiddlyWiki5 的 模块 是包含可运行 JavaScript 的条目,其类型为`application/javascript`且其`modeule-type`字段为该模块的[[模块类型]]

!!! 条目

# 数据条目
## 字典条目
## JSON条目

# 系统条目

# 普通条目
46 changes: 46 additions & 0 deletions tiddlers/_Hello, TiddlyWiki_.tid
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
created: 20230901061523927
creator: WhiteFall
modified: 20230901062733798
modifier: WhiteFall
tags: Wiki编程的定义
title: "Hello, TiddlyWiki"

\procedure main()
<$text text="Hello, TiddlyWiki">
\end

\procedure main1()
<$set name="Hi" value="Hello, TiddlyWiki">
<$text text=<<Hi>>>
</$set>
\end


<<main>>

```html
\procedure main()
<$text text="Hello, TiddlyWiki">
\end

<<main>>
```

定义方法,名为main的进程,并输出“Hello, TiddlyWiki”。
然后使用`<<main>>`调用进程。

---

<<main1>>

```html
\procedure main1()
<$set name="Hi" value="Hello, TiddlyWiki">
<$text text=<<Hi>>>
</$set>
\end

<<main1>>
```

定义方法,名为main的进程,定义变量Hi,值为"Hello, TiddlyWiki",然后输出结果,最后使用`<<main>>`调用进程。
6 changes: 3 additions & 3 deletions tiddlers/太微独特之处-技术部分.tid
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
created: 20220107111655244
creator: 林一二
modified: 20220108114655031
modifier: 林一二
tags: 科普幻灯片
modified: 20230901063036405
modifier: WhiteFall
tags: 科普幻灯片 Wiki编程的定义
title: 太微独特之处-技术部分
type: text/vnd.tiddlywiki

Expand Down

0 comments on commit 8637f10

Please sign in to comment.