В TiddlyWiki (5) мой макрос работает в тиддлерах, за исключением случаев, когда он отображается в качестве боковой панели - PullRequest
0 голосов
/ 27 марта 2019

Мой глобальный макрос показывает список всех тиддлеров с определенным тегом. Тег берется из поля списка тиддлера, который вызывает макрос. Макрос работает нормально при использовании в обычном тиддлере, но если я установлю тиддлер в качестве боковой панели через $:/tags/SideBar, на боковой панели отобразится вкладка, но внутри ничего нет.

Моя оригинальная версия работала, когда макрос вызывался, когда я явно идентифицировал тег следующим образом: <<activityList book>>, но я действительно хочу поместить тег (книгу) в поле и извлечь его: <$macrocall $name=activityList category={{!!list}} />.

Я сделал еще одну версию, которая работала следующим образом: Он использовал тот же вызов макроса, что и выше, но теперь в поле списка было [book], как в <<revisedActivityList [book]>>.

Это первый макрос (3-я и 4-я строки не имеют значения, они просто вывод):

\define activityList(category:""  tag:"tag[") 
<$list filter="[$tag$$category$]]">
&raquo; <$link to=<<currentTiddler>>><$view field=title/></$link><br>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>

вызвано:

<$macrocall $name=activityList category={{!!list}} />

В этой версии скобки предоставляются параметром фильтра макроса списка. обратите внимание на необычный второй параметр (который позволяет мне переключаться с поиска по тегу на поиск по другой функции фильтра, такой как has или is). В этом нет необходимости, но я обнаружил, что это сработало.

Я переделал это, чтобы исправить скобки и поместить скобки в список ПОЛЕ, думая, что это проблема.

\define revisedActivityList(category:"" tag:"tag") 
<$list filter="[$tag$$category$]">
&raquo; <$link to=<<currentTiddler>>><$view field=title/></$link><br>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>

1 Ответ

1 голос
/ 01 апреля 2019
...