diff --git a/package.json b/package.json index 85e174c1..d58ef876 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@huggingface/hub": "^0.15.1", "@huggingface/tasks": "^0.11.6", "@monaco-editor/react": "^4.6.0", + "@orcid/bibtex-parse-js": "^0.0.25", "@react-hook/resize-observer": "^2.0.2", "@types/lodash": "^4.17.4", "@umijs/max": "^4.2.11", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 956c3821..dd4d0034 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ dependencies: '@monaco-editor/react': specifier: ^4.6.0 version: 4.6.0(monaco-editor@0.52.0)(react-dom@18.2.0)(react@18.2.0) + '@orcid/bibtex-parse-js': + specifier: ^0.0.25 + version: 0.0.25 '@react-hook/resize-observer': specifier: ^2.0.2 version: 2.0.2(react@18.2.0) @@ -4604,6 +4607,10 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + /@orcid/bibtex-parse-js@0.0.25: + resolution: {integrity: sha512-n6VuG5/WjiifC1DoUzq0sUCWNSbAyRZznBgvPcY4jVZ/2eJiMv2tNUAt2NukbnFExOUa0RyTOFsqhH2MGpiLgQ==, tarball: https://registry.npmjs.org/@orcid/bibtex-parse-js/-/bibtex-parse-js-0.0.25.tgz} + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} engines: {node: '>=14'} diff --git a/src/components/bibtex-viewer/index.tsx b/src/components/bibtex-viewer/index.tsx new file mode 100644 index 00000000..372c955c --- /dev/null +++ b/src/components/bibtex-viewer/index.tsx @@ -0,0 +1,47 @@ +import bibtexParse from '@orcid/bibtex-parse-js'; +import { Typography } from 'antd'; +import React from 'react'; + +/* + @inproceedings{Lysenko:2010:GMC:1839778.1839781,\ + author = {Lysenko, Mikola and Nelaturi, Saigopal and Shapiro, Vadim},\ + title = {Group morphology with convolution algebras},\ + booktitle = {Proceedings of the 14th ACM Symposium on Solid and Physical Modeling},\ + series = {SPM '10},\ + year = {2010},\ + isbn = {978-1-60558-984-8},\ + location = {Haifa, Israel},\ + pages = {11--22},\ + numpages = {12},\ + url = {http://doi.acm.org/10.1145/1839778.1839781},\ + doi = {10.1145/1839778.1839781},\ + acmid = {1839781},\ + publisher = {ACM},\ + address = {New York, NY, USA},\ + } +*/ + +const BibTeXViewer: React.FC<{ data: string }> = ({ data }) => { + if (!data) { + return null; + } + const dataList = bibtexParse.toJSON(data); + return ( +