vue-code-highlight
Beautiful code syntax highlighting as Vue.js component.
Examples
https://codesandbox.io/s/vue-code-highlight-example-63h5m
![screenshot](https://github.com/elisiondesign/vue-code-highlight/raw/HEAD/public/screenshot2.png)
Usage
npm install vue-code-highlight --save
Now, you can use this module in two diferrent ways, as a component or as a directive.
Component
In any component:
import { component as VueCodeHighlight } from 'vue-code-highlight';
components:{
VueCodeHighlight,
...
}
<vue-code-highlight language="javascript">
<pre>
//Paste your code here
</pre>
</vue-code-highlight>
Props
Your content will be highlighted dynamically when it updates.
The <pre>
tag is required to preserve newline characters (They're stripped by default in Vue).
Window styles are already present in a component mode, but you will need to select and include a theme to properly highlight your code. (See the themes section.)
Directive
In your main file:
import VueCodeHighlight from 'vue-code-highlight';
Vue.use(VueCodeHighlight)
And then in any Vue component:
<div v-highlight >
...
</div>
All markup under the div element having the following structure will be syntax highlighted.
<pre class="language-javascript">
<code>
//your code goes here
</code>
</pre>
To give the highlighter a window look in a directive mode, also don't forget to include the ./node_modules/vue-code-highlight/themes/window.css
file somewhere in your app.
Themes
In order to visually higlight your code, you need to select a theme from ./node_modules/vue-code-highlight/themes/
and import it somewhere into your component/application. These are just regular prism themes, so feel free to improvise.
![themes](https://github.com/elisiondesign/vue-code-highlight/raw/HEAD/public/themes.png)
Other languages
Any of the supported languages in Prism may be used. To enable support
for them, you must import them explicitly as well as Prism's markup templating.
For example, to include PHP highlighting in your application:
import 'prism-es6/components/prism-markup-templating';
import 'prism-es6/components/prism-php';