Skip to content

Commit d63a5a7

Browse files
authored
Merge pull request #526 from arifszn/v3.1.0
V3.1.0
2 parents c0283ce + d60aea0 commit d63a5a7

File tree

15 files changed

+317
-63
lines changed

15 files changed

+317
-63
lines changed

README.md

+39-1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
[Certification Section](#certifications)
7070
[Education Section](#education)
7171
[Projects Section](#projects)
72+
[Publication Section](#publications)
7273
[Blog Posts Section](#blog-posts)
7374

7475
To view a live example, **[click here](https://arifszn.github.io/gitprofile)**.
@@ -210,6 +211,7 @@ const CONFIG = {
210211
linkedin: 'ariful-alam',
211212
twitter: 'arif_szn',
212213
mastodon: '[email protected]',
214+
researchGate: '',
213215
facebook: '',
214216
instagram: '',
215217
youtube: '', // example: 'pewdiepie'
@@ -282,6 +284,17 @@ const CONFIG = {
282284
to: '2014',
283285
},
284286
],
287+
publications: [
288+
{
289+
title: 'Publication Title',
290+
conferenceName: 'Conference Name',
291+
journalName: 'Journal Name',
292+
authors: 'John Doe, Jane Smith',
293+
link: 'https://example.com',
294+
description:
295+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
296+
},
297+
],
285298
// Display articles from your medium or dev account. (Optional)
286299
blog: {
287300
source: 'dev', // medium | dev
@@ -473,7 +486,7 @@ Your avatar and bio will be fetched from GitHub automatically.
473486

474487
### Social Links
475488

476-
You can link your social media services you're using, including LinkedIn, Twitter, Mastodon, Facebook, Instagram, YouTube, Dribbble, Behance, Medium, dev, Stack Overflow, Skype, Telegram, personal website, phone and email.
489+
You can link your social media services you're using, including LinkedIn, Twitter, Mastodon, ResearchGate, Facebook, Instagram, YouTube, Dribbble, Behance, Medium, dev, Stack Overflow, Skype, Telegram, personal website, phone and email.
477490

478491
```ts
479492
// gitprofile.config.ts
@@ -483,6 +496,7 @@ const CONFIG = {
483496
linkedin: 'ariful-alam',
484497
twitter: 'arif_szn',
485498
mastodon: '[email protected]',
499+
researchGate: '',
486500
facebook: '',
487501
instagram: '',
488502
youtube: '',
@@ -660,6 +674,30 @@ const CONFIG = {
660674
};
661675
```
662676

677+
### Publications
678+
679+
Provide your academic publishing in `publications`.
680+
681+
```ts
682+
// gitprofile.config.ts
683+
const CONFIG = {
684+
// ...
685+
publications: [
686+
{
687+
title: 'Publication Title',
688+
conferenceName: 'Conference Name',
689+
journalName: 'Journal Name',
690+
authors: 'John Doe, Jane Smith',
691+
link: 'https://example.com',
692+
description:
693+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
694+
},
695+
],
696+
};
697+
```
698+
699+
Empty array will hide the publications section.
700+
663701
### Blog Posts
664702

665703
If you have [medium](https://medium.com) or [dev](https://dev.to) account, you can show your recent blog posts in here just by providing your medium/dev username. You can limit how many posts to display (Max is `10`).

gitprofile.config.ts

+22-1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ const CONFIG = {
6060
linkedin: 'ariful-alam',
6161
twitter: 'arif_szn',
6262
mastodon: '[email protected]',
63+
researchGate: '',
6364
facebook: '',
6465
instagram: '',
6566
youtube: '', // example: 'pewdiepie'
@@ -132,11 +133,31 @@ const CONFIG = {
132133
to: '2014',
133134
},
134135
],
136+
publications: [
137+
{
138+
title: 'Publication Title',
139+
conferenceName: '',
140+
journalName: 'Journal Name',
141+
authors: 'John Doe, Jane Smith',
142+
link: 'https://example.com',
143+
description:
144+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
145+
},
146+
{
147+
title: 'Publication Title',
148+
conferenceName: 'Conference Name',
149+
journalName: '',
150+
authors: 'John Doe, Jane Smith',
151+
link: 'https://example.com',
152+
description:
153+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
154+
},
155+
],
135156
// Display articles from your medium or dev account. (Optional)
136157
blog: {
137158
source: 'dev', // medium | dev
138159
username: 'arifszn', // to hide blog section, keep it empty
139-
limit: 3, // How many articles to display. Max is 10.
160+
limit: 2, // How many articles to display. Max is 10.
140161
},
141162
googleAnalytics: {
142163
id: '', // GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX

global.d.ts

+19
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ interface Social {
122122
*/
123123
mastodon?: string;
124124

125+
/**
126+
* ResearchGate username
127+
*/
128+
researchGate?: string;
129+
125130
/**
126131
* Facebook
127132
*/
@@ -217,6 +222,15 @@ interface Education {
217222
to: string;
218223
}
219224

225+
interface Publication {
226+
title: string;
227+
conferenceName?: string;
228+
journalName?: string;
229+
authors?: string;
230+
link?: string;
231+
description?: string;
232+
}
233+
220234
interface GoogleAnalytics {
221235
/**
222236
* GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
@@ -370,6 +384,11 @@ interface Config {
370384
*/
371385
educations?: Array<Education>;
372386

387+
/**
388+
* Publication list
389+
*/
390+
publications?: Array<Publication>;
391+
373392
/**
374393
* Resume
375394
*/

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@arifszn/gitprofile",
33
"description": "Create an automatic portfolio based on GitHub profile",
4-
"version": "3.0.0",
4+
"version": "3.1.0",
55
"type": "module",
66
"license": "MIT",
77
"author": "arifszn",
@@ -81,6 +81,7 @@
8181
"github-pages",
8282
"github-portfolio",
8383
"vite-portfolio",
84+
"academic-portfolio",
8485
"github-api"
8586
]
8687
}

src/components/blog-card/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ const BlogCard = ({
132132
<div className="w-full">
133133
<div className="flex items-start px-4">
134134
<div className="text-center md:text-left w-full">
135-
<h2 className="font-semibold text-base-content opacity-60">
135+
<h2 className="font-medium text-base-content opacity-60">
136136
{article.title}
137137
</h2>
138138
<p className="text-base-content opacity-50 text-xs">

src/components/certification-card/index.tsx

+10-17
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const ListItem = ({
1919
style={{ left: '-4.5px' }}
2020
></div>
2121
<div className="my-0.5 text-xs">{year}</div>
22-
<div className="font-semibold">
22+
<div className="font-medium">
2323
<a href={link} target="_blank" rel="noreferrer">
2424
{name}
2525
</a>
@@ -78,22 +78,15 @@ const CertificationCard = ({
7878
renderSkeleton()
7979
) : (
8080
<>
81-
{certifications
82-
.filter(
83-
(certification) =>
84-
certification.year ||
85-
certification.name ||
86-
certification.body,
87-
)
88-
.map((certification, index) => (
89-
<ListItem
90-
key={index}
91-
year={certification.year}
92-
name={certification.name}
93-
body={certification.body}
94-
link={certification.link}
95-
/>
96-
))}
81+
{certifications.map((certification, index) => (
82+
<ListItem
83+
key={index}
84+
year={certification.year}
85+
name={certification.name}
86+
body={certification.body}
87+
link={certification.link}
88+
/>
89+
))}
9790
</>
9891
)}
9992
</ol>

src/components/details-card/index.tsx

+9-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
AiFillInstagram,
55
AiFillMediumSquare,
66
} from 'react-icons/ai';
7-
import { SiTwitter } from 'react-icons/si';
7+
import { SiTwitter, SiResearchgate } from 'react-icons/si';
88
import { CgDribbble } from 'react-icons/cg';
99
import { RiPhoneFill, RiMailFill } from 'react-icons/ri';
1010
import { Fragment } from 'react';
@@ -147,6 +147,14 @@ const DetailsCard = ({ profile, loading, social, github }: Props) => {
147147
value={github.username}
148148
link={`https://github.com/${github.username}`}
149149
/>
150+
{social?.researchGate && (
151+
<ListItem
152+
icon={<SiResearchgate />}
153+
title="ResearchGate:"
154+
value={social.researchGate}
155+
link={`https://www.researchgate.net/profile/${social.researchGate}`}
156+
/>
157+
)}
150158
{social?.twitter && (
151159
<ListItem
152160
icon={<SiTwitter />}
@@ -265,7 +273,6 @@ const DetailsCard = ({ profile, loading, social, github }: Props) => {
265273
link={`https://t.me/${social.telegram}`}
266274
/>
267275
)}
268-
269276
{social?.phone && (
270277
<ListItem
271278
icon={<RiPhoneFill />}

src/components/education-card/index.tsx

+8-13
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,14 @@ const EducationCard = ({
7070
renderSkeleton()
7171
) : (
7272
<>
73-
{educations
74-
.filter(
75-
(item) =>
76-
item.institution || item.degree || item.from || item.to,
77-
)
78-
.map((item, index) => (
79-
<ListItem
80-
key={index}
81-
time={`${item.from} - ${item.to}`}
82-
degree={item.degree}
83-
institution={item.institution}
84-
/>
85-
))}
73+
{educations.map((item, index) => (
74+
<ListItem
75+
key={index}
76+
time={`${item.from} - ${item.to}`}
77+
degree={item.degree}
78+
institution={item.institution}
79+
/>
80+
))}
8681
</>
8782
)}
8883
</ol>

src/components/experience-card/index.tsx

+13-21
Original file line numberDiff line numberDiff line change
@@ -75,27 +75,19 @@ const ExperienceCard = ({
7575
renderSkeleton()
7676
) : (
7777
<Fragment>
78-
{experiences
79-
.filter(
80-
(experience) =>
81-
experience.company ||
82-
experience.position ||
83-
experience.from ||
84-
experience.to,
85-
)
86-
.map((experience, index) => (
87-
<ListItem
88-
key={index}
89-
time={`${experience.from} - ${experience.to}`}
90-
position={experience.position}
91-
company={experience.company}
92-
companyLink={
93-
experience.companyLink
94-
? experience.companyLink
95-
: undefined
96-
}
97-
/>
98-
))}
78+
{experiences.map((experience, index) => (
79+
<ListItem
80+
key={index}
81+
time={`${experience.from} - ${experience.to}`}
82+
position={experience.position}
83+
company={experience.company}
84+
companyLink={
85+
experience.companyLink
86+
? experience.companyLink
87+
: undefined
88+
}
89+
/>
90+
))}
9991
</Fragment>
10092
)}
10193
</ol>

src/components/external-project-card/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ const ExternalProjectCard = ({
9393
<div className="w-full">
9494
<div className="px-4">
9595
<div className="text-center w-full">
96-
<h2 className="font-semibold text-lg tracking-wide text-center opacity-60 mb-2">
96+
<h2 className="font-medium text-lg text-center opacity-60 mb-2">
9797
{item.title}
9898
</h2>
9999
{item.imageUrl && (

src/components/gitprofile.tsx

+7
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import GithubProjectCard from './github-project-card';
2929
import ExternalProjectCard from './external-project-card';
3030
import BlogCard from './blog-card';
3131
import Footer from './footer';
32+
import PublicationCard from './publication-card';
3233

3334
/**
3435
* Renders the GitProfile component.
@@ -255,6 +256,12 @@ const GitProfile = ({ config }: { config: Config }) => {
255256
googleAnalyticsId={sanitizedConfig.googleAnalytics.id}
256257
/>
257258
)}
259+
{sanitizedConfig.publications.length !== 0 && (
260+
<PublicationCard
261+
loading={loading}
262+
publications={sanitizedConfig.publications}
263+
/>
264+
)}
258265
{sanitizedConfig.projects.external.projects.length !==
259266
0 && (
260267
<ExternalProjectCard

0 commit comments

Comments
 (0)