Skip to content

Commit de1a7bc

Browse files
ppcanoyasell
andauthored
Add robots option to frontmatter and edit the markdown of the "category" guides (#1203)
* Create category page to detect the error * feat: add robots to guides frontmatter and upd guides category props * Update Test Types index page * Create `Testing Guides` index page * fix: generation guides pages props * feat: extends guides category props and update style * Rewrite test types * fix: pass frontmatter robots to guides template --------- Co-authored-by: Raman Yasel <[email protected]>
1 parent 7ca84ac commit de1a7bc

File tree

8 files changed

+118
-32
lines changed

8 files changed

+118
-32
lines changed

gatsby-node.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ const getExtensionsPageSidebar = (sidebarTree) => {
311311
};
312312

313313
function getSupplementaryPagesProps({
314+
nodesGuides,
314315
reporter,
315316
topLevelNames,
316317
getSidebar,
@@ -378,6 +379,13 @@ function getSupplementaryPagesProps({
378379

379380
const stubGuidesPagesProps = SUPPORTED_LOCALES.flatMap((locale) =>
380381
childrenToList(getGuidesSidebar(locale).children).map(({ name, meta }) => {
382+
const remarkNode = nodesGuides.find(
383+
(node) =>
384+
node.name.toLowerCase().includes(meta.title.toLowerCase()) &&
385+
node.relativeDirectory === 'markdown/translated-guides/en',
386+
);
387+
let extendedRemarkNode = null;
388+
381389
const path = `${locale}/${meta.title}`;
382390
const breadcrumbs = compose(
383391
buildBreadcrumbs,
@@ -398,6 +406,20 @@ function getSupplementaryPagesProps({
398406
}
399407
});
400408

409+
if (remarkNode) {
410+
const { relativeDirectory } = remarkNode;
411+
412+
extendedRemarkNode = {
413+
...remarkNode.children[0],
414+
frontmatter: {
415+
...remarkNode.children[0].frontmatter,
416+
fileOrigin: encodeURI(
417+
`https://github.com/grafana/k6-docs/blob/main/src/data/${relativeDirectory}/${name}.md`,
418+
),
419+
},
420+
};
421+
}
422+
401423
return {
402424
path: compose(
403425
removeEnPrefix,
@@ -414,6 +436,7 @@ function getSupplementaryPagesProps({
414436
),
415437
title: meta.title,
416438
navLinks: topLevelLinks,
439+
remarkNode: extendedRemarkNode,
417440
directChildren: getGuidesSidebar(locale).children[name].children,
418441
locale,
419442
translations: pageTranslations,
@@ -1036,7 +1059,7 @@ async function fetchGuidesPagesData(graphql) {
10361059
slug
10371060
head_title
10381061
excerpt
1039-
1062+
robots
10401063
redirect
10411064
redirectTarget
10421065
hideFromSidebar
@@ -1153,6 +1176,7 @@ async function createDocPages({
11531176
pathCollisionDetectorInstance,
11541177
}),
11551178
getSupplementaryPagesProps({
1179+
nodesGuides,
11561180
topLevelNames,
11571181
getSidebar,
11581182
getGuidesSidebar,

src/components/shared/seo/seo.view.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const getPageHref = (host, slug) => {
1414
};
1515

1616
export const SEO = ({
17-
data: { title, description, image, slug, canonicalUrl } = {},
17+
data: { title, description, image, slug, canonicalUrl, robots } = {},
1818
facebook,
1919
pageTranslations = null,
2020
pageVersions = null,
@@ -81,6 +81,10 @@ export const SEO = ({
8181
}
8282
}, []);
8383

84+
if (robots) {
85+
currentRobotsContent.current = robots;
86+
}
87+
8488
if (pageTranslations) {
8589
if (pageTranslations.es) {
8690
let esPathname = pageTranslations.es.path;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: 'Test types'
3+
excerpt: 'A series of conceptual articles explaining the different types of load tests. Learn about planning, running, and interpreting different tests for different performance goals.'
4+
robots: NOINDEX, FOLLOW
5+
---
6+
7+
A series of articles explaining the different [load test types](/test-types/load-test-types/).
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: 'Testing guides'
3+
excerpt: 'A series of guides to help you defining your load testing strategies.'
4+
---
5+
6+
7+
This section provides a list of frequently-asked guides to help you set your testing strategy for common cases:
8+
9+
- [API load testing](/testing-guides/api-load-testing/)
10+
- [Automated performance testing](/testing-guides/automated-performance-testing/)
11+
- [Load testing websites](/testing-guides/load-testing-websites/)
12+
- [Running large tests](/testing-guides/running-large-tests/)

src/layouts/doc-layout/doc-layout.module.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,16 @@ h2.sidebar-section-title {
163163
}
164164
}
165165

166+
.sidebarSectionInvisibleLink {
167+
@extend .sidebar-section-title-link;
168+
cursor: default;
169+
color: #9c97b5;
170+
&:hover {
171+
color: #9c97b5;
172+
border-color: transparent;
173+
}
174+
}
175+
166176
.sidebar-node {
167177
position: relative;
168178
}

src/layouts/doc-layout/doc-layout.view.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,11 @@ export const DocLayout = ({
340340
tag={'h2'}
341341
>
342342
<Link
343-
className={styles.sidebarSectionTitleLink}
343+
className={
344+
sectionName === 'Guides'
345+
? styles.sidebarSectionInvisibleLink
346+
: styles.sidebarSectionTitleLink
347+
}
344348
to={sectionNode.meta.path}
345349
>
346350
{sectionNode.meta.title || sectionNode.name}

src/templates/doc-page.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ export const Head = ({
121121
description: frontmatter.excerpt,
122122
slug: frontmatter.slug ? frontmatter.slug : location.pathname.slice(1),
123123
canonicalUrl: frontmatter.canonicalUrl,
124+
robots: frontmatter.robots,
124125
},
125126
};
126127

src/templates/docs/breadcrumb-stub.js

Lines changed: 53 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { DocPageTitleGroup } from 'components/pages/doc-page/doc-page-title-group';
2+
import { styles as codeStyles } from 'components/shared/code';
13
import { Heading } from 'components/shared/heading';
24
import { SEO } from 'components/shared/seo';
35
import { Breadcrumbs } from 'components/templates/doc-page/breadcrumbs';
6+
import { DocPageContent } from 'components/templates/doc-page/doc-page-content';
47
import styles from 'components/templates/doc-page/doc-page.module.scss';
58
import LocaleProvider from 'contexts/locale-provider';
69
import { Link } from 'gatsby';
@@ -17,6 +20,7 @@ const BreadcrumbsStubPage = (props) => {
1720
breadcrumbs,
1821
navLinks,
1922
title,
23+
remarkNode,
2024
directChildren,
2125
locale,
2226
translations = null,
@@ -40,34 +44,53 @@ const BreadcrumbsStubPage = (props) => {
4044
>
4145
<div className={`${styles.container}`}>
4246
<Breadcrumbs items={breadcrumbs} label={styles.breadcrumbsStub} />
43-
<Heading className={styles.title}>{title}</Heading>
44-
<ul className={styles.sectionList}>
45-
{childrenToList(directChildren).map(
46-
({ meta, name }, i) =>
47-
!meta.hideFromSidebar && (
48-
<li key={`bcl-${i}`}>
49-
{meta.redirect ? (
50-
<a
51-
href={meta.redirect}
52-
className={'link'}
53-
target={
54-
meta.redirectTarget ? meta.redirectTarget : '_self'
55-
}
56-
>
57-
{meta.title ? meta.title : name}
58-
</a>
59-
) : (
60-
<Link
61-
to={`${meta.path || slugify(`/${name}`)}`}
62-
className={'link'}
63-
>
64-
{meta.title ? meta.title : name}
65-
</Link>
66-
)}
67-
</li>
68-
),
69-
)}
70-
</ul>
47+
{remarkNode ? (
48+
<>
49+
<DocPageTitleGroup
50+
title={remarkNode.frontmatter.title}
51+
articleSrc={remarkNode.frontmatter.fileOrigin}
52+
heading={remarkNode.frontmatter.heading}
53+
/>
54+
<DocPageContent
55+
label={codeStyles.codeContainer}
56+
content={remarkNode.body}
57+
version={version}
58+
/>
59+
</>
60+
) : (
61+
<>
62+
<Heading className={styles.title}>{title}</Heading>
63+
<ul className={styles.sectionList}>
64+
{childrenToList(directChildren).map(
65+
({ meta, name }, i) =>
66+
!meta.hideFromSidebar && (
67+
<li key={`bcl-${i}`}>
68+
{meta.redirect ? (
69+
<a
70+
href={meta.redirect}
71+
className={'link'}
72+
target={
73+
meta.redirectTarget
74+
? meta.redirectTarget
75+
: '_self'
76+
}
77+
>
78+
{meta.title ? meta.title : name}
79+
</a>
80+
) : (
81+
<Link
82+
to={`${meta.path || slugify(`/${name}`)}`}
83+
className={'link'}
84+
>
85+
{meta.title ? meta.title : name}
86+
</Link>
87+
)}
88+
</li>
89+
),
90+
)}
91+
</ul>
92+
</>
93+
)}
7194
</div>
7295
</DocLayout>
7396
</LocaleProvider>
@@ -76,11 +99,12 @@ const BreadcrumbsStubPage = (props) => {
7699

77100
export default BreadcrumbsStubPage;
78101

79-
export const Head = ({ pageContext: { title, version } }) => {
102+
export const Head = ({ pageContext: { title, version, remarkNode } }) => {
80103
const pageMetaData = {
81104
data: {
82105
title,
83106
description: ' ',
107+
robots: remarkNode?.frontmatter.robots,
84108
},
85109
};
86110

0 commit comments

Comments
 (0)