From 96702b231cf8127e9cd94e181911e16642082205 Mon Sep 17 00:00:00 2001 From: ccloli Date: Sat, 15 Jul 2017 14:11:25 +0800 Subject: [PATCH 1/3] Fix parsing HTML/JSX tags to real elements --- packages/react-dev-utils/ansiHTML.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-dev-utils/ansiHTML.js b/packages/react-dev-utils/ansiHTML.js index 9f53cea67a3..2635e1c6ca8 100644 --- a/packages/react-dev-utils/ansiHTML.js +++ b/packages/react-dev-utils/ansiHTML.js @@ -78,7 +78,10 @@ function ansiHTML(txt) { result += ''; open = true; } - var part = contentParts[_index].replace('\r', ''); + var part = contentParts[_index] + .replace('\r', '') + .replace(//g, '>'); var color = colors[anserMap[fg]]; if (color != null) { result += '' + part + ''; From a45d456dda3a2bca31188e7ac2902bc677c64995 Mon Sep 17 00:00:00 2001 From: ccloli Date: Sun, 16 Jul 2017 03:26:18 +0800 Subject: [PATCH 2/3] Use `html-entities` to escape instead of pure `replace()` --- packages/react-dev-utils/ansiHTML.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/react-dev-utils/ansiHTML.js b/packages/react-dev-utils/ansiHTML.js index 2635e1c6ca8..90bf70374ee 100644 --- a/packages/react-dev-utils/ansiHTML.js +++ b/packages/react-dev-utils/ansiHTML.js @@ -10,6 +10,8 @@ 'use strict'; var Anser = require('anser'); +var Entities = require('html-entities').AllHtmlEntities; +var entities = new Entities(); // Color scheme inspired by https://chriskempson.github.io/base16/css/base16-github.css // var base00 = 'ffffff'; // Default Background @@ -61,7 +63,7 @@ var anserMap = { }; function ansiHTML(txt) { - var arr = new Anser().ansiToJson(txt, { + var arr = new Anser().ansiToJson(entities.encode(txt), { use_classes: true, }); @@ -78,10 +80,7 @@ function ansiHTML(txt) { result += ''; open = true; } - var part = contentParts[_index] - .replace('\r', '') - .replace(//g, '>'); + var part = contentParts[_index].replace('\r', ''); var color = colors[anserMap[fg]]; if (color != null) { result += '' + part + ''; From eb89d052378cf8aa9afd816dac4a3f9197f58c3f Mon Sep 17 00:00:00 2001 From: ccloli Date: Sun, 16 Jul 2017 03:27:13 +0800 Subject: [PATCH 3/3] Remove unnecessary HTML entity replacing --- packages/react-dev-utils/webpackHotDevClient.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/react-dev-utils/webpackHotDevClient.js b/packages/react-dev-utils/webpackHotDevClient.js index 78002b28efb..f2f206a5cd2 100644 --- a/packages/react-dev-utils/webpackHotDevClient.js +++ b/packages/react-dev-utils/webpackHotDevClient.js @@ -22,9 +22,7 @@ var SockJS = require('sockjs-client'); var stripAnsi = require('strip-ansi'); var url = require('url'); var formatWebpackMessages = require('./formatWebpackMessages'); -var Entities = require('html-entities').AllHtmlEntities; var ansiHTML = require('./ansiHTML'); -var entities = new Entities(); function createOverlayIframe(onIframeLoad) { var iframe = document.createElement('iframe'); @@ -138,7 +136,7 @@ function showErrorOverlay(message) { 'margin-bottom: 0.5em; overflow-x: auto; white-space: pre-wrap; ' + 'border-radius: 0.25rem; background-color: rgba(206, 17, 38, 0.05)">' + '' + - ansiHTML(entities.encode(message)) + + ansiHTML(message) + '' + '