Skip to content

Commit 1bd9dfb

Browse files
committed
Add bookmark block
1 parent 74fc915 commit 1bd9dfb

File tree

3 files changed

+50
-3
lines changed

3 files changed

+50
-3
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Most common block types are supported. We happily accept pull requests to add su
132132
| Divider | ✅ Yes | |
133133
| Link | ✅ Yes | |
134134
| Code | ✅ Partially | Highlighting coming soon |
135-
| Web Bookmark |Soon | |
135+
| Web Bookmark |Yes | |
136136
| Toggle List | ✅ Yes | |
137137
| Page Links | ✅ Yes | |
138138
| Header | ✅ Yes | Enable with `fullPage` |

src/blocks/bookmark.vue

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<template>
2+
<div class="notion-row">
3+
<a
4+
target="_blank"
5+
rel="noopener noreferrer"
6+
:class="['notion-bookmark', f.block_color && `notion-${f.block_color}`]"
7+
:href="properties.link"
8+
>
9+
<div>
10+
<div class="notion-bookmark-title">
11+
<NotionTextRenderer :text="title || properties.link" />
12+
</div>
13+
<div v-if="description" class="notion-bookmark-description">
14+
<NotionTextRenderer :text="description" />
15+
</div>
16+
<div class="notion-bookmark-link">
17+
<img
18+
v-if="f.bookmark_icon"
19+
:alt="getTextContent(title || properties.link)"
20+
:src="f.bookmark_icon"
21+
/>
22+
<div><NotionTextRenderer :text="properties.link" /></div>
23+
</div>
24+
</div>
25+
<div v-if="f.bookmark_cover" class="notion-bookmark-image">
26+
<img
27+
:alt="getTextContent(title || properties.link)"
28+
:src="f.bookmark_cover"
29+
/>
30+
</div>
31+
</a>
32+
</div>
33+
</template>
34+
35+
<script>
36+
import Blockable from "@/lib/blockable";
37+
import NotionTextRenderer from "@/blocks/helpers/text-renderer";
38+
39+
export default {
40+
extends: Blockable,
41+
name: "NotionBookmark",
42+
components: { NotionTextRenderer },
43+
};
44+
</script>

src/components/block.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
v-else-if="isType(['header', 'sub_header', 'sub_sub_header'])"
77
v-bind="pass"
88
/>
9-
<NotionText v-else-if="isType('text')" v-bind="pass" />
10-
<NotionQuote v-else-if="isType('quote')" v-bind="pass" />
9+
<NotionBookmark v-else-if="isType('bookmark')" v-bind="pass" />
1110
<NotionCallout v-else-if="isType('callout')" v-bind="pass" />
1211
<NotionCode v-else-if="isType('code')" v-bind="pass" />
12+
<NotionText v-else-if="isType('text')" v-bind="pass" />
13+
<NotionQuote v-else-if="isType('quote')" v-bind="pass" />
1314
<NotionToggle v-else-if="isType('toggle')" v-bind="pass">
1415
<slot />
1516
</NotionToggle>
@@ -37,6 +38,7 @@
3738

3839
<script>
3940
import Blockable, { blockComputed } from "@/lib/blockable";
41+
import NotionBookmark from "@/blocks/bookmark";
4042
import NotionCallout from "@/blocks/callout";
4143
import NotionCode from "@/blocks/code";
4244
import NotionColumn from "@/blocks/column";
@@ -52,6 +54,7 @@ export default {
5254
extends: Blockable,
5355
name: "NotionBlock",
5456
components: {
57+
NotionBookmark,
5558
NotionCallout,
5659
NotionCode,
5760
NotionColumn,

0 commit comments

Comments
 (0)