Node

Read and query content in a plain Node script.
Setting up your own script? Follow the Node integration guide step by step.
content.ts
import { fileURLToPath } from 'node:url'
import { comarkContent } from 'comark-content'
import fs from 'comark-content/sources/fs'
import sqlite from 'comark-content/database/sqlite-node'
import json from 'comark-content/plugins/json'
import yaml from 'comark-content/plugins/yaml'
import media from 'comark-content/plugins/media'
import sqlQuery from 'comark-content/plugins/sql-query'
import sqliteFullTextSearch from 'comark-content/plugins/sqlite-full-text-search'

const contentDir = fileURLToPath(new URL('./content', import.meta.url))

// One sqlite instance shared by the db-backed plugins (sql-query, full-text-search).
export const database = sqlite()

/**
 * A Content instance with every built-in plugin registered. The plugin methods
 * (`query`, `search`, `media`, …) are mixed into the returned type.
 */
export const content = comarkContent({
  source: fs(contentDir),
  plugins: [json(), yaml(), media(), sqlQuery({ database }), sqliteFullTextSearch({ database })],
})