Skip to content

Commit

Permalink
Add escape-xml
Browse files Browse the repository at this point in the history
  • Loading branch information
xcatliu committed Jul 17, 2019
1 parent 2abf0ba commit 548b5ad
Show file tree
Hide file tree
Showing 12 changed files with 167 additions and 156 deletions.
2 changes: 1 addition & 1 deletion docs/index.html
@@ -1 +1 @@
<html><head><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge"><title>AlloyTeam ESLint 规则</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="shortcut icon" type="image/png" href="alloy.f4abfc6f.png"><link rel="stylesheet" href="site.ed04ca62.css"></head><body> <div id="app"></div> <script src="site.09b46663.js"></script> </body></html>
<html><head><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge"><title>AlloyTeam ESLint 规则</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="shortcut icon" type="image/png" href="alloy.f4abfc6f.png"><link rel="stylesheet" href="site.ed04ca62.css"></head><body> <div id="app"></div> <script src="site.70352b90.js"></script> </body></html>
72 changes: 0 additions & 72 deletions docs/site.09b46663.js

This file was deleted.

1 change: 0 additions & 1 deletion docs/site.09b46663.js.map

This file was deleted.

72 changes: 72 additions & 0 deletions docs/site.70352b90.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/site.70352b90.js.map

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Expand Up @@ -68,6 +68,7 @@
"@types/react": "^16.8.18",
"@types/react-dom": "^16.8.4",
"@types/react-tooltip": "^3.9.3",
"@types/xml-escape": "^1.1.0",
"@typescript-eslint/eslint-plugin": "^1.10.2",
"@typescript-eslint/parser": "^1.10.2",
"axios": "^0.19.0",
Expand All @@ -92,7 +93,8 @@
"rimraf": "^2.6.3",
"ts-node": "^7.0.1",
"typescript": "^3.4.5",
"vue-eslint-parser": "^5.0.0"
"vue-eslint-parser": "^5.0.0",
"xml-escape": "^1.1.0"
},
"greenkeeper": {
"ignore": [
Expand Down
5 changes: 4 additions & 1 deletion scripts/build.ts
Expand Up @@ -7,6 +7,7 @@ import * as prettier from 'prettier';
import { CLIEngine, Linter } from 'eslint';
const cli = new CLIEngine({});
import insertTag from 'insert-tag';
import xmlEscape = require('xml-escape');

import {
RuleNamespaces,
Expand Down Expand Up @@ -253,7 +254,9 @@ class Builder {
eslintMessages.forEach(({ ruleId, message, line, column, endLine, endColumn }) => {
insertedBadExample = insertTag(
insertedBadExample,
`<mark class="eslint-error" data-tip="${message}<br/><span class='eslint-error-rule-id'>eslint(${ruleId})</span>">`,
`<mark class="eslint-error" data-tip="${xmlEscape(
`${message}<br/><span class='eslint-error-rule-id'>eslint(${ruleId})</span>`
)}">`,
[line - 1, column - 1, (endLine || line) - 1, (endColumn || column + 1) - 1]
);
});
Expand Down
96 changes: 48 additions & 48 deletions site/config/index.json

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions site/config/react.json
Expand Up @@ -321,7 +321,7 @@
"value": "error",
"description": "限制 jsx 中的大括号内部首尾换行符",
"category": "JSX-specific",
"badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span> <span class=\"token number\">1</span>\n<span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"Unexpected newline before '{'.<br/><span class='eslint-error-rule-id'>eslint(react/jsx-curly-newline)</span>\">}</mark></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> bar <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span>\n<span class=\"token number\">1</span> <span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"Expected newline before '}'.<br/><span class='eslint-error-rule-id'>eslint(react/jsx-curly-newline)</span>\">}</mark></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>",
"badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span> <span class=\"token number\">1</span>\n<span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"Unexpected newline before &apos;{&apos;.&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-curly-newline)&lt;/span&gt;\">}</mark></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> bar <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span>\n<span class=\"token number\">1</span> <span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"Expected newline before &apos;}&apos;.&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-curly-newline)&lt;/span&gt;\">}</mark></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>",
"goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">}</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token keyword\">let</span> bar <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span>\n <span class=\"token number\">1</span>\n<span class=\"token punctuation\">}</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>",
"fixable": true,
"reason": "要么首尾都换行,要么首尾都不换行"
Expand All @@ -339,7 +339,7 @@
],
"description": "大括号内前后禁止有空格",
"category": "JSX-specific",
"badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span> <span class=\"token attr-name\">width</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"There should be no space after '{'<br/><span class='eslint-error-rule-id'>eslint<mark class=\"eslint-error\" data-tip=\"There should be no space before '}'<br/><span class='eslint-error-rule-id'>eslint(react/jsx-curly-spacing)</span>\">(</mark>react/jsx-curly-spacing)</span>\">{</mark></span> <span class=\"token number\">100</span> <span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> bar <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">style</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"There should be no space after '{'<br/><span class='eslint-error-rule-id'>eslint(react/jsx-cu<mark class=\"eslint-error\" data-tip=\"There should be no space before '}'<br/><span class='eslint-error-rule-id'>eslint(react/jsx-curly-spacing)</span>\">r</mark>ly-spacing)</span>\">{</mark></span> <span class=\"token punctuation\">{</span> color<span class=\"token punctuation\">:</span> <span class=\"token string\">'red'</span> <span class=\"token punctuation\">}</span> <span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">;</span>",
"badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span> <span class=\"token attr-name\">width</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"There should be no space after &apos;{&apos;&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-curly-spacing)&lt;/span&gt;\">{</mark></span> <span class=\"token number\">100</span> <span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"There should be no space before &apos;}&apos;&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-curly-spacing)&lt;/span&gt;\">}</mark></span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> bar <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">style</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"There should be no space after &apos;{&apos;&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-curly-spacing)&lt;/span&gt;\">{</mark></span> <span class=\"token punctuation\">{</span> color<span class=\"token punctuation\">:</span> <span class=\"token string\">'red'</span> <span class=\"token punctuation\">}</span> <span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"There should be no space before &apos;}&apos;&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-curly-spacing)&lt;/span&gt;\">}</mark></span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">;</span>",
"goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span> <span class=\"token attr-name\">width</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token number\">100</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> bar <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">style</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> color<span class=\"token punctuation\">:</span> <span class=\"token string\">'red'</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">;</span>",
"fixable": true
},
Expand Down Expand Up @@ -374,7 +374,7 @@
"value": ["error", "syntax"],
"description": "必须使用 <></> 而不是 React.Fragment",
"category": "JSX-specific",
"badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Prefer fragment shorthand over React.Fragment<br/><span class='eslint-error-rule-id'>eslint(react/jsx-fragments)</span>\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">React.Fragment</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span><span class=\"token class-name\">React.Fragment</span></span><span class=\"token punctuation\">></span></span></mark><span class=\"token punctuation\">;</span>",
"badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Prefer fragment shorthand over React.Fragment&lt;br/&gt;&lt;span class=&apos;eslint-error-rule-id&apos;&gt;eslint(react/jsx-fragments)&lt;/span&gt;\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">React.Fragment</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span><span class=\"token class-name\">React.Fragment</span></span><span class=\"token punctuation\">></span></span></mark><span class=\"token punctuation\">;</span>",
"goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span></span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>",
"fixable": true,
"reason": "<></> 不需要额外引入 Fragment 组件"
Expand Down

0 comments on commit 548b5ad

Please sign in to comment.