Как в Gridsome добавить локальные файлы разметки в слой GraphQL, чтобы можно было добавить graphql в компоненты vue?
На момент написания Gridsome документация по добавлению данных из локальных файлы пусты.
Как в Gridsome добавить локальные файлы разметки в слой GraphQL, чтобы можно было добавить graphql в компоненты vue?
На момент написания Gridsome документация по добавлению данных из локальных файлы пусты.
Стартовый блог также имеет рабочую реализацию: https://github.com/gridsome/gridsome-starter-blog/blob/master/gridsome.config.js
В репозитории gridsome для source-filesystem
есть несколько документов, которые могут помочь: https://github.com/gridsome/gridsome/tree/master/packages/source-filesystem
Документы, импортированные сюда на случай, если в будущем ссылка не будет работать (но ссылка, скорее всего, будет более актуальной).
Преобразуйте файлы в контент, который можно получить с помощью GraphQL в ваших компонентах.
yarn add @gridsome/source-filesystem
npm install @gridsome/source-filesystem
module.exports = {
plugins: [
{
use: '@gridsome/source-filesystem',
options: {
path: 'blog/**/*.md',
typeName: 'BlogPost',
route: '/blog/:year/:month/:day/:slug'
}
}
]
}
Источник файловой системы также потребует преобразователя для анализа файлов. В приведенном выше примере ищется набор файлов Markdown, чтобы позволить Gridsome понять содержимое файлов, необходимо установить @ gridsome / transformer-comment в качестве зависимости разработчика в вашем проекте. Gridsome автоматически преобразует файлы за вас, если в вашем package.json
.
string
обязательноГде искать файлы. Должен быть глобальный путь.
typeNamestring
'FileNode'
Тип GraphQL и имя шаблона. Файл .vue
в src/templates
должен соответствовать typeName
, чтобы для него был шаблон.
string
Определите динамический маршрут, если ваш источник может иметь определенную структуру имени пути. Это сгенерирует единый маршрут для всех узлов из этого источника. Возможные параметры пути: year
, month
, day
, slug
или любое значение настраиваемого поля. Если не указано, маршрут для каждого файла будет сгенерирован на основе их пути и имени файла. Подробнее о параметрах маршрута.
object
Определите поля, которые будут иметь ссылку на другой узел. Ожидается, что указанный typeName
существует. Но тип контента также можно создать автоматически, если вы установите create: true
. Подробнее о ссылках.
{
refs: {
// Reference to existing authors by id.
author: 'Author',
// Create a Tag content type and its nodes automatically.
tags: {
typeName: 'Tag',
route: '/tag/:id',
create: true
}
}
}
index
Array
['index']
Определите, какие файлы считать индексными. Эти файлы не будут указывать их имена в пути их маршрута и станут основным index.html
файлом каталога. Убедитесь, что существует только один возможный индексный файл для каждого каталога, если определено несколько имен индексов.