diff --git a/docs/language-integration.md b/docs/language-integration.md index ed05fab..9595b15 100644 --- a/docs/language-integration.md +++ b/docs/language-integration.md @@ -7,9 +7,7 @@ These optional entry points connect language labels to the definitions you impor ```ts import { tokenize, render } from '@vortexlabs/kirari/core' import { createRegistry } from '@vortexlabs/kirari/registry' -import { javascript } from '@vortexlabs/kirari/languages/javascript' -import { typescript } from '@vortexlabs/kirari/languages/typescript' -import { python } from '@vortexlabs/kirari/languages/python' +import { javascript, typescript, python } from '@vortexlabs/kirari/languages' const registry = createRegistry([javascript, typescript, python]) const source = 'const answer: number = 42' @@ -51,9 +49,7 @@ Custom language names work without extra configuration, including as filename ex import { tokenize, render } from '@vortexlabs/kirari/core' import { createRegistry } from '@vortexlabs/kirari/registry' import { createMarkdown } from '@vortexlabs/kirari/markdown' -import { javascript } from '@vortexlabs/kirari/languages/javascript' -import { python } from '@vortexlabs/kirari/languages/python' -import { json } from '@vortexlabs/kirari/languages/json' +import { javascript, python, json } from '@vortexlabs/kirari/languages' const markdown = createMarkdown(createRegistry([javascript, python, json])) const source = '# Example\n```js\nconst answer = 42\n```\n' diff --git a/docs/streaming.md b/docs/streaming.md index 0533809..cebc161 100644 --- a/docs/streaming.md +++ b/docs/streaming.md @@ -6,7 +6,7 @@ classifications, so patches replace a suffix instead of blindly appending tokens ```ts import { render, type Token } from '@vortexlabs/kirari/core' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' import { createTokenStream, type TokenPatch } from '@vortexlabs/kirari/stream' const stream = createTokenStream(javascript) diff --git a/packages/kirari/README.md b/packages/kirari/README.md index 108c313..cbd4b6c 100644 --- a/packages/kirari/README.md +++ b/packages/kirari/README.md @@ -52,7 +52,7 @@ JSX and TSX have separate definitions, including markup and embedded expressions ```ts import { highlight } from '@vortexlabs/kirari' -import { tsx } from '@vortexlabs/kirari/languages/tsx' +import { tsx } from '@vortexlabs/kirari/languages' const html = highlight('', { language: tsx }) ``` @@ -61,7 +61,7 @@ For a Python-only bundle, import the language-independent core: ```ts import { tokenize, render } from '@vortexlabs/kirari/core' -import { python } from '@vortexlabs/kirari/languages/python' +import { python } from '@vortexlabs/kirari/languages' const html = render(tokenize('answer = 42', python)) ``` @@ -162,7 +162,7 @@ These features use separate entrypoints and are absent from the default bundle: ```ts import { tokenize } from '@vortexlabs/kirari/core' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' import { renderDecorated } from '@vortexlabs/kirari/decorations' import { createRegistry } from '@vortexlabs/kirari/registry' import { createMarkdown } from '@vortexlabs/kirari/markdown' @@ -203,7 +203,7 @@ highlights Markdown source; the Rehype plugin integrates with document rendering ```ts import { highlight } from '@vortexlabs/kirari' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' import type { Language } from '@vortexlabs/kirari' const projectJavaScript: Language = { diff --git a/packages/react/README.md b/packages/react/README.md index 7c7ec1c..35e5aec 100644 --- a/packages/react/README.md +++ b/packages/react/README.md @@ -19,7 +19,7 @@ Requires React 19. Kirari is a peer dependency. ```tsx import { Code } from '@vortexlabs/kirari-react' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { typescript } from '@vortexlabs/kirari/languages' import '@vortexlabs/kirari/theme.css' export const CodeExample = () => ( @@ -63,7 +63,7 @@ Line numbers are CSS: import { Code } from '@vortexlabs/kirari-react' import { useTokenStream } from '@vortexlabs/kirari-react/stream' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' import '@vortexlabs/kirari/theme.css' export const StreamExample = () => { diff --git a/packages/rehype/README.md b/packages/rehype/README.md index 568d3c4..c1a6539 100644 --- a/packages/rehype/README.md +++ b/packages/rehype/README.md @@ -29,8 +29,7 @@ import remarkParse from 'remark-parse' import remarkRehype from 'remark-rehype' import rehypeStringify from 'rehype-stringify' import rehypeKirari from '@vortexlabs/kirari-rehype' -import { javascript } from '@vortexlabs/kirari/languages/javascript' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { javascript, typescript } from '@vortexlabs/kirari/languages' const processor = unified() .use(remarkParse) @@ -59,7 +58,7 @@ Pass the same plugin to the MDX compiler's `rehypePlugins` option: ```ts import { compile } from '@mdx-js/mdx' import rehypeKirari from '@vortexlabs/kirari-rehype' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' const markdown = '```js\nconst answer = 42\n```' const compiled = await compile(markdown, { @@ -123,7 +122,7 @@ The `lineClassName` callback can append your own classes: ```ts import type { Options } from '@vortexlabs/kirari-rehype' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' const options = { languages: [javascript], diff --git a/sites/docs/content/api.md b/sites/docs/content/api.md index 5a59ab6..50b08fc 100644 --- a/sites/docs/content/api.md +++ b/sites/docs/content/api.md @@ -24,6 +24,7 @@ Returns escaped HTML from readonly tokens. Custom classes append to Kirari’s s | `@vortexlabs/kirari/decorations` | [renderDecorated](/docs/decorations/), Decoration, DecoratedRenderOptions | | `@vortexlabs/kirari/registry` | [createRegistry](/docs/markdown/), LanguageRegistry | | `@vortexlabs/kirari/markdown` | [createMarkdown(registry)](/docs/markdown/) | +| `@vortexlabs/kirari/languages` | Every language definition as a named export | | `@vortexlabs/kirari/languages/*` | One named language definition | | `@vortexlabs/kirari/theme.css` | Optional theme, driven by CSS variables | | `@vortexlabs/kirari-rehype` | [Optional Markdown and MDX plugin](/docs/rehype/), Options | diff --git a/sites/docs/content/grammars.md b/sites/docs/content/grammars.md index b50968c..a50a41c 100644 --- a/sites/docs/content/grammars.md +++ b/sites/docs/content/grammars.md @@ -5,7 +5,7 @@ Extend definitions with your own rules and categories. Copy a definition and put your rules first. Each rule matches at the current source position; earlier rules win. ```js -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' import type { Language } from '@vortexlabs/kirari' const projectJavaScript: Language = { diff --git a/sites/docs/content/languages.md b/sites/docs/content/languages.md index 9b13582..323c0af 100644 --- a/sites/docs/content/languages.md +++ b/sites/docs/content/languages.md @@ -8,60 +8,62 @@ Import from `/core` to ship only Python. The main entry always bundles JavaScrip ```js import { tokenize, render } from '@vortexlabs/kirari/core' -import { python } from '@vortexlabs/kirari/languages/python' +import { python } from '@vortexlabs/kirari/languages' const html = render(tokenize('print("Hello, world!")', python)) ``` -| Language | Import | +| Language | Export | | --- | --- | -| C | `@vortexlabs/kirari/languages/c` | -| C# | `@vortexlabs/kirari/languages/csharp` | -| C++ | `@vortexlabs/kirari/languages/cpp` | -| Clojure | `@vortexlabs/kirari/languages/clojure` | -| CSS | `@vortexlabs/kirari/languages/css` | -| Dart | `@vortexlabs/kirari/languages/dart` | -| Diff | `@vortexlabs/kirari/languages/diff` | -| Dockerfile | `@vortexlabs/kirari/languages/dockerfile` | -| Dotenv | `@vortexlabs/kirari/languages/dotenv` | -| Elixir | `@vortexlabs/kirari/languages/elixir` | -| GLSL | `@vortexlabs/kirari/languages/glsl` | -| Go | `@vortexlabs/kirari/languages/go` | -| GraphQL | `@vortexlabs/kirari/languages/graphql` | -| Groovy | `@vortexlabs/kirari/languages/groovy` | -| HCL | `@vortexlabs/kirari/languages/hcl` | -| HTML | `@vortexlabs/kirari/languages/html` | -| INI | `@vortexlabs/kirari/languages/ini` | -| Java | `@vortexlabs/kirari/languages/java` | -| JavaScript | `@vortexlabs/kirari/languages/javascript` | -| JSON | `@vortexlabs/kirari/languages/json` | -| JSONC | `@vortexlabs/kirari/languages/jsonc` | -| JSX | `@vortexlabs/kirari/languages/jsx` | -| Julia | `@vortexlabs/kirari/languages/julia` | -| Kotlin | `@vortexlabs/kirari/languages/kotlin` | -| Lua | `@vortexlabs/kirari/languages/lua` | -| Makefile | `@vortexlabs/kirari/languages/makefile` | -| Markdown | `@vortexlabs/kirari/languages/markdown` | -| Nginx | `@vortexlabs/kirari/languages/nginx` | -| PHP | `@vortexlabs/kirari/languages/php` | -| Plain text | `@vortexlabs/kirari/languages/plaintext` | -| PowerShell | `@vortexlabs/kirari/languages/powershell` | -| Protocol Buffers | `@vortexlabs/kirari/languages/protobuf` | -| Python | `@vortexlabs/kirari/languages/python` | -| R | `@vortexlabs/kirari/languages/r` | -| Ruby | `@vortexlabs/kirari/languages/ruby` | -| Rust | `@vortexlabs/kirari/languages/rust` | -| Scala | `@vortexlabs/kirari/languages/scala` | -| Shell | `@vortexlabs/kirari/languages/shell` | -| SQL | `@vortexlabs/kirari/languages/sql` | -| Svelte | `@vortexlabs/kirari/languages/svelte` | -| Swift | `@vortexlabs/kirari/languages/swift` | -| TOML | `@vortexlabs/kirari/languages/toml` | -| TSX | `@vortexlabs/kirari/languages/tsx` | -| TypeScript | `@vortexlabs/kirari/languages/typescript` | -| Vue | `@vortexlabs/kirari/languages/vue` | -| XML | `@vortexlabs/kirari/languages/xml` | -| YAML | `@vortexlabs/kirari/languages/yaml` | -| Zig | `@vortexlabs/kirari/languages/zig` | +| C | `c` | +| C# | `csharp` | +| C++ | `cpp` | +| Clojure | `clojure` | +| CSS | `css` | +| Dart | `dart` | +| Diff | `diff` | +| Dockerfile | `dockerfile` | +| Dotenv | `dotenv` | +| Elixir | `elixir` | +| GLSL | `glsl` | +| Go | `go` | +| GraphQL | `graphql` | +| Groovy | `groovy` | +| HCL | `hcl` | +| HTML | `html` | +| INI | `ini` | +| Java | `java` | +| JavaScript | `javascript` | +| JSON | `json` | +| JSONC | `jsonc` | +| JSX | `jsx` | +| Julia | `julia` | +| Kotlin | `kotlin` | +| Lua | `lua` | +| Makefile | `makefile` | +| Markdown | `markdown` | +| Nginx | `nginx` | +| PHP | `php` | +| Plain text | `plaintext` | +| PowerShell | `powershell` | +| Protocol Buffers | `protobuf` | +| Python | `python` | +| R | `r` | +| Ruby | `ruby` | +| Rust | `rust` | +| Scala | `scala` | +| Shell | `shell` | +| SQL | `sql` | +| Svelte | `svelte` | +| Swift | `swift` | +| TOML | `toml` | +| TSX | `tsx` | +| TypeScript | `typescript` | +| Vue | `vue` | +| XML | `xml` | +| YAML | `yaml` | +| Zig | `zig` | + +Every definition is a named export of `@vortexlabs/kirari/languages`; bundlers keep only the ones you import. Without a bundler, import one file instead, such as `@vortexlabs/kirari/languages/python`. JSX and TSX are separate definitions. Use `hcl` for Terraform and `shell` for common shell syntax. These are lexical grammars, not compiler parsers. diff --git a/sites/docs/content/markdown.md b/sites/docs/content/markdown.md index bdd0f16..470c283 100644 --- a/sites/docs/content/markdown.md +++ b/sites/docs/content/markdown.md @@ -8,8 +8,7 @@ Build a registry from the languages you import, then pass it to `createMarkdown` import { tokenize, render } from '@vortexlabs/kirari/core' import { createRegistry } from '@vortexlabs/kirari/registry' import { createMarkdown } from '@vortexlabs/kirari/markdown' -import { javascript } from '@vortexlabs/kirari/languages/javascript' -import { json } from '@vortexlabs/kirari/languages/json' +import { javascript, json } from '@vortexlabs/kirari/languages' const registry = createRegistry([javascript, json]) registry.resolve(' JS ') // javascript diff --git a/sites/docs/content/react.md b/sites/docs/content/react.md index 3658c9d..03ed494 100644 --- a/sites/docs/content/react.md +++ b/sites/docs/content/react.md @@ -10,7 +10,7 @@ npm install @vortexlabs/kirari @vortexlabs/kirari-react ```tsx import { Code } from '@vortexlabs/kirari-react' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { typescript } from '@vortexlabs/kirari/languages' import '@vortexlabs/kirari/theme.css' const source = 'const answer: number = 42' @@ -36,7 +36,7 @@ Text children join the way React renders text, so `{value}` interpolation works; 'use client' import { Code } from '@vortexlabs/kirari-react' import { useTokenStream } from '@vortexlabs/kirari-react/stream' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' export const StreamedCode = () => { const { tokens, write, end } = useTokenStream(javascript) diff --git a/sites/docs/content/rehype.md b/sites/docs/content/rehype.md index 53ac468..e1d222c 100644 --- a/sites/docs/content/rehype.md +++ b/sites/docs/content/rehype.md @@ -16,7 +16,7 @@ import remarkParse from 'remark-parse' import remarkRehype from 'remark-rehype' import rehypeStringify from 'rehype-stringify' import rehypeKirari from '@vortexlabs/kirari-rehype' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' const processor = unified() .use(remarkParse) @@ -35,7 +35,7 @@ Pass the languages you need; labels like `js` resolve via the registry. Nothing ```js import { compile } from '@mdx-js/mdx' import rehypeKirari from '@vortexlabs/kirari-rehype' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' const markdown = '```js\nconst answer = 42\n```' const compiled = await compile(markdown, { diff --git a/sites/docs/content/streaming.md b/sites/docs/content/streaming.md index 653bd92..76e47fb 100644 --- a/sites/docs/content/streaming.md +++ b/sites/docs/content/streaming.md @@ -7,7 +7,7 @@ Apply token patches as source chunks arrive. ```ts import { render } from '@vortexlabs/kirari/core' import { createTokenStream } from '@vortexlabs/kirari/stream' -import { javascript } from '@vortexlabs/kirari/languages/javascript' +import { javascript } from '@vortexlabs/kirari/languages' import type { Token } from '@vortexlabs/kirari/core' import type { TokenPatch } from '@vortexlabs/kirari/stream' diff --git a/sites/docs/src/components/code/ThemeCard/ThemeCard.tsx b/sites/docs/src/components/code/ThemeCard/ThemeCard.tsx index 03e32c4..890cdb0 100644 --- a/sites/docs/src/components/code/ThemeCard/ThemeCard.tsx +++ b/sites/docs/src/components/code/ThemeCard/ThemeCard.tsx @@ -1,6 +1,6 @@ import styles from './ThemeCard.module.css' import { highlight } from '@vortexlabs/kirari' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { typescript } from '@vortexlabs/kirari/languages' import { HighlightedCode } from '@/components/code/HighlightedCode' import type * as Types from './ThemeCard.types' diff --git a/sites/docs/src/features/compare/Compare/Compare.tsx b/sites/docs/src/features/compare/Compare/Compare.tsx index cc7547f..89c5486 100644 --- a/sites/docs/src/features/compare/Compare/Compare.tsx +++ b/sites/docs/src/features/compare/Compare/Compare.tsx @@ -1,7 +1,7 @@ import styles from './Compare.module.css' import type { CSSProperties } from 'react' import { highlight } from '@vortexlabs/kirari' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { typescript } from '@vortexlabs/kirari/languages' import { alternatives, features, diff --git a/sites/docs/src/features/landing/LandingPage/LandingPage.tsx b/sites/docs/src/features/landing/LandingPage/LandingPage.tsx index 716397d..f454942 100644 --- a/sites/docs/src/features/landing/LandingPage/LandingPage.tsx +++ b/sites/docs/src/features/landing/LandingPage/LandingPage.tsx @@ -1,6 +1,5 @@ import { highlight } from '@vortexlabs/kirari' -import { css } from '@vortexlabs/kirari/languages/css' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { css, typescript } from '@vortexlabs/kirari/languages' import { languageEntries } from '@/lib/languages' import { docsPath, routes } from '@/lib/navigation' import { site } from '@/lib/site' diff --git a/sites/docs/src/features/landing/StreamDemo/StreamDemo.tsx b/sites/docs/src/features/landing/StreamDemo/StreamDemo.tsx index 385b1b5..a1b8590 100644 --- a/sites/docs/src/features/landing/StreamDemo/StreamDemo.tsx +++ b/sites/docs/src/features/landing/StreamDemo/StreamDemo.tsx @@ -5,7 +5,7 @@ import styles from './StreamDemo.module.css' import { useCallback, useEffect, useRef, useState } from 'react' import { gsap } from 'gsap' import { highlight, render, type Token } from '@vortexlabs/kirari' -import { typescript } from '@vortexlabs/kirari/languages/typescript' +import { typescript } from '@vortexlabs/kirari/languages' import { createTokenStream } from '@vortexlabs/kirari/stream' import { streamSample } from './StreamDemo.constants' import { reducedMotion } from '@/client/motion' diff --git a/sites/docs/src/features/playground/Playground/Playground.tsx b/sites/docs/src/features/playground/Playground/Playground.tsx index 037a3e9..492484b 100644 --- a/sites/docs/src/features/playground/Playground/Playground.tsx +++ b/sites/docs/src/features/playground/Playground/Playground.tsx @@ -4,9 +4,7 @@ import styles from './Playground.module.css' import { useRouter } from 'next/navigation' import { Suspense, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { tokenize, render, tokenTypes, type Token } from '@vortexlabs/kirari/core' -import { css } from '@vortexlabs/kirari/languages/css' -import { javascript } from '@vortexlabs/kirari/languages/javascript' -import { tsx } from '@vortexlabs/kirari/languages/tsx' +import { css, javascript, tsx } from '@vortexlabs/kirari/languages' import { languageEntries } from '@/lib/languages' import { animateIn } from '@/client/motion' import { usageCode } from './Playground.utilities' diff --git a/sites/docs/src/lib/languages.ts b/sites/docs/src/lib/languages.ts index c1335ee..e1c1b57 100644 --- a/sites/docs/src/lib/languages.ts +++ b/sites/docs/src/lib/languages.ts @@ -1,52 +1,54 @@ import type * as Types from './languages.types' -import { c } from '@vortexlabs/kirari/languages/c' -import { csharp } from '@vortexlabs/kirari/languages/csharp' -import { cpp } from '@vortexlabs/kirari/languages/cpp' -import { clojure } from '@vortexlabs/kirari/languages/clojure' -import { css } from '@vortexlabs/kirari/languages/css' -import { dart } from '@vortexlabs/kirari/languages/dart' -import { diff } from '@vortexlabs/kirari/languages/diff' -import { dockerfile } from '@vortexlabs/kirari/languages/dockerfile' -import { dotenv } from '@vortexlabs/kirari/languages/dotenv' -import { elixir } from '@vortexlabs/kirari/languages/elixir' -import { glsl } from '@vortexlabs/kirari/languages/glsl' -import { go } from '@vortexlabs/kirari/languages/go' -import { graphql } from '@vortexlabs/kirari/languages/graphql' -import { groovy } from '@vortexlabs/kirari/languages/groovy' -import { hcl } from '@vortexlabs/kirari/languages/hcl' -import { html } from '@vortexlabs/kirari/languages/html' -import { ini } from '@vortexlabs/kirari/languages/ini' -import { java } from '@vortexlabs/kirari/languages/java' -import { javascript } from '@vortexlabs/kirari/languages/javascript' -import { json } from '@vortexlabs/kirari/languages/json' -import { jsonc } from '@vortexlabs/kirari/languages/jsonc' -import { jsx } from '@vortexlabs/kirari/languages/jsx' -import { julia } from '@vortexlabs/kirari/languages/julia' -import { kotlin } from '@vortexlabs/kirari/languages/kotlin' -import { lua } from '@vortexlabs/kirari/languages/lua' -import { makefile } from '@vortexlabs/kirari/languages/makefile' -import { markdown } from '@vortexlabs/kirari/languages/markdown' -import { nginx } from '@vortexlabs/kirari/languages/nginx' -import { php } from '@vortexlabs/kirari/languages/php' -import { plaintext } from '@vortexlabs/kirari/languages/plaintext' -import { powershell } from '@vortexlabs/kirari/languages/powershell' -import { protobuf } from '@vortexlabs/kirari/languages/protobuf' -import { python } from '@vortexlabs/kirari/languages/python' -import { r } from '@vortexlabs/kirari/languages/r' -import { ruby } from '@vortexlabs/kirari/languages/ruby' -import { rust } from '@vortexlabs/kirari/languages/rust' -import { scala } from '@vortexlabs/kirari/languages/scala' -import { shell } from '@vortexlabs/kirari/languages/shell' -import { sql } from '@vortexlabs/kirari/languages/sql' -import { svelte } from '@vortexlabs/kirari/languages/svelte' -import { swift } from '@vortexlabs/kirari/languages/swift' -import { toml } from '@vortexlabs/kirari/languages/toml' -import { tsx } from '@vortexlabs/kirari/languages/tsx' -import { typescript } from '@vortexlabs/kirari/languages/typescript' -import { vue } from '@vortexlabs/kirari/languages/vue' -import { xml } from '@vortexlabs/kirari/languages/xml' -import { yaml } from '@vortexlabs/kirari/languages/yaml' -import { zig } from '@vortexlabs/kirari/languages/zig' +import { + c, + csharp, + cpp, + clojure, + css, + dart, + diff, + dockerfile, + dotenv, + elixir, + glsl, + go, + graphql, + groovy, + hcl, + html, + ini, + java, + javascript, + json, + jsonc, + jsx, + julia, + kotlin, + lua, + makefile, + markdown, + nginx, + php, + plaintext, + powershell, + protobuf, + python, + r, + ruby, + rust, + scala, + shell, + sql, + svelte, + swift, + toml, + tsx, + typescript, + vue, + xml, + yaml, + zig, +} from '@vortexlabs/kirari/languages' export const languageEntries: readonly Types.LanguageEntry[] = [ {