From b56dca45346e04c7c03bc12b647c9aee1f1da5ff Mon Sep 17 00:00:00 2001 From: RTa-technology Date: Fri, 27 May 2022 09:18:05 +0900 Subject: [PATCH 1/2] feat: add debounce --- package.json | 2 ++ pnpm-lock.yaml | 12 ++++++++++ src/main.ts | 29 +++++++++++++---------- src/public/files--static/media/black.png | Bin 0 -> 119 bytes 4 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 src/public/files--static/media/black.png diff --git a/package.json b/package.json index 08073f3..84f9cb5 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,8 @@ "esbuild": "^0.14.39", "eslint": "^8.16.0", "sass": "^1.52.1", + "throttle-typescript": "^1.1.0", + "ts-debounce": "^4.0.0", "typescript": "^4.6.4", "vite": "^2.9.9", "yaml": "^2.1.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77c9566..071384d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,8 @@ specifiers: esbuild: ^0.14.39 eslint: ^8.16.0 sass: ^1.52.1 + throttle-typescript: ^1.1.0 + ts-debounce: ^4.0.0 typescript: ^4.6.4 vite: ^2.9.9 yaml: ^2.1.0 @@ -18,6 +20,8 @@ dependencies: esbuild: 0.14.39 eslint: 8.16.0 sass: 1.52.1 + throttle-typescript: 1.1.0 + ts-debounce: 4.0.0 typescript: 4.6.4 vite: 2.9.9_sass@1.52.1 yaml: 2.1.0 @@ -915,6 +919,10 @@ packages: resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: false + /throttle-typescript/1.1.0: + resolution: {integrity: sha512-pxQ+jaKIZZBkRJxbc+CoH3ubz59zgfd8qr0GqHb5NiAIhwHp5SWCHdVnujv/t87EcnFw7BbNrzyLWxNJ1+K6Mg==} + dev: false + /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -922,6 +930,10 @@ packages: is-number: 7.0.0 dev: false + /ts-debounce/4.0.0: + resolution: {integrity: sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==} + dev: false + /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} diff --git a/src/main.ts b/src/main.ts index 2bcc5eb..60aeea4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,6 +2,8 @@ import css from './css/wikidot.css'; import init from './css/init.css'; import collapsible from './css/collapsible.css'; import YAML from 'yaml' +import { debounce } from "ts-debounce"; +import { throttle } from 'throttle-typescript'; import ftmlWorker from './ftml.web.worker.js?bundled-worker&dataurl'; let ftml = new Worker(ftmlWorker, { @@ -75,19 +77,19 @@ const editsideField: HTMLInputElement = document.getElementByI const editsaveButton: HTMLInputElement = document.getElementById('actionarea-save')!; const langSelect: HTMLInputElement = document.getElementById('lang-select')!; -editpageField.addEventListener('input', (event) => { - const { target } = event; - if (!(target instanceof HTMLTextAreaElement)) { - return; - } - const value = target.value; - const type = "page" - const FtmlStorageItem = { title: edittitleField.value, page: editpageField.value, side: editsideField.value }; - localStorage.setItem("FtmlStorage", JSON.stringify(FtmlStorageItem)); - ftml.postMessage({ value: value, type: type }); -}); +editpageField.addEventListener('input', debounce((event) => { + const { target } = event; + if (!(target instanceof HTMLTextAreaElement)) { + return; + } + const value = target.value; + const type = "page" + const FtmlStorageItem = { title: edittitleField.value, page: editpageField.value, side: editsideField.value }; + localStorage.setItem("FtmlStorage", JSON.stringify(FtmlStorageItem)); + ftml.postMessage({ value: value, type: type }); +}, 1000)); -editsideField.addEventListener('input', (event) => { +editsideField.addEventListener('input', debounce((event) => { const { target } = event; if (!(target instanceof HTMLTextAreaElement)) { return; @@ -97,7 +99,7 @@ editsideField.addEventListener('input', (event) => { const FtmlStorageItem = { title: edittitleField.value, page: editpageField.value, side: editsideField.value }; localStorage.setItem("FtmlStorage", JSON.stringify(FtmlStorageItem)); ftml.postMessage({ value: value, type: type }); -}); +}, 1000)); edittitleField.addEventListener('input', (event) => { const { target } = event; @@ -109,6 +111,7 @@ edittitleField.addEventListener('input', (event) => { const FtmlStorageItem = { title: edittitleField.value, page: editpageField.value, side: editsideField.value }; localStorage.setItem("FtmlStorage", JSON.stringify(FtmlStorageItem)); }); + langSelect.addEventListener('change', function () { const lang = this.value; loadlocales(lang); diff --git a/src/public/files--static/media/black.png b/src/public/files--static/media/black.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf27f47d2f6feba4ef91b8eba997329bf447d58 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2s6ii6yp7}lMWc?smOq&xaLGB9lH z=l+w(3gmMZctjR6Fz_7)VaDV6D^h@hJf1F&Arj%q2?+@xEewn?Xa8pcSqz@8elF{r G5}E*=o*MH2 literal 0 HcmV?d00001 From 556f718522f7687f82ae4f1c91f50ea67ac64f69 Mon Sep 17 00:00:00 2001 From: RTa-technology Date: Fri, 27 May 2022 16:32:30 +0900 Subject: [PATCH 2/2] feat --- src/css/wikidot.css | 41 +++++++++++++++++++++++++++++++++-------- src/index.html | 14 +++++++------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/css/wikidot.css b/src/css/wikidot.css index b7acb8e..c0e2b79 100644 --- a/src/css/wikidot.css +++ b/src/css/wikidot.css @@ -2,16 +2,21 @@ clear: both; } -table.wiki-content-table, table.wj-table { +table.wiki-content-table, +table.wj-table { border-collapse: collapse; border-spacing: 0; margin: .5em auto; } -table.wiki-content-table td, table.wj-table td { + +table.wiki-content-table td, +table.wj-table td { border: 1px solid #666666; padding: .3em .7em; } -table.wiki-content-table th, table.wj-table th { + +table.wiki-content-table th, +table.wj-table th { border: 1px solid #666666; padding: .3em .7em; background-color: #eeeeee; @@ -20,12 +25,15 @@ table.wiki-content-table th, table.wj-table th { .wj-align-center { text-align: center; } + .wj-align-left { text-align: left; } + .wj-align-right { text-align: right; } + .wj-align-justify { text-align: justify; } @@ -41,7 +49,7 @@ table.wiki-content-table th, table.wj-table th { #toc .title { font-weight: bold; - margin: .2em 0 ; + margin: .2em 0; padding: 0 2em; text-align: center; } @@ -53,16 +61,19 @@ table.wiki-content-table th, table.wj-table th { #toc-list { margin: .5em 0; } + #toc.floatright { float: right; margin: 1em; } + #toc.floatleft { float: left; margin: 1em; } -.code, code { +.code, +code { border: 1px dashed #999999; background-color: #333333; font-family: "Andale Mono", "Courier New", Courier, monospace; @@ -72,13 +83,20 @@ table.wiki-content-table th, table.wj-table th { } -.footnote .f-heading, .equation .e-heading, .reference .r-heading { +.footnote .f-heading, +.equation .e-heading, +.reference .r-heading { font-weight: bold; } -.footnote .f-content, .reference .r-content { + +.footnote .f-content, +.reference .r-content { margin: .5em 0; } -.footnote .f-footer, .equation .e-footer, .reference .r-footer { + +.footnote .f-footer, +.equation .e-footer, +.reference .r-footer { font-size: 90%; } @@ -88,11 +106,18 @@ table.wiki-content-table th, table.wj-table th { /*border-top: 1px solid #CCC;*/ height: 1%; } + .footnotes-footer .title { margin: .5em 0; font-size: 130%; font-weight: bold; } + a.footnoteref { display: inline-block; } + +a#account-topbutton:active + div#account-options, +a#account-topbutton:focus + div#account-options { + display: block !important; +} \ No newline at end of file diff --git a/src/index.html b/src/index.html index 266164f..c8daf21 100644 --- a/src/index.html +++ b/src/index.html @@ -44,15 +44,15 @@

Default - | My accounts -