A Svelte preprocessor that generates highlighted code with Prism.js. Inspired by: Bjorn Lu - Bending Svelte using pre-processors.
Install with your preferred package manager.
pnpm i -D @mhafemann/svelte-preprocessor-prism
Add the preprocessor to your svelte.config.js
file.
// svelte.config.js
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/kit/vite';
import sveltePrism from '@mhafemann/svelte-preprocessor-prism';
/** @type {import('@sveltejs/kit').Config} */
const config = {
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
// for more information about preprocessors
preprocess: [vitePreprocess({}), sveltePrism],
files: {
['$lib']: 'src/lib',
},
kit: {
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter(),
},
};
export default config;
Add the language-<language>
class to your <pre>
tag. The <code>
tag is optional.
Supports all Prism.js languages.
```svelte
<!-- +page.svelte -->
<script>
// ...
</script>
<pre class="language-css"><code>{`.test { padding: 0px; }`}</code></pre>
<pre class="language-treeview">
<code>
{`
let name = "mark";
function greet() {
let greeting = "hello";
console.log(greeting);
}
greet();
`}
</code>
</pre>
‼️ Escape any tags e.g.
</script>
-><\/script>
when the language is Svelte to prevent TypeScript errors.
Example output:
Dependency | Version |
---|---|
magic-string | ^0.30.1 |
prismjs | ^1.29.0 |
svelte | ^4.0.5 |