pixelplanet/utils/markdown-test/mdtest.js

52 lines
1.2 KiB
JavaScript
Raw Normal View History

import React, { useState } from 'react';
2021-11-26 12:15:24 +00:00
import ReactDOM from 'react-dom';
import { Parser } from 'commonmark';
import MarkdownParser from '../../src/core/MarkdownParser';
import Markdown from './Markdown';
const reader = new Parser({ smart: true });
2021-11-26 12:15:24 +00:00
const a = new MarkdownParser();
function parseText(text, setDuration, setCmDuration, setMd) {
2021-11-26 12:15:24 +00:00
let startt = Date.now();
const arr = a.parse(text);
2021-11-26 12:15:24 +00:00
setDuration(Date.now() - startt);
startt = Date.now();
reader.parse(text);
2021-11-26 12:15:24 +00:00
setCmDuration(Date.now() - startt);
setMd(arr);
2021-11-26 12:15:24 +00:00
}
2021-11-26 12:15:24 +00:00
const App = () => {
const [md, setMd] = useState([]);
2021-11-26 12:15:24 +00:00
const [duration, setDuration] = useState('');
const [cmDuration, setCmDuration] = useState('');
2021-11-26 12:15:24 +00:00
return (
<div>
<textarea
cols="100"
rows="30"
onChange={(evt) => {
parseText(evt.target.value, setDuration, setCmDuration, setMd);
}}
2021-11-26 12:15:24 +00:00
/>
<p>Parse-time: {duration}ms / commonmark: {cmDuration}</p>
<Markdown mdArray={md} />
2021-11-26 12:15:24 +00:00
<textarea
cols="100"
rows="30"
readOnly
value={JSON.stringify(md, null, 2)}
2021-11-26 12:15:24 +00:00
/>
</div>
);
2021-11-26 12:15:24 +00:00
};
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(<App />, document.getElementById('reactroot'));
});