File tree Expand file tree Collapse file tree 2 files changed +47
-0
lines changed Expand file tree Collapse file tree 2 files changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ /* global Prism */
2
+ import { modifier } from 'ember-modifier' ;
3
+
4
+ export default modifier ( ( element , _ , { selector } ) => {
5
+ let elements = selector ? element . querySelectorAll ( selector ) : [ element ] ;
6
+
7
+ for ( let element of elements ) {
8
+ Prism . highlightElement ( element ) ;
9
+ }
10
+ } ) ;
Original file line number Diff line number Diff line change
1
+ import { module , test } from 'qunit' ;
2
+ import { setupRenderingTest } from 'ember-qunit' ;
3
+ import { render } from '@ember/test-helpers' ;
4
+ import { hbs } from 'ember-cli-htmlbars' ;
5
+
6
+ module ( 'Modifier | highlight-syntax' , function ( hooks ) {
7
+ setupRenderingTest ( hooks ) ;
8
+
9
+ test ( 'uses Prism.js to apply syntax highlighting' , async function ( assert ) {
10
+ await render ( hbs `
11
+ <pre class="language-rust" {{highlight-syntax}}>
12
+ #[macro_use]
13
+ extern crate bitflags;
14
+ </pre>
15
+ ` ) ;
16
+ assert . dom ( '.token' ) . exists ( ) ;
17
+ assert . dom ( '.keyword' ) . exists ( { count : 2 } ) ;
18
+ } ) ;
19
+
20
+ test ( 'accepts a `selector` argument' , async function ( assert ) {
21
+ await render ( hbs `
22
+ <div {{highlight-syntax selector=".b"}}>
23
+ <pre class="language-rust a">
24
+ #[macro_use]
25
+ extern crate bitflags;
26
+ </pre>
27
+ <pre class="language-rust b">
28
+ #[macro_use]
29
+ extern crate bitflags;
30
+ </pre>
31
+ </div>
32
+ ` ) ;
33
+ assert . dom ( '.a .token' ) . doesNotExist ( ) ;
34
+ assert . dom ( '.b .token' ) . exists ( ) ;
35
+ assert . dom ( '.b .keyword' ) . exists ( { count : 2 } ) ;
36
+ } ) ;
37
+ } ) ;
You can’t perform that action at this time.
0 commit comments