storipress/karbon

View on GitHub
packages/playground/nuxt.config.ts

Summary

Maintainability
A
0 mins
Test Coverage
// https://v3.nuxtjs.org/api/configuration/nuxt.config
import {
  createArticleRoute,
  createAuthorRoute,
  createDeskRoute,
  createResourceRoute,
  createTagCollectionRoute,
  createTagRoute,
} from '@storipress/karbon/helper'

export default defineNuxtConfig({
  app: {
    // baseURL: '/blog/',
  },
  devtools: {
    enabled: true,

    experimental: {
      timeline: true,
    },

    timeline: {
      enabled: true,
    },
  },
  modules: ['@storipress/karbon', '@nuxtjs/tailwindcss', '@vueuse/nuxt'],
  build: {
    transpile: ['@storipress/vue-advertising'],
  },
  nitro: {
    minify: false,
  },
  routeRules: {
    '/posts/*': { swr: true },
  },
  runtimeConfig: {
    storipress: {
      apiHost: process.env.NUXT_KARBON_API_HOST,
      apiToken: process.env.NUXT_KARBON_API_TOKEN,
      clientId: process.env.NUXT_KARBON_CLIENT_ID,
      stripeKey: process.env.NUXT_KARBON_STRIPE_KEY,
      searchKey: process.env.NUXT_KARBON_SEARCH_KEY,
      searchDomain: process.env.NUXT_KARBON_SEARCH_DOMAIN,
      encryptKey: process.env.NUXT_KARBON_ENCRYPT_KEY,
    },
    public: {
      trailingSlash: Boolean(process.env.NUXT_PUBLIC_TRAILING_SLASH) || false,
      titleSeparator: process.env.NUXT_PUBLIC_TITLE_SEPARATOR || '|',
      siteName: process.env.NUXT_PUBLIC_SITE_NAME || 'Karbon',
      siteUrl: process.env.NUXT_PUBLIC_SITE_URL || 'http://localhost:3000/',
      siteDescription: process.env.NUXT_PUBLIC_SITE_URL || 'My publication',
      language: process.env.NUXT_PUBLIC_LANGUAGE || 'en',
    },
  },

  karbon: {
    flags: {
      lazySearch: true,
    },
    fullStatic: false,
    seo: [
      {
        preset: 'basic',
        options: {
          twitterCard: 'summary_large_image',
        },
      },
      {
        provider: './karbon/seo/example.ts',
      },
    ],
    resources: {
      article: createArticleRoute('/posts/{id}', { meta: { foo: 'bar' } }),
      desk: createDeskRoute('/desks/{id}'),
      author: createAuthorRoute('/author/{id}'),
      tag: createTagRoute('/tags/{id}'),
      collection: createTagCollectionRoute('/collection/{slug}', 'taggroup'),
      collectionTwo: createResourceRoute({
        resource: 'tag',
        groupKey: 'taggroup',
        url: '/collection-2/{id}',
      }),
    },
    paywall: {
      logo: './image/favicon.png',
    },
  },
})