Skip to content

Commit 650cebc

Browse files
authored
Feat: toc settings (#7)
* feat: adding table of content size limitation * feat: adding version on build
1 parent 4e31256 commit 650cebc

File tree

10 files changed

+35
-27
lines changed

10 files changed

+35
-27
lines changed

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ RUN mkdir /app
99
COPY go.mod /app
1010
COPY go.sum /app
1111
WORKDIR /app
12+
ARG VERSION=dev
1213
RUN go mod download
1314
COPY . /app
14-
RUN CGO_ENABLED=0 go build -o NotionSlider .
15+
RUN CGO_ENABLED=0 go build -o NotionSlider -ldflags "-X main.version=$VERSION" .
1516

1617

1718
FROM alpine as runner

NotionSlider.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ var oauthClientSecret string
2727
var hostAndPort string
2828
var domain string
2929

30+
var version = "dev"
31+
3032
func init() {
3133
flag.StringVar(&oauthClientId, "client_id", "NO_CLIENT_ID_PROVIDED", "Client Id to use")
3234
flag.StringVar(&oauthClientSecret, "client_secret", "NO_CLIENT_SECRET_PROVIDED", "Client Secret to use")
@@ -48,6 +50,7 @@ func main() {
4850
r.GET("/api", func(c *gin.Context) {
4951
c.JSON(http.StatusOK, gin.H{
5052
"url": domain,
53+
"version": version,
5154
"client_id": oauthClientId,
5255
})
5356
})

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,11 @@ version: "3"
5050
services:
5151
notionslider:
5252
# comment build key and uncomment image to not have to build your own image.
53-
# image: "decima/notion-slider:0.1"
54-
build: { context: . }
53+
# image: "decima/notion-slider:0.7.0"
54+
build:
55+
context: .
56+
args:
57+
VERSION: 0.7.0
5558
entrypoint:
5659
- ./NotionSlider
5760
- -client_id=CLIENT_ID

app/.env

Lines changed: 0 additions & 2 deletions
This file was deleted.

app/src/lib/Navbar.svelte

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import {session} from "./stores/session.js";
44
import {onMount} from "svelte";
55
import {themeChange} from "theme-change";
6+
import {globalSettings} from "./stores/globalSettings.js";
67
78
const location = useLocation();
89
let y = 0;
@@ -19,7 +20,10 @@
1920

2021
<div class="navbar bg-base-100">
2122
<div class="flex-1">
22-
<a href="/" class="btn btn-ghost normal-case text-xl">Notion Slider</a>
23+
<a href="/" class="btn btn-ghost normal-case text-xl">Notion Slider&nbsp;
24+
<div class="badge badge-primary">{$globalSettings.version}</div>
25+
</a>
26+
2327
</div>
2428
<div class="flex-none">
2529
<ul class="menu menu-horizontal p-0">

app/src/lib/pages/HowTo.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
<tr><th><code>hideIcon</code></th><td>Hide the Icon of the first slide</td></tr>
7272
<tr><th><code>noBackgroundShadow</code></th><td>Disable background shadow of the first slide</td></tr>
7373
<tr><th><code>hideFirst <div class="badge">0.5.1</div></code></th><td>Hide title slide</td></tr>
74+
<tr><th><code>2levelTOC <div class="badge">0.7.0</div></code></th><td>Limit table of content to 2 levels (headings 1 & 2)</td></tr>
75+
<tr><th><code>1levelTOC <div class="badge">0.7.0</div></code></th><td>Limit table of content to 1 levels (headings 1)</td></tr>
7476
</table>
7577

7678
more to come on next releases with transitions to use, subtitle, custom css and much more, feel free to contact me if you have more stuff you want.

app/src/lib/stores/api.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ export function getTokenOrRedirect() {
2323
return token
2424
}
2525

26+
export async function getInfo() {
27+
28+
return await (await fetch(URL, withHeaders({}))).json()
29+
}
2630
export async function listFiles() {
2731

2832
return await (await fetch(URL + "/slides", withHeaders({}))).json()
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import {readable} from "svelte/store";
2+
import {getInfo} from "./api.js";
23

34

4-
export const globalSettings = readable({url: "/", client_id: ""},
5+
export const globalSettings = readable({url: "/", client_id: "", version: "dev"},
56
async function start(set) {
6-
const response = await fetch("/api")
7-
const e = await response.json();
8-
set(e)
7+
set(await getInfo())
98
});
109

app/src/lib/stores/slide.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ import {navigate} from "svelte-navigator";
77
import {getNotionAuth} from "./session.js";
88

99

10-
const DEFAULT_SETTINGS = {showTitle: true, showIcon: true, backgroundShadow: true, showFirst: true};
10+
const DEFAULT_SETTINGS = {showTitle: true, showIcon: true, backgroundShadow: true, showFirst: true, TOCLevel: 3};
1111

1212

1313
function fakeText() {
1414
return data
1515
}
1616

17-
function findAllTitles(items, registry) {
17+
function findAllTitles(items, registry,settings) {
1818

1919
for (const item of items) {
20-
if (["heading_1", "heading_2", "heading_3"].includes(item.type)) {
21-
const title = {type:item.type, content:item.block[item.type], children:[]}
20+
if (["heading_1", "heading_2", "heading_3"].slice(0,settings.TOCLevel).includes(item.type)) {
21+
const title = {type: item.type, content: item.block[item.type], children: []}
2222
registry.push(title)
2323

2424
continue;
2525
}
26-
findAllTitles(item.children, registry)
26+
findAllTitles(item.children, registry,settings)
2727
}
2828
}
2929

@@ -80,6 +80,11 @@ function slideInitializer() {
8080
case "hideFirst":
8181
newSettings.showFirst = false;
8282
break;
83+
case "2levelTOC":
84+
newSettings.TOCLevel = 2;
85+
break;
86+
case "1levelTOC":
87+
newSettings.TOCLevel = 1;
8388
}
8489
}
8590
return {...DEFAULT_SETTINGS, ...newSettings};
@@ -101,7 +106,7 @@ function slideInitializer() {
101106
let data = [];
102107
let page = loaded.page
103108
let settings = processSettings(page)
104-
findAllTitles(loaded.blocks, toc)
109+
findAllTitles(loaded.blocks, toc, settings)
105110

106111
let currentPage = 0;
107112
for (let block of loaded.blocks) {

app/vite.config.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,9 @@ import { defineConfig } from 'vite'
22
import { svelte } from '@sveltejs/vite-plugin-svelte'
33

44
export default defineConfig({
5-
/* build:{
6-
rollupOptions:{
7-
external:[
8-
/^bespoke.*!/,
9-
/^theme-change.*!/,
10-
/^.*daisyui.*!/
11-
12-
]
13-
}
14-
},*/
155
plugins: [svelte()],
166
server: {
177
proxy: {
18-
// string shorthand
198
'/api': 'http://localhost:9000',
209
}
2110
}

0 commit comments

Comments
 (0)