Giter Club home page Giter Club logo

vue-highlight.js's Introduction

Vue Highlight.js

license vue 2 npm npm Travis Codacy grade TSLint

๐Ÿ“œ Highlight.js syntax highlighter component for Vue.

โš™๏ธ Installation

Via npm:

npm

npm install highlight.js vue-highlight.js

Or Yarn:

yarn add highlight.js vue-highlight.js

For TypeScript, Please install @types/highlight.js.

npm install --save-dev @types/highlight.js
# or
yarn add --dev @types/highlight.js

๐ŸŽฌ Demo

Go to https://gluons.github.io/vue-highlight.js

๐Ÿ›‚ Usage

Main file:

There are 2 ways to import Highlight.js languages.

  1. Import only languages that you want.

    import Vue from 'vue';
    import VueHighlightJS from 'vue-highlight.js';
    
    // Highlight.js languages (Only required languages)
    import css from 'highlight.js/lib/languages/css';
    import javascript from 'highlight.js/lib/languages/javascript';
    import vue from 'vue-highlight.js/lib/languages/vue';
    
    /*
    * Import Highlight.js theme
    * Find more: https://highlightjs.org/static/demo/
    */
    import 'highlight.js/styles/default.css';
    
    import App from './App';
    
    /*
    * Use Vue Highlight.js
    */
    Vue.use(VueHighlightJS, {
    	// Register only languages that you want
    	languages: {
    		css,
    		javascript,
    		vue
    	}
    });
    
    new Vue({
    	el: '#app',
    	render: h => h(App)
    });
  2. Import all languages.

    import Vue from 'vue';
    import VueHighlightJS from 'vue-highlight.js';
    
    // Highlight.js languages (All languages)
    import 'vue-highlight.js/lib/allLanguages'
    
    /*
    * Import Highlight.js theme
    * Find more: https://highlightjs.org/static/demo/
    */
    import 'highlight.js/styles/default.css';
    
    import App from './App';
    
    /*
    * Use Vue Highlight.js
    */
    Vue.use(VueHighlightJS);
    
    new Vue({
    	el: '#app',
    	render: h => h(App)
    });

Vue file:

<template>
	<div id="app">
		<!-- Code Block -->
		<highlight-code lang="javascript">
			let str = 'Hello, World!';
			console.log(str);
		</highlight-code>

		<!-- Inline Code Block -->
		<highlight-code lang="javascript" inline>alert('Hello, World!');</highlight-code>
	</div>
</template>

<script>
// JavaScript...
</script>

<style>
/* StyleSheet... */
</style>

โ›• Plugin Options

languages

Type: { [name: string]: HLJSLang }
Default: {}

Highlight.js languages.
Add the languages that you want to use here.

name is the name of language to register with Highlight.js' registerLanguage(name, language) API.

See https://github.com/isagalaev/highlight.js#commonjs about importing each language from highlight.js.

๐Ÿ“š API

<highlight-code>

Highlight.js code block.

๐Ÿ”ฐ Slots

Static code content.

๐Ÿ”ฐ Properties

lang

Type: String

Highlight.js language.

inline

Type: Boolean
Default: false

Enable inline code block when set it to true.

code

Type: String

Code content in code block.

You can use this prop if you want to bind code content to your data source.
It's useful for dynamic code content.

Component will ignore slot static content if you use this.

auto

Type: Boolean

Enable auto detecting code language.

Code will be detected by highlight.js' highlightAuto function.

auto will work well when you import all Highlight.js languages.

Component will ignore lang prop if you use auto.

โ“ FAQ

  • How to write HTML code inside slot?

    You have to escape all HTML tags before add it into slot.
    If you didn't do that, browser will interpret those tags as HTML element.
    โ„น๏ธ See isagalaev/highlight.js#866

    If you use code property instead of slot, you don't need to worry about this.
    Vue Highlight.js will automatically escape it for you.

  • Why did I get SyntaxError: Unterminated template literal error when used <script></script> in code property?

    If you add </script> at anywhere inside script tag, although it's a string inside quotes, it will always close the script tag.
    โ„น๏ธ See "Unterminated template literal" syntax error when literal contains script tag

vue-highlight.js's People

Contributors

gluons avatar dependabot[bot] avatar github-actions[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.