Как создать PUG mixin, который будет генерировать ссылку с учетом уровня вложенности страницы?

Как можно создать миксин link(l1, l2, path, content), чтобы облегчить создание ссылок на различных страницах с разным уровнем вложенности? Может быть, можно объединить несколько миксинов для этой цели? Вот мои попытки создать миксины one, two и three для этой задачи. Можно ли что-то подобное реализовать с помощью миксинов?
  • 26 августа 2024 г. 16:14
Ответы на вопрос 2
Да, можно создать PUG mixin, который будет генерировать ссылку с учетом уровня вложенности страницы. Например, можно создать миксин link(l1, l2, path, content), который будет принимать в качестве аргументов уровни вложенности l1 и l2, путь к странице path и контент ссылки content.

Пример реализации данного миксина:

```
mixin link(l1, l2, path, content)
  - var base = '../' + (new Array(l1 + 1).fill('..').join('/'))
  - var fullPath = base + '/' + (new Array(l2 + 1).fill('.').join('/')) + '/' + path
  a(href=fullPath)= content
```

Теперь можно использовать этот миксин в вашем коде следующим образом:

```
+link(1, 2, 'mypage.html', 'My Page')
```

Этот код сгенерирует ссылку на страницу 'mypage.html' с учетом уровня вложенности l1 и l2.

Также можно создать отдельные миксины для каждого уровня вложенности:

```
mixin one(path, content)
  +link(1, 0, path, content)

mixin two(path, content)
  +link(2, 0, path, content)

mixin three(path, content)
  +link(3, 0, path, content)
```

И использовать их в коде также:

```
+one('mypage.html', 'My Page')
+two('mypage.html', 'My Page')
+three('mypage.html', 'My Page')
```

Таким образом, можно облегчить создание ссылок на различных страницах с разным уровнем вложенности с помощью миксинов в PUG.
Это делается абсолютным путём /index.html
Похожие вопросы