diff --git a/dist/bundle.js b/dist/bundle.js index d6035e0..943bc0e 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -9210,7 +9210,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst monaco_editor_1 = __webpack_require__(/*! monaco-editor */ \"include-loader!./node_modules/monaco-editor/esm/vs/editor/editor.main.js\");\nconst default_1 = __webpack_require__(/*! ./default */ \"./src/default.ts\");\nconst marked_1 = __webpack_require__(/*! marked */ \"./node_modules/marked/lib/marked.cjs\");\nconst store = getStorageFromBrowser()\n ? getStorageFromBrowser()\n : default_1.defaults;\nconst fileTabs = document.getElementById(\"fileTabs\");\nsetTabAsActive(\"markdown\");\nconst editorInstance = monaco_editor_1.editor.create(document.getElementById(\"editor\"), {\n value: store.markdown,\n language: \"markdown\",\n theme: \"vs-dark\",\n});\nwindow.onresize = function () {\n editorInstance.layout();\n};\nconsole.log(\"Hello World\");\nlet iframeHTMLPassive = \"\";\nconst iframe = document.createElement(\"iframe\");\nconst preview = document.getElementById(\"preview\");\npreview.innerHTML = \"\";\npreview.appendChild(iframe);\nbuildPreview();\nfileTabs.addEventListener(\"click\", (e) => {\n const val = e.target.innerText;\n setTabAsActive(val);\n switch (val) {\n case \"markdown\":\n editorInstance.setValue(store.markdown);\n break;\n case \"html\":\n editorInstance.setValue(store.html);\n break;\n case \"css\":\n editorInstance.setValue(store.css);\n break;\n default:\n break;\n }\n});\nlet loading = false;\neditorInstance.getModel().onDidChangeContent((e) => {\n if (loading)\n return;\n loading = true;\n setTimeout(() => {\n setCurrentFile(editorInstance.getValue());\n buildPreview();\n loading = false;\n }, 1000);\n});\nfunction setCurrentFile(val) {\n const file = getCurrentFile();\n switch (file) {\n case \"markdown\":\n store.markdown = val;\n break;\n case \"html\":\n store.html = val;\n break;\n case \"css\":\n store.css = val;\n break;\n default:\n break;\n }\n monaco_editor_1.editor.setModelLanguage(editorInstance.getModel(), file);\n}\nfunction getCurrentFile() {\n return fileTabs.querySelector(\".active\").innerHTML;\n}\nfunction setTabAsActive(file) {\n const active = fileTabs.querySelector(\".active\");\n if (active)\n active.classList.remove(\"active\");\n const newActive = fileTabs.querySelector(`[data-file='${file}']`);\n newActive.classList.add(\"active\");\n}\nfunction buildPreview() {\n let html = store.html;\n const css = store.css;\n const markdownParsed = marked_1.marked.parse(store.markdown);\n html = html.replace(\"{{css}}\", css);\n html = html.replace(\"{{markdown}}\", markdownParsed);\n iframe.contentWindow.document.write(linksWithNewTab(html));\n iframe.contentWindow.document.close();\n iframeHTMLPassive = html;\n saveStorageInBrowser();\n}\nfunction linksWithNewTab(html) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, \"text/html\");\n const links = doc.querySelectorAll(\"a\");\n links.forEach((link) => {\n link.setAttribute(\"target\", \"_blank\");\n });\n return doc.body.innerHTML;\n}\ndocument.getElementById(\"save\").addEventListener(\"click\", () => {\n const blob = new Blob([JSON.stringify(store)], { type: \"text/plain\" });\n const a = document.createElement(\"a\");\n a.href = URL.createObjectURL(blob);\n a.download = \"store.json\";\n a.click();\n});\ndocument.getElementById(\"import\").addEventListener(\"click\", () => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = \".json\";\n input.onchange = (e) => {\n const file = e.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => {\n const text = e.target.result;\n const store = JSON.parse(text);\n editorInstance.setValue(store.markdown);\n setTabAsActive(\"markdown\");\n buildPreview();\n };\n reader.readAsText(file);\n };\n input.click();\n});\ndocument.getElementById(\"html\").addEventListener(\"click\", () => {\n const blob = new Blob([iframeHTMLPassive], { type: \"text/html\" });\n const a = document.createElement(\"a\");\n a.href = URL.createObjectURL(blob);\n a.download = \"index.html\";\n a.click();\n});\nfunction saveStorageInBrowser() {\n localStorage.setItem(\"store\", JSON.stringify(store));\n}\nfunction getStorageFromBrowser() {\n const store = localStorage.getItem(\"store\");\n if (store)\n return JSON.parse(store);\n return null;\n}\n\n\n//# sourceURL=webpack://faultier-cv/./src/main.ts?"); +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst monaco_editor_1 = __webpack_require__(/*! monaco-editor */ \"include-loader!./node_modules/monaco-editor/esm/vs/editor/editor.main.js\");\nconst default_1 = __webpack_require__(/*! ./default */ \"./src/default.ts\");\nconst marked_1 = __webpack_require__(/*! marked */ \"./node_modules/marked/lib/marked.cjs\");\nconst store = getStorageFromBrowser()\n ? getStorageFromBrowser()\n : default_1.defaults;\nconst fileTabs = document.getElementById(\"fileTabs\");\nsetTabAsActive(\"markdown\");\nconst editorInstance = monaco_editor_1.editor.create(document.getElementById(\"editor\"), {\n value: store.markdown,\n language: \"markdown\",\n theme: \"vs-dark\",\n});\nwindow.onresize = function () {\n editorInstance.layout();\n};\nconsole.log(\"Hello World\");\nlet iframeHTMLPassive = \"\";\nconst iframe = document.createElement(\"iframe\");\nconst preview = document.getElementById(\"preview\");\npreview.innerHTML = \"\";\npreview.appendChild(iframe);\nbuildPreview();\nfileTabs.addEventListener(\"click\", (e) => {\n const val = e.target.innerText;\n setTabAsActive(val);\n switch (val) {\n case \"markdown\":\n editorInstance.setValue(store.markdown);\n break;\n case \"html\":\n editorInstance.setValue(store.html);\n break;\n case \"css\":\n editorInstance.setValue(store.css);\n break;\n default:\n break;\n }\n});\nlet loading = false;\neditorInstance.getModel().onDidChangeContent((e) => {\n if (loading)\n return;\n loading = true;\n setTimeout(() => {\n setCurrentFile(editorInstance.getValue());\n buildPreview();\n loading = false;\n }, 1000);\n});\nfunction setCurrentFile(val) {\n const file = getCurrentFile();\n switch (file) {\n case \"markdown\":\n store.markdown = val;\n break;\n case \"html\":\n store.html = val;\n break;\n case \"css\":\n store.css = val;\n break;\n default:\n break;\n }\n monaco_editor_1.editor.setModelLanguage(editorInstance.getModel(), file);\n}\nfunction getCurrentFile() {\n return fileTabs.querySelector(\".active\").innerHTML;\n}\nfunction setTabAsActive(file) {\n const active = fileTabs.querySelector(\".active\");\n if (active)\n active.classList.remove(\"active\");\n const newActive = fileTabs.querySelector(`[data-file='${file}']`);\n newActive.classList.add(\"active\");\n}\nfunction buildPreview() {\n let html = store.html;\n const css = store.css;\n const markdownParsed = marked_1.marked.parse(store.markdown);\n html = html.replace(\"{{css}}\", css);\n html = html.replace(\"{{markdown}}\", markdownParsed);\n iframe.contentWindow.document.write(linksWithNewTab(html));\n iframe.contentWindow.document.close();\n iframeHTMLPassive = html;\n saveStorageInBrowser();\n}\nfunction linksWithNewTab(html) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, \"text/html\");\n const links = doc.querySelectorAll(\"a\");\n links.forEach((link) => {\n link.setAttribute(\"target\", \"_blank\");\n });\n return doc.documentElement.innerHTML;\n}\ndocument.getElementById(\"save\").addEventListener(\"click\", () => {\n const blob = new Blob([JSON.stringify(store)], { type: \"text/plain\" });\n const a = document.createElement(\"a\");\n a.href = URL.createObjectURL(blob);\n a.download = \"store.json\";\n a.click();\n});\ndocument.getElementById(\"import\").addEventListener(\"click\", () => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = \".json\";\n input.onchange = (e) => {\n const file = e.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => {\n const text = e.target.result;\n const store = JSON.parse(text);\n editorInstance.setValue(store.markdown);\n setTabAsActive(\"markdown\");\n buildPreview();\n };\n reader.readAsText(file);\n };\n input.click();\n});\ndocument.getElementById(\"html\").addEventListener(\"click\", () => {\n const blob = new Blob([iframeHTMLPassive], { type: \"text/html\" });\n const a = document.createElement(\"a\");\n a.href = URL.createObjectURL(blob);\n a.download = \"index.html\";\n a.click();\n});\nfunction saveStorageInBrowser() {\n localStorage.setItem(\"store\", JSON.stringify(store));\n}\nfunction getStorageFromBrowser() {\n const store = localStorage.getItem(\"store\");\n if (store)\n return JSON.parse(store);\n return null;\n}\n\n\n//# sourceURL=webpack://faultier-cv/./src/main.ts?"); /***/ }), diff --git a/src/main.ts b/src/main.ts index 196346e..1a09a4d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -107,7 +107,7 @@ function linksWithNewTab(html: string) { links.forEach((link) => { link.setAttribute("target", "_blank"); }); - return doc.body.innerHTML; + return doc.documentElement.innerHTML; } document.getElementById("save").addEventListener("click", () => {