Мой глобальный макрос показывает список всех тиддлеров с определенным тегом. Тег берется из поля списка тиддлера, который вызывает макрос. Макрос работает нормально при использовании в обычном тиддлере, но если я установлю тиддлер в качестве боковой панели через $:/tags/SideBar
, на боковой панели отобразится вкладка, но внутри ничего нет.
Моя оригинальная версия работала, когда макрос вызывался, когда я явно идентифицировал тег следующим образом: <<activityList book>>
, но я действительно хочу поместить тег (книгу) в поле и извлечь его: <$macrocall $name=activityList category={{!!list}} />
.
Я сделал еще одну версию, которая работала следующим образом:
Он использовал тот же вызов макроса, что и выше, но теперь в поле списка было [book]
, как в <<revisedActivityList [book]>>
.
Это первый макрос (3-я и 4-я строки не имеют значения, они просто вывод):
\define activityList(category:"" tag:"tag[")
<$list filter="[$tag$$category$]]">
» <$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$]">
» <$link to=<<currentTiddler>>><$view field=title/></$link><br>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>