From 1ae12e6bf52c01d1a1dd99d316079f5b4deaa2bc Mon Sep 17 00:00:00 2001 From: sevichecc Date: Thu, 23 Mar 2023 22:11:42 +0800 Subject: [PATCH] Add Tooltip --- package.json | 11 + pnpm-lock.yaml | 509 ++++++++++++++++++ postcss.config.cjs | 6 + src/App.vue | 9 +- src/components/Milkdown/Editor.vue | 40 ++ src/components/Milkdown/MilkdownEditor.vue | 27 - .../Milkdown/MilkdownEditorWrapper.vue | 20 - src/components/Milkdown/Tooltip.vue | 50 ++ src/style.css | 11 + src/vite-env.d.ts | 4 + tailwind.config.cjs | 9 + tsconfig.json | 4 +- vite.config.ts | 1 - 13 files changed, 649 insertions(+), 52 deletions(-) create mode 100644 postcss.config.cjs create mode 100644 src/components/Milkdown/Editor.vue delete mode 100644 src/components/Milkdown/MilkdownEditor.vue delete mode 100644 src/components/Milkdown/MilkdownEditorWrapper.vue create mode 100644 src/components/Milkdown/Tooltip.vue create mode 100644 tailwind.config.cjs diff --git a/package.json b/package.json index 39222ca..f07a39c 100644 --- a/package.json +++ b/package.json @@ -11,18 +11,29 @@ "dependencies": { "@milkdown/core": "^7.1.0", "@milkdown/ctx": "^7.1.0", + "@milkdown/plugin-block": "^7.1.0", + "@milkdown/plugin-clipboard": "^7.1.0", + "@milkdown/plugin-cursor": "^7.1.0", + "@milkdown/plugin-history": "^7.1.0", + "@milkdown/plugin-math": "^7.1.0", + "@milkdown/plugin-slash": "^7.1.0", + "@milkdown/plugin-tooltip": "^7.1.0", "@milkdown/preset-commonmark": "^7.1.0", "@milkdown/prose": "^7.1.0", "@milkdown/theme-nord": "^7.1.0", "@milkdown/transformer": "^7.1.0", + "@milkdown/utils": "^7.1.0", "@milkdown/vue": "^7.1.0", + "@prosemirror-adapter/vue": "^0.2.2", "masto": "^5.10.0", "vue": "^3.2.45" }, "devDependencies": { "@antfu/eslint-config": "^0.35.2", + "@tailwindcss/typography": "^0.5.9", "@vitejs/plugin-vue": "^4.0.0", "eslint": "^8.34.0", + "tailwindcss": "^3.2.7", "typescript": "^4.9.5", "vite": "^4.1.0", "vue-tsc": "^1.0.24" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 50385c7..4540aea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,25 @@ specifiers: '@antfu/eslint-config': ^0.35.2 '@milkdown/core': ^7.1.0 '@milkdown/ctx': ^7.1.0 + '@milkdown/plugin-block': ^7.1.0 + '@milkdown/plugin-clipboard': ^7.1.0 + '@milkdown/plugin-cursor': ^7.1.0 + '@milkdown/plugin-history': ^7.1.0 + '@milkdown/plugin-math': ^7.1.0 + '@milkdown/plugin-slash': ^7.1.0 + '@milkdown/plugin-tooltip': ^7.1.0 '@milkdown/preset-commonmark': ^7.1.0 '@milkdown/prose': ^7.1.0 '@milkdown/theme-nord': ^7.1.0 '@milkdown/transformer': ^7.1.0 + '@milkdown/utils': ^7.1.0 '@milkdown/vue': ^7.1.0 + '@prosemirror-adapter/vue': ^0.2.2 + '@tailwindcss/typography': ^0.5.9 '@vitejs/plugin-vue': ^4.0.0 eslint: ^8.34.0 masto: ^5.10.0 + tailwindcss: ^3.2.7 typescript: ^4.9.5 vite: ^4.1.0 vue: ^3.2.45 @@ -20,18 +31,29 @@ specifiers: dependencies: '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 '@milkdown/ctx': 7.1.0 + '@milkdown/plugin-block': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@milkdown/plugin-clipboard': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@milkdown/plugin-cursor': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@milkdown/plugin-history': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@milkdown/plugin-math': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@milkdown/plugin-slash': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@milkdown/plugin-tooltip': 7.1.0_732s7te4rg2orop6g3xf7k4a4q '@milkdown/preset-commonmark': 7.1.0_732s7te4rg2orop6g3xf7k4a4q '@milkdown/prose': 7.1.0 '@milkdown/theme-nord': 7.1.0_fnri332nzjq6erd5dndce6khhq '@milkdown/transformer': 7.1.0_@milkdown+prose@7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q '@milkdown/vue': 7.1.0_vjwzzj24pyznhku3il4y3ra27i + '@prosemirror-adapter/vue': 0.2.2_vue@3.2.47 masto: 5.10.0 vue: 3.2.47 devDependencies: '@antfu/eslint-config': 0.35.2_7kw3g6rralp5ps6mg3uyzz6azm + '@tailwindcss/typography': 0.5.9_tailwindcss@3.2.7 '@vitejs/plugin-vue': 4.0.0_vite@4.1.3+vue@3.2.47 eslint: 8.34.0 + tailwindcss: 3.2.7 typescript: 4.9.5 vite: 4.1.3 vue-tsc: 1.1.5_typescript@4.9.5 @@ -462,6 +484,134 @@ packages: tslib: 2.5.0 dev: false + /@milkdown/plugin-block/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-tNzjpxYbV6kQm+FfEFRg7mq6bkAE6sYao00p6ImMvJVJdiw32TB/36DKnuRlImL2db4MU7juVGi1Tnekblm8Qw==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/ctx': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/ctx': 7.1.0 + '@milkdown/exception': 7.1.0 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@types/lodash.debounce': 4.0.7 + lodash.debounce: 4.0.8 + tippy.js: 6.3.7 + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-clipboard/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-ipUofAkPa9/JYTyZw7XEffUX4uZ5/Sl0hCgGPo/iKG77lYw2BZLFrROqpXI2vRoaxeF8wPgspPm8+vKffVj2/w==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/ctx' + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-cursor/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-/Nmc7gls2+MFJtSanJl/VWHHnnwrGQ8opd4ZDNPE8ll2gpS2Kh59UCXeErGEtqvNMI/RHtHGU4FopDdcLvYsfQ==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/ctx': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/ctx': 7.1.0 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-history/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-IMMRk7lG2yfLzf/9Ni1m+GLJyo1L4lZRbOgzvjhasY0zZQf+AI/jBHnLIqWH6jtOo5c5oZt/DF5EqObucuXmdA==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/ctx': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/ctx': 7.1.0 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-math/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-eYgjGreYgbqf6O6e/BoBD5jbYP/EmUwIWpeRLBurEPjFPPdtROYoUu++iDzkZto9bc4SKsY7nqcfQHfWtQZlUQ==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/ctx': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/ctx': 7.1.0 + '@milkdown/exception': 7.1.0 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@types/katex': 0.16.0 + katex: 0.16.4 + remark-math: 5.1.1 + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-slash/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-XTeHJv95gb/1Uj0nD90O/npkSlu1qoy8VxlTP1W+oXuGLRT5nX4LD+EG+bLL4oAL8Flp9DxQI/YR2b5CHbUTDQ==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/ctx': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/ctx': 7.1.0 + '@milkdown/exception': 7.1.0 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@types/lodash.debounce': 4.0.7 + lodash.debounce: 4.0.8 + smooth-scroll-into-view-if-needed: 1.1.33 + tippy.js: 6.3.7 + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-tooltip/7.1.0_732s7te4rg2orop6g3xf7k4a4q: + resolution: {integrity: sha512-xal3MH/vYKz4H21ACA8a6FhB0t56g7jckB7ljoZkivSiZk76ZC7VMYS0SJiqP3Vl/DFdNf5mZum4/3EF6VQ+Qg==} + peerDependencies: + '@milkdown/core': ^7.0.0-next.0 + '@milkdown/ctx': ^7.0.0-next.0 + '@milkdown/prose': ^7.0.0-next.0 + dependencies: + '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4 + '@milkdown/ctx': 7.1.0 + '@milkdown/exception': 7.1.0 + '@milkdown/prose': 7.1.0 + '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q + '@types/lodash.debounce': 4.0.7 + lodash.debounce: 4.0.8 + tippy.js: 6.3.7 + tslib: 2.5.0 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + /@milkdown/preset-commonmark/7.1.0_732s7te4rg2orop6g3xf7k4a4q: resolution: {integrity: sha512-suRAZMINRXtpYVrhIJGI4jsSQFVa4P47MB66LqT1y/aLg34jsg5rW/RqbBvjj4TctVtRcCbWwGL+xYr97/lsZQ==} peerDependencies: @@ -588,6 +738,39 @@ packages: fastq: 1.15.0 dev: true + /@popperjs/core/2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + dev: false + + /@prosemirror-adapter/core/0.2.2: + resolution: {integrity: sha512-rnkh1StLZO5YcA8ELVmUNd+OkqeuneyhoDoXrSDsMuG1HeQLy6WithRurJQcqkJQD5Ak/ebWDykKEFPGKS4a+A==} + dependencies: + tslib: 2.5.0 + dev: false + + /@prosemirror-adapter/vue/0.2.2_vue@3.2.47: + resolution: {integrity: sha512-9yRN+ZgyhHh/+mdbSwfLIpHd3q72T1tt+45Y81DW+5Jm6D5uIanhlzClh6TDciYfTIO8xXA5di2qxgJD+9W5Yg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@prosemirror-adapter/core': 0.2.2 + nanoid: 4.0.1 + tslib: 2.5.0 + vue: 3.2.47 + dev: false + + /@tailwindcss/typography/0.5.9_tailwindcss@3.2.7: + resolution: {integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.2.7 + dev: true + /@types/debug/4.1.7: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} dependencies: @@ -602,6 +785,24 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/katex/0.11.1: + resolution: {integrity: sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==} + dev: false + + /@types/katex/0.16.0: + resolution: {integrity: sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw==} + dev: false + + /@types/lodash.debounce/4.0.7: + resolution: {integrity: sha512-X1T4wMZ+gT000M2/91SYj0d/7JfeNZ9PeeOldSNoE/lunLeQXKvkmIumI29IaKMotU/ln/McOIvgzZcQ/3TrSA==} + dependencies: + '@types/lodash': 4.14.191 + dev: false + + /@types/lodash/4.14.191: + resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + dev: false + /@types/mdast/3.0.10: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: @@ -901,6 +1102,25 @@ packages: acorn: 8.8.2 dev: true + /acorn-node/1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + dev: true + + /acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -935,6 +1155,18 @@ packages: color-convert: 2.0.1 dev: true + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -992,6 +1224,11 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + /boolbase/1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -1045,6 +1282,11 @@ packages: tslib: 2.5.0 dev: false + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /capital-case/1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: @@ -1103,6 +1345,21 @@ packages: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} dev: true + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /ci-info/3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} @@ -1148,6 +1405,15 @@ packages: delayed-stream: 1.0.0 dev: false + /commander/8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: false + + /compute-scroll-into-view/1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1222,6 +1488,10 @@ packages: object-keys: 1.1.1 dev: true + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + dev: true + /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1232,6 +1502,20 @@ packages: engines: {node: '>=6'} dev: false + /detective/5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + acorn-node: 1.8.2 + defined: 1.0.1 + minimist: 1.2.8 + dev: true + + /didyoumean/1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /diff/5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -1244,6 +1528,10 @@ packages: path-type: 4.0.0 dev: true + /dlv/1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /doctrine/2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -2159,6 +2447,13 @@ packages: has-bigints: 1.0.2 dev: true + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + /is-boolean-object/1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} @@ -2356,6 +2651,20 @@ packages: semver: 7.3.8 dev: true + /katex/0.13.24: + resolution: {integrity: sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==} + hasBin: true + dependencies: + commander: 8.3.0 + dev: false + + /katex/0.16.4: + resolution: {integrity: sha512-WudRKUj8yyBeVDI4aYMNxhx5Vhh2PjpzQw1GRu/LVGqL4m1AxwD1GcUp0IMbdJaf5zsjtj8ghP0DOQRYhroNkw==} + hasBin: true + dependencies: + commander: 8.3.0 + dev: false + /kleur/4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -2369,6 +2678,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig/2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true @@ -2392,6 +2706,18 @@ packages: p-locate: 5.0.0 dev: true + /lodash.castarray/4.4.0: + resolution: {integrity: sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=} + dev: true + + /lodash.debounce/4.0.8: + resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} + dev: false + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} + dev: true + /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -2476,6 +2802,14 @@ packages: - supports-color dev: false + /mdast-util-math/2.0.2: + resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==} + dependencies: + '@types/mdast': 3.0.10 + longest-streak: 3.1.0 + mdast-util-to-markdown: 1.5.0 + dev: false + /mdast-util-phrasing/3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} dependencies: @@ -2532,6 +2866,18 @@ packages: uvu: 0.5.6 dev: false + /micromark-extension-math/2.0.2: + resolution: {integrity: sha512-cFv2B/E4pFPBBFuGgLHkkNiFAIQv08iDgPH2HCuR2z3AUgMLecES5Cq7AVtwOtZeRrbA80QgMUk8VVW0Z+D2FA==} + dependencies: + '@types/katex': 0.11.1 + katex: 0.13.24 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + /micromark-factory-destination/1.0.0: resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} dependencies: @@ -2797,12 +3143,22 @@ packages: validate-npm-package-license: 3.0.4 dev: true + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + /nth-check/2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /object-inspect/1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} @@ -2966,11 +3322,73 @@ packages: engines: {node: '>=8.6'} dev: true + /pify/2.3.0: + resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + engines: {node: '>=0.10.0'} + dev: true + /pluralize/8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} dev: true + /postcss-import/14.1.0_postcss@8.4.21: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-js/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.21 + dev: true + + /postcss-load-config/3.1.4_postcss@8.4.21: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.21 + yaml: 1.10.2 + dev: true + + /postcss-nested/6.0.0_postcss@8.4.21: + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /postcss-selector-parser/6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + /postcss-selector-parser/6.0.11: resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} engines: {node: '>=4'} @@ -2979,6 +3397,10 @@ packages: util-deprecate: 1.0.2 dev: true + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss/8.4.21: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} @@ -3107,6 +3529,17 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /read-cache/1.0.0: + resolution: {integrity: sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=} + dependencies: + pify: 2.3.0 + dev: true + /read-pkg-up/7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -3126,6 +3559,13 @@ packages: type-fest: 0.6.0 dev: true + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + /regexp-tree/0.1.24: resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} hasBin: true @@ -3161,6 +3601,15 @@ packages: unist-util-visit: 4.1.2 dev: false + /remark-math/5.1.1: + resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-math: 2.0.2 + micromark-extension-math: 2.0.2 + unified: 10.1.2 + dev: false + /remark-parse/10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: @@ -3255,6 +3704,12 @@ packages: regexp-tree: 0.1.24 dev: true + /scroll-into-view-if-needed/2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -3304,6 +3759,12 @@ packages: engines: {node: '>=8'} dev: true + /smooth-scroll-into-view-if-needed/1.1.33: + resolution: {integrity: sha512-crS8NfAaoPrtVYOCMSAnO2vHRgUp22NiiDgEQ7YiaAy5xe2jmR19Jm+QdL8+97gO8ENd7PUyQIAQojJyIiyRHw==} + dependencies: + scroll-into-view-if-needed: 2.2.31 + dev: false + /snake-case/3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: @@ -3404,10 +3865,48 @@ packages: engines: {node: '>= 0.4'} dev: true + /tailwindcss/3.2.7: + resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + arg: 5.0.2 + chokidar: 3.5.3 + color-name: 1.1.4 + detective: 5.2.1 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-import: 14.1.0_postcss@8.4.21 + postcss-js: 4.0.1_postcss@8.4.21 + postcss-load-config: 3.1.4_postcss@8.4.21 + postcss-nested: 6.0.0_postcss@8.4.21 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + quick-lru: 5.1.1 + resolve: 1.22.1 + transitivePeerDependencies: + - ts-node + dev: true + /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /tippy.js/6.3.7: + resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} + dependencies: + '@popperjs/core': 2.11.6 + dev: false + /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -3750,6 +4249,11 @@ packages: engines: {node: '>=12'} dev: true + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -3762,6 +4266,11 @@ packages: yaml: 2.2.1 dev: true + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + /yaml/2.2.1: resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} engines: {node: '>= 14'} diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..f142aa6 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,6 @@ +/* Copyright 2021, Milkdown by Mirone. */ +module.exports = { + plugins: { + tailwindcss: {}, + }, +} diff --git a/src/App.vue b/src/App.vue index df34d23..ae4c8ab 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,13 @@ diff --git a/src/components/Milkdown/Editor.vue b/src/components/Milkdown/Editor.vue new file mode 100644 index 0000000..c5668b5 --- /dev/null +++ b/src/components/Milkdown/Editor.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/components/Milkdown/MilkdownEditor.vue b/src/components/Milkdown/MilkdownEditor.vue deleted file mode 100644 index 31922d0..0000000 --- a/src/components/Milkdown/MilkdownEditor.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/src/components/Milkdown/MilkdownEditorWrapper.vue b/src/components/Milkdown/MilkdownEditorWrapper.vue deleted file mode 100644 index b11bf40..0000000 --- a/src/components/Milkdown/MilkdownEditorWrapper.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/src/components/Milkdown/Tooltip.vue b/src/components/Milkdown/Tooltip.vue new file mode 100644 index 0000000..c5e0a13 --- /dev/null +++ b/src/components/Milkdown/Tooltip.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/style.css b/src/style.css index e69de29..18b8656 100644 --- a/src/style.css +++ b/src/style.css @@ -0,0 +1,11 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.milkdown { + @apply bg-slate-50 px-2 py-4 m-5 border rounded; +} + +.editor { + @apply mx-auto; +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 11f02fe..340a75a 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -1 +1,5 @@ /// + +declare module '*.vue' { + export = any; +} diff --git a/tailwind.config.cjs b/tailwind.config.cjs new file mode 100644 index 0000000..41b7849 --- /dev/null +++ b/tailwind.config.cjs @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['**/*.tsx', '**/*.ts', '**/*.vue', '**/*.html'], + darkMode: 'class', + theme: { + extend: {}, + }, + plugins: [require('@tailwindcss/typography')], +} diff --git a/tsconfig.json b/tsconfig.json index b557c40..c950862 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,9 @@ "esModuleInterop": true, "lib": ["ESNext", "DOM"], "skipLibCheck": true, - "noEmit": true + "noEmit": true, + "noPropertyAccessFromIndexSignature": false, + "allowJs": true }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], "references": [{ "path": "./tsconfig.node.json" }] diff --git a/vite.config.ts b/vite.config.ts index 37e3700..05c1740 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,4 +5,3 @@ import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], }) -