Skip to content

Commit 0e967a7

Browse files
committed
update of theme + components
1 parent 7566db3 commit 0e967a7

9 files changed

+818
-7
lines changed

components/InfoLine.vue

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<template>
2+
<footer class="absolute bottom-0 left-0 right-0 flex text-center text-sm text-white">
3+
<div class="flex-1 p-1" style="background:#3333B3">
4+
{{ $slidev.configs.conference || "Unknown conference" }}
5+
</div>
6+
<div class="flex-1 p-1" style="background:#191959">
7+
{{ $slidev.configs.author || "Unknown author" }}
8+
</div>
9+
<div class="flex-1 p-1" style="background:#262686">
10+
<img src="/images/twitter-iamjerdog.png" width="50%">
11+
</div>
12+
</footer>
13+
</template>

components/Item.vue

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<template>
2+
<div class="item">
3+
<header v-if="title">{{ title }}</header>
4+
<main>
5+
<slot></slot>
6+
</main>
7+
</div>
8+
</template>
9+
10+
<script setup lang="ts">
11+
defineProps<{
12+
title?: string;
13+
}>();
14+
</script>

components/slidev.d.ts

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { UnwrapNestedRefs, Ref } from "vue";
2+
import type { SlidevContext } from "@slidev/client/modules/context";
3+
4+
declare global {
5+
// These will be injected in every component
6+
const $slidev: UnwrapNestedRefs<SlidevContext>;
7+
const $renderContext: Ref<string>;
8+
}
9+
10+
declare module 'vue' {
11+
interface ComponentCustomProperties {
12+
$slidev: UnwrapNestedRefs<SlidevContext>;
13+
$renderContext: string;
14+
}
15+
}
16+
17+
declare module '@slidev/types' {
18+
interface SlidevConfig {
19+
infoLine?: boolean;
20+
date?: string;
21+
author?: string;
22+
}
23+
}

components/talkTopBar.vue

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<template>
2+
<header class="absolute top-0 left-0 right-0 flex shadow-md shadow-black text-sm" style="background:black">
3+
<div class="flex-1 p-1" style="background:#262686">
4+
{{ $slidev.configs.title || "Unknown title" }}
5+
</div>
6+
</header>
7+
</template>
8+
9+
<script setup lang="ts">
10+
import { computed } from "vue";
11+
12+
import type { SlideInfoBase } from "@slidev/types";
13+
14+
const sections = computed(() => {
15+
const result: [string, number[]][] = [];
16+
let pages: number[] = [];
17+
let title = "";
18+
for(let i = 1; i < $slidev.nav.slides.length; i++) {
19+
const slide = $slidev.nav.slides[i];
20+
const section = (slide.meta?.slide as SlideInfoBase)?.frontmatter?.section;
21+
if(section && section != title) {
22+
if(pages.length > 0) result.push([title, pages]);
23+
pages = [];
24+
title = section;
25+
}
26+
pages.push(i);
27+
}
28+
result.push([title, pages]);
29+
return result;
30+
});
31+
</script>

global-top.vue

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
<template>
2-
<footer class="absolute bottom-0 left-0 right-0 p-2">
3-
<img src="/images/twitter-iamjerdog.png" width="15%" style="position:absolute;bottom:10px;left:2%;">
4-
<img src="/images/twitter-iamjerdog.png" width="15%" style="position:absolute;bottom:10px;right:2%;">
5-
</footer>
6-
</template>
1+
<template>
2+
<talkTopBar />
3+
<InfoLine v-if="$slidev.configs.infoLine ?? true" />
4+
</template>

global-top.vue.old

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<template>
2+
<footer class="absolute bottom-0 left-0 right-0 p-2">
3+
<img src="/images/twitter-iamjerdog.png" width="15%" style="position:absolute;bottom:10px;left:2%;">
4+
<img src="/images/twitter-iamjerdog.png" width="15%" style="position:absolute;bottom:10px;right:2%;">
5+
</footer>
6+
</template>

0 commit comments

Comments
 (0)