[social][contact][support] reorganise links

This commit is contained in:
Andrea 2021-12-16 13:10:54 +01:00
parent eaaec996bf
commit 516e5f20a9
20 changed files with 134 additions and 260 deletions

View File

@ -20,7 +20,7 @@
<T>faq.headerLong</T>
</nuxt-link>
</li>
<li v-for="link in [...config.contact.contacts, ...config.links.socials]" :key="link.url" class="mb-2">
<li v-for="link in links" :key="link.url" class="mb-2">
<a :href="link.url">
<Icon :v="link.icon" :set="link.iconSet || 'l'"/>
{{link.headline}}
@ -32,7 +32,7 @@
<T>support.header</T><T>quotation.colon</T>
</p>
<ul class="list-unstyled mb-4">
<li v-for="link in supportLinks()" :key="link.url" class="mb-2">
<li v-for="link in supportLinks" :key="link.url" class="mb-2">
<a :href="link.url">
<Icon :v="link.icon" :set="link.iconSet || 'l'"/>
{{link.headline}}
@ -107,9 +107,14 @@
</template>
<script>
import support from '../plugins/support';
import {getContactLinks, getSocialLinks, getSupportLinks} from '../src/contact';
export default {
mixins: [support],
data() {
return {
links: [...getContactLinks(this.config), ...getSocialLinks(this.config)],
supportLinks: [...getSupportLinks(this.config)],
};
},
}
</script>

View File

@ -1,11 +1,23 @@
<template>
<section v-if="config.links.socials.length">
<section v-if="socials.length">
<h2 class="mb-3">
<Icon v="hashtag"/>
<T>links.social</T>
</h2>
<ul class="list-unstyled">
<Link v-for="link in config.links.socials" :link="link" :key="link.url"/>
<Link v-for="link in socials" :link="link" :key="link.url"/>
</ul>
</section>
</template>
<script>
import {getSocialLinks} from '../src/contact';
export default {
data() {
return {
socials: [...getSocialLinks(this.config)],
};
},
}
</script>

View File

@ -6,7 +6,7 @@
</h3>
<p><T>support.description</T></p>
<p>
<a v-for="link in supportLinks()" :key="link.url"
<a v-for="link in links" :key="link.url"
:href="link.url" target="_blank" rel="noopener"
class="btn btn-outline-primary border m-1">
<Icon :v="link.icon" :set="link.iconSet || 'l'"/>
@ -17,9 +17,13 @@
</template>
<script>
import support from '../plugins/support';
import {getSupportLinks} from '../src/contact';
export default {
mixins: [support],
data() {
return {
links: [...getSupportLinks(this.config)],
}
},
}
</script>

View File

@ -171,34 +171,17 @@ links:
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -114,28 +114,12 @@ links:
academic: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
blog: false
contact:
enabled: true
route: 'kontakt'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'kollektiv'
@ -143,7 +127,6 @@ contact:
support:
enabled: true
links: []
user:
enabled: true

View File

@ -246,18 +246,6 @@ links:
academic: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended:
-
icon: 'cogs'
@ -285,18 +273,12 @@ links:
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -119,35 +119,18 @@ links:
url: 'https://open.spotify.com/episode/286zTXBHA0ChWNaWSwgFa0'
headline: 'El lenguaje inclusivo de lxs polacxs Ausir y Dante en un podcast <strong>Proyecto Polonia</strong>'
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
blog: false
contact:
enabled: true
route: 'contacto'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team' # TODO
support:
enabled: true
links: []
user:
enabled: true

View File

@ -91,36 +91,18 @@ links:
links: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
blog: false
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -81,35 +81,18 @@ links:
links: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
blog: false
contact:
enabled: true
route: 'contato'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -98,18 +98,6 @@ links:
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
zine:
@ -119,11 +107,6 @@ zine:
contact:
enabled: true
route: '連絡先'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'チーム'
@ -131,7 +114,6 @@ contact:
support:
enabled: true
links: []
user:
enabled: true

View File

@ -69,7 +69,7 @@ inclusive:
terminology:
enabled: false
published: false
published: false
categories: # TODO
- 'sexual orientation'
- 'romantic orientation'
@ -80,7 +80,7 @@ terminology:
- 'language'
- 'attraction'
- 'politics'
- 'prejudice'
- 'prejudice'
route: 'terminology'
@ -104,30 +104,18 @@ links:
links: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
recommended: []
blog: false
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team' # TODO
support:
enabled: true
links: []
user:
enabled: true

View File

@ -92,30 +92,17 @@ links:
academic: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
recommended: []
contact:
enabled: true
route: 'kontakt'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -1164,32 +1164,6 @@ links:
Język polski nie sprzyja mówieniu o osobach niebinarnych, ze względu na odmianę czasowników.
Dziękuję zespołowi tranzycja.pl, który doradził mi, jak w odpowiedni sposób przetłumaczyć tę rozmowę,
polecając mi "Manifest Niebinarnej Polszczyzny", który można znaleźć pod tym linkiem.
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/neutratywy'
headline: '@neutratywy'
-
icon: 'instagram'
iconSet: 'b'
url: 'https://instagram.com/neutratywy'
headline: '@neutratywy'
-
icon: 'facebook'
iconSet: 'b'
url: 'https://facebook.com/neutratywy'
headline: 'fb.com/neutratywy'
recommended:
-
icon: 'instagram'
@ -1357,18 +1331,12 @@ english:
contact:
enabled: true
route: 'kontakt'
contacts:
-
icon: 'envelope'
url: 'mailto:kontakt@zaimki.pl'
headline: 'kontakt@zaimki.pl'
team:
enabled: true
route: 'kolektyw-rjn'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -89,35 +89,18 @@ links:
links: []
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
recommended: []
blog: false
contact:
enabled: true
route: 'contato'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -254,17 +254,6 @@ links:
mediaGuests: []
mediaMentions: []
academic: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/CalendarQueer'
headline: '@CalendarQueer'
zine:
enabled: false
route: 'zin'
@ -272,18 +261,12 @@ links:
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -166,30 +166,18 @@ links:
mediaGuests: []
mediaMentions: []
# TODO add https://ingeveb.org/blog/be-yourself-with-a-little-help
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
recommended: []
blog: false
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
team:
enabled: true
route: 'team'
support:
enabled: true
links: []
user:
enabled: true

View File

@ -81,23 +81,12 @@ links:
headline: 'Gender in Language Project'
mediaGuests: []
mediaMentions: []
socials:
-
icon: 'twitter'
iconSet: 'b'
url: 'https://twitter.com/PronounsPage'
headline: '@PronounsPage'
recommended: []
blog: false
contact:
enabled: true
route: 'contact'
contacts:
-
icon: 'envelope'
url: 'mailto:contact@pronouns.page'
headline: 'contact@pronouns.page'
authors:
-
footerName: '台灣非二元酷兒浪子'
@ -115,7 +104,6 @@ contact:
support:
enabled: true
links: []
user:
enabled: true

View File

@ -1,11 +0,0 @@
export default {
methods: {
supportLinks() {
return [
{headline: 'Ko-Fi', url: 'https://ko-fi.com/radajezykaneutralnego', icon: 'coffee',},
{headline: 'PayPal', url: 'https://paypal.me/RJNeutralnego', icon: 'paypal', iconSet: 'b'},
...this.config.support.links,
];
},
}
}

View File

@ -12,7 +12,7 @@
<Icon v="map-marker-question"/>
<T>faq.header</T>
</nuxt-link>
<a v-for="link in [...config.contact.contacts, ...config.links.socials]" :key="link.url"
<a v-for="link in links" :key="link.url"
:href="link.url" target="_blank" rel="noopener"
class="btn btn-outline-primary border m-1">
<Icon :v="link.icon" :set="link.iconSet || 'l'"/>
@ -66,8 +66,14 @@
<script>
import { head } from "../src/helpers";
import {getContactLinks, getSocialLinks} from '../src/contact';
export default {
data() {
return {
links: [...getContactLinks(this.config), ...getSocialLinks(this.config)],
};
},
head() {
return head({
title: this.$t('contact.header'),

95
src/contact.js Normal file
View File

@ -0,0 +1,95 @@
export const contact = {
all: {
email_pl: {
icon: 'envelope',
url: 'mailto:kontakt@zaimki.pl',
headline: 'kontakt@zaimki.pl',
},
email: {
icon: 'envelope',
url: 'mailto:contact@pronouns.page',
headline: 'contact@pronouns.page',
},
},
}
export const socialLinks = {
all: {
twitter_pl: {
icon: 'twitter',
iconSet: 'b',
url: 'https://twitter.com/neutratywy',
headline: '@neutratywy',
},
instagram_pl: {
icon: 'instagram',
iconSet: 'b',
url: 'https://instagram.com/neutratywy',
headline: '@neutratywy',
},
facebook_pl: {
icon: 'facebook',
iconSet: 'b',
url: 'https://facebook.com/neutratywy',
headline: 'fb.com/neutratywy',
},
twitter: {
icon: 'twitter',
iconSet: 'b',
url: 'https://twitter.com/PronounsPage',
headline: '@PronounsPage',
},
},
calendar: {
twitter: {
icon: 'twitter',
iconSet: 'b',
url: 'https://twitter.com/CalendarQueer',
headline: '@CalendarQueer',
},
},
}
const supportLinks = {
all: {
kofi: {
icon: 'coffee',
url: 'https://ko-fi.com/radajezykaneutralnego',
headline: 'Ko-Fi',
},
paypal: {
icon: 'paypal',
iconSet: 'b',
url: 'https://paypal.me/RJNeutralnego',
headline: 'PayPal',
},
}
}
function* getLink(links, feature, locale) {
const featureLinks = links[feature] || {};
for (let key in featureLinks) {
if (!featureLinks.hasOwnProperty(key)) { continue; }
let [, localesAllowed] = key.split('_');
if (localesAllowed === undefined || localesAllowed.split(',').includes(locale)) {
yield featureLinks[key];
}
}
}
export function* getContactLinks(config) {
yield* getLink(contact, 'all', config.locale);
}
export function* getSocialLinks(config) {
yield* getLink(socialLinks, 'all', config.locale);
if (config.calendar && config.calendar.enabled) {
yield* getLink(socialLinks, 'calendar', config.locale);
}
}
export function* getSupportLinks(config) {
yield* getLink(supportLinks, 'all', config.locale);
}