Skip to content

Commit

Permalink
feat(website): add traling slash to all URLs
Browse files Browse the repository at this point in the history
  • Loading branch information
plouc committed Dec 23, 2021
1 parent 7d17732 commit d7e7926
Show file tree
Hide file tree
Showing 19 changed files with 55 additions and 34 deletions.
21 changes: 21 additions & 0 deletions website/gatsby-node.js
@@ -0,0 +1,21 @@
const replacePath = (_path) =>
_path === `/` ? _path : _path.replace(/\/$|$/, `/`)

const excludedPaths = [`/404.html`]

exports.onCreatePage = async ({ page, actions }) => {
const { createPage, deletePage } = actions

return new Promise(resolve => {
if(!excludedPaths.includes(page.path)) {
const oldPage = Object.assign({}, page)
page.path = replacePath(page.path)
if (page.path !== oldPage.path) {
deletePage(oldPage)
createPage(page)
}
}

resolve()
})
}
8 changes: 4 additions & 4 deletions website/src/components/HeaderNav.tsx
Expand Up @@ -9,9 +9,9 @@ import * as nav from '../data/nav'
export const HeaderNav = () => {
return (
<Container>
<HeaderInternalLink to="/about">About</HeaderInternalLink>
<HeaderInternalLink to="/references">References</HeaderInternalLink>
<HeaderInternalLink to="/components">Components</HeaderInternalLink>
<HeaderInternalLink to="/about/">About</HeaderInternalLink>
<HeaderInternalLink to="/references/">References</HeaderInternalLink>
<HeaderInternalLink to="/components/">Components</HeaderInternalLink>
<HeaderItem>
Guides
<HeaderSub>
Expand All @@ -22,7 +22,7 @@ export const HeaderNav = () => {
))}
</HeaderSub>
</HeaderItem>
<HeaderInternalLink to="/faq">FAQ</HeaderInternalLink>
<HeaderInternalLink to="/faq/">FAQ</HeaderInternalLink>
<HeaderExternalLink
href="https://nivo.rocks/storybook/"
target="_blank"
Expand Down
Expand Up @@ -20,7 +20,7 @@ const ComponentsExplorer = ({ location, navigate }) => {
if (term) params.append('q', term)
if (filter) params.append('filter', filter)

navigate(`/components?${params.toString()}`, {
navigate(`/components/?${params.toString()}`, {
replace: true,
})
},
Expand All @@ -32,7 +32,7 @@ const ComponentsExplorer = ({ location, navigate }) => {
if (term) params.append('q', term)
if (filter) params.append('filter', filter)

navigate(`/components?${params.toString()}`)
navigate(`/components/?${params.toString()}`)
},
[term, navigate]
)
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeBar.js
Expand Up @@ -18,7 +18,7 @@ const Home = ({ colors, nivoTheme, isHorizontal = false }) => {
: ['hot dogs', 'burgers', 'sandwich']

return (
<HomeItem to="/bar">
<HomeItem to="/bar/">
<ResponsiveBar
data={data}
indexBy="country"
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeCalendar.js
Expand Up @@ -9,7 +9,7 @@ const calendarData = generateDayCounts(calendarFrom, calendarTo)

const HomeCalendar = ({ colors, nivoTheme }) => {
return (
<HomeItem to="/calendar">
<HomeItem to="/calendar/">
<ResponsiveCalendarCanvas
margin={{ top: 20, right: 2, bottom: 2, left: 20 }}
from={calendarFrom}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeChord.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

const HomeChord = ({ colors }) => {
return (
<HomeItem to="/chord">
<HomeItem to="/chord/">
<ResponsiveChordCanvas
colors={colors}
padAngle={0.04}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeCirclePacking.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

export const HomeCirclePacking = ({ reversedColors }) => {
return (
<HomeItem to="/circle-packing">
<HomeItem to="/circle-packing/">
<ResponsiveCirclePackingCanvas
data={generateLibTree()}
id="name"
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeLine.js
Expand Up @@ -6,7 +6,7 @@ import { commonAxes } from './settings'

const HomeLine = ({ colors, theme, nivoTheme }) => {
return (
<HomeItem to="/line">
<HomeItem to="/line/">
<ResponsiveLine
margin={{ top: 10, bottom: 15, left: 24, right: 10 }}
data={generateDrinkStats(12)}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomePie.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

const HomePie = ({ colors, nivoTheme }) => {
return (
<HomeItem to="/pie">
<HomeItem to="/pie/">
<ResponsivePie
margin={{
top: 26,
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeRadar.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

const HomeRadar = ({ colors, nivoTheme }) => {
return (
<HomeItem to="/radar">
<HomeItem to="/radar/">
<ResponsiveRadar
{...generateWinesTastes()}
indexBy="taste"
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeSankey.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

const HomeSankey = ({ colors, nivoTheme }) => {
return (
<HomeItem to="/sankey">
<HomeItem to="/sankey/">
<ResponsiveSankey
margin={{ top: 0, right: 0, bottom: 0, left: 0 }}
data={generateSankeyData({ nodeCount: 11, maxIterations: 2 })}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeStream.js
Expand Up @@ -16,7 +16,7 @@ const generateStreamData = () =>

const HomeStream = ({ reversedColors, nivoTheme }) => {
return (
<HomeItem to="/stream">
<HomeItem to="/stream/">
<ResponsiveStream
data={generateStreamData()}
keys={range(streamDataLayerCount)}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeSunburst.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

const HomeSunburst = ({ colors }) => {
return (
<HomeItem to="/sunburst">
<HomeItem to="/sunburst/">
<ResponsiveSunburst
data={generateLibTree()}
identity="name"
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeSwarmPlot.js
Expand Up @@ -7,7 +7,7 @@ const HomeSwarmPlot = ({ reversedColors, nivoTheme }) => {
const data = generateSwarmPlotData(['thing'], { min: 50, max: 50 })

return (
<HomeItem to="/swarmplot">
<HomeItem to="/swarmplot/">
<ResponsiveSwarmPlotCanvas
data={data.data}
groups={data.groups}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeTreeMap.js
Expand Up @@ -5,7 +5,7 @@ import { HomeItem, HomeItemLabel } from './styled'

const HomeTreeMap = ({ colors, nivoTheme }) => {
return (
<HomeItem to="/treemap">
<HomeItem to="/treemap/">
<ResponsiveTreeMapCanvas
margin={{ top: 0, right: 0, bottom: 0, left: 0 }}
data={generateLibTree()}
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/home/HomeVoronoi.js
Expand Up @@ -15,7 +15,7 @@ voronoi.data = range(80).map(id => ({

const HomeVoronoi = ({ colors }) => {
return (
<HomeItem to="/voronoi">
<HomeItem to="/voronoi/">
<ResponsiveVoronoi
data={voronoi.data}
xDomain={voronoi.xDomain}
Expand Down
12 changes: 6 additions & 6 deletions website/src/data/nav.js
Expand Up @@ -374,26 +374,26 @@ export const allComponents = sortBy(all, 'label')
export const guides = [
{
label: 'Axes',
path: '/guides/axes',
path: '/guides/axes/',
},
{
label: 'Colors',
path: '/guides/colors',
path: '/guides/colors/',
},
{
label: 'Legends',
path: '/guides/legends',
path: '/guides/legends/',
},
{
label: 'Gradients',
path: '/guides/gradients',
path: '/guides/gradients/',
},
{
label: 'Patterns',
path: '/guides/patterns',
path: '/guides/patterns/',
},
{
label: 'Theming',
path: '/guides/theming',
path: '/guides/theming/',
},
]
12 changes: 6 additions & 6 deletions website/src/pages/about.tsx
Expand Up @@ -46,13 +46,13 @@ const About = () => {
<li>Exhaustive documentation</li>
<li>Isomorphic rendering</li>
<li>
<Link to="/components?filter=svg">SVG charts</Link>
<Link to="/components/?filter=svg">SVG charts</Link>
</li>
<li>
<Link to="/components?filter=html">HTML charts</Link>
<Link to="/components/?filter=html">HTML charts</Link>
</li>
<li>
<Link to="/components?filter=canvas">Canvas charts</Link>
<Link to="/components/?filter=canvas">Canvas charts</Link>
</li>
<li>
<a
Expand All @@ -64,16 +64,16 @@ const About = () => {
</a>
</li>
<li>
<Link to="/guides/legends">Legends</Link>
<Link to="/guides/legends/">Legends</Link>
</li>
<li>
<Link to="/guides/annotations">Annotations</Link>
</li>
<li>
<Link to="/guides/patterns">SVG patterns</Link>
<Link to="/guides/patterns/">SVG patterns</Link>
</li>
<li>
<Link to="/guides/gradients">Gradients</Link>
<Link to="/guides/gradients/">Gradients</Link>
</li>
<li>Responsive charts</li>
</ul>
Expand Down
6 changes: 3 additions & 3 deletions website/src/pages/faq.tsx
Expand Up @@ -25,14 +25,14 @@ const Faq = () => (
Yes, sure! nivo was built with this requirement in mind from the very beginning,
you even have an HTTP rendering API for most components :)
<br />
Just make sure to use <Link to="/components?filter=svg">SVG</Link> or{' '}
<Link to="/components?filter=html">HTML</Link> implementations.
Just make sure to use <Link to="/components/?filter=svg">SVG</Link> or{' '}
<Link to="/components/?filter=html">HTML</Link> implementations.
</p>
<h4>Can I use nivo with very large data set?</h4>
<p>
Yes you can! SVG/HTML do not perform well when dealing with thousands of nodes,
that's why you have some{' '}
<Link to="/components?filter=canvas">canvas based implementations</Link> which
<Link to="/components/?filter=canvas">canvas based implementations</Link> which
are able to handle larger quantities of data.
</p>
<h4>My component isn't rendering</h4>
Expand Down

0 comments on commit d7e7926

Please sign in to comment.