Welcome to mirror list, hosted at ThFree Co, Russian Federation.

toc_helper.js « shared « frontend « spec - gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 574f1d17d0605e72349cef627c1e710c826765b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
export const createItem = (text, items = []) => ({
  text,
  href: `#${text.replace(/[^a-zA-Z-]+/g, '-').toLowerCase()}`,
  id: `${text}-anchor`,
  items,
});

export const buildHTML = list =>
  list
    .map(
      ({ text, href, id, items }) =>
        `<li>
${text ? `<a href="${href}" id="${id}">${text}</a>` : ''}
${items?.length ? `<ul>${buildHTML(items)}</ul>` : ''}
</li>`,
    )
    .join('');

export const createTOCElement = list => {
  const ul = document.createElement('ul');
  ul.innerHTML = buildHTML(list);
  return ul;
};

export const createExampleToc = () => [
  createItem('Lorem', [createItem('Lorem 2')]),
  createItem('Ipsum', [
    createItem('Dolar', [createItem('Sit'), createItem('Amit'), createItem('Test')]),
  ]),
];