Skip to content

Commit bca9fc0

Browse files
authored
Fix/issue 317 zotero v2 (#318)
* add ArticleHelmet to edit head metadata from the Article component * fix date
1 parent 01d4314 commit bca9fc0

File tree

3 files changed

+93
-5
lines changed

3 files changed

+93
-5
lines changed

src/components/ArticleV2/Article.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useCurrentWindowDimensions } from '../../hooks/graphics'
44
import ArticleHeader from '../Article/ArticleHeader'
55
import ArticleNote from '../Article/ArticleNote'
66
import ArticleFlow from './ArticleFlow'
7+
import ArticleHelmet from './ArticleHelmet'
78
import ArticleBibliography from '../Article/ArticleBibliography'
89
import Footer from '../Footer'
910

@@ -12,13 +13,14 @@ const Article = ({
1213
// Notebook instance, an object containing {cells:[], metadata:{}}
1314
ipynb,
1415
url,
16+
imageUrl,
1517
publicationDate = new Date(),
1618
publicationStatus,
1719
issue,
18-
// plainTitle,
19-
// plainContributor = '',
20-
// plainKeywords = [],
21-
// excerpt,
20+
plainTitle,
21+
plainContributor = '',
22+
plainKeywords = [],
23+
excerpt,
2224
doi,
2325
binderUrl,
2426
bibjson,
@@ -40,6 +42,8 @@ const Article = ({
4042
collaborators,
4143
disclaimer = []
4244
} = articleTree.sections
45+
46+
4347
console.debug(`[Article] component rendered ${width}x${height}px`)
4448
console.debug('[Article] loading articleTree anchors:', articleTree.anchors)
4549

@@ -51,8 +55,21 @@ const Article = ({
5155
<ArticleBibliography articleTree={articleTree} noAnchor className="mt-0"/>
5256
)
5357
const renderedFooterComponent = (<Footer />)
58+
59+
60+
5461
return (
5562
<>
63+
<ArticleHelmet
64+
url={url}
65+
imageUrl={imageUrl}
66+
plainTitle={plainTitle}
67+
plainContributor={plainContributor}
68+
plainKeywords={plainKeywords}
69+
publicationDate={publicationDate}
70+
issue={issue}
71+
excerpt={excerpt}
72+
/>
5673
<div className="page">
5774
<a id="top" className="anchor"></a>
5875
<ArticleFlow
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import React, { useLayoutEffect } from 'react'
2+
import { Helmet } from 'react-helmet'
3+
4+
const ArticleHelmet = ({
5+
url='',
6+
imageUrl='',
7+
plainTitle='',
8+
excerpt='',
9+
plainContributor='',
10+
plainKeywords=[],
11+
issue,
12+
publicationDate = new Date()
13+
}) => {
14+
// apply zotero when the DOM is ready
15+
useLayoutEffect(() => {
16+
console.debug('[ArticleHelmet] @useLayoutEffect')
17+
document.dispatchEvent(new Event('ZoteroItemUpdated', {
18+
bubbles: true,
19+
cancelable: true
20+
}))
21+
}, [url])
22+
23+
return (
24+
<Helmet>
25+
<meta property="og:site_name" content="Journal of Digital history" />
26+
<meta property="og:title" content={plainTitle} />
27+
<meta property="og:description" content={excerpt} />
28+
<meta property="og:type" content="article" />
29+
<meta property="og:image" content={imageUrl} />
30+
<meta property="og:url" content={window.location} />
31+
<meta property="article:author" content={plainContributor} />
32+
<meta property="article:published_time" content={publicationDate.toISOString().split('T').shift()} />
33+
<meta property="article:section" content={issue?.pid || ''} />
34+
{plainKeywords.map((k,i) => (
35+
<meta key={i} property="article:tag" content={k} />
36+
))}
37+
<meta name="dc.title" content={plainTitle} />
38+
<meta name="dc.format" content="text/html" />
39+
<meta name="dc.publisher" content="DeGruyter" />
40+
<meta name="dc.type" content="OriginalPaper" />
41+
<meta name="dc.language" content="En" />
42+
{plainContributor.split(', ').map((d,i) => (
43+
<meta key={i} name="dc.creator" content={d} />
44+
))}
45+
{/*
46+
dc:title Studying E-Journal User Behavior Using Log Files
47+
dc:creator Yu, L
48+
dc:creator Apps, A
49+
dc:subject http://purl.org/dc/terms/DDC 020
50+
dc:subject http://purl.org/dc/terms/LCC Z671
51+
dc:publisher Elsevier
52+
dc:type http://purl.org/dc/terms/DCMIType Text
53+
dcterms:issued http://purl.org/dc/terms/W3CDTF 2000
54+
dcterms:isPartOf urn:ISSN:0740-8188
55+
dcterms:bibliographicCitation
56+
*/}
57+
{plainKeywords.map((k,i) => (
58+
<meta key={i} property="dc.subject" content={k} />
59+
))}
60+
61+
<meta name="citation_journal_title" content="Journal of Digital history"/>
62+
<meta name="citation_journal_abbrev" content="JDH"/>
63+
<meta name="citation_publisher" content="DeGruyter"/>
64+
<meta name="citation_title" content={plainTitle}/>
65+
<meta name="citation_issue" content={issue?.pid}/>
66+
67+
</Helmet>
68+
)
69+
}
70+
71+
export default ArticleHelmet

src/pages/ArticleViewer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ const ArticleViewer = ({ match: { params: { pid }}}) => {
7979
collaborators={collaborators}
8080
keywords={keywords}
8181
publicationStatus={article.status}
82-
publicationDate={article.publication_date}
82+
publicationDate={new Date(article.issue?.publication_date)}
8383
binderUrl={article.binder_url}
8484
emailAddress={article.abstract?.contact_email}
8585
doi={article.doi}

0 commit comments

Comments
 (0)