Skip to content

Commit 67a10cf

Browse files
committed
fix: re-implement sidebar advertisements
1 parent 1d6670c commit 67a10cf

File tree

11 files changed

+96
-124
lines changed

11 files changed

+96
-124
lines changed

docs/.vuepress/client.ts

+4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { defineClientConfig } from '@vuepress/client'
2+
import Layout from './layouts/Layout.vue'
23

34
// @ts-expect-error monaco editor doesn't have types for the workers
45
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
@@ -8,6 +9,9 @@ import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
89
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
910

1011
export default defineClientConfig({
12+
layouts: {
13+
Layout
14+
},
1115
enhance({ router }) {
1216
self.MonacoEnvironment = {
1317
getWorker(_, label) {

docs/.vuepress/layouts/Layout.vue

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<ParentLayout>
3+
<template #sidebar-top>
4+
<Suspense>
5+
<CarbonAds />
6+
<template #fallback>Loading ads...</template>
7+
</Suspense>
8+
</template>
9+
</ParentLayout>
10+
</template>
11+
12+
<script setup>
13+
import ParentLayout from '@vuepress/theme-default/layouts/Layout.vue'
14+
import CarbonAds from './components/CarbonAds.vue'
15+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<template>
2+
<div class="carbon-ads" ref="carbonAdsElementRef"></div>
3+
</template>
4+
5+
<script setup lang="ts">
6+
import { isNullish } from '@sapphire/utilities'
7+
import { onMounted, ref, watch } from 'vue'
8+
import { useRoute } from 'vue-router'
9+
10+
const SCRIPT_ID = '_carbonads_js'
11+
const ACCOUNT_ID = 'CE7IC27U'
12+
const PLACEMENT = 'fusejsio'
13+
14+
const route = useRoute()
15+
16+
const carbonAdsElementRef = ref<HTMLDivElement>()
17+
18+
async function loadCarbonAds() {
19+
const s = document.createElement('script')
20+
s.id = SCRIPT_ID
21+
s.src = `//cdn.carbonads.com/carbon.js?serve=${ACCOUNT_ID}&placement=${PLACEMENT}`
22+
carbonAdsElementRef.value.appendChild(s)
23+
}
24+
25+
onMounted(() => {
26+
loadCarbonAds()
27+
})
28+
29+
watch(route, () => {
30+
if (!isNullish(document.querySelector('#carbonads'))) {
31+
carbonAdsElementRef.value.innerHTML = ''
32+
loadCarbonAds()
33+
}
34+
})
35+
</script>
36+
37+
<style lang="css">
38+
.carbon-ads {
39+
min-height: 102px;
40+
padding: 1.5rem 1.5rem 0;
41+
margin-bottom: -0.5rem;
42+
font-size: 0.75rem;
43+
}
44+
45+
.carbon-ads a {
46+
color: #444;
47+
font-weight: normal;
48+
display: inline;
49+
}
50+
51+
.carbon-ads .carbon-img {
52+
float: left;
53+
margin-right: 1rem;
54+
border: 1px solid var(--c-border);
55+
}
56+
57+
html.dark .carbon-ads .carbon-img {
58+
border-color: var(--c-border-dark);
59+
}
60+
61+
.carbon-ads .carbon-img img {
62+
display: block;
63+
}
64+
65+
.carbon-ads .carbon-poweredby {
66+
color: #999;
67+
display: block;
68+
margin-top: 0.5em;
69+
}
70+
71+
@media (max-width: 719px) {
72+
.carbon-ads .carbon-img img {
73+
width: 100px;
74+
height: 77px;
75+
}
76+
}
77+
</style>

docs/.vuepress/theme/components/CarbonAds.vue

-64
This file was deleted.

docs/.vuepress/theme/index.js

-5
This file was deleted.

docs/.vuepress/theme/layouts/Layout.vue

-55
This file was deleted.

0 commit comments

Comments
 (0)