@podlite/editor-react 0.0.11 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/esm/index.css +1 -332
- package/esm/index.js +31 -13250
- package/esm/index.js.map +7 -0
- package/jest.config copy.js +2 -0
- package/jest.tsconfig.json +1 -0
- package/lib/index.css +1 -332
- package/lib/index.js +31 -13253
- package/lib/index.js.map +7 -0
- package/package.json +14 -21
- package/scripts/build.ts +17 -0
- package/scripts/build_esm.ts +17 -0
- package/src/Editor.css +17 -4
- package/src/dict.ts +46 -19
- package/src/index.tsx +15 -6
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1309
package/esm/index.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/react-is/cjs/react-is.production.min.js", "../../../node_modules/react-is/index.js", "../src/index.tsx", "../src/dict.ts"],
|
|
4
|
+
"sourcesContent": ["/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n", "import * as React from 'react'\nimport { Controlled as CodeMirrorControlled, UnControlled as CodeMirror} from 'react-codemirror2'\nimport CMirror from 'codemirror'\nimport dictionary from './dict'\nimport { useState, useEffect, useRef, useMemo } from 'react'\nimport {isValidElementType, isElement} from 'react-is'\n\n// TODO: use bundler to add into package\n// import '../../../node_modules/codemirror/lib/codemirror.css';\nimport 'codemirror/mode/gfm/gfm';\nimport \"codemirror/addon/hint/show-hint\";\nimport 'codemirror/addon/hint/show-hint.css';\nimport './Editor.css';\n\n\n//@ts-ignore\nfunction useDebouncedEffect(fn, deps, time) {\n const dependencies = [...deps, time] \n useEffect(() => {\n const timeout = setTimeout(fn, time);\n return () => {\n clearTimeout(timeout);\n }\n }, dependencies);\n}\n\n/* set window title */ \n// @ts-ignore\n// const setWindowTitle = (title: string) => { vmd.setWindowTitle(title) }\nexport interface ConverterResult {\n errors?:any,\n result:any\n}\n\nlet instanceCM = null\ntype Props={\n content: string,\n onChangeSource:Function,\n sourceType?: 'pod6' | 'md',\n onConvertSource: (source:string)=>ConverterResult,\n onSavePressed?: Function,\n isDarkTheme? : boolean,\n isLineNumbers?: boolean,\n isAutoComplete?: boolean,\n isPreviewModeEnabled? :boolean\n isControlled?:boolean\n}\n\nexport default ({ \n onChangeSource = ()=>{}, \n content, \n isDarkTheme = false, \n isLineNumbers = false, \n isPreviewModeEnabled = false, \n onConvertSource, \n onSavePressed = () => { },\n sourceType = 'pod6',\n isControlled=false,\n isAutoComplete = true,\n }: Props) => {\n const [text, updateText] = useState(content)\n\n const [marks, updateMarks] = useState([])\n const [, updateScrollMap] = useState([])\n \n const [isPreviewMode, setPreviewMode] = useState(isPreviewModeEnabled)\n\n const [isPreviewScroll, setPreviewScrolling] = useState(false);\n const refValue = useRef(isPreviewScroll);\n const [showTree, setShowTree] = useState(false)\n\n const [filePath, setFilePath] = useState('')\n const [fileName, setFileName] = useState('')\n const [fileExt, setFileExt] = useState('')\n const [isChanged, setChanged] = useState(false)\n\n const [fileLoading, setFileLoading] = useState(true)\n\nuseEffect(()=>{\nupdateText(content)\n},[content])\n\n const [result, updateResult] = useState<ConverterResult>() \n useDebouncedEffect(() => {\n updateResult(onConvertSource(text))\n }, [text], 50)\n \n const inputEl = useRef(null)\n\n// hot keys\n useEffect( () => {\n const saveFileAction = () => {\n if (isChanged) {\n console.warn(\"Save File\")\n onSavePressed(text)\n\n }\n }\n})\n\n\nuseEffect(() => {\n refValue.current = isPreviewScroll;\n});\nvar options: CMirror.EditorConfiguration = {\n lineNumbers: isLineNumbers,\n inputStyle: \"contenteditable\",\n //@ts-ignore\n spellcheck: true,\n autofocus:true,\n lineWrapping:true,\n viewportMargin:Infinity,\n mode: sourceType !== 'md' ? null : \n {\n name: \"gfm\",\n tokenTypeOverrides: {\n emoji: \"emoji\"\n }\n },\n theme: isDarkTheme ? \"duotone-dark\" : \"default\"\n};\n\n\nconst previewEl = useRef(null)\n\nuseEffect(() => {\n //@ts-ignore\n const newScrollMap = [...document.querySelectorAll('.line-src')]\n .map(n => {\n const line = parseInt(n.getAttribute('data-line'),10 )\n //@ts-ignore\n const offsetTop = n.offsetTop\n return { line, offsetTop}\n })\n //@ts-ignore \n updateScrollMap(newScrollMap)\n //@ts-ignore\n const listener = (e) => { \n if (!isPreviewScroll ) {return}\n let element = e.target\n //@ts-ignore\n const getLine = (offset) => {\n const c = newScrollMap.filter( i => i.offsetTop > offset )\n const lineElement = c.shift() || newScrollMap[ newScrollMap.length - 1 ]\n if (!lineElement) {\n console.warn(`[podlite-editor] can't get line for offset. Forget add .line-src ?`)\n }\n return lineElement.line\n }\n const line = getLine(element.scrollTop)\n if (instanceCM) {\n const t = element.scrollTop === 0 ? 0 : instanceCM.charCoords({line: line, ch: 0}, \"local\").top;\n instanceCM.scrollTo(null, t);\n }\n return true\n }\n if (previewEl && previewEl.current) {\n //@ts-ignore\n previewEl.current.addEventListener(\"scroll\", listener);\n }\n return () => {\n // @ts-ignore\n previewEl && previewEl.current && previewEl && previewEl.current.removeEventListener(\"scroll\", listener);\n };\n},[text,isPreviewScroll])\n\nuseEffect(() => {\n //@ts-ignore\n let cm = instanceCM\n if (!cm) {return}\n //@ts-ignore\n marks.forEach(marker => marker.clear())\n //@ts-ignore\n let cmMrks:Array<never> = []\n //@ts-ignore\n if (result && result.errors ) {\n\n //@ts-ignore\n result.errors.map((loc:any)=>{\n // @ts-ignore\n let from = {line: loc.start.line-1, ch: loc.start.column-1 - (loc.start.offset === loc.end.offset)};\n let to = {line: loc.end.line-1, ch: loc.end.column-1};\n\n cmMrks.push(\n //@ts-ignore\n cm.markText(\n from,\n to, \n {\n className: 'syntax-error',\n title: ';data.error.message',\n css: \"color : red\"\n }\n )\n \n )\n })\n }\n updateMarks(cmMrks)\n\n},[text,result])\n\nconst previewHtml = <div className={ \"Editorright \" + (isDarkTheme ? 'dark' : '' )}\n onMouseEnter={()=>setPreviewScrolling(true)} \n onMouseMove={()=>setPreviewScrolling(true)} \n ref={previewEl} \n >\n {\n result ? \n isElement(result.result) ? <div className=\"content\">{result.result}</div> : <div \n dangerouslySetInnerHTML={{__html: result.result}} \n className=\"content\" \n ></div>\n : ''\n \n }\n </div>\n//@ts-ignore\nconst scrollEditorHandler = (editor) => {\n if (refValue.current) { return }\n let scrollInfo = editor.getScrollInfo();\n // get line number of the top line in the page\n let lineNumber = editor.lineAtHeight(scrollInfo.top, 'local') + 1;\n if (previewEl) {\n const el = previewEl.current\n const elementId = `#line-${lineNumber}`\n const scrollToElement = document.querySelector(elementId)\n if (scrollToElement) {\n //@ts-ignore\n const scrollTo = scrollToElement.offsetTop\n //@ts-ignore\n el.scrollTo({\n top: scrollTo,\n left: 0,\n behavior: 'smooth'\n })\n }\n }\n}\nconst [instanceCMLocal, updateInstanceCM] = useState<any>()\n\nuseEffect(()=>{\n if (!instanceCMLocal) return\n if (!isAutoComplete) return\n var onChange = function(instance, object)\n {\n // Check if the last inserted character is `=`.\n if (object.text[0] === '=' &&\n // start directive\n instance.getRange({ch:0,line: object.to.line}, object.to).match(/^\\s*$/))\n {\n CMirror.showHint(instanceCMLocal, CMirror.hint.dictionaryHint);\n }\n }\n instanceCMLocal.on('change', onChange);\n\n CMirror.registerHelper('hint', 'dictionaryHint', function(editor) {\n var cur = editor.getCursor();\n var curLine = editor.getLine(cur.line);\n var start = cur.ch;\n var end = start;\n while (end < curLine.length && /[\\w$]/.test(curLine.charAt(end))) ++end;\n while (start && /[^=]/.test(curLine.charAt(start - 1))) --start;\n var curWord = start !== end && curLine.slice(start, end);\n var regex = new RegExp('' + curWord, 'i');\n // filter dict by regex and sort by mostly nearness\n const filterDictByRegex = (arr, regex)=>{\n const dict = arr.reduce((acc, item)=>{\n if (item === null) { return acc; }\n const result = (typeof item === 'object' && !Array.isArray(item)) ? item.displayText.match(regex): item.match(regex);\n if ( result ) {\n acc.push({item, index:result.index})\n }\n return acc;\n }, []);\n return dict.sort((a, b) => a.index - b.index).map(i=>i.item)\n }\n return {\n list: (!curWord ? dictionary : filterDictByRegex(dictionary,regex )),\n from: CMirror.Pos(cur.line, start-1),\n to: CMirror.Pos(cur.line, end)\n }\n });\n instanceCMLocal.refresh()\n return () => {\n //@ts-ignore\n instanceCMLocal.off('change', onChange)\n }\n},[instanceCMLocal, isAutoComplete])\n\nreturn (\n <div className=\"EditorApp\">\n <div className={ isPreviewModeEnabled ? \"layoutPreview\": \"layout\"}>\n <div className=\"Editorleft\" onMouseEnter={()=>setPreviewScrolling(false)}\n onMouseMove={()=>setPreviewScrolling(false)}\n >\n {isControlled ? \n <CodeMirrorControlled\n value={content}\n editorDidMount={ editor => { instanceCM = editor; updateInstanceCM(editor) } }\n onBeforeChange={(editor, data, value) => {\n setChanged(true); \n // updateText(value);\n onChangeSource(value)\n }}\n onScroll={scrollEditorHandler}\n options={options} \n className=\"editorApp\"\n />\n :\n <CodeMirror \n value={content}\n editorDidMount={ editor => { instanceCM = editor; updateInstanceCM(editor) } }\n onChange = { (editor, data, value) => { \n setChanged(true); \n updateText(value);\n onChangeSource(value)\n } }\n onScroll={scrollEditorHandler}\n options={options} \n className=\"editorApp\"\n />\n }\n </div>\n {previewHtml}\n </div>\n </div>\n);\n}\n", "// this file contains the dictionary ot the messages used in the podlite editor\n\nconst dict = [\n {\n \"displayText\": \"head1\",\n \"text\": `=head1 `\n },\n {\n \"displayText\": \"head2\",\n \"text\": `=head2 `\n },\n \n {\n \"displayText\": \"head3\",\n \"text\": `=head3 `\n },\n {\n \"displayText\": \"item1 *\",\n \"text\": `=item1 `\n }, \n {\n \"displayText\": \"item1 1.)\",\n \"text\": `=item1 # `\n},\n{\n \"displayText\": \"item (1., 2.) \uD83C\uDFF7\",\n \"text\": `=item1 # item \n =item2 # item level 2\n =item2 # item level 2\n=item1 # item\n =item2 # item\n =item2 # item level 2\n`},\n{\n \"displayText\": \"item (*, *) \uD83C\uDFF7\",\n \"text\": `=item1 item \n =item2 item level 2\n =item2 item level 2\n=item1 item\n =item2 item\n =item3 item level 2\n`},\n{\n \"displayText\": \"Image \uD83C\uDFF7\",\n \"text\": `=Image https://github.com/zag/podlite-desktop/blob/master/dist-assets/linux-icon/256x256.png?raw=true\n`,\n},\n{\n \"displayText\": \"table simple \uD83C\uDFF7\",\n \"text\":`=for table\n mouse | mice\n horse | horses\n elephant | elephants\n`\n},\n{\n \"displayText\": \"table 2x \uD83C\uDFF7\",\n \"text\": `=begin table :caption('Caption of table')\nConstants 1\nVariables 10\nSubroutines 33\nEverything else 57\n=end table\n`},\n{\n \"displayText\": \"table 3x \uD83C\uDFF7\",\n \"text\": `=for table :caption('Caption of table')\n Animal | Legs | Eats\n =======================\n Zebra + 4 + Cookies\n Human + 2 + Pizza\n Shark + 0 + Fish\n`\n},\n{\n \"displayText\": \"Diagram simple \uD83C\uDFF7\",\n \"text\": `=begin Diagram :caption('Caption of diagram')\n graph LR\n A-->B\n B-->C\n C-->A\n D-->C\n=end Diagram\n`\n},\n{\n \"displayText\": \"Diagram Sequence \uD83C\uDFF7\",\n \"text\": `=for Diagram :caption('Caption of diagram')\n sequenceDiagram\n autonumber\n Student->>Admin: Can I enrol this semester?\n loop enrolmentCheck\n Admin->>Admin: Check previous results\n end\n Note right of Admin: Exam results may <br> be delayed\n Admin-->>Student: Enrolment success\n Admin->>Professor: Assign student to tutor\n Professor-->>Admin: Student is assigned\n\n`\n},\n{\n \"displayText\": \"Diagram flowchart \uD83C\uDFF7\",\n \"text\": `=for Diagram :caption('Caption of diagram')\n graph LR\n A[Square Rect] -- Link text --> B((Circle))\n A --> C(Round Rect)\n B --> D{Rhombus}\n C --> D\n\n`\n},\n{\n \"displayText\": \"Diagram class \uD83C\uDFF7\",\n \"text\": `=for Diagram :caption('Caption of diagram')\n classDiagram\n Person <|-- Student\n Person <|-- Professor\n Person : +String name\n Person : +String phoneNumber\n Person : +String emailAddress\n Person: +purchaseParkingPass()\n Address \"1\" <-- \"0..1\" Person:lives at\n class Student{\n +int studentNumber\n +int averageMark\n +isEligibleToEnrol()\n +getSeminarsTaken()\n }\n class Professor{\n +int salary\n }\n class Address{\n +String street\n +String city\n +String state\n +int postalCode\n +String country\n -validate()\n +outputAsLabel() \n }\n\n`\n},\n{\n \"displayText\": \"code block with formatting \uD83C\uDFF7\",\n \"text\": `=begin code :allow<I B Z> \n\n=end code\n`\n},\n{\n \"displayText\": \"Toc head1, head2, head3\",\n \"text\": `=Toc head1, head2, head3\n`},\n{\n \"displayText\": \"Toc (with :title) \uD83C\uDFF7\",\n \"text\": `=for Toc :title('Table of contents')\nhead1, head2, head3 \n\n`\n},\n{\n \"displayText\": \"Toc ( Images, Diagrams ) + tables \uD83C\uDFF7\",\n \"text\": `=for Toc :title('List of media')\nImage, Diagram\n=for Toc :title('List of tables')\ntable\n\n`\n},\n\n]\nexport default dict;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"extends": "../../jest.tsconfig.json"}
|
package/lib/index.css
CHANGED
|
@@ -1,332 +1 @@
|
|
|
1
|
-
|
|
2
|
-
.CodeMirror-hints {
|
|
3
|
-
position: absolute;
|
|
4
|
-
z-index: 10;
|
|
5
|
-
overflow: hidden;
|
|
6
|
-
list-style: none;
|
|
7
|
-
margin: 0;
|
|
8
|
-
padding: 2px;
|
|
9
|
-
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, .2);
|
|
10
|
-
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, .2);
|
|
11
|
-
box-shadow: 2px 3px 5px rgba(0, 0, 0, .2);
|
|
12
|
-
border-radius: 3px;
|
|
13
|
-
border: 1px solid silver;
|
|
14
|
-
background: white;
|
|
15
|
-
font-size: 90%;
|
|
16
|
-
font-family: monospace;
|
|
17
|
-
max-height: 20em;
|
|
18
|
-
overflow-y: auto;
|
|
19
|
-
}
|
|
20
|
-
.CodeMirror-hint {
|
|
21
|
-
margin: 0;
|
|
22
|
-
padding: 0 4px;
|
|
23
|
-
border-radius: 2px;
|
|
24
|
-
white-space: pre;
|
|
25
|
-
color: black;
|
|
26
|
-
cursor: pointer;
|
|
27
|
-
}
|
|
28
|
-
li.CodeMirror-hint-active {
|
|
29
|
-
background: #08f;
|
|
30
|
-
color: white;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* src/Editor.css */
|
|
34
|
-
.EditorApp {
|
|
35
|
-
font-family:
|
|
36
|
-
Menlo,
|
|
37
|
-
Monaco,
|
|
38
|
-
Consolas,
|
|
39
|
-
"Courier New",
|
|
40
|
-
monospace;
|
|
41
|
-
-webkit-font-smoothing: antialiased;
|
|
42
|
-
-moz-osx-font-smoothing: grayscale;
|
|
43
|
-
}
|
|
44
|
-
.App-logo {
|
|
45
|
-
height: 40vmin;
|
|
46
|
-
pointer-events: none;
|
|
47
|
-
}
|
|
48
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
49
|
-
.App-logo {
|
|
50
|
-
animation: App-logo-spin infinite 20s linear;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
.App-header {
|
|
54
|
-
background-color: #282c34;
|
|
55
|
-
min-height: 100vh;
|
|
56
|
-
display: flex;
|
|
57
|
-
flex-direction: column;
|
|
58
|
-
align-items: center;
|
|
59
|
-
justify-content: center;
|
|
60
|
-
font-size: calc(10px + 2vmin);
|
|
61
|
-
color: white;
|
|
62
|
-
}
|
|
63
|
-
.App-link {
|
|
64
|
-
color: #61dafb;
|
|
65
|
-
}
|
|
66
|
-
.layout {
|
|
67
|
-
position: absolute;
|
|
68
|
-
width: 100%;
|
|
69
|
-
}
|
|
70
|
-
.Editor {
|
|
71
|
-
text-align: left;
|
|
72
|
-
white-space: pre-wrap;
|
|
73
|
-
word-break: break-word;
|
|
74
|
-
word-wrap: break-word;
|
|
75
|
-
}
|
|
76
|
-
[contenteditable]:focus {
|
|
77
|
-
outline: 0px solid transparent;
|
|
78
|
-
}
|
|
79
|
-
.layout__panel {
|
|
80
|
-
position: relative;
|
|
81
|
-
width: 100%;
|
|
82
|
-
height: 100%;
|
|
83
|
-
flex: none;
|
|
84
|
-
overflow: hidden;
|
|
85
|
-
}
|
|
86
|
-
.flex--row {
|
|
87
|
-
flex-direction: row;
|
|
88
|
-
}
|
|
89
|
-
.flex {
|
|
90
|
-
display: flex;
|
|
91
|
-
}
|
|
92
|
-
.CodeMirror {
|
|
93
|
-
height: auto;
|
|
94
|
-
font-family: inherit;
|
|
95
|
-
}
|
|
96
|
-
pre {
|
|
97
|
-
overflow-x: auto;
|
|
98
|
-
white-space: pre-wrap;
|
|
99
|
-
white-space: -moz-pre-wrap;
|
|
100
|
-
white-space: -pre-wrap;
|
|
101
|
-
white-space: -o-pre-wrap;
|
|
102
|
-
word-wrap: break-word;
|
|
103
|
-
}
|
|
104
|
-
.title {
|
|
105
|
-
margin: 0em;
|
|
106
|
-
}
|
|
107
|
-
.Editorleft {
|
|
108
|
-
border-right: 1px dotted lightgrey;
|
|
109
|
-
white-space: pre-wrap;
|
|
110
|
-
word-break: break-word;
|
|
111
|
-
word-wrap: break-word;
|
|
112
|
-
width: 50%;
|
|
113
|
-
font-size: 15px;
|
|
114
|
-
text-align: left;
|
|
115
|
-
}
|
|
116
|
-
body {
|
|
117
|
-
margin: 0;
|
|
118
|
-
font-family:
|
|
119
|
-
Menlo,
|
|
120
|
-
Monaco,
|
|
121
|
-
Consolas,
|
|
122
|
-
"Courier New",
|
|
123
|
-
monospace;
|
|
124
|
-
-webkit-font-smoothing: antialiased;
|
|
125
|
-
-moz-osx-font-smoothing: grayscale;
|
|
126
|
-
}
|
|
127
|
-
code {
|
|
128
|
-
font-family:
|
|
129
|
-
source-code-pro,
|
|
130
|
-
Menlo,
|
|
131
|
-
Monaco,
|
|
132
|
-
Consolas,
|
|
133
|
-
"Courier New",
|
|
134
|
-
monospace;
|
|
135
|
-
}
|
|
136
|
-
pre {
|
|
137
|
-
padding: 9.5px;
|
|
138
|
-
display: block;
|
|
139
|
-
word-break: break-all;
|
|
140
|
-
word-wrap: break-word;
|
|
141
|
-
background-color: #f8f8f8;
|
|
142
|
-
border-radius: 4px;
|
|
143
|
-
}
|
|
144
|
-
code {
|
|
145
|
-
padding: 0;
|
|
146
|
-
font-size: inherit;
|
|
147
|
-
color: inherit;
|
|
148
|
-
white-space: pre-wrap;
|
|
149
|
-
background-color: transparent;
|
|
150
|
-
border-radius: 0;
|
|
151
|
-
}
|
|
152
|
-
img {
|
|
153
|
-
max-width: 1024px;
|
|
154
|
-
}
|
|
155
|
-
table {
|
|
156
|
-
word-break: normal;
|
|
157
|
-
min-width: 70%;
|
|
158
|
-
max-width: 100%;
|
|
159
|
-
margin: 0 auto;
|
|
160
|
-
border-spacing: 0;
|
|
161
|
-
border-collapse: collapse;
|
|
162
|
-
text-align: center;
|
|
163
|
-
margin-top: 2em;
|
|
164
|
-
}
|
|
165
|
-
table caption {
|
|
166
|
-
margin-bottom: 0.8em;
|
|
167
|
-
}
|
|
168
|
-
table tbody tr:hover {
|
|
169
|
-
background-color: #eee;
|
|
170
|
-
-webkit-transition: .5s;
|
|
171
|
-
transition: .5s;
|
|
172
|
-
}
|
|
173
|
-
tr th {
|
|
174
|
-
vertical-align: bottom;
|
|
175
|
-
border-bottom: 2px solid #eee;
|
|
176
|
-
}
|
|
177
|
-
td {
|
|
178
|
-
padding: 8px;
|
|
179
|
-
border: 1px solid #eee;
|
|
180
|
-
}
|
|
181
|
-
.footnote a {
|
|
182
|
-
text-decoration: none;
|
|
183
|
-
}
|
|
184
|
-
.footnotes {
|
|
185
|
-
border-top-style: solid;
|
|
186
|
-
border-top-width: 1px;
|
|
187
|
-
border-top-color: #eee;
|
|
188
|
-
}
|
|
189
|
-
img {
|
|
190
|
-
display: block;
|
|
191
|
-
margin: 0 auto;
|
|
192
|
-
max-width: 100%;
|
|
193
|
-
}
|
|
194
|
-
.shadow {
|
|
195
|
-
-webkit-box-shadow: 3px 3px 5px 6px #ccc;
|
|
196
|
-
-moz-box-shadow: 3px 3px 5px 6px #ccc;
|
|
197
|
-
box-shadow: 3px 3px 5px 6px #ccc;
|
|
198
|
-
}
|
|
199
|
-
.box {
|
|
200
|
-
box-shadow:
|
|
201
|
-
0 2.8px 2.2px rgba(0, 0, 0, 0.034),
|
|
202
|
-
0 6.7px 5.3px rgba(0, 0, 0, 0.048),
|
|
203
|
-
0 12.5px 10px rgba(0, 0, 0, 0.06),
|
|
204
|
-
0 22.3px 17.9px rgba(0, 0, 0, 0.072),
|
|
205
|
-
0 41.8px 33.4px rgba(0, 0, 0, 0.086),
|
|
206
|
-
0 100px 80px rgba(0, 0, 0, 0.12);
|
|
207
|
-
margin: 100px auto;
|
|
208
|
-
background: white;
|
|
209
|
-
border-radius: 5px;
|
|
210
|
-
}
|
|
211
|
-
.video {
|
|
212
|
-
max-width: 90%;
|
|
213
|
-
margin-bottom: 1em;
|
|
214
|
-
}
|
|
215
|
-
div.video video {
|
|
216
|
-
width: 100%;
|
|
217
|
-
outline: none;
|
|
218
|
-
border: none;
|
|
219
|
-
}
|
|
220
|
-
.mermaid svg {
|
|
221
|
-
display: block;
|
|
222
|
-
margin: auto;
|
|
223
|
-
}
|
|
224
|
-
.CodeMirror {
|
|
225
|
-
height: auto;
|
|
226
|
-
font-family: inherit;
|
|
227
|
-
}
|
|
228
|
-
.title {
|
|
229
|
-
margin: 0em;
|
|
230
|
-
}
|
|
231
|
-
.Editorleft {
|
|
232
|
-
border-right: 1px dotted lightgrey;
|
|
233
|
-
white-space: pre-wrap;
|
|
234
|
-
word-break: break-word;
|
|
235
|
-
word-wrap: break-word;
|
|
236
|
-
width: 50%;
|
|
237
|
-
font-size: 15px;
|
|
238
|
-
text-align: left;
|
|
239
|
-
float: left;
|
|
240
|
-
height: 100%;
|
|
241
|
-
padding-left: 10px;
|
|
242
|
-
visibility: visible;
|
|
243
|
-
opacity: 1;
|
|
244
|
-
transition: all 0.2s ease-out;
|
|
245
|
-
}
|
|
246
|
-
.editorApp,
|
|
247
|
-
.CodeMirror {
|
|
248
|
-
height: 100%;
|
|
249
|
-
}
|
|
250
|
-
.Editorright {
|
|
251
|
-
text-align: left;
|
|
252
|
-
word-break: break-word;
|
|
253
|
-
word-wrap: break-word;
|
|
254
|
-
margin-right: 0;
|
|
255
|
-
height: 100%;
|
|
256
|
-
font-size: 15px;
|
|
257
|
-
padding-left: 10px;
|
|
258
|
-
overflow-y: scroll;
|
|
259
|
-
overflow-x: hidden;
|
|
260
|
-
background-color: white;
|
|
261
|
-
}
|
|
262
|
-
.Editorright .error {
|
|
263
|
-
opacity: 0.5;
|
|
264
|
-
}
|
|
265
|
-
.Editorright * {
|
|
266
|
-
}
|
|
267
|
-
.Editorright img {
|
|
268
|
-
display: block;
|
|
269
|
-
margin: 0 auto;
|
|
270
|
-
max-width: 100%;
|
|
271
|
-
}
|
|
272
|
-
.content {
|
|
273
|
-
height: 100%;
|
|
274
|
-
}
|
|
275
|
-
.layoutPreview .Editorright {
|
|
276
|
-
position: absolute;
|
|
277
|
-
width: 48%;
|
|
278
|
-
float: right;
|
|
279
|
-
top: 0;
|
|
280
|
-
right: 0;
|
|
281
|
-
width: 100%;
|
|
282
|
-
background-color: white;
|
|
283
|
-
}
|
|
284
|
-
.layoutPreview .Editorleft {
|
|
285
|
-
visibility: hidden;
|
|
286
|
-
opacity: 0;
|
|
287
|
-
}
|
|
288
|
-
.layoutPreview .content {
|
|
289
|
-
width: 50%;
|
|
290
|
-
margin: 0 auto;
|
|
291
|
-
height: 100%;
|
|
292
|
-
overflow-y: initial;
|
|
293
|
-
}
|
|
294
|
-
@keyframes App-logo-spin {
|
|
295
|
-
from {
|
|
296
|
-
transform: rotate(0deg);
|
|
297
|
-
}
|
|
298
|
-
to {
|
|
299
|
-
transform: rotate(360deg);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
.CodeMirror-vscrollbar {
|
|
303
|
-
user-select: none;
|
|
304
|
-
outline: none !important;
|
|
305
|
-
}
|
|
306
|
-
::-webkit-scrollbar-thumb {
|
|
307
|
-
background-color: rgba(0, 0, 0, 0.1);
|
|
308
|
-
}
|
|
309
|
-
::-webkit-scrollbar {
|
|
310
|
-
background-color: (0, 0, 0, 0.05);
|
|
311
|
-
}
|
|
312
|
-
::-webkit-scrollbar-thumb:active {
|
|
313
|
-
background-color: rgba(0, 0, 0, 0.1);
|
|
314
|
-
}
|
|
315
|
-
::-webkit-scrollbar {
|
|
316
|
-
width: 10px;
|
|
317
|
-
height: 10px;
|
|
318
|
-
-webkit-border-radius: 100px;
|
|
319
|
-
}
|
|
320
|
-
::-webkit-scrollbar-thumb {
|
|
321
|
-
-webkit-border-radius: 100px;
|
|
322
|
-
}
|
|
323
|
-
::-webkit-scrollbar-thumb:active {
|
|
324
|
-
-webkit-border-radius: 100px;
|
|
325
|
-
}
|
|
326
|
-
::-webkit-scrollbar-corner {
|
|
327
|
-
background: transparent;
|
|
328
|
-
}
|
|
329
|
-
.CodeMirror-hints {
|
|
330
|
-
z-index: 1000;
|
|
331
|
-
border: none;
|
|
332
|
-
}
|
|
1
|
+
.EditorApp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}.layout{position:absolute;width:100%}.Editor{text-align:left;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}[contenteditable]:focus{outline:0px solid transparent}.layout__panel{position:relative;width:100%;height:100%;flex:none;overflow:hidden}.flex--row{flex-direction:row}.flex{display:flex}.CodeMirror{height:auto;font-family:inherit}pre{overflow-x:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.title{margin:0}.Editorleft{border-right:1px dotted lightgrey;white-space:pre-wrap;word-break:break-word;word-wrap:break-word;width:50%;font-size:15px;text-align:left}body{margin:0;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}pre{padding:9.5px;display:block;word-break:break-all;word-wrap:break-word;background-color:#f8f8f8;border-radius:4px}code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}img{max-width:1024px}table{word-break:normal;min-width:70%;max-width:100%;margin:2em auto 1em;border-spacing:0;border-collapse:collapse;text-align:center}table caption{margin-bottom:.8em}table tbody tr:hover{background-color:#eee;-webkit-transition:.5s;transition:.5s}tr th{vertical-align:bottom;border-bottom:2px solid #eee}td{padding:8px;border:1px solid #eee}.footnote a{text-decoration:none}.footnotes{border-top-style:solid;border-top-width:1px;border-top-color:#eee}img{display:block;margin:0 auto;max-width:100%}.shadow{-webkit-box-shadow:3px 3px 5px 6px #ccc;-moz-box-shadow:3px 3px 5px 6px #ccc;box-shadow:3px 3px 5px 6px #ccc}.box{box-shadow:0 2.8px 2.2px #00000009,0 6.7px 5.3px #0000000c,0 12.5px 10px #0000000f,0 22.3px 17.9px #00000012,0 41.8px 33.4px #00000016,0 100px 80px #0000001f;margin:100px auto;background:white;border-radius:5px}.image_block video{max-width:100%;margin-bottom:1em}.image_block video{width:100%;outline:none;border:none}.mermaid svg{display:block;margin:auto}.toc{padding:1rem}.toc-list{list-style:none;font-size:.8rem}.caption{text-align:center;font-size:.9rem}.CodeMirror{height:auto;font-family:inherit}.title{margin:0}.Editorleft{border-right:1px dotted lightgrey;white-space:pre-wrap;word-break:break-word;word-wrap:break-word;width:50%;font-size:15px;text-align:left;float:left;height:100%;padding-left:10px;visibility:visible;opacity:1;transition:all .2s ease-out}.editorApp,.CodeMirror{height:100%}.Editorright{text-align:left;word-break:break-word;word-wrap:break-word;margin-right:0;height:100%;font-size:15px;padding-left:10px;overflow-y:scroll;overflow-x:hidden;background-color:#fff}.Editorright .error{opacity:.5}.Editorright img{display:block;margin:0 auto;max-width:100%}.content{height:100%}.layoutPreview .Editorright{position:absolute;width:48%;float:right;top:0;right:0;width:100%;background-color:#fff}.layoutPreview .Editorleft{visibility:hidden;opacity:0}.layoutPreview .content{width:50%;margin:0 auto;height:100%;overflow-y:initial}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.CodeMirror-vscrollbar{user-select:none;outline:none!important}::-webkit-scrollbar-thumb{background-color:#0000001a}::-webkit-scrollbar{background-color:(0,0,0,.05)}::-webkit-scrollbar-thumb:active{background-color:#0000001a}::-webkit-scrollbar{width:10px;height:10px;-webkit-border-radius:100px}::-webkit-scrollbar-thumb{-webkit-border-radius:100px}::-webkit-scrollbar-thumb:active{-webkit-border-radius:100px}::-webkit-scrollbar-corner{background:transparent}.CodeMirror-hints{z-index:1000;border:none}
|