将tiddlyweb url映射到您自己的自定义url
tiddlywebplugins.urls的Python项目详细描述
tiddlywebplugins.url
此插件允许您:
- 将自定义URL映射到默认的TiddlyWeb URL。
- 将自定义URL映射到任何其他URL,用作URL缩写器
它对自定义url(http://lukearno.com/projects/selector/)使用选择器语法
配置
这个插件是一个“系统”和“twanager”插件。在命令行中键入twanager usage。您的tiddlywebconfig.py应该与此配置类似:
config = { 'system_plugins': ['tiddlywebwiki', 'tiddlywebplugins.urls' ], 'secret': 'XXXXXXXX', 'twanager_plugins': ['tiddlywebwiki', 'tiddlywebplugins.urls'], # the tiddlywebwiki.friendlywiki function doesn't work with urls plugin, # it needs to be disabled. 'tiddlywebwiki.friendlywiki': False, #'url_bag':'__urls', }
注意:默认情况下,所有url都存储在一个名为“url”的包中。
可以通过向tiddlywebconfig.py添加“url_bag”来更改此包的名称,但包中的所有tiddler必须是所述格式的“url tiddler”。如果这个包已经不存在,它将自动创建。
重写URL
要在/default处显示tiddlywiki,请创建一个tiddler,如:
title: /default text: /recipes/default/tiddlers.wiki
此配置创建一个链接,例如:http://example.com/default,否则为:http://example.com/recipes/default/tiddlers.wiki,该链接仍然有效。请确保命名为“默认”的配方存在!
灵活版本使用上述格式,您需要为每个配方创建一个tiddler。这不是很“用户友好”。因此,我们需要更灵活,使用“占位符”来定义关系。现在我们要映射每个配方名,用户可以输入例如:/wiki/anyRecipeName:
title:
/wiki/{recipe_name:segment}
text:
/recipes/{{ recipe_name }}/tiddlers.wiki
url http://example.com/wiki/myWiki将加载http://example.com/recipes/myWiki/tiddlers.wiki
使用上述格式,您需要为每个配方创建一个tiddler。这不是很“用户友好”。因此,我们需要更灵活,使用“占位符”来定义关系。现在我们要映射每个配方名,用户可以输入例如:/wiki/anyRecipeName:
title: /wiki/{recipe_name:segment} text: /recipes/{{ recipe_name }}/tiddlers.wiki
url http://example.com/wiki/myWiki将加载http://example.com/recipes/myWiki/tiddlers.wiki
链接到单页应用程序
可以直接链接到菜谱或袋子中的一个小道消息:
title: /spa/{spa_name:segment} text: /recipes/my_recipe/tiddlers/{{ spa_name }} or /bags/my_bag/tiddlers/{{ spa_name }}
注意标题/spa前缀。它是可选的。在这里,它用于将函数与“重写配方url”配置分离。
重定向URL
重定向到内部url
如果要重定向而不是重写到内部URL,可以添加标记“redirect”:
title: /wiki/{user:segment} tags: redirect text: /recipes/{{ user }}/tiddlers.wiki
请注意,添加用户不会自动添加用户配方。所以如果你需要一个,你需要创造它。
重定向到exernal url
要创建到google.com的短链接,可以执行以下操作。不需要“重定向”标记:
title: /google text: http://www.google.com
实验性
如果我们用包创建tiddlywiki,例如:/bags/{{ bag_name }}/tiddlers.wiki,它将作为tiddlywiki表示加载,但不能保存:
title: /test/{bag_name:segment} text: /recipes/experiment/tiddlers.wiki
experiment配方需要看起来与此类似(在生产中,您需要访问权限!):
desc: some description text ... policy: {"read": [], "create": [], "manage": [R:ADMIN], "write": [], "owner": null, "delete": []} /bags/system/tiddlers /bags/{{ bag_name }}/tiddlers
其中bag_name可以是任何变量名。
请注意,这不支持放入,您无法放入配方(除非您为bag_name提供默认值)。这个版本需要一个客户端插件来处理puts。