Nuxt SmartScript

Smart typography transformations for Nuxt - automatic superscript, subscript, and symbol formatting.
Features
- ๐ค Trademark, Registered & Copyright Symbols - Converts (TM) โ โข, (R) โ ยฎ, and (C) โ ยฉ
- ๐ข Ordinal Numbers - 1st, 2nd, 3rd with proper superscript
- ๐งช Chemical Formulas - H2O, CO2 with subscripts
- ๐ Mathematical Notation - x^2 superscript, x_1 subscript
- ๐ Full SSR/SSG Support - Server-side rendering and static generation (v0.4.0+)
- ๐ฏ 30+ HTML Elements - Headings, paragraphs, lists, tables, links, and more
- โก Performance Optimized - Debounced processing, batch updates, caching
- ๐จ Fully Customizable - CSS variables and configurable selectors
- โฟ Accessible - Proper ARIA labels for screen readers
- ๐ง TypeScript Support - Full type safety with module builder
Quick Setup
Install the module:
npm install @mitre/nuxt-smartscript
pnpm add @mitre/nuxt-smartscript
yarn add @mitre/nuxt-smartscript
Add to your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['@mitre/nuxt-smartscript']
})
That's it! The plugin will automatically process your content โจ
Architecture
The module follows a modular architecture for maintainability:
src/runtime/
โโโ plugin.ts # Main plugin orchestrator
โโโ composables/
โ โโโ useSmartScript.ts # Vue composable for components
โโโ smartscript/
โโโ types.ts # TypeScript interfaces
โโโ config.ts # Configuration management
โโโ patterns.ts # Regex patterns & matchers
โโโ processor.ts # Text processing logic
โโโ dom.ts # DOM manipulation utilities
โโโ engine.ts # Core processing engine
โโโ errors.ts # Error handling & recovery
โโโ index.ts # Public API exports
Configuration
Customize the behavior in nuxt.config.ts:
export default defineNuxtConfig({
modules: ['@mitre/nuxt-smartscript'],
smartscript: {
positioning: {
trademark: {
body: '-0.5em',
headers: '-0.7em'
},
registered: {
body: '-0.25em',
headers: '-0.45em'
}
},
performance: {
debounce: 100,
batchSize: 50
}
}
})
Vue Composable
Use in your components:
<script setup>
const { process, stats, isProcessing } = useSmartScript()
// Manually trigger processing
onMounted(() => {
process()
})
</script>
<template>
<div>
<p>Processed: {{ stats.total }} transformations</p>
</div>
</template>
Contributing
We welcome contributions! Please see CONTRIBUTING.md for detailed guidelines.
Development
This module is built using @nuxt/module-builder for proper TypeScript support and Nuxt ecosystem compatibility.
pnpm install
pnpm dev:prepare
pnpm dev
pnpm test
pnpm prepack
pnpm lint
For Contributors: This module uses a two-type system (ModuleOptions for users, SuperscriptConfig for runtime) to handle Nuxt's configuration transformation. See Contributing Guide and TypeScript Architecture for details.
License
Apache-2.0 - MITRE Corporation