Skip to content

Commit

Permalink
#16 Упрощение contentlayer.config.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
khusamov committed Aug 20, 2023
1 parent ee6cf4b commit 3c4b773
Showing 1 changed file with 60 additions and 56 deletions.
116 changes: 60 additions & 56 deletions contentlayer.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,28 @@
import {MDXOptions} from '@contentlayer/core'
import {defineDocumentType, makeSource} from 'contentlayer/source-files'
import rehypePrettyCode from 'rehype-pretty-code'
import remarkMdxImages from 'remark-mdx-images'

export const SiteConfig = defineDocumentType(
() => (
{
name: 'SiteConfig',
filePathPattern: `site.yaml`,
isSingleton: true,
fields: {
title: {
type: 'string',
required: true
},
description: {
type: 'string',
required: true
}
}
}
)
)

export const Post = defineDocumentType(
() => (
{
Expand All @@ -24,69 +45,52 @@ export const Post = defineDocumentType(
)
)

export const SiteConfig = defineDocumentType(
() => (
{
name: 'SiteConfig',
filePathPattern: `site.yaml`,
isSingleton: true,
fields: {
title: {
type: 'string',
required: true
},
description: {
type: 'string',
required: true
/**
* @link https://www.contentlayer.dev/docs/sources/files/mdx
*/
const mdx: MDXOptions = {
rehypePlugins: [
[
// https://rehype-pretty-code.netlify.app/
// https://github.com/atomiks/rehype-pretty-code
rehypePrettyCode,
{
keepBackground: false,
theme: {
// https://unpkg.com/browse/[email protected]/themes/
dark: 'github-dark',
light: 'github-light'
}
}
]
],
remarkPlugins: [
remarkMdxImages
],

/**
* Встраивание изображений в contentlayer не реализовано. Обсуждение см. на странице https://github.com/contentlayerdev/contentlayer/issues/11
* Сейчас изображения встраиваются в страницу (опция dataurl). Но можно сохранять и в файл (опция file).
* @link https://github.com/kentcdodds/mdx-bundler#image-bundling
* @param options
* @returns {any}
*/
esbuildOptions: options => {
// Set the `outdir` to a public location for this bundle.
// options.outdir = '/users/you/site/public/img/about' // Не ясно относительно чего указывать путь.
options.loader = {
...options.loader,
'.jpg': 'dataurl'
}
)
)
return options
}
}

// https://www.contentlayer.dev/docs/reference/source-files/make-source
export default makeSource(
{
mdx,
contentDirPath: 'data2',
documentTypes: [Post, SiteConfig],

// https://www.contentlayer.dev/docs/sources/files/mdx
mdx: {
rehypePlugins: [
[
// https://rehype-pretty-code.netlify.app/
// https://github.com/atomiks/rehype-pretty-code
rehypePrettyCode,
{
keepBackground: false,
theme: {
// https://unpkg.com/browse/[email protected]/themes/
dark: 'github-dark',
light: 'github-light'
}
}
]
],
remarkPlugins: [
remarkMdxImages
],

/**
* Встраивание изображений в contentlayer не реализовано. Обсуждение см. на странице https://github.com/contentlayerdev/contentlayer/issues/11
* Сейчас изображения встраиваются в страницу (опция dataurl). Но можно сохранять и в файл (опция file).
* @link https://github.com/kentcdodds/mdx-bundler#image-bundling
* @param options
* @returns {any}
*/
esbuildOptions: options => {
// Set the `outdir` to a public location for this bundle.
// options.outdir = '/users/you/site/public/img/about' // Не ясно относительно чего указывать путь.
options.loader = {
...options.loader,
'.jpg': 'dataurl'
}
return options
}
}
documentTypes: [Post, SiteConfig]
}
)

0 comments on commit 3c4b773

Please sign in to comment.