You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@answer.apache.org by sh...@apache.org on 2024/07/12 09:46:02 UTC
(incubator-answer) 03/03: replace with front-matter
This is an automated email from the ASF dual-hosted git repository.
shuai pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-answer.git
commit 0378b81b6bd41124253c466fbfc243683e3d0fc7
Author: hgaol <dh...@hotmail.com>
AuthorDate: Fri Jul 12 16:40:29 2024 +0800
replace with front-matter
---
ui/package.json | 3 +-
ui/pnpm-lock.yaml | 65 +++++-------------------------------
ui/src/index.tsx | 4 ---
ui/src/pages/Questions/Ask/index.tsx | 17 +++++-----
4 files changed, 19 insertions(+), 70 deletions(-)
diff --git a/ui/package.json b/ui/package.json
index 573785fb..b2c4aa8f 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -23,14 +23,13 @@
"axios": "^0.28.1",
"bootstrap": "^5.3.2",
"bootstrap-icons": "^1.10.5",
- "buffer": "^6.0.3",
"classnames": "^2.3.1",
"codemirror": "^6.0.1",
"color": "^4.2.3",
"copy-to-clipboard": "^3.3.2",
"dayjs": "^1.11.5",
"diff": "^5.1.0",
- "gray-matter": "^4.0.3",
+ "front-matter": "^4.0.2",
"i18next": "^21.9.0",
"lodash": "^4.17.21",
"marked": "^4.0.19",
diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml
index 54c29cf7..0298231b 100644
--- a/ui/pnpm-lock.yaml
+++ b/ui/pnpm-lock.yaml
@@ -29,9 +29,6 @@ importers:
bootstrap-icons:
specifier: ^1.10.5
version: 1.10.5
- buffer:
- specifier: ^6.0.3
- version: 6.0.3
classnames:
specifier: ^2.3.1
version: 2.3.2
@@ -50,9 +47,9 @@ importers:
diff:
specifier: ^5.1.0
version: 5.1.0
- gray-matter:
- specifier: ^4.0.3
- version: 4.0.3
+ front-matter:
+ specifier: ^4.0.2
+ version: 4.0.2
i18next:
specifier: ^21.9.0
version: 21.9.2
@@ -4401,10 +4398,6 @@ packages:
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- /base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- dev: false
-
/batch@0.6.1:
resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
@@ -4536,13 +4529,6 @@ packages:
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
- /buffer@6.0.3:
- resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
- dev: false
-
/builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
@@ -6439,13 +6425,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-extendable: 0.1.1
- dev: false
-
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -6651,6 +6630,12 @@ packages:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
+ /front-matter@4.0.2:
+ resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==}
+ dependencies:
+ js-yaml: 3.14.1
+ dev: false
+
/fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
@@ -6848,16 +6833,6 @@ packages:
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- /gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
- dependencies:
- js-yaml: 3.14.1
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
- dev: false
-
/gzip-size@6.0.0:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
@@ -7122,10 +7097,6 @@ packages:
dependencies:
harmony-reflect: 1.6.2
- /ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- dev: false
-
/ignore@5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
@@ -7277,11 +7248,6 @@ packages:
hasBin: true
dev: true
- /is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -10580,14 +10546,6 @@ packages:
ajv-formats: 2.1.1(ajv@8.11.0)
ajv-keywords: 5.1.0(ajv@8.11.0)
- /section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
- dev: false
-
/select-hose@2.0.0:
resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
@@ -11057,11 +11015,6 @@ packages:
dependencies:
ansi-regex: 6.0.1
- /strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
diff --git a/ui/src/index.tsx b/ui/src/index.tsx
index 174677cb..e2930c08 100644
--- a/ui/src/index.tsx
+++ b/ui/src/index.tsx
@@ -17,8 +17,6 @@
* under the License.
*/
-import { Buffer } from 'buffer';
-
import React from 'react';
import ReactDOM from 'react-dom/client';
@@ -31,8 +29,6 @@ const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement,
);
-window.Buffer = window.Buffer || Buffer;
-
/**
* Uniformly hide broken images
* - The `onload` event for elements such as `img` can only be `capture` on `document` (window cannot).
diff --git a/ui/src/pages/Questions/Ask/index.tsx b/ui/src/pages/Questions/Ask/index.tsx
index 4cd7fd76..03af3152 100644
--- a/ui/src/pages/Questions/Ask/index.tsx
+++ b/ui/src/pages/Questions/Ask/index.tsx
@@ -26,7 +26,7 @@ import dayjs from 'dayjs';
import classNames from 'classnames';
import isEqual from 'lodash/isEqual';
import debounce from 'lodash/debounce';
-import matter from 'gray-matter';
+import fm from 'front-matter';
import { usePageTags, usePromptWithUnload } from '@/hooks';
import { Editor, EditorRef, TagSelector } from '@/components';
@@ -144,20 +144,21 @@ const Ask = () => {
const prefill = searchParams.get('prefill');
if (prefill || draft) {
if (prefill) {
- const file = matter(decodeURIComponent(prefill));
- formData.title.value = file.data?.title;
- formData.content.value = file.content;
- if (!queryTags && file.data?.tags) {
- updateTags(file.data.tags);
+ const file = fm<any>(decodeURIComponent(prefill));
+ formData.title.value = file.attributes?.title;
+ formData.content.value = file.body;
+ if (!queryTags && file.attributes?.tags) {
+ updateTags(file.attributes.tags);
}
} else if (draft) {
formData.title.value = draft.title;
formData.content.value = draft.content;
formData.tags.value = draft.tags;
formData.answer_content.value = draft.answer_content;
+ setCheckState(Boolean(draft.answer_content));
+ setHasDraft(true);
}
- setCheckState(Boolean(draft.answer_content));
- setHasDraft(true);
+
setFormData({ ...formData });
} else {
resetForm();