Skip to content

Commit 6993c11

Browse files
committed
Fix page links
1 parent f11f9d0 commit 6993c11

File tree

14 files changed

+81
-32
lines changed

14 files changed

+81
-32
lines changed

package-lock.json

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"@rollup/plugin-replace": "^2.3.4",
4242
"@vue/cli-plugin-babel": "^4.5.10",
4343
"@vue/cli-service": "^4.5.10",
44+
"core-js": "^3.15.2",
4445
"cross-env": "^7.0.3",
4546
"minimist": "^1.2.5",
4647
"rollup": "^2.36.1",

src/blocks/bookmark.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,20 @@
88
>
99
<div>
1010
<div class="notion-bookmark-title">
11-
<NotionTextRenderer :text="title || properties.link" />
11+
<NotionTextRenderer :text="title || properties.link" v-bind="pass" />
1212
</div>
1313
<div v-if="description" class="notion-bookmark-description">
14-
<NotionTextRenderer :text="description" />
14+
<NotionTextRenderer :text="description" v-bind="pass" />
1515
</div>
1616
<div class="notion-bookmark-link">
1717
<img
1818
v-if="f.bookmark_icon"
1919
:alt="getTextContent(title || properties.link)"
2020
:src="f.bookmark_icon"
2121
/>
22-
<div><NotionTextRenderer :text="properties.link" /></div>
22+
<div>
23+
<NotionTextRenderer :text="properties.link" v-bind="pass" />
24+
</div>
2325
</div>
2426
</div>
2527
<div v-if="f.bookmark_cover" class="notion-bookmark-image">

src/blocks/callout.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
<NotionPageIcon v-bind="pass" />
55
</div>
66
<div class="notion-callout-text">
7-
<NotionTextRenderer :text="title" />
7+
<NotionTextRenderer :text="title" v-bind="pass" />
88
</div>
99
</div>
1010
</template>
1111

1212
<script>
13-
import Blockable, { blockComputed } from "@/lib/blockable";
13+
import Blockable from "@/lib/blockable";
1414
import NotionPageIcon from "@/blocks/helpers/page-icon";
1515
import NotionTextRenderer from "@/blocks/helpers/text-renderer";
1616

src/blocks/decorator.vue

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,48 @@
11
<template>
2-
<span v-if="decorators.length === 0">{{ text }}</span>
2+
<a
3+
v-if="isPageLink"
4+
class="notion-link"
5+
target="_blank"
6+
:href="decoratorValue"
7+
>{{ pageLinkTitle }}</a
8+
>
9+
<span v-else-if="decorators.length === 0">{{ text }}</span>
310
<span v-else-if="decoratorKey === 'h'" :class="'notion-' + decoratorValue"
4-
><NotionDecorator :content="nextContent" />
11+
><NotionDecorator :content="nextContent" v-bind="pass" />
512
</span>
613
<code v-else-if="decoratorKey === 'c'" class="notion-inline-code">
7-
<NotionDecorator :content="nextContent" />
14+
<NotionDecorator :content="nextContent" v-bind="pass" />
815
</code>
916
<b v-else-if="decoratorKey === 'b'">
10-
<NotionDecorator :content="nextContent" />
17+
<NotionDecorator :content="nextContent" v-bind="pass" />
1118
</b>
1219
<em v-else-if="decoratorKey === 'i'">
13-
<NotionDecorator :content="nextContent" />
20+
<NotionDecorator :content="nextContent" v-bind="pass" />
1421
</em>
1522
<s v-else-if="decoratorKey === 's'">
16-
<NotionDecorator :content="nextContent" />
23+
<NotionDecorator :content="nextContent" v-bind="pass" />
1724
</s>
25+
<s v-else-if="decoratorKey === '‣'"> TEST </s>
1826
<a
1927
v-else-if="decoratorKey === 'a'"
2028
class="notion-link"
2129
target="_blank"
2230
:href="decoratorValue"
2331
>
24-
<NotionDecorator :content="nextContent" />
32+
<NotionDecorator :content="nextContent" v-bind="pass" />
2533
</a>
26-
<NotionDecorator v-else :content="nextContent" />
34+
<NotionDecorator v-else :content="nextContent" v-bind="pass" />
2735
</template>
2836

2937
<script>
38+
import Blockable, { blockProps } from "@/lib/blockable";
39+
import NotionTextRenderer from "@/blocks/helpers/text-renderer";
40+
3041
export default {
42+
extends: Blockable,
3143
name: "NotionDecorator",
32-
props: ["content"],
44+
components: { NotionTextRenderer },
45+
props: { ...blockProps, content: Array },
3346
computed: {
3447
text() {
3548
return this.content?.[0];
@@ -53,6 +66,15 @@ export default {
5366
nextContent() {
5467
return [this.text, this.unappliedDecorators];
5568
},
69+
isPageLink() {
70+
return this.text === "";
71+
},
72+
pageLinkTitle() {
73+
return (
74+
this.blockMap?.[this.decoratorValue]?.value?.properties
75+
?.title?.[0]?.[0] || "this"
76+
);
77+
},
5678
},
5779
};
5880
</script>

src/blocks/header.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<template>
22
<h1 class="notion-h1" v-if="type === 'header'">
3-
<NotionTextRenderer :text="title" />
3+
<NotionTextRenderer :text="title" v-bind="pass" />
44
</h1>
55
<h2 class="notion-h2" v-else-if="type === 'sub_header'">
6-
<NotionTextRenderer :text="title" />
6+
<NotionTextRenderer :text="title" v-bind="pass" />
77
</h2>
88
<h3 class="notion-h3" v-else-if="type === 'sub_sub_header'">
9-
<NotionTextRenderer :text="title" />
9+
<NotionTextRenderer :text="title" v-bind="pass" />
1010
</h3>
1111
</template>
1212

src/blocks/helpers/asset.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66

77
<script>
88
import Blockable, { blockComputed } from "@/lib/blockable";
9-
import NotionTextRenderer from "@/blocks/helpers/text-renderer";
109
1110
export default {
1211
extends: Blockable,
1312
name: "NotionAsset",
14-
components: { NotionTextRenderer },
1513
computed: {
1614
...blockComputed,
1715
src() {

src/blocks/helpers/image.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@
77

88
<script>
99
import Blockable, { blockComputed } from "@/lib/blockable";
10-
import NotionTextRenderer from "@/blocks/helpers/text-renderer";
1110
1211
export default {
1312
extends: Blockable,
1413
name: "NotionImage",
15-
components: { NotionTextRenderer },
1614
computed: {
1715
...blockComputed,
1816
alt() {

src/blocks/helpers/text-renderer.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
<template>
22
<span>
3-
<NotionDecorator v-for="(t, i) in text" :key="i" :content="t" />
3+
<NotionDecorator
4+
v-for="(t, i) in text"
5+
:key="i"
6+
:content="t"
7+
v-bind="pass"
8+
/>
49
</span>
510
</template>
611

712
<script>
13+
import Blockable, { blockProps } from "@/lib/blockable";
14+
815
import NotionDecorator from "@/blocks/decorator";
916
1017
export default {
18+
extends: Blockable,
1119
name: "NotionTextRenderer",
12-
props: ["text"],
20+
props: { ...blockProps, text: Array },
1321
components: {
1422
NotionDecorator,
1523
},

src/blocks/list.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
v-if="isTopLevel && type === 'bulleted_list'"
44
class="notion-list notion-list-disc"
55
>
6-
<li><NotionTextRenderer :text="title" /></li>
6+
<li><NotionTextRenderer :text="title" v-bind="pass" /></li>
77
<NotionNestedList v-if="value.content" v-bind="pass">
88
<slot />
99
</NotionNestedList>
@@ -13,13 +13,13 @@
1313
class="notion-list notion-list-numbered"
1414
:start="start"
1515
>
16-
<li><NotionTextRenderer :text="title" /></li>
16+
<li><NotionTextRenderer :text="title" v-bind="pass" /></li>
1717
<NotionNestedList v-if="value.content" v-bind="pass">
1818
<slot />
1919
</NotionNestedList>
2020
</ol>
2121
<span v-else>
22-
<li><NotionTextRenderer :text="title" /></li>
22+
<li><NotionTextRenderer :text="title" v-bind="pass" /></li>
2323
<NotionNestedList v-if="value.content" v-bind="pass">
2424
<slot />
2525
</NotionNestedList>

0 commit comments

Comments
 (0)