Skip to content

Commit db103cb

Browse files
committed
- minor changes
1 parent 2c2aba2 commit db103cb

4 files changed

Lines changed: 32 additions & 0 deletions

File tree

package-lock.json

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@
5858
"@fortawesome/free-regular-svg-icons": "^6.6.0",
5959
"@fortawesome/react-fontawesome": "^0.2.2",
6060
"@types/dompurify": "^3.0.5",
61+
"@types/marked": "^5.0.2",
6162
"ace-builds": "^1.36.5",
6263
"custom-electron-titlebar": "^4.2.8",
6364
"dompurify": "^3.2.3",
6465
"electron-squirrel-startup": "^1.0.1",
6566
"js-beautify": "^1.15.1",
67+
"marked": "^15.0.4",
6668
"prop-types": "^15.8.1",
6769
"react": "^18.3.1",
6870
"react-ace": "^13.0.0",

src/index.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ body, html {
6060
min-width: 50px;
6161
max-width: 100%;
6262

63+
display: flex;
64+
flex-direction: column;
6365
align-items: center;
6466
}
6567

src/react/components/editor/plugins/PreviewPlugin.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import {EditorMenuItem, EditorPlugin, ToolbarMenuItem} from "./index";
22
import {Ace} from "ace-builds";
33
import {LanguageName} from "../../../../domain/SupportedLanguage";
4+
import DOMPurify from "dompurify";
5+
import {marked} from "marked";
46

57
const previewIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjQgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTQ0OCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMTkuOC01LTYuNS0xMzYtMTc2Yy00LjUtNS45LTExLjYtOS4zLTE5LTkuM3MtMTQuNCAzLjQtMTkgOS4zTDIwMiAzNDAuN2wtMzAuNS00Mi43QzE2NyAyOTEuNyAxNTkuOCAyODggMTUyIDI4OHMtMTUgMy43LTE5LjUgMTAuMWwtODAgMTEyTDQ4IDQxNi4zbDAtLjNMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAxOTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiIvPjwvc3ZnPg==";
68
const refreshIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjQgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTQ2My41IDIyNGw4LjUgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEyOGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJzLTE5LjMtMS43LTI2LjIgNS4yTDQxMy40IDk2LjZjLTg3LjYtODYuNS0yMjguNy04Ni4yLTMxNS44IDFjLTg3LjUgODcuNS04Ny41IDIyOS4zIDAgMzE2LjhzMjI5LjMgODcuNSAzMTYuOCAwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy02Mi41IDYyLjUtMTYzLjggNjIuNS0yMjYuMyAwcy02Mi41LTE2My44IDAtMjI2LjNjNjIuMi02Mi4yIDE2Mi43LTYyLjUgMjI1LjMtMUwzMjcgMTgzYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yczEyLjUgMTQuOCAyMi4yIDE0LjhsMTE5LjUgMHoiLz48L3N2Zz4=";
@@ -64,6 +66,10 @@ export default class PreviewPlugin implements EditorPlugin {
6466
height: 100%;
6567
max-width: 100%;
6668
max-height: 100%;
69+
background-color: white;
70+
color: black;
71+
padding: 5px;
72+
box-sizing: border-box;
6773
}
6874
</style>
6975
<div id="previewButtons" style="display: flex; align-items: center; border-bottom: 1px solid; background-color: #323232;">
@@ -118,6 +124,8 @@ function preview(content?: string, lang?: string) {
118124

119125
if(lang === LanguageName.HTML) {
120126
return content;
127+
} else if(lang === LanguageName.MARKDOWN) {
128+
return DOMPurify.sanitize(marked(content, {async: false}));
121129
} else {
122130
return content;
123131
}

0 commit comments

Comments
 (0)