Skip to content

</> Set of basic styled UI components to build powerful code blocks in Vue 🧩

License

Notifications You must be signed in to change notification settings

Hetari/vuejs-code-block

Repository files navigation

Vuejs Code Block

Enjoying my project? Please show your appreciation by starring it on GitHub! ⭐

NPM version

Important

For now this package has default themes, but in the future, it will be fully unstyled, allowing you to style it however you like.

Installation

To get started, install the package via npm:

npm install vuejs-code-block

Alternatively, if you're using Yarn:

yarn add vuejs-code-block

Basic Usage

Once installed, you can start using the CodeBlock component in your Vue 3 app to display syntax-highlighted code. Here’s a simple example:

<template>
  <CodeBlock
    :code="code"
    :numbered="true"
    :show-header="true"
    file-name="codeBlock.ts"
    language="ts"
    theme="dracula">
  </CodeBlock>
</template>

<script setup lang="ts">
  import { CodeBlock } from './components/code-block';
  const code = `const name =  'Vuejs Code Block';
const usrls = {
  github: 'https://github.com/hetari/vuejs-code-block',
  docs: 'https://hetari.github.io/vuejs-code-block/'
};`;
</script>

[!WARNING] WARNING ❗ Make sure the content of the codeExample string does NOT have leading spaces. The code should be formatted like this:

const codeExample = `
function greet(name) {
  console.log('Hello, ' + name);
}

greet('World');
`;

Avoid writing it with leading spaces like this:

const codeExample = `
  function greet(name) {
    console.log('Hello, ' + name);
  }

  greet('World');
`;

Incorrect formatting may cause unexpected whitespace in the code block.

Props:

Prop Type Required Default Description
code string Yes N/A The code you want to display, passed as a string.
language string Yes N/A Specifies the programming language for syntax highlighting.
theme string Yes N/A Specifies the theme to be used for syntax highlighting (light or dark).
asElement string No <pre> Defines the HTML element wrapping the code block (defaults to <pre>).
numbered boolean No false Displays line numbers when set to true.
showHeader boolean No true Displays the code block header (title, language icon, and copy button) when set to true.
file-name string No N/A The name of the file to be displayed in the header.

Themes:

Theme Name Image
Dracula Dracula Theme
Duotone Dark Duotone Dark Theme
Duotone Light Duotone Light Theme
GitHub GitHub Theme
Night Owl Night Owl Theme
None None
Oceanic Next Oceanic Next Theme
Prism Dark Prism Dark Theme
Prism Funky Prism Funky Theme
Prism Okaidia Prism Okaidia Theme
Prism Solarized Light Theme Prism Solarized Light
Prism Prism Theme
Prism Theme Coy Prism Theme Coy
Prism Tomorrow Prism Tomorrow Theme
Prism Twilight Prism Twilight Theme
Shades of Purple Shades of Purple
UltraMin UltraMin Theme
VS Dark VS Dark Theme