1.0.1 • Published 1 year ago

@fratzinger/orama-plugin-astro v1.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year ago

Orama's Astro Plugin

Tests

This package is a (still experimental) Orama integration for Astro.

Usage

Configuring the Astro integration

// In `astro.config.mjs`
import orama from '@orama/plugin-astro'

// https://astro.build/config
export default defineConfig({
  integrations: [
    orama({
      // We can generate more than one DB, with different configurations
      mydb: {
        // Required. Only pages matching this path regex will be indexed
        pathMatcher: /blog\/[0-9]{4}\/[0-9]{2}\/[0-9]{2}\/.+$/,

        // Optional. 'english' by default
        language: 'spanish',

        // Optional. ['body'] by default. Use it to constraint what is used to
        // index a page.
        contentSelectors: ['h1', 'main']
      }
    })
  ]
})

When running the astro build command, a new DB file will be persisted in the dist/assets directory. For the particular case of this example, it will be saved in the file dist/assets/oramaDB_mydb.json.

Using generated DBs in your pages

To use the generated DBs in your pages, you can include a script in your <head> section, as the following one:

<head>
  <!-- Other stuff -->
  <script>
    // Astro will do the job of bundling everything for you
    import { getOramaDB, search } from "@orama/plugin-astro/client"

    // We load the DB that we generated at build time, this is an asynchronous
    // operation, so we must either await, or rely on `.then` calls.
    const db = await getOramaDB('mydb')

    // Now we can search inside our DB. Of course, feel free to use it in more
    // interesting ways.
    console.log('Search Results')
    console.log(search(db, { term: 'mySearchTerm' }))
  </script>
</head>

NOTE: For now, this plugin only supports readonly DBs. This might change in the future if there's demand for it.