Skip to content

Commit aa0a4a5

Browse files
committed
clear formating from markdown document in preview
1 parent f6149dd commit aa0a4a5

8 files changed

Lines changed: 36 additions & 7 deletions

File tree

src/App.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ const App = () => {
182182
const [timelineModalOpen, setTimelineModalOpen] = useState(false);
183183
const [showHeaderModal, setShowHeaderModal] = useState(false);
184184
const [showFormattingModal, setShowFormattingModal] = useState(false);
185+
const [plainTextPreview, setPlainTextPreview] = useState(false);
185186
const [showMermaidModal, setShowMermaidModal] = useState(false);
186187
const [showUMLModal, setShowUMLModal] = useState(false);
187188
const [showSymbolsModal, setShowSymbolsModal] = useState(false);
@@ -706,6 +707,11 @@ const App = () => {
706707
insertNewLineSyntax(textareaRef, editorContent, setEditorContent);
707708
};
708709

710+
// handleClearText toggles plain text preview mode (no markdown rendering)
711+
const handleClearText = () => {
712+
setPlainTextPreview(prev => !prev);
713+
};
714+
709715
// insertItalicSyntax function inserts an italic syntax for Markdown
710716
const handlerItalicSyntax = () => {
711717
insertItalicSyntax(textareaRef, editorContent, setEditorContent, cursorPositionRef);
@@ -2684,6 +2690,7 @@ const App = () => {
26842690
onCodeLine={handlerinsertCodeSyntax}
26852691
onCodeBlock={handlerinsertBlockCodeSyntax}
26862692
onNewLine={handleNewLineSyntax}
2693+
onClearText={handleClearText}
26872694
onClose={() => setShowFormattingModal(false)}
26882695
/>
26892696
)
@@ -3262,6 +3269,7 @@ const App = () => {
32623269
isPreviewFull={isPreviewFull}
32633270
isHorizontal={isHorizontal}
32643271
initializeMermaid={initializeMermaid}
3272+
plainTextPreview={plainTextPreview}
32653273
/>
32663274
)}
32673275
</div>

src/components/FormattingModal.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import { FaBold, FaItalic, FaStrikethrough, FaCode, FaFileCode, FaLevelDownAlt, FaTimes, FaFont } from 'react-icons/fa';
2+
import { FaBold, FaItalic, FaStrikethrough, FaCode, FaFileCode, FaLevelDownAlt, FaTimes, FaFont, FaEraser } from 'react-icons/fa';
33
import { useLanguage } from '../i18n/LanguageContext';
44
import './formattingModal.css';
55

@@ -10,6 +10,7 @@ type Props = {
1010
onItalic: () => void;
1111
onStrike: () => void;
1212
onNewLine: () => void;
13+
onClearText: () => void;
1314
onClose: () => void;
1415
};
1516

@@ -20,6 +21,7 @@ export default function FormattingModal({
2021
onItalic,
2122
onStrike,
2223
onNewLine,
24+
onClearText,
2325
onClose
2426
}: Props) {
2527
const { t } = useLanguage();
@@ -62,6 +64,7 @@ export default function FormattingModal({
6264
{renderTile(<FaCode />, 'format.codeline', 'format.codeline_desc', onCodeLine)}
6365
{renderTile(<FaFileCode />, 'format.codeblock', 'format.codeblock_desc', onCodeBlock)}
6466
{renderTile(<FaLevelDownAlt />, 'format.newline', 'format.newline_desc', onNewLine)}
67+
{renderTile(<FaEraser />, 'format.clear_text', 'format.clear_text_desc', onClearText)}
6568
</div>
6669
</div>
6770

src/components/PreviewComponent.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@ interface PreviewComponentProps {
1616
isPreviewFull: boolean;
1717
isHorizontal: boolean;
1818
initializeMermaid: () => void;
19+
plainTextPreview?: boolean;
1920
}
2021

2122
const PreviewComponent: React.FC<PreviewComponentProps> = React.memo(({
2223
previewRef,
2324
editorContent,
2425
isPreviewFull,
2526
isHorizontal,
26-
initializeMermaid
27+
initializeMermaid,
28+
plainTextPreview
2729
}) => {
2830
// Custom remark plugin to preserve blank lines between list items
2931
const preserveListBreaks = () => {
@@ -136,6 +138,11 @@ const PreviewComponent: React.FC<PreviewComponentProps> = React.memo(({
136138
ref={previewRef}
137139
id="preview-content"
138140
>
141+
{plainTextPreview ? (
142+
<pre style={{ whiteSpace: 'pre-wrap', wordWrap: 'break-word', margin: 0, fontFamily: 'monospace', padding: '1em' }}>
143+
{editorContent}
144+
</pre>
145+
) : (
139146
<ReactMarkdown
140147
remarkPlugins={[remarkGfm, remarkEmoji, remarkMath, preserveListBreaks]}
141148
rehypePlugins={[rehypeRaw, rehypeKatex]}
@@ -255,6 +262,7 @@ const PreviewComponent: React.FC<PreviewComponentProps> = React.memo(({
255262
>
256263
{editorContent}
257264
</ReactMarkdown>
265+
)}
258266
</div >
259267
);
260268
});

src/i18n/locales/de.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@
9999
"strike": "Durchgestrichen",
100100
"strike_desc": "~~Durchgestrichen~~",
101101
"newline": "Neue Zeile",
102-
"newline_desc": "Zeile 2 (zwei Leerzeichen + Enter)"
102+
"newline_desc": "Zeile 2 (zwei Leerzeichen + Enter)",
103+
"clear_text": "Klartext",
104+
"clear_text_desc": "Klartextvorschau umschalten"
103105
},
104106
"mermaid": {
105107
"journey": "Reise",

src/i18n/locales/en.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@
9999
"strike": "Strike",
100100
"strike_desc": "~~Strike~~",
101101
"newline": "NewLine",
102-
"newline_desc": "Line 2 (two spaces + Enter)"
102+
"newline_desc": "Line 2 (two spaces + Enter)",
103+
"clear_text": "Clear Text",
104+
"clear_text_desc": "Toggle plain text preview"
103105
},
104106
"mermaid": {
105107
"journey": "Journey",

src/i18n/locales/nl.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@
9999
"strike": "Doorhalen",
100100
"strike_desc": "~~Doorhalen~~",
101101
"newline": "Nieuwe Regel",
102-
"newline_desc": "Regel 2 (twee spaties + Enter)"
102+
"newline_desc": "Regel 2 (twee spaties + Enter)",
103+
"clear_text": "Platte Tekst",
104+
"clear_text_desc": "Schakel platte tekst voorbeeld"
103105
},
104106
"mermaid": {
105107
"journey": "Reis",

src/i18n/locales/pl.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@
9999
"strike": "Przekreślenie",
100100
"strike_desc": "~~Przekreślenie~~",
101101
"newline": "Nowa linia",
102-
"newline_desc": "Linia 2 (dwie spacje + Enter)"
102+
"newline_desc": "Linia 2 (dwie spacje + Enter)",
103+
"clear_text": "Czysty Tekst",
104+
"clear_text_desc": "Przełącz podgląd tekstu"
103105
},
104106
"mermaid": {
105107
"journey": "Podróż",

src/i18n/locales/pt-br.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@
9999
"strike": "Tachado",
100100
"strike_desc": "~~Tachado~~",
101101
"newline": "Nova Linha",
102-
"newline_desc": "Linha 2 (dois espaços + Enter)"
102+
"newline_desc": "Linha 2 (dois espaços + Enter)",
103+
"clear_text": "Texto Limpo",
104+
"clear_text_desc": "Alternar visualização em texto simples"
103105
},
104106
"mermaid": {
105107
"journey": "Jornada",

0 commit comments

Comments
 (0)