Skip to content

Commit 2234a2a

Browse files
authored
Merge pull request #2 from neo4j-documentation/issue-1-add-slug-attribute
resolves #1 add page-slug attribute on the training navigation items
2 parents 4e86fcf + d0963da commit 2234a2a

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

lib/generate-site.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const produceRedirects = require('@antora/redirect-producer')
1212
const publishSite = require('@antora/site-publisher')
1313
const { resolveAsciiDocConfig } = require('@antora/asciidoc-loader')
1414
const knowledgeBase = require('./knowledge-base')
15+
const training = require('./training')
1516

1617
async function generateSite (args, env) {
1718
const playbook = buildPlaybook(args, env)
@@ -24,6 +25,7 @@ async function generateSite (args, env) {
2425
knowledgeBase.addCategoryPages(pages, contentCatalog)
2526
knowledgeBase.addTagPages(pages, contentCatalog)
2627
const navigationCatalog = buildNavigation(contentCatalog, asciidocConfig)
28+
training.attachNavigationSlug(contentCatalog, navigationCatalog)
2729
const composePage = createPageComposer(playbook, contentCatalog, uiCatalog, env)
2830
pages.forEach((page) => composePage(page, contentCatalog, navigationCatalog))
2931
const siteFiles = [...mapSite(playbook, pages), ...produceRedirects(playbook, contentCatalog)]

lib/training.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
function attachNavigationSlug (contentCatalog, navigationCatalog) {
2+
contentCatalog.getComponents()
3+
.filter((component) => {
4+
return component.latest &&
5+
component.latest.asciidoc &&
6+
component.latest.asciidoc.attributes &&
7+
component.latest.asciidoc.attributes['page-component'] === 'training'
8+
}).forEach((component) => {
9+
const componentNavigation = navigationCatalog.getNavigation(component.name, component.latest.version)
10+
if (componentNavigation && componentNavigation.length > 0) {
11+
componentNavigation[0].items.forEach((item) => {
12+
if (item.urlType === 'internal') {
13+
const pages = contentCatalog.getPages((page) => page.pub && page.pub.url === item.url)
14+
if (pages && pages.length > 0) {
15+
const page = pages[0]
16+
if (page.asciidoc && page.asciidoc.attributes && page.asciidoc.attributes['page-quiz'] === '') {
17+
item['asciidoc'] = {
18+
attributes: {
19+
'page-slug': page.asciidoc.attributes['page-slug']
20+
}
21+
}
22+
}
23+
}
24+
}
25+
})
26+
}
27+
})
28+
}
29+
30+
module.exports = {
31+
attachNavigationSlug: attachNavigationSlug
32+
}

0 commit comments

Comments
 (0)