文件
admin 261c0116ba
Theme CD / Package Theme (release) Failing after 13m8s
Theme CD / Release (release) Failing after 14m59s
refactor(alpine): restructure components and remove unused utilities for better modularity and maintainability
2026-06-14 08:31:42 +08:00

64 行
2.4 KiB
HTML

<th:block th:fragment="items (items)">
<th:block
th:each="menuItem : ${items}"
th:with="menuHref=${menuItem.status.href},
menuTarget=${menuItem.spec.target?.value},
menuExternal=${!#strings.isEmpty(menuHref) and (#strings.startsWith(menuHref, 'http://') or #strings.startsWith(menuHref, 'https://') or menuTarget == '_blank')}"
>
<details class="devcm-tree-folder" open th:if="${not #lists.isEmpty(menuItem.children)}">
<summary class="devcm-tree__item devcm-tree__item--folder">
<span class="devcm-tree__chev" aria-hidden="true"></span>
<i class="devcm-tree__icon i-pixelarticons-folder"></i>
<span th:text="${menuItem.status.displayName}">Folder</span>
<a
class="devcm-tree__open devcm-tree__open--external"
th:if="${menuExternal}"
th:href="${menuHref}"
th:target="${menuTarget}"
rel="noopener noreferrer"
th:title="#{devcm.action.open}"
th:aria-label="#{devcm.action.openPage}"
>
<i class="i-pixelarticons-external-link"></i>
</a>
<a
class="devcm-tree__open"
th:unless="${menuExternal}"
th:href="${menuHref}"
th:target="${menuTarget}"
th:title="#{devcm.action.open}"
th:aria-label="#{devcm.action.openPage}"
>
<i class="i-pixelarticons-open"></i>
</a>
</summary>
<div class="devcm-tree__nested">
<th:block th:replace="~{modules/menu-tree :: items(items=${menuItem.children})}" />
</div>
</details>
<a
class="devcm-tree__item devcm-tree__item--external"
th:if="${#lists.isEmpty(menuItem.children) and menuExternal}"
th:href="${menuHref}"
th:target="${menuTarget}"
rel="noopener noreferrer"
>
<span class="devcm-tree__chev" aria-hidden="true"></span>
<i class="devcm-tree__icon i-pixelarticons-external-link"></i>
<span th:text="${menuItem.status.displayName}">Page</span>
</a>
<a
class="devcm-tree__item"
th:if="${#lists.isEmpty(menuItem.children) and !menuExternal}"
th:href="${menuHref}"
th:target="${menuTarget}"
>
<span class="devcm-tree__chev" aria-hidden="true"></span>
<i class="devcm-tree__icon i-pixelarticons-file"></i>
<span th:text="${menuItem.status.displayName}">Page</span>
</a>
</th:block>
</th:block>