Skip to content

Commit f6e1979

Browse files
committed
Add new blink + lesbi badge + 88x31 badge components
1 parent d56d3da commit f6e1979

File tree

6 files changed

+72
-2
lines changed

6 files changed

+72
-2
lines changed

components.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@ export {}
77
/* prettier-ignore */
88
declare module 'vue' {
99
export interface GlobalComponents {
10+
88x31Badge: typeof import('./src/components/custom-elements/88x31Badge.vue')['default']
1011
'AtAnchor.ce': typeof import('./src/components/custom-elements/AtAnchor.ce.vue')['default']
1112
'AtImg.ce': typeof import('./src/components/custom-elements/AtImg.ce.vue')['default']
1213
'AtLink.ce': typeof import('./src/components/custom-elements/AtLink.ce.vue')['default']
1314
'AtStyle.ce': typeof import('./src/components/custom-elements/AtStyle.ce.vue')['default']
1415
'AtWebStylesheet.ce': typeof import('./src/components/custom-elements/AtWebStylesheet.ce.vue')['default']
1516
'AtWebTitle.ce': typeof import('./src/components/custom-elements/AtWebTitle.ce.vue')['default']
17+
copy: typeof import('./src/components/custom-elements/LesbiBadge.ce copy.vue')['default']
18+
EightyEightThirtyOneBadge: typeof import('./src/components/custom-elements/EightyEightThirtyOneBadge.vue')['default']
19+
'EightyEightThirtyOneBadge.ce': typeof import('./src/components/custom-elements/EightyEightThirtyOneBadge.ce.vue')['default']
20+
'LesbiBadge.ce': typeof import('./src/components/custom-elements/LesbiBadge.ce.vue')['default']
1621
MarkdownRenderer: typeof import('./src/components/MarkdownRenderer.vue')['default']
1722
MModal: typeof import('./src/components/MModal.vue')['default']
1823
MonacoEditor: typeof import('./src/components/MonacoEditor.vue')['default']
24+
'NewBlink.ce': typeof import('./src/components/custom-elements/NewBlink.ce.vue')['default']
1925
'OmitVanillaCss.ce': typeof import('./src/components/custom-elements/OmitVanillaCss.ce.vue')['default']
2026
'OnekoKitty.ce': typeof import('./src/components/custom-elements/OnekoKitty.ce.vue')['default']
2127
RouterLink: typeof import('vue-router')['RouterLink']
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script setup lang="ts">
2+
import { badgeUrls } from '@/lib/badges';
3+
4+
const props = defineProps<{
5+
name: string;
6+
}>();
7+
8+
// console.log(badgeUrls);
9+
10+
</script>
11+
12+
<template>
13+
<img v-bind="$attrs" :src="badgeUrls['/src/assets/badges/' + props.name]?.default">
14+
</template>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script setup lang="ts">
2+
const props = defineProps<{
3+
clip?: string;
4+
flag1?: string;
5+
flag2?: string;
6+
overlay?: string;
7+
svg?: boolean;
8+
}>();
9+
10+
</script>
11+
12+
<template>
13+
<a href="https://badge.les.bi"><img :title="`${props.flag1} ${props.flag2}`" style="image-rendering: pixelated;" :src="`https://badge.les.bi/88x31/${props.flag1}/${props.flag2}/${props.clip}/${props.overlay}.${props.svg ? 'svg' : 'png'}`"></a>
14+
</template>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<script setup lang="ts">
2+
</script>
3+
<template>
4+
<span v-bind="$attrs">
5+
<slot></slot>
6+
</span>
7+
</template>
8+
9+
<style lang="css" scoped>
10+
/* https://github.com/krusynth/blink-polyfill */
11+
span {
12+
animation: 4s linear infinite html4_blink;
13+
}
14+
@keyframes html4_blink {
15+
0% {
16+
visibility: visible;
17+
}
18+
50% {
19+
visibility: hidden;
20+
}
21+
100% {
22+
visibility: hidden;
23+
}
24+
}
25+
</style>

src/lib/badges.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// badges from 88x31.nl
2+
const globbed = import.meta.glob('@/assets/badges/*', {query: '?url', eager: true});
3+
4+
export const badgeUrls = globbed as Record<string, { default: string }>;

src/lib/markdown/components.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@ import 'bluesky-profile-feed-embed';
44

55
import type { MDXComponents } from './mdx-types';
66

7+
import type { Slot } from 'vue';
8+
import type { JSX } from 'vue/jsx-runtime';
9+
710
import AtImg from '@/components/custom-elements/AtImg.ce.vue';
811
import AtLink from '@/components/custom-elements/AtLink.ce.vue';
912
import AtAnchor from '@/components/custom-elements/AtAnchor.ce.vue';
1013
import AtWebStylesheet from '@/components/custom-elements/AtWebStylesheet.ce.vue';
1114
import OmitVanillaCss from '@/components/custom-elements/OmitVanillaCss.ce.vue';
1215
import AtStyle from '@/components/custom-elements/AtStyle.ce.vue';
1316
import AtWebTitle from '@/components/custom-elements/AtWebTitle.ce.vue';
14-
import { type Slot } from 'vue';
15-
import type { JSX } from 'vue/jsx-runtime';
1617
import WebampPlayer from '@/components/custom-elements/WebampPlayer.ce.vue';
1718
import SpotifyPlayer from '@/components/custom-elements/SpotifyPlayer.vue';
1819
import OnekoKitty from '@/components/custom-elements/OnekoKitty.ce.vue';
20+
import NewBlink from '@/components/custom-elements/NewBlink.ce.vue';
21+
import LesbiBadge from '@/components/custom-elements/LesbiBadge.ce.vue';
22+
import EightyEightThirtyOneBadge from '@/components/custom-elements/EightyEightThirtyOneBadge.ce.vue';
1923

2024
type Props = Record<string, any>;
2125

@@ -66,5 +70,8 @@ export const components: MDXComponents = {
6670
Webamp: WebampPlayer,
6771
Spotify: SpotifyPlayer,
6872
Oneko: OnekoKitty,
73+
blink: NewBlink,
74+
LesbiBadge: LesbiBadge,
75+
Badge: EightyEightThirtyOneBadge,
6976
...(extraComponents as unknown as MDXComponents)
7077
};

0 commit comments

Comments
 (0)