diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/landing/sections/Hero.tsx | 9 | ||||
-rw-r--r-- | src/components/landing/sections/Publications.tsx | 56 | ||||
-rw-r--r-- | src/components/landing/sections/Research.tsx | 2 | ||||
-rw-r--r-- | src/components/landing/sections/Resume.tsx | 31 | ||||
-rw-r--r-- | src/components/landing/sections/authorizedLinks.ts | 10 |
5 files changed, 79 insertions, 29 deletions
diff --git a/src/components/landing/sections/Hero.tsx b/src/components/landing/sections/Hero.tsx index b12e56a..d9fe556 100644 --- a/src/components/landing/sections/Hero.tsx +++ b/src/components/landing/sections/Hero.tsx | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023-2024 Kristóf Marussy | 2 | * SPDX-FileCopyrightText: 2023-2024 Kristóf Marussy |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: MIT | 4 | * SPDX-License-Identifier: MIT AND CC-BY-4.0 |
5 | */ | 5 | */ |
6 | 6 | ||
7 | import Link from '@docusaurus/Link'; | 7 | import Link from '@docusaurus/Link'; |
@@ -57,8 +57,9 @@ export default function Hero({ avatar }: { avatar: string }) { | |||
57 | pronouns are he/him. | 57 | pronouns are he/him. |
58 | </p> | 58 | </p> |
59 | <div className={styles.cta}> | 59 | <div className={styles.cta}> |
60 | <Link | 60 | <a |
61 | to="/cv.pdf" | 61 | href="/cv.pdf" |
62 | target="_blank" | ||
62 | className={clsx( | 63 | className={clsx( |
63 | 'button', | 64 | 'button', |
64 | 'button--lg', | 65 | 'button--lg', |
@@ -67,7 +68,7 @@ export default function Hero({ avatar }: { avatar: string }) { | |||
67 | )} | 68 | )} |
68 | > | 69 | > |
69 | Read my CV | 70 | Read my CV |
70 | </Link>{' '} | 71 | </a>{' '} |
71 | <Link | 72 | <Link |
72 | to="#contact" | 73 | to="#contact" |
73 | className={clsx( | 74 | className={clsx( |
diff --git a/src/components/landing/sections/Publications.tsx b/src/components/landing/sections/Publications.tsx index 8464d9f..a789245 100644 --- a/src/components/landing/sections/Publications.tsx +++ b/src/components/landing/sections/Publications.tsx | |||
@@ -25,6 +25,8 @@ import { | |||
25 | } from '@site/src/components/icons'; | 25 | } from '@site/src/components/icons'; |
26 | import Section from '@site/src/components/landing/Section'; | 26 | import Section from '@site/src/components/landing/Section'; |
27 | import Subtitle from '@site/src/components/landing/Subtitle'; | 27 | import Subtitle from '@site/src/components/landing/Subtitle'; |
28 | import authorizedLinks from '@site/src/components/landing/sections/authorizedLinks'; | ||
29 | |||
28 | import styles from './Publications.module.css'; | 30 | import styles from './Publications.module.css'; |
29 | 31 | ||
30 | function DOILink({ doi }: { doi: string }) { | 32 | function DOILink({ doi }: { doi: string }) { |
@@ -45,13 +47,14 @@ function DOILink({ doi }: { doi: string }) { | |||
45 | 47 | ||
46 | function PDFLink({ filename }: { filename: string }) { | 48 | function PDFLink({ filename }: { filename: string }) { |
47 | return ( | 49 | return ( |
48 | <Link | 50 | <a |
49 | to={`/papers/${filename}.pdf`} | 51 | href={`/papers/${filename}.pdf`} |
52 | target="_blank" | ||
50 | className={clsx(styles.link, styles['link--lower'])} | 53 | className={clsx(styles.link, styles['link--lower'])} |
51 | > | 54 | > |
52 | <File weight="bold" aria-hidden="true" className={styles.link__icon} /> | 55 | <File weight="bold" aria-hidden="true" className={styles.link__icon} /> |
53 | 56 | ||
54 | </Link> | 57 | </a> |
55 | ); | 58 | ); |
56 | } | 59 | } |
57 | 60 | ||
@@ -89,16 +92,43 @@ function VideoLink({ url }: { url: string }) { | |||
89 | ); | 92 | ); |
90 | } | 93 | } |
91 | 94 | ||
92 | function ClosedAccess({ publisher, url }: { publisher: string; url: string }) { | 95 | function ClosedAccess({ |
96 | publisher, | ||
97 | url, | ||
98 | authorizedURL, | ||
99 | }: { | ||
100 | publisher: string; | ||
101 | url: string; | ||
102 | authorizedURL?: string | undefined; | ||
103 | }) { | ||
104 | const label = ( | ||
105 | <> | ||
106 | <Lock weight="bold" aria-hidden="true" className={styles.link__icon} /> | ||
107 | <span className="sr-only">Closed Access: </span> | ||
108 | {publisher} | ||
109 | </> | ||
110 | ); | ||
111 | if (authorizedURL !== undefined) { | ||
112 | // Must allow referrer for the ACM Author-Izer to work. | ||
113 | return ( | ||
114 | <a | ||
115 | href={authorizedURL} | ||
116 | target="_blank" | ||
117 | rel="nofollow noopener" | ||
118 | referrerPolicy="no-referrer-when-downgrade" | ||
119 | className={clsx(styles.link, styles['link--license'])} | ||
120 | > | ||
121 | {label} | ||
122 | </a> | ||
123 | ); | ||
124 | } | ||
93 | return ( | 125 | return ( |
94 | <Link | 126 | <Link |
95 | to={url} | 127 | to={url} |
96 | rel="nofollow" | 128 | rel="nofollow noopener noreferrer" |
97 | className={clsx(styles.link, styles['link--license'])} | 129 | className={clsx(styles.link, styles['link--license'])} |
98 | > | 130 | > |
99 | <Lock weight="bold" aria-hidden="true" className={styles.link__icon} /> | 131 | {label} |
100 | <span className="sr-only">Closed Access: </span> | ||
101 | {publisher} | ||
102 | </Link> | 132 | </Link> |
103 | ); | 133 | ); |
104 | } | 134 | } |
@@ -158,6 +188,7 @@ export default function Publications() { | |||
158 | <ClosedAccess | 188 | <ClosedAccess |
159 | publisher="ACM" | 189 | publisher="ACM" |
160 | url="https://authors.acm.org/journals/rights-permissions" | 190 | url="https://authors.acm.org/journals/rights-permissions" |
191 | authorizedURL={authorizedLinks.models22} | ||
161 | />{' '} | 192 | />{' '} |
162 | <ArtifactLink doi="10.5281/zenodo.6974248" />{' '} | 193 | <ArtifactLink doi="10.5281/zenodo.6974248" />{' '} |
163 | <ArtifactLicense | 194 | <ArtifactLicense |
@@ -188,9 +219,13 @@ export default function Publications() { | |||
188 | Varró (2021). Worst-case Execution Time Calculation for | 219 | Varró (2021). Worst-case Execution Time Calculation for |
189 | Query-based Monitors by Witness Generation.{' '} | 220 | Query-based Monitors by Witness Generation.{' '} |
190 | <i>ACM Transactions on Embedded Computing Systems,</i> volume 20, | 221 | <i>ACM Transactions on Embedded Computing Systems,</i> volume 20, |
191 | issue 6. <DOILink doi="10.1145/3239372.3239412" />{' '} | 222 | issue 6. <DOILink doi="10.1145/3471904" />{' '} |
192 | <ArxivLink arxivID="2102.03116" /> <PDFLink filename="tecs21" />{' '} | 223 | <ArxivLink arxivID="2102.03116" /> <PDFLink filename="tecs21" />{' '} |
193 | <OpenAccess license="by" /> | 224 | <ClosedAccess |
225 | publisher="ACM" | ||
226 | url="https://authors.acm.org/journals/rights-permissions" | ||
227 | authorizedURL={authorizedLinks.tecs21} | ||
228 | /> | ||
194 | </li> | 229 | </li> |
195 | <li className={styles.publications__item}> | 230 | <li className={styles.publications__item}> |
196 | <b>Kristóf Marussy</b>, Oszkár Semeráth, Aren A. Babikian, | 231 | <b>Kristóf Marussy</b>, Oszkár Semeráth, Aren A. Babikian, |
@@ -214,6 +249,7 @@ export default function Publications() { | |||
214 | <ClosedAccess | 249 | <ClosedAccess |
215 | publisher="ACM" | 250 | publisher="ACM" |
216 | url="https://authors.acm.org/journals/rights-permissions" | 251 | url="https://authors.acm.org/journals/rights-permissions" |
252 | authorizedURL={authorizedLinks.models18} | ||
217 | />{' '} | 253 | />{' '} |
218 | <ArtifactLink doi="10.5281/zenodo.1318156" />{' '} | 254 | <ArtifactLink doi="10.5281/zenodo.1318156" />{' '} |
219 | <ArtifactLicense | 255 | <ArtifactLicense |
diff --git a/src/components/landing/sections/Research.tsx b/src/components/landing/sections/Research.tsx index b6e5954..ea6f076 100644 --- a/src/components/landing/sections/Research.tsx +++ b/src/components/landing/sections/Research.tsx | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 Kristóf Marussy | 2 | * SPDX-FileCopyrightText: 2023 Kristóf Marussy |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: MIT | 4 | * SPDX-License-Identifier: MIT AND CC-BY-4.0 |
5 | */ | 5 | */ |
6 | 6 | ||
7 | import clsx from 'clsx'; | 7 | import clsx from 'clsx'; |
diff --git a/src/components/landing/sections/Resume.tsx b/src/components/landing/sections/Resume.tsx index 4ce83e4..2ad05f1 100644 --- a/src/components/landing/sections/Resume.tsx +++ b/src/components/landing/sections/Resume.tsx | |||
@@ -32,12 +32,12 @@ function Education() { | |||
32 | </p> | 32 | </p> |
33 | <p> | 33 | <p> |
34 | Thesis:{' '} | 34 | Thesis:{' '} |
35 | <Link to="/thesis.pdf"> | 35 | <a href="/phd-thesis.pdf" target="_blank"> |
36 | <b> | 36 | <b> |
37 | Abstraction Techniques for the Analysis and Synthesis of | 37 | Abstraction Techniques for the Analysis and Synthesis of |
38 | Critical Cyber-Physical System Architectures | 38 | Critical Cyber-Physical System Architectures |
39 | </b> | 39 | </b> |
40 | </Link> | 40 | </a> |
41 | </p> | 41 | </p> |
42 | <p className={styles.cv__muted}> | 42 | <p className={styles.cv__muted}> |
43 | <Lock | 43 | <Lock |
@@ -45,11 +45,13 @@ function Education() { | |||
45 | aria-hidden="true" | 45 | aria-hidden="true" |
46 | className={styles['thesis-rights__icon']} | 46 | className={styles['thesis-rights__icon']} |
47 | /> | 47 | /> |
48 | Some poritions may be exclusively licensed to their original publishers | 48 | Some poritions may be exclusively licensed to their original |
49 | publishers | ||
49 | </p> | 50 | </p> |
50 | <div className={styles['thesis-links']}> | 51 | <div className={styles['thesis-links']}> |
51 | <Link | 52 | <a |
52 | to="/thesis.pdf" | 53 | href="/phd-thesis.pdf" |
54 | target="_blank" | ||
53 | className={clsx( | 55 | className={clsx( |
54 | 'button', | 56 | 'button', |
55 | 'button--primary', | 57 | 'button--primary', |
@@ -57,9 +59,10 @@ function Education() { | |||
57 | )} | 59 | )} |
58 | > | 60 | > |
59 | Read now | 61 | Read now |
60 | </Link> | 62 | </a> |
61 | <Link | 63 | <a |
62 | to="/thesis-booklet.pdf" | 64 | href="/phd-thesis-booklet.pdf" |
65 | target="_blank" | ||
63 | className={clsx( | 66 | className={clsx( |
64 | 'button', | 67 | 'button', |
65 | 'button--secondary', | 68 | 'button--secondary', |
@@ -67,7 +70,7 @@ function Education() { | |||
67 | )} | 70 | )} |
68 | > | 71 | > |
69 | Extended abstract | 72 | Extended abstract |
70 | </Link> | 73 | </a> |
71 | <Link | 74 | <Link |
72 | to="http://hdl.handle.net/10890/41832" | 75 | to="http://hdl.handle.net/10890/41832" |
73 | className={styles['thesis-links__link']} | 76 | className={styles['thesis-links__link']} |
@@ -107,7 +110,7 @@ function Experience() { | |||
107 | <li className={styles.cv__item}> | 110 | <li className={styles.cv__item}> |
108 | <h4 className={styles.cv__title}>Research fellow</h4> | 111 | <h4 className={styles.cv__title}>Research fellow</h4> |
109 | <p className={styles.cv__times}> | 112 | <p className={styles.cv__times}> |
110 | <span className={styles.cv__time}>2024–</span> | 113 | <span className={styles.cv__time}>2023–</span> |
111 | </p> | 114 | </p> |
112 | </li> | 115 | </li> |
113 | <li className={styles.cv__item}> | 116 | <li className={styles.cv__item}> |
@@ -324,8 +327,8 @@ function Teaching() { | |||
324 | </li> | 327 | </li> |
325 | <li className={styles.cv__activity}> | 328 | <li className={styles.cv__activity}> |
326 | Including practice and lab sessions in the{' '} | 329 | Including practice and lab sessions in the{' '} |
327 | <Link to="https://imsc.vik.bme.hu/">IMsc programme</Link> of BME for | 330 | <Link to="https://imsc.vik.bme.hu/">IMsc programme</Link> of BME |
328 | talented BSc students | 331 | for talented BSc students |
329 | </li> | 332 | </li> |
330 | </ul> | 333 | </ul> |
331 | </li> | 334 | </li> |
@@ -458,7 +461,7 @@ function Service() { | |||
458 | > | 461 | > |
459 | <Link | 462 | <Link |
460 | to="https://www.sciencedirect.com/journal/science-of-computer-programming" | 463 | to="https://www.sciencedirect.com/journal/science-of-computer-programming" |
461 | rel="nofollow" | 464 | rel="nofollow noopener noreferrer" |
462 | > | 465 | > |
463 | Science of Computer Programming | 466 | Science of Computer Programming |
464 | </Link> | 467 | </Link> |
@@ -471,7 +474,7 @@ function Service() { | |||
471 | > | 474 | > |
472 | <Link | 475 | <Link |
473 | to="https://www.sciencedirect.com/journal/journal-of-logical-and-algebraic-methods-in-programming" | 476 | to="https://www.sciencedirect.com/journal/journal-of-logical-and-algebraic-methods-in-programming" |
474 | rel="nofollow" | 477 | rel="nofollow noopener noreferrer" |
475 | > | 478 | > |
476 | Journal of Logical and Algebraic Methods in Programming | 479 | Journal of Logical and Algebraic Methods in Programming |
477 | </Link> | 480 | </Link> |
diff --git a/src/components/landing/sections/authorizedLinks.ts b/src/components/landing/sections/authorizedLinks.ts new file mode 100644 index 0000000..24d0b77 --- /dev/null +++ b/src/components/landing/sections/authorizedLinks.ts | |||
@@ -0,0 +1,10 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2024 Kristóf Marussy | ||
3 | * | ||
4 | * SPDX-License-Identifier: MIT | ||
5 | */ | ||
6 | |||
7 | // Placeholder for third-party links generated by the ACM Author-Izer Service. | ||
8 | const authorizedLinks: Partial<Record<string, string>> = {}; | ||
9 | |||
10 | export default authorizedLinks; | ||