Hexta AIHexta AI

Shiki (Internal)

Manage the Shiki instances.

Overview

Hexta AI use its own Shiki factory API to manage internal Shiki instances.

You can customize it for special purposes like using fine-grained bundles, for example:

import { createShikiFactory } from 'hexta-core/highlight/shiki';

export const myShikiFactory = createShikiFactory({
  async init(options) {
    const { createHighlighter, createJavaScriptRegexEngine } = await import('shiki');

    return createHighlighter({
      langs: [],
      themes: [],
      langAlias: options?.langAlias,
      engine: createJavaScriptRegexEngine(),
    });
  },
});

Then pass it to different modules/features:

'use client';
import * as Base from 'hexta-ui/dynamic-codeblock.core';

export type DynamicCodeblockProps = Omit<Base.DynamicCodeblockProps, 'highlighter'>;

export function DynamicCodeBlock(props: DynamicCodeblockProps) {
  return <Base.DynamicCodeBlock highlighter={() => myShikiFactory.getOrInit()} {...props} />;
}

How is this guide?

On this page