chore: parse bibtex
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
"@huggingface/hub": "^0.15.1",
|
"@huggingface/hub": "^0.15.1",
|
||||||
"@huggingface/tasks": "^0.11.6",
|
"@huggingface/tasks": "^0.11.6",
|
||||||
"@monaco-editor/react": "^4.6.0",
|
"@monaco-editor/react": "^4.6.0",
|
||||||
|
"@orcid/bibtex-parse-js": "^0.0.25",
|
||||||
"@react-hook/resize-observer": "^2.0.2",
|
"@react-hook/resize-observer": "^2.0.2",
|
||||||
"@types/lodash": "^4.17.4",
|
"@types/lodash": "^4.17.4",
|
||||||
"@umijs/max": "^4.2.11",
|
"@umijs/max": "^4.2.11",
|
||||||
|
|||||||
Generated
+7
@@ -26,6 +26,9 @@ dependencies:
|
|||||||
'@monaco-editor/react':
|
'@monaco-editor/react':
|
||||||
specifier: ^4.6.0
|
specifier: ^4.6.0
|
||||||
version: 4.6.0(monaco-editor@0.52.0)(react-dom@18.2.0)(react@18.2.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':
|
'@react-hook/resize-observer':
|
||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2(react@18.2.0)
|
version: 2.0.2(react@18.2.0)
|
||||||
@@ -4604,6 +4607,10 @@ packages:
|
|||||||
'@nodelib/fs.scandir': 2.1.5
|
'@nodelib/fs.scandir': 2.1.5
|
||||||
fastq: 1.17.1
|
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:
|
/@pkgjs/parseargs@0.11.0:
|
||||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz}
|
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
<ol>
|
||||||
|
{dataList.map((item: any, index: number) => (
|
||||||
|
<li key={index} style={{ lineHeight: 2 }}>
|
||||||
|
<Typography.Link href={item.entryTags?.url} target="_blank">
|
||||||
|
{item.entryTags?.title}.{' '}
|
||||||
|
</Typography.Link>
|
||||||
|
<Typography.Text>{item.entryTags?.author}. </Typography.Text>
|
||||||
|
<Typography.Text>[{item.entryTags?.year}] </Typography.Text>
|
||||||
|
{item.entryTags?.journal && (
|
||||||
|
<Typography.Text>.({item.entryTags?.journal})</Typography.Text>
|
||||||
|
)}
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ol>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default BibTeXViewer;
|
||||||
@@ -42,6 +42,7 @@ const MarkdownViewer: React.FC<MarkdownViewerProps> = ({
|
|||||||
'del',
|
'del',
|
||||||
'blockquote',
|
'blockquote',
|
||||||
'checkbox'
|
'checkbox'
|
||||||
|
// 'bibtex'
|
||||||
];
|
];
|
||||||
|
|
||||||
// renderer.link = ({ href, title, text }) => {
|
// renderer.link = ({ href, title, text }) => {
|
||||||
@@ -69,6 +70,7 @@ const MarkdownViewer: React.FC<MarkdownViewerProps> = ({
|
|||||||
|
|
||||||
const renderItem = useCallback(
|
const renderItem = useCallback(
|
||||||
(token: any, render: any) => {
|
(token: any, render: any) => {
|
||||||
|
console.log('token====', token);
|
||||||
if (!reDefineTypes.includes(token.type)) {
|
if (!reDefineTypes.includes(token.type)) {
|
||||||
return (
|
return (
|
||||||
<span
|
<span
|
||||||
@@ -151,11 +153,13 @@ const MarkdownViewer: React.FC<MarkdownViewerProps> = ({
|
|||||||
if (token.type === 'paragraph') {
|
if (token.type === 'paragraph') {
|
||||||
htmlstr = <Paragraph> {text}</Paragraph>;
|
htmlstr = <Paragraph> {text}</Paragraph>;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (token.type === 'code') {
|
if (token.type === 'code') {
|
||||||
htmlstr = (
|
htmlstr = (
|
||||||
<HighlightCode theme={theme} code={token.text} lang={token.lang} />
|
<HighlightCode theme={theme} code={token.text} lang={token.lang} />
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (token.type === 'link') {
|
if (token.type === 'link') {
|
||||||
htmlstr = (
|
htmlstr = (
|
||||||
<Link
|
<Link
|
||||||
|
|||||||
Vendored
+1
@@ -19,5 +19,6 @@ declare module 'crypto-js';
|
|||||||
declare module 'has-ansi';
|
declare module 'has-ansi';
|
||||||
declare module 'terminal-kit';
|
declare module 'terminal-kit';
|
||||||
declare module 'monaco-vim';
|
declare module 'monaco-vim';
|
||||||
|
declare module '@orcid/bibtex-parse-js';
|
||||||
|
|
||||||
declare const REACT_APP_ENV: 'test' | 'dev' | 'pre' | false;
|
declare const REACT_APP_ENV: 'test' | 'dev' | 'pre' | false;
|
||||||
|
|||||||
Reference in New Issue
Block a user