4
4
*/
5
5
"use strict" ;
6
6
7
- const lodash = require ( "lodash" ) ;
8
- const fs = require ( "fs" ) ;
9
- const path = require ( "path" ) ;
10
-
11
7
//------------------------------------------------------------------------------
12
8
// Helpers
13
9
//------------------------------------------------------------------------------
14
10
15
- const pageTemplate = lodash . template ( fs . readFileSync ( path . join ( __dirname , "html-template-page.html" ) , "utf-8" ) ) ;
16
- const messageTemplate = lodash . template ( fs . readFileSync ( path . join ( __dirname , "html-template-message.html" ) , "utf-8" ) ) ;
17
- const resultTemplate = lodash . template ( fs . readFileSync ( path . join ( __dirname , "html-template-result.html" ) , "utf-8" ) ) ;
11
+ const encodeHTML = ( function ( ) {
12
+ const encodeHTMLRules = {
13
+ "&" : "&" ,
14
+ "<" : "<" ,
15
+ ">" : ">" ,
16
+ '"' : """ ,
17
+ "'" : "'"
18
+ } ;
19
+ const matchHTML = / [ & < > " ' ] / ug;
20
+
21
+ return function ( code ) {
22
+ return code
23
+ ? code . toString ( ) . replace ( matchHTML , m => encodeHTMLRules [ m ] || m )
24
+ : "" ;
25
+ } ;
26
+ } ( ) ) ;
27
+
28
+ const pageTemplate = require ( "./html-template-page.js" ) ;
29
+ const messageTemplate = require ( "./html-template-message.js" ) ;
30
+ const resultTemplate = require ( "./html-template-result.js" ) ;
18
31
19
32
/**
20
33
* Given a word and a count, append an s if count is not one.
@@ -80,7 +93,9 @@ function renderMessages(messages, parentIndex, rulesMeta) {
80
93
if ( rulesMeta ) {
81
94
const meta = rulesMeta [ message . ruleId ] ;
82
95
83
- ruleUrl = lodash . get ( meta , "docs.url" , null ) ;
96
+ if ( meta && meta . docs && meta . docs . url ) {
97
+ ruleUrl = meta . docs . url ;
98
+ }
84
99
}
85
100
86
101
return messageTemplate ( {
@@ -92,7 +107,7 @@ function renderMessages(messages, parentIndex, rulesMeta) {
92
107
message : message . message ,
93
108
ruleId : message . ruleId ,
94
109
ruleUrl
95
- } ) ;
110
+ } , encodeHTML ) ;
96
111
} ) . join ( "\n" ) ;
97
112
}
98
113
@@ -108,8 +123,7 @@ function renderResults(results, rulesMeta) {
108
123
color : renderColor ( result . errorCount , result . warningCount ) ,
109
124
filePath : result . filePath ,
110
125
summary : renderSummary ( result . errorCount , result . warningCount )
111
-
112
- } ) + renderMessages ( result . messages , index , rulesMeta ) ) . join ( "\n" ) ;
126
+ } , encodeHTML ) + renderMessages ( result . messages , index , rulesMeta ) ) . join ( "\n" ) ;
113
127
}
114
128
115
129
//------------------------------------------------------------------------------
0 commit comments