Skip to content

Commit

Permalink
Merge pull request #128 from BadIdeaFactory/louh/add-more-contact-fields
Browse files Browse the repository at this point in the history
feat(people): add bluesky, mastodon and website frontmatter
  • Loading branch information
louh authored Nov 28, 2024
2 parents 0131f04 + 97c7994 commit 239d210
Show file tree
Hide file tree
Showing 23 changed files with 212 additions and 21 deletions.
48 changes: 43 additions & 5 deletions lib/ui/components/icons/Icon.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { shape, string } from "prop-types";
import React from "react";
import styled from "styled-components";
import { FaLink } from "react-icons/fa";
import { SiBluesky, SiMastodon } from "react-icons/si";

import { defaultThm } from "ui/themes";
import { icomoon } from "assets/fonts";
Expand Down Expand Up @@ -30,11 +32,47 @@ const IconEl = styled.i`
}
`;

const Icon = props => (
<IconEl {...props} className={`icon-${props.name} `}>
{props.text ? <span>{props.text}</span> : null}
</IconEl>
);
const Icon = props => {
switch (props.name) {
// I'm not going to generate a new IcoMoon font for these
// and in any case they don't have Bluesky or Mastdon readily
// available anyway. Generating icons with react-icons is 100%
// more flexible
case 'bluesky':
return (
<IconEl {...props} className={`icon-${props.name}`} style={{
top: '1px',
position: 'relative'
}}>
<SiBluesky />
</IconEl>
)
case 'mastodon':
return (
<IconEl {...props} className={`icon-${props.name}`} style={{
top: '1px',
position: 'relative'
}}>
<SiMastodon />
</IconEl>
)
case 'website':
return (
<IconEl {...props} className={`icon-${props.name}`} style={{
top: '1px',
position: 'relative'
}}>
<FaLink />
</IconEl>
)
default:
return (
<IconEl {...props} className={`icon-${props.name}`}>
{props.text ? <span>{props.text}</span> : null}
</IconEl>
)
}
};

Icon.propTypes = {
name: string.isRequired,
Expand Down
9 changes: 9 additions & 0 deletions lib/ui/templates/PeopleTpl.js
Original file line number Diff line number Diff line change
Expand Up @@ -195,12 +195,15 @@ export const pageQuery = graphql`
id
html
frontmatter {
bluesky
fname
github
lname
mastodon
quote
score
twitter
website
uid
avatar {
childImageSharp {
Expand Down Expand Up @@ -235,12 +238,15 @@ export const pageQuery = graphql`
id
html
frontmatter {
bluesky
fname
github
lname
mastodon
quote
score
twitter
website
uid
avatar {
childImageSharp {
Expand Down Expand Up @@ -275,12 +281,15 @@ export const pageQuery = graphql`
id
html
frontmatter {
bluesky
fname
github
lname
mastodon
quote
score
twitter
website
uid
avatar {
childImageSharp {
Expand Down
49 changes: 44 additions & 5 deletions lib/ui/templates/ofPeople/Person.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,16 @@ const PersonLinks = styled.div`
const Member = props => {
const { defaultAvatar } = props;
const { frontmatter } = props.data;
const { avatar, fname, github, lname, twitter } = frontmatter;
const {
avatar,
bluesky,
fname,
github,
lname,
mastodon,
twitter,
website
} = frontmatter;
return (
<Person onClick={props.toggleModal} role="button">
<PersonPic hasAvatar={avatar}>
Expand All @@ -82,12 +91,42 @@ const Member = props => {
<span>{fname}</span> <span>{lname}</span>
</PersonName>
<PersonLinks>
{website ? (
<Action
onClick={e => e.stopPropagation()}
href={`https://${website}/`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="website" size="s" />
</Action>
) : null}
{bluesky ? (
<Action
onClick={e => e.stopPropagation()}
href={`https://bsky.app/profile/${bluesky}`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="bluesky" size="s" />
</Action>
) : null}
{mastodon ? (
<Action
onClick={e => e.stopPropagation()}
href={`https://${mastodon}`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="mastodon" size="s" />
</Action>
) : null}
{twitter ? (
<Action
onClick={e => e.stopPropagation()}
href={`https://twitter.com/${twitter}`}
rel="external"
target="_blank noreferrer nofollow"
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="twitter" size="s" />
</Action>
Expand All @@ -96,8 +135,8 @@ const Member = props => {
<Action
onClick={e => e.stopPropagation()}
href={`https://github.com/${github}`}
rel="external"
target="_blank noreferrer nofollow"
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="github" size="s" />
</Action>
Expand Down
63 changes: 56 additions & 7 deletions lib/ui/templates/ofPeople/PersonModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,17 @@ const PersonSocial = styled.div`
const Member = props => {
const { defaultAvatar } = props;
const { frontmatter, html } = props.data;
const { avatar, fname, github, lname, quote, twitter } = frontmatter;
const {
avatar,
bluesky,
fname,
github,
lname,
mastodon,
quote,
twitter,
website
} = frontmatter;
return (
<Modal toggleModal={props.toggleModal}>
<Person>
Expand All @@ -78,12 +88,51 @@ const Member = props => {
</PersonBio>
<PersonQuote>{quote}</PersonQuote>
<PersonSocial>
<Action href={`https://github.com/${github}`} target="_blank">
<Icon name="github" /> GitHub
</Action>
<Action href={`https://twitter.com/${twitter}`} target="_blank">
<Icon name="twitter" /> Twitter
</Action>
{website && (
<Action
href={`https://${website}/`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="website" /> Website
</Action>
)}
{bluesky && (
<Action
href={`https://bsky.app/profile/${bluesky}`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="bluesky" /> Bluesky
</Action>
)}
{mastodon && (
<Action
href={`https://${mastodon}`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="mastodon" /> Mastodon
</Action>
)}
{twitter && (
<Action
href={`https://twitter.com/${twitter}`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="twitter" /> Twitter
</Action>
)}
{github && (
<Action
href={`https://github.com/${github}`}
rel="external noopener noreferrer"
target="_blank"
>
<Icon name="github" /> GitHub
</Action>
)}
</PersonSocial>
</PersonDetails>
</Person>
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"react": "17.0.2",
"react-dom": "17.0.2",
"react-helmet": "6.1.0",
"react-icons": "^5.3.0",
"react-plx": "1.3.17",
"styled-components": "5.3.3"
},
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/fatima-khalid.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: false
avatar: fatima-khalid.jpg
website:
bluesky:
mastodon:
twitter: sugaroverflow
github: sugaroverflow
quote: Thank you for literally keeping everything from falling apart - Matt Stempeck
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/ian-anderson.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: true
- accomplice: false
avatar: ian-anderson.jpg
website:
bluesky:
mastodon:
twitter: senorinfinito
github: ijanderso
quote:
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/jason-miller.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: false
avatar:
website:
bluesky:
mastodon:
twitter: millllllllllz
github: JasonMiller
quote:
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/joanna-bogusz.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: true
avatar: joanna-bogusz.jpg
website:
bluesky:
mastodon:
twitter:
github:
quote:
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/julia-smith.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: true
avatar: julia-smith.png
website:
bluesky:
mastodon:
twitter: smythological
github: julia-smith
quote: OPPORTUNITY, n. A favorable occasion for grasping a disappointment. – Ambrose Bierce
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/justin-reese.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: true
avatar: justin-reese.jpg
website:
bluesky:
mastodon:
twitter: reefdog
github: reefdog
quote: “The story was gradually taking shape. Pilon liked it this way. It ruined a story to have it all come out quickly. The good story lay in half-told things which must be filled in out of the hearer’s own experiences.” — Tortilla Flat
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/kate-darling.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: false
avatar: kate-darling.jpg
website:
bluesky:
mastodon:
twitter: grok_
github: grok
quote: Quick someone give me a good quote
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/kavya-sukumar.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: true
- accomplice: true
avatar: kavya-sukumar.jpg
website:
bluesky:
mastodon:
twitter: kavyasukumar
github: kavyasukumar
quote: She is a diversity lottery - A recruiter who accidentally cc'ed me on an internal mail about my job application
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/laurian-gridinoc.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: true
avatar: laurian-gridinoc.jpg
website:
bluesky:
mastodon:
twitter: gridinoc
github: Laurian
quote: Puisque nos dieux et nos espoirs ne sont plus que scientifiques, pourquoi nos amours ne le deviendraient-ils pas également? — Auguste Villiers de l’Isle-Adam, L’Ève future
Expand Down
10 changes: 6 additions & 4 deletions src/pages/people/bios/lou-huang.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ role:
- member: true
- accomplice: true
avatar: lou-huang.jpg
twitter: saikofish
website: louhuang.com
bluesky: louh.bsky.social
mastodon: jawns.club/@lou
# twitter: saikofish
github: louh
quote: Unlike the rest of you losers, I’ve made at least 20% of the shots I didn’t take
score: 1
---

Lou is an open source software developer, user interface engineer, urban designer, recovering architect and professional internet trickster based in Brooklyn, NY. He is the founder and CEO of Streetmix, a collaborative urban design platform.

He is currently serving as Bad Idea Factory’s Treasure Goblin and works on a number of frivolous projects under the guise of secretly undermining capitalism. Sometimes he will stream livecoding and video games on [Twitch](https://www.twitch.tv/saikofish).
Lou is an open source software developer, user interface engineer, urban designer, recovering architect and professional internet trickster based in Philadelphia, PA. He is the founder of [Streetmix](https://streetmix.net/), a collaborative urban design platform.

He is currently serving as Bad Idea Factory’s Undersecretary of the Interior and works on a number of frivolous projects under the guise of secretly undermining capitalism.
3 changes: 3 additions & 0 deletions src/pages/people/bios/margo-dunlap.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: false
- accomplice: true
avatar: margo-dunlap.jpg
website:
bluesky:
mastodon:
twitter: MargoDunlap
github: margoyle
quote:
Expand Down
3 changes: 3 additions & 0 deletions src/pages/people/bios/mark-boas.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ role:
- member: true
- accomplice: true
avatar: mark-boas.jpg
website:
bluesky:
mastodon:
twitter: maboa
github: maboa
quote: Well, in that case, sir, I hope you will not object if I also offer the doctor my most enthusiastic contrafibularities – Sir Edmund Blackadder
Expand Down
Loading

0 comments on commit 239d210

Please sign in to comment.