Я пытаюсь создать сайт c, используя gatsby, который поддерживает два языка, мой wi sh - весь контент будет обрабатываться файлами уценки.
Я начал с плагина gatsby -intl используя это https://www.gatsbyjs.org/packages/gatsby-plugin-intl/ -работает отлично.
но я не могу понять, как использовать уценку, я думаю, потому что gatsby-plugin-intl меняет пути. когда я пытаюсь go на localhost: 8000 / blog, он меняется на localhost: 8000 / en / blog и выдает ошибку, что в шаблоне, что запрос graphql вернул ноль.
Я понимаю проблему, но Я не могу понять, как решить это. Я думаю, мне нужно сделать 2 файла уценок по одному для каждого языка и изменить gatsby- node.js, чтобы правильно управлять путями, но не уверен, как это сделать. Единственная информация, которую я нашел в Интернете, была https://hiddentao.com/archives/2019/05/07/building-a-multilingual-static-site-with-gatsby, но после выполнения его шагов я не работал
будет признателен за любую помощь
my gatsby- node.js:
const path = require(`path`)
exports.createPages = async ({ actions, graphql, reporter }) => {
const { createPage } = actions
const blogPostTemplate = path.resolve(`src/templates/post.js`)
const result = await graphql(`
{
allMarkdownRemark {
edges {
node {
frontmatter {
path
}
}
}
}
}
`)
// Handle errors
if (result.errors) {
reporter.panicOnBuild(`Error while running GraphQL query.`)
return
}
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
console.log("path:")
console.log(node.frontmatter.path)
createPage({
path: node.frontmatter.path,
component: blogPostTemplate,
context: {}, // additional data can be passed via context
})
})
}
мой шаблон:
// src/templates/post.js
import React from "react"
import { graphql } from "gatsby"
export default function Template({
// this prop will be injected by the GraphQL query below.
data, })
{
console.log(data)
const { markdownRemark } = data // data.markdownRemark holds your post data
const { frontmatter, html } = markdownRemark
return (
<div>
<h1>{frontmatter.title}</h1>
</div>
)
}
//$path which is a strings
export const pageQuery = graphql`
query ($path: String!) {
markdownRemark(frontmatter: { path: { eq: $path } }) {
html
frontmatter {
path
title
}
}
}
`
// )
// .then(res => {
// console.log("result")
// // console.log(pageQuery.data)
// })
и мой blog.md:
---
path: "/blog"
date: "2019-05-04"
title: "My first blog post"
---
this is the my markdown