Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

created pages type #23

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open

created pages type #23

wants to merge 2 commits into from

Conversation

vladyslav2
Copy link
Contributor

@vladyslav2 vladyslav2 commented Dec 24, 2024

Неля я тут сидів, дивився на наш код і щось думав чому в нас так багато різних "фінтов ушами" коли ми бажаємо отримати сосідні єлементи або знайти parenta.

Чому так?

  • тому що createContentLoader тупо вертає массів з кучей неповʼязанних єлементів.
  • тому кожен раз коли щось треба знайти треба проходитись по всьому массіву і по сути порівнивати данні у url.

Як це можно покращити?

  • треба предоставити цей массів у більш зручному виді.
  • я пропоную ось таку структуру:
data: IFrontmatter data
parent() - ссилка на родительский єлемент
childrens() - список дочерних єлементів
isVirtual() - якщо true означає що папка є але такій сторінок (тобто md файлу) немає

і тоді дуже зручно и просто буде обходити цей массів та знаходити дочернії або сосідні єлементи

Подивись на практичній приклад - https://github.com/webdevelop-pro/dev.webdevelop.pro/pull/39

Все вийшло трохи складніше аніж я спочатку розраховував. І якось дуже багато всього червоного у файлі pages.ts але я не знаю як це виправити.
Завдякі цьому тикету я зрозумів як це зробити vuejs/vitepress#2790

PS Знайщов ось тут дуже гарний приклад як він працує з createContentLoader. Він робить:

// Export the data and the loader
export const data = await loader.load();
export default loader;

і відповідно всі преобразовання з pages можно робити у load. Буду з цім ще розбиратися

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant