livemark 0.11.6 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/BackToTop.js +3 -1
- package/build/components/Footer.js +2 -2
- package/build/components/Sidebar.js +6 -3
- package/build/routes/$.js +1 -3
- package/build/routes/__root.js +3 -1
- package/package.json +1 -1
- package/source/components/BackToTop.tsx +3 -0
- package/source/components/Footer.tsx +1 -1
- package/source/components/Sidebar.tsx +4 -2
- package/source/routes/$.tsx +0 -2
- package/source/routes/__root.tsx +2 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useHotkey } from "@tanstack/react-hotkeys";
|
|
2
3
|
import { ArrowUp } from "lucide-react";
|
|
3
4
|
import { useEffect, useState } from "react";
|
|
4
5
|
import { Button } from "../elements/button.js";
|
|
@@ -12,8 +13,9 @@ export function BackToTop() {
|
|
|
12
13
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
13
14
|
return () => window.removeEventListener("scroll", onScroll);
|
|
14
15
|
}, []);
|
|
16
|
+
useHotkey("B", () => window.scrollTo({ top: 0, behavior: "smooth" }));
|
|
15
17
|
return (_jsx(Button, { type: "button", variant: "outline", "aria-label": "Back to top", onClick: () => window.scrollTo({ top: 0, behavior: "smooth" }), className: `fixed bottom-6 right-6 z-30 size-10 rounded-full shadow-md transition-all duration-200 ${visible
|
|
16
18
|
? "opacity-100 translate-y-0 pointer-events-auto"
|
|
17
19
|
: "opacity-0 translate-y-2 pointer-events-none"}`, children: _jsx(ArrowUp, { className: "size-4" }) }));
|
|
18
20
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFja1RvVG9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvQmFja1RvVG9wLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF3QixDQUFBO0FBRS9DO29DQUNvQztBQUNwQyxNQUFNLFVBQVUsU0FBUztJQUN2QixNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU3QyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDdkQsUUFBUSxFQUFFLENBQUE7UUFDVixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzlELE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM3RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFckUsT0FBTyxDQUNMLEtBQUMsTUFBTSxJQUNMLElBQUksRUFBQyxRQUFRLEVBQ2IsT0FBTyxFQUFDLFNBQVMsZ0JBQ04sYUFBYSxFQUN4QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQzlELFNBQVMsRUFBRSwwRkFDVCxPQUFPO1lBQ0wsQ0FBQyxDQUFDLCtDQUErQztZQUNqRCxDQUFDLENBQUMsNkNBQ04sRUFBRSxZQUVGLEtBQUMsT0FBTyxJQUFDLFNBQVMsRUFBQyxRQUFRLEdBQUcsR0FDdkIsQ0FDVixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUhvdGtleSB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3QtaG90a2V5c1wiXG5pbXBvcnQgeyBBcnJvd1VwIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9lbGVtZW50cy9idXR0b24udHN4XCJcblxuLyoqIEZsb2F0aW5nIGJ1dHRvbiB0aGF0IHNjcm9sbHMgdGhlIHBhZ2UgYmFjayB0byB0aGUgdG9wIG9uY2UgdGhlIHVzZXJcbiAqIGhhcyBzY3JvbGxlZCBwYXN0IGEgdGhyZXNob2xkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJhY2tUb1RvcCgpIHtcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHNldFZpc2libGUod2luZG93LnNjcm9sbFkgPiA0MDApXG4gICAgb25TY3JvbGwoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG9uU2Nyb2xsLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwpXG4gIH0sIFtdKVxuXG4gIHVzZUhvdGtleShcIkJcIiwgKCkgPT4gd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSlcblxuICByZXR1cm4gKFxuICAgIDxCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgdmFyaWFudD1cIm91dGxpbmVcIlxuICAgICAgYXJpYS1sYWJlbD1cIkJhY2sgdG8gdG9wXCJcbiAgICAgIG9uQ2xpY2s9eygpID0+IHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSl9XG4gICAgICBjbGFzc05hbWU9e2BmaXhlZCBib3R0b20tNiByaWdodC02IHotMzAgc2l6ZS0xMCByb3VuZGVkLWZ1bGwgc2hhZG93LW1kIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCAke1xuICAgICAgICB2aXNpYmxlXG4gICAgICAgICAgPyBcIm9wYWNpdHktMTAwIHRyYW5zbGF0ZS15LTAgcG9pbnRlci1ldmVudHMtYXV0b1wiXG4gICAgICAgICAgOiBcIm9wYWNpdHktMCB0cmFuc2xhdGUteS0yIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgfWB9XG4gICAgPlxuICAgICAgPEFycm93VXAgY2xhc3NOYW1lPVwic2l6ZS00XCIgLz5cbiAgICA8L0J1dHRvbj5cbiAgKVxufVxuIl19
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
export function Footer() {
|
|
4
4
|
return (_jsxs("p", { className: "mt-12 text-center text-sm text-muted-foreground", children: ["Created with ",
|
|
5
5
|
_jsx("span", { className: "text-red-500", children: "\u2764" }),
|
|
6
|
-
" and", " ", _jsx("a", { href: "https://
|
|
6
|
+
" and", " ", _jsx("a", { href: "https://livemark.dev", target: "_blank", rel: "noopener noreferrer", className: "font-medium hover:text-foreground transition-colors", children: "Livemark" })
|
|
7
7
|
] }));
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sQ0FDTCxhQUFHLFNBQVMsRUFBQyxpREFBaUQ7WUFDL0MsZUFBTSxTQUFTLEVBQUMsY0FBYyx1QkFBUztvQkFBSyxHQUFHLEVBQzVELFlBQ0UsSUFBSSxFQUFDLHNCQUFzQixFQUMzQixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsU0FBUyxFQUFDLHFEQUFxRCx5QkFHN0Q7WUFDRixDQUNMLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEZvb3RlciBzaG93biBiZWxvdyBhcnRpY2xlIGNvbnRlbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gIHJldHVybiAoXG4gICAgPHAgY2xhc3NOYW1lPVwibXQtMTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIENyZWF0ZWQgd2l0aCA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIj7inaQ8L3NwYW4+IGFuZHtcIiBcIn1cbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCJodHRwczovL2xpdmVtYXJrLmRldlwiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBjbGFzc05hbWU9XCJmb250LW1lZGl1bSBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgPlxuICAgICAgICBMaXZlbWFya1xuICAgICAgPC9hPlxuICAgIDwvcD5cbiAgKVxufVxuIl19
|
|
@@ -15,8 +15,11 @@ import { Theme } from "./Theme.js";
|
|
|
15
15
|
export function Sidebar(props) {
|
|
16
16
|
const pathname = useLocation({ select: l => l.pathname });
|
|
17
17
|
const articleRoute = useMatch({ from: "/$", shouldThrow: false });
|
|
18
|
-
const { toggleSidebar } = useSidebar();
|
|
19
|
-
useHotkey("S",
|
|
18
|
+
const { toggleSidebar, isMobile } = useSidebar();
|
|
19
|
+
useHotkey("S", () => {
|
|
20
|
+
if (props.withSidebar || isMobile)
|
|
21
|
+
toggleSidebar();
|
|
22
|
+
});
|
|
20
23
|
const section = articleRoute
|
|
21
24
|
? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
|
|
22
25
|
: undefined;
|
|
@@ -30,4 +33,4 @@ export function Sidebar(props) {
|
|
|
30
33
|
] }), _jsx(SidebarRail, {})
|
|
31
34
|
] }));
|
|
32
35
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL1NpZGViYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3RELE9BQU8sRUFDTCxPQUFPLElBQUksV0FBVyxFQUN0QixjQUFjLEVBQ2QsYUFBYSxFQUNiLGFBQWEsRUFDYixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixXQUFXLEVBQ1gsVUFBVSxHQUNYLE1BQU0sd0JBQXlCLENBQUE7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXVCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXVCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBRW5DLGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQWdDO0lBQ3RELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDakUsTUFBTSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUVoRCxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtRQUNsQixJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksUUFBUTtZQUFFLGFBQWEsRUFBRSxDQUFBO0lBQ3BELENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxPQUFPLEdBQUcsWUFBWTtRQUMxQixDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUN6RCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBRWIsT0FBTyxDQUNMLE1BQUMsV0FBVztZQUNWLEtBQUMsYUFBYSxjQUNaLEtBQUMsV0FBVyxjQUNWLEtBQUMsZUFBZSxjQUNkLEtBQUMsaUJBQWlCLElBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUUsS0FBQyxJQUFJLElBQUMsRUFBRSxFQUFDLEdBQUcsR0FBRyxZQUNsRCxLQUFDLFNBQVMsS0FBRyxHQUNLLEdBQ0osR0FDTixHQUNBLEVBQ2hCLE1BQUMsY0FBYztvQkFDYixLQUFDLGVBQWUsS0FBRyxFQUNsQixLQUFLLENBQUMsV0FBVyxJQUFJLE9BQU8sRUFBRSxJQUFJLEtBQUssTUFBTSxJQUFJLEtBQUMsWUFBWSxLQUFHLEVBQ2pFLEtBQUssQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFLElBQUksS0FBSyxXQUFXLElBQUksQ0FDckQsS0FBQyxlQUFlLEtBQUcsQ0FDcEIsRUFDQSxLQUFLLENBQUMsV0FBVzt3QkFDaEIsT0FBTyxFQUFFLElBQUksS0FBSyxNQUFNO3dCQUN4QixPQUFPLEVBQUUsSUFBSSxLQUFLLFdBQVcsSUFBSSxLQUFDLGVBQWUsS0FBRyxFQUN0RCxLQUFDLFlBQVksS0FBRztvQkFDRCxFQUNqQixNQUFDLGFBQWEsSUFBQyxTQUFTLEVBQUMsZUFBZTtvQkFDdEMsS0FBQyxNQUFNLEtBQUcsRUFDVixLQUFDLEtBQUssS0FBRztvQkFDSyxFQUNoQixLQUFDLFdBQVcsS0FBRztZQUNILENBQ2YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHsgY3VycmVudFNlY3Rpb24gfSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7XG4gIFNpZGViYXIgYXMgU2lkZWJhclJvb3QsXG4gIFNpZGViYXJDb250ZW50LFxuICBTaWRlYmFyRm9vdGVyLFxuICBTaWRlYmFySGVhZGVyLFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVCdXR0b24sXG4gIFNpZGViYXJNZW51SXRlbSxcbiAgU2lkZWJhclJhaWwsXG4gIHVzZVNpZGViYXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tIFwiLi9TZWFyY2gudHN4XCJcbmltcG9ydCB7IFNpZGViYXJBcnRpY2xlcyB9IGZyb20gXCIuL1NpZGViYXJBcnRpY2xlcy50c3hcIlxuaW1wb3J0IHsgU2lkZWJhckxpbmtzIH0gZnJvbSBcIi4vU2lkZWJhckxpbmtzLnRzeFwiXG5pbXBvcnQgeyBTaWRlYmFyUG9zdHMgfSBmcm9tIFwiLi9TaWRlYmFyUG9zdHMudHN4XCJcbmltcG9ydCB7IFNpZGViYXJSZWxlYXNlcyB9IGZyb20gXCIuL1NpZGViYXJSZWxlYXNlcy50c3hcIlxuaW1wb3J0IHsgU2lkZWJhclNlY3Rpb25zIH0gZnJvbSBcIi4vU2lkZWJhclNlY3Rpb25zLnRzeFwiXG5pbXBvcnQgeyBTaXRlVGl0bGUgfSBmcm9tIFwiLi9TaXRlVGl0bGUudHN4XCJcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSBcIi4vVGhlbWUudHN4XCJcblxuLyoqIEFwcGxpY2F0aW9uIHNpZGViYXIgc2hlbGw6IGhlYWRlciwgYm9keSBzbG90IHBpY2tlZCBieSBzZWN0aW9uLnR5cGUsIGZvb3RlciAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXIocHJvcHM6IHsgd2l0aFNpZGViYXI/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgeyB0b2dnbGVTaWRlYmFyLCBpc01vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG5cbiAgdXNlSG90a2V5KFwiU1wiLCAoKSA9PiB7XG4gICAgaWYgKHByb3BzLndpdGhTaWRlYmFyIHx8IGlzTW9iaWxlKSB0b2dnbGVTaWRlYmFyKClcbiAgfSlcblxuICBjb25zdCBzZWN0aW9uID0gYXJ0aWNsZVJvdXRlXG4gICAgPyBjdXJyZW50U2VjdGlvbihgLyR7cGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpfS9gKVxuICAgIDogdW5kZWZpbmVkXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhclJvb3Q+XG4gICAgICA8U2lkZWJhckhlYWRlcj5cbiAgICAgICAgPFNpZGViYXJNZW51PlxuICAgICAgICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgICAgICA8U2lkZWJhck1lbnVCdXR0b24gc2l6ZT1cImxnXCIgcmVuZGVyPXs8TGluayB0bz1cIi9cIiAvPn0+XG4gICAgICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgICAgIDwvU2lkZWJhck1lbnVCdXR0b24+XG4gICAgICAgICAgPC9TaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgIDwvU2lkZWJhck1lbnU+XG4gICAgICA8L1NpZGViYXJIZWFkZXI+XG4gICAgICA8U2lkZWJhckNvbnRlbnQ+XG4gICAgICAgIDxTaWRlYmFyU2VjdGlvbnMgLz5cbiAgICAgICAge3Byb3BzLndpdGhTaWRlYmFyICYmIHNlY3Rpb24/LnR5cGUgPT09IFwiYmxvZ1wiICYmIDxTaWRlYmFyUG9zdHMgLz59XG4gICAgICAgIHtwcm9wcy53aXRoU2lkZWJhciAmJiBzZWN0aW9uPy50eXBlID09PSBcImNoYW5nZWxvZ1wiICYmIChcbiAgICAgICAgICA8U2lkZWJhclJlbGVhc2VzIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy53aXRoU2lkZWJhciAmJlxuICAgICAgICAgIHNlY3Rpb24/LnR5cGUgIT09IFwiYmxvZ1wiICYmXG4gICAgICAgICAgc2VjdGlvbj8udHlwZSAhPT0gXCJjaGFuZ2Vsb2dcIiAmJiA8U2lkZWJhckFydGljbGVzIC8+fVxuICAgICAgICA8U2lkZWJhckxpbmtzIC8+XG4gICAgICA8L1NpZGViYXJDb250ZW50PlxuICAgICAgPFNpZGViYXJGb290ZXIgY2xhc3NOYW1lPVwicC00IHNwYWNlLXktMlwiPlxuICAgICAgICA8U2VhcmNoIC8+XG4gICAgICAgIDxUaGVtZSAvPlxuICAgICAgPC9TaWRlYmFyRm9vdGVyPlxuICAgICAgPFNpZGViYXJSYWlsIC8+XG4gICAgPC9TaWRlYmFyUm9vdD5cbiAgKVxufVxuIl19
|
package/build/routes/$.js
CHANGED
|
@@ -6,7 +6,6 @@ import { Article } from "../components/Article.js";
|
|
|
6
6
|
import { BlogIndex } from "../components/BlogIndex.js";
|
|
7
7
|
import { ChangelogIndex } from "../components/ChangelogIndex.js";
|
|
8
8
|
import { TagIndex } from "../components/TagIndex.js";
|
|
9
|
-
import markdownCss from "../styles/markdown.css?url";
|
|
10
9
|
export const Route = createFileRoute("/$")({
|
|
11
10
|
loader: ({ params }) => {
|
|
12
11
|
if (!params._splat) {
|
|
@@ -65,7 +64,6 @@ export const Route = createFileRoute("/$")({
|
|
|
65
64
|
? [{ name: "description", content: loaderData.description }]
|
|
66
65
|
: []),
|
|
67
66
|
],
|
|
68
|
-
links: [{ rel: "stylesheet", href: markdownCss }],
|
|
69
67
|
}),
|
|
70
68
|
component: Component,
|
|
71
69
|
});
|
|
@@ -82,4 +80,4 @@ function Component() {
|
|
|
82
80
|
}
|
|
83
81
|
return _jsx(Article, { article: data });
|
|
84
82
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiJC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9yb3V0ZXMvJC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzVFLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEyQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUE0QixDQUFBO0FBRXJELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsSUFBSSxXQUFXO2dCQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3hFLElBQUksQ0FBQyxZQUFZO2dCQUFFLE1BQU0sUUFBUSxFQUFFLENBQUE7WUFDbkMsTUFBTSxRQUFRLENBQUM7Z0JBQ2IsRUFBRSxFQUFFLElBQUk7Z0JBQ1IsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRTthQUM5RCxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdB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QWEsR0FBSSxDQUFBO0lBQzlELENBQUM7SUFDRCxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUMsUUFBUSxJQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFJLENBQUE7SUFDdkUsQ0FBQztJQUNELE9BQU8sS0FBQyxPQUFPLElBQUMsT0FBTyxFQUFFLElBQUksR0FBSSxDQUFBO0FBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGaWxlUm91dGUsIG5vdEZvdW5kLCByZWRpcmVjdCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7XG4gIGN1cnJlbnRTZWN0aW9uLFxuICBmaXJzdEFydGljbGUsXG4gIGhvbWVBcnRpY2xlLFxuICBzb3J0ZWRBcnRpY2xlcyxcbn0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5pbXBvcnQgeyBzZWN0aW9uVGFncyB9IGZyb20gXCIuLi9jb250ZW50L3RhZy50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQXJ0aWNsZS50c3hcIlxuaW1wb3J0IHsgQmxvZ0luZGV4IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQmxvZ0luZGV4LnRzeFwiXG5pbXBvcnQgeyBDaGFuZ2Vsb2dJbmRleCB9IGZyb20gXCIuLi9jb21wb25lbnRzL0NoYW5nZWxvZ0luZGV4LnRzeFwiXG5pbXBvcnQgeyBUYWdJbmRleCB9IGZyb20gXCIuLi9jb21wb25lbnRzL1RhZ0luZGV4LnRzeFwiXG5cbmV4cG9ydCBjb25zdCBSb3V0ZSA9IGNyZWF0ZUZpbGVSb3V0ZShcIi8kXCIpKHtcbiAgbG9hZGVyOiAoeyBwYXJhbXMgfSkgPT4ge1xuICAgIGlmICghcGFyYW1zLl9zcGxhdCkge1xuICAgICAgaWYgKGhvbWVBcnRpY2xlKSByZXR1cm4geyAuLi5ob21lQXJ0aWNsZSwgc2lkZWJhcjogaG9tZUFydGljbGUuc2lkZWJhciB9XG4gICAgICBpZiAoIWZpcnN0QXJ0aWNsZSkgdGhyb3cgbm90Rm91bmQoKVxuICAgICAgdGhyb3cgcmVkaXJlY3Qoe1xuICAgICAgICB0bzogXCIvJFwiLFxuICAgICAgICBwYXJhbXM6IHsgX3NwbGF0OiBmaXJzdEFydGljbGUucGF0aC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGNvbnN0IHNwbGF0ID0gYC8ke3BhcmFtcy5fc3BsYXR9L2BcbiAgICBjb25zdCBhcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChhID0+IGEucGF0aCA9PT0gc3BsYXQpXG4gICAgaWYgKGFydGljbGUpIHJldHVybiBhcnRpY2xlXG5cbiAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudFNlY3Rpb24oc3BsYXQpXG4gICAgaWYgKHNlY3Rpb24/LnR5cGUgPT09IFwiY2hhbmdlbG9nXCIgJiYgc2VjdGlvbi5wcmVmaXggPT09IHNwbGF0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGFuZ2Vsb2dJbmRleDogdHJ1ZSBhcyBjb25zdCxcbiAgICAgICAgc2VjdGlvblByZWZpeDogc2VjdGlvbi5wcmVmaXgsXG4gICAgICAgIHRpdGxlOiBzZWN0aW9uLnRpdGxlLFxuICAgICAgICBzaWRlYmFyOiB0cnVlLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2VjdGlvbj8udHlwZSA9PT0gXCJibG9nXCIpIHtcbiAgICAgIGlmIChzZWN0aW9uLnByZWZpeCA9PT0gc3BsYXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBibG9nSW5kZXg6IHRydWUgYXMgY29uc3QsXG4gICAgICAgICAgc2VjdGlvblByZWZpeDogc2VjdGlvbi5wcmVmaXgsXG4gICAgICAgICAgdGl0bGU6IHNlY3Rpb24udGl0bGUsXG4gICAgICAgICAgc2lkZWJhcjogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB0YWdNYXRjaCA9IHNwbGF0Lm1hdGNoKFxuICAgICAgICBuZXcgUmVnRXhwKGBeJHtzZWN0aW9uLnByZWZpeH10YWdzLyhbXi9dKykvJGApLFxuICAgICAgKVxuICAgICAgY29uc3QgdGFnID0gdGFnTWF0Y2g/LlsxXVxuICAgICAgaWYgKHRhZykge1xuICAgICAgICBjb25zdCB0YWdNYXAgPSBzZWN0aW9uVGFncy5nZXQoc2VjdGlvbi5wcmVmaXgpXG4gICAgICAgIGlmICh0YWdNYXA/Lmhhcyh0YWcpKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhZ1BhZ2U6IHRydWUgYXMgY29uc3QsXG4gICAgICAgICAgICBzZWN0aW9uUHJlZml4OiBzZWN0aW9uLnByZWZpeCxcbiAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgIHRpdGxlOiBgUG9zdHMgdGFnZ2VkICcke3RhZ30nYCxcbiAgICAgICAgICAgIHNpZGViYXI6IHRydWUsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbm90Rm91bmQoKVxuICB9LFxuICBoZWFkOiAoeyBsb2FkZXJEYXRhIH0pID0+ICh7XG4gICAgbWV0YTogW1xuICAgICAgLi4uKGxvYWRlckRhdGEgPyBbeyB0aXRsZTogbG9hZGVyRGF0YS50aXRsZSB9XSA6IFtdKSxcbiAgICAgIC4uLihcImRlc2NyaXB0aW9uXCIgaW4gbG9hZGVyRGF0YSAmJiBsb2FkZXJEYXRhLmRlc2NyaXB0aW9uXG4gICAgICAgID8gW3sgbmFtZTogXCJkZXNjcmlwdGlvblwiLCBjb250ZW50OiBsb2FkZXJEYXRhLmRlc2NyaXB0aW9uIH1dXG4gICAgICAgIDogW10pLFxuICAgIF0sXG4gIH0pLFxuICBjb21wb25lbnQ6IENvbXBvbmVudCxcbn0pXG5cbmZ1bmN0aW9uIENvbXBvbmVudCgpIHtcbiAgY29uc3QgZGF0YSA9IFJvdXRlLnVzZUxvYWRlckRhdGEoKVxuICBpZiAoXCJibG9nSW5kZXhcIiBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIDxCbG9nSW5kZXggc2VjdGlvblByZWZpeD17ZGF0YS5zZWN0aW9uUHJlZml4fSAvPlxuICB9XG4gIGlmIChcImNoYW5nZWxvZ0luZGV4XCIgaW4gZGF0YSkge1xuICAgIHJldHVybiA8Q2hhbmdlbG9nSW5kZXggc2VjdGlvblByZWZpeD17ZGF0YS5zZWN0aW9uUHJlZml4fSAvPlxuICB9XG4gIGlmIChcInRhZ1BhZ2VcIiBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIDxUYWdJbmRleCBzZWN0aW9uUHJlZml4PXtkYXRhLnNlY3Rpb25QcmVmaXh9IHRhZz17ZGF0YS50YWd9IC8+XG4gIH1cbiAgcmV0dXJuIDxBcnRpY2xlIGFydGljbGU9e2RhdGF9IC8+XG59XG4iXX0=
|
package/build/routes/__root.js
CHANGED
|
@@ -11,6 +11,7 @@ import { Toaster } from "../elements/sonner.js";
|
|
|
11
11
|
import { faviconType } from "../helpers/favicon.js";
|
|
12
12
|
import defaultFavicon from "../assets/logo.svg";
|
|
13
13
|
import generalCss from "../styles/general.css?url";
|
|
14
|
+
import markdownCss from "../styles/markdown.css?url";
|
|
14
15
|
export const Route = createRootRoute({
|
|
15
16
|
head: () => {
|
|
16
17
|
const favicon = config.favicon ?? config.logo ?? defaultFavicon;
|
|
@@ -34,6 +35,7 @@ export const Route = createRootRoute({
|
|
|
34
35
|
links: [
|
|
35
36
|
{ rel: "icon", href: favicon, type: faviconType(favicon) },
|
|
36
37
|
{ rel: "stylesheet", href: generalCss },
|
|
38
|
+
{ rel: "stylesheet", href: markdownCss },
|
|
37
39
|
],
|
|
38
40
|
};
|
|
39
41
|
},
|
|
@@ -65,4 +67,4 @@ function Document(props) {
|
|
|
65
67
|
] })
|
|
66
68
|
] }));
|
|
67
69
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX19yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3JvdXRlcy9fX3Jvb3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsTUFBTSxFQUNOLE9BQU8sRUFDUCxRQUFRLEdBQ1QsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQTBCLENBQUE7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXdDLENBQUE7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUE0QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBd0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDbkQsT0FBTyxjQUFjLE1BQU0sb0JBQW9CLENBQUE7QUFDL0MsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUE7QUFDbEQsT0FBTyxXQUFXLE1BQU0sNEJBQTRCLENBQUE7QUFFcEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUNuQyxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ1QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLGNBQWMsQ0FBQTtRQUMvRCxPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtnQkFDcEIsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDdkIsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUNwRCxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQy9DO29CQUNFLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVztpQkFDNUI7Z0JBQ0QsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUNuRCxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtnQkFDM0M7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLE9BQU8sRUFBRSxxQ0FBcUM7aUJBQy9DO2FBQ0Y7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDMUQsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3ZDLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2FBQ3pDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFDRCxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFDLFFBQVEsS0FBRztJQUNyQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxDQUNMLEtBQUMsUUFBUSxjQUNQLEtBQUMsb0JBQW9CLE9BQUssS0FBSyxHQUFJLEdBQzFCLENBQ1osQ0FBQTtJQUNILENBQUM7SUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1FBQ2QsT0FBTyxDQUNMLEtBQUMsUUFBUSxjQUNQLEtBQUMsTUFBTSxLQUFHLEdBQ0QsQ0FDWixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQTtBQUVGLFNBQVMsUUFBUSxDQUFDLEtBQW9DO0lBQ3BELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDakUsTUFBTSxXQUFXLEdBQUcsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUE7SUFFckQsT0FBTyxDQUNMLGdCQUFNLElBQUksRUFBQyxJQUFJO1lBQ2IseUJBQ0UsS0FBQyxXQUFXLEtBQUcsR0FDVixFQUNQO29CQUNFLEtBQUMsTUFBTSxJQUFDLFdBQVcsRUFBRSxXQUFXLFlBQUcsS0FBSyxDQUFDLFFBQVEsR0FBVSxFQUMzRCxLQUFDLE9BQU8sSUFBQyxRQUFRLEVBQUMsWUFBWSxHQUFHLEVBQ2pDLEtBQUMsZ0JBQWdCLElBQ2YsTUFBTSxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEVBQ3pELE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsZ0JBQWdCO2dDQUN0QixNQUFNLEVBQUUsS0FBQyx1QkFBdUIsS0FBRztnQ0FDbkMsV0FBVyxFQUFFLElBQUk7NkJBQ2xCOzRCQUNEO2dDQUNFLElBQUksRUFBRSxpQkFBaUI7Z0NBQ3ZCLE1BQU0sRUFBRSxLQUFDLDJCQUEyQixLQUFHO2dDQUN2QyxXQUFXLEVBQUUsS0FBSzs2QkFDbkI7eUJBQ0YsR0FDRCxFQUNGLEtBQUMsT0FBTyxLQUFHO29CQUNOO1lBQ0YsQ0FDUixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJsaXZlbWFyazp2aXJ0dWFsXCJcbmltcG9ydCB7IFRhblN0YWNrRGV2dG9vbHMgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWRldnRvb2xzXCJcbmltcG9ydCB7IFJlYWN0UXVlcnlEZXZ0b29sc1BhbmVsIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1xdWVyeS1kZXZ0b29sc1wiXG5pbXBvcnQge1xuICBjcmVhdGVSb290Um91dGUsXG4gIEhlYWRDb250ZW50LFxuICBPdXRsZXQsXG4gIFNjcmlwdHMsXG4gIHVzZU1hdGNoLFxufSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyBUYW5TdGFja1JvdXRlckRldnRvb2xzUGFuZWwgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlci1kZXZ0b29sc1wiXG5pbXBvcnQgdHlwZSAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBMYXlvdXQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9MYXlvdXQudHN4XCJcbmltcG9ydCB7IERlZmF1bHRDYXRjaEJvdW5kYXJ5IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvRGVmYXVsdENhdGNoQm91bmRhcnkudHN4XCJcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvTm90Rm91bmQudHN4XCJcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tIFwiLi4vZWxlbWVudHMvc29ubmVyLnRzeFwiXG5pbXBvcnQgeyBmYXZpY29uVHlwZSB9IGZyb20gXCIuLi9oZWxwZXJzL2Zhdmljb24udHNcIlxuaW1wb3J0IGRlZmF1bHRGYXZpY29uIGZyb20gXCIuLi9hc3NldHMvbG9nby5zdmdcIlxuaW1wb3J0IGdlbmVyYWxDc3MgZnJvbSBcIi4uL3N0eWxlcy9nZW5lcmFsLmNzcz91cmxcIlxuaW1wb3J0IG1hcmtkb3duQ3NzIGZyb20gXCIuLi9zdHlsZXMvbWFya2Rvd24uY3NzP3VybFwiXG5cbmV4cG9ydCBjb25zdCBSb3V0ZSA9IGNyZWF0ZVJvb3RSb3V0ZSh7XG4gIGhlYWQ6ICgpID0+IHtcbiAgICBjb25zdCBmYXZpY29uID0gY29uZmlnLmZhdmljb24gPz8gY29uZmlnLmxvZ28gPz8gZGVmYXVsdEZhdmljb25cbiAgICByZXR1cm4ge1xuICAgICAgbWV0YTogW1xuICAgICAgICB7IGNoYXJTZXQ6IFwidXRmLThcIiB9LFxuICAgICAgICB7IHRpdGxlOiBjb25maWcudGl0bGUgfSxcbiAgICAgICAgeyBuYW1lOiBcImRlc2NyaXB0aW9uXCIsIGNvbnRlbnQ6IGNvbmZpZy5kZXNjcmlwdGlvbiB9LFxuICAgICAgICB7IHByb3BlcnR5OiBcIm9nOnRpdGxlXCIsIGNvbnRlbnQ6IGNvbmZpZy50aXRsZSB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvcGVydHk6IFwib2c6ZGVzY3JpcHRpb25cIixcbiAgICAgICAgICBjb250ZW50OiBjb25maWcuZGVzY3JpcHRpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvcGVydHk6IFwib2c6c2l0ZV9uYW1lXCIsIGNvbnRlbnQ6IGNvbmZpZy50aXRsZSB9LFxuICAgICAgICB7IHByb3BlcnR5OiBcIm9nOnR5cGVcIiwgY29udGVudDogXCJ3ZWJzaXRlXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwidmlld3BvcnRcIixcbiAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbGlua3M6IFtcbiAgICAgICAgeyByZWw6IFwiaWNvblwiLCBocmVmOiBmYXZpY29uLCB0eXBlOiBmYXZpY29uVHlwZShmYXZpY29uKSB9LFxuICAgICAgICB7IHJlbDogXCJzdHlsZXNoZWV0XCIsIGhyZWY6IGdlbmVyYWxDc3MgfSxcbiAgICAgICAgeyByZWw6IFwic3R5bGVzaGVldFwiLCBocmVmOiBtYXJrZG93bkNzcyB9LFxuICAgICAgXSxcbiAgICB9XG4gIH0sXG4gIG5vdEZvdW5kQ29tcG9uZW50OiAoKSA9PiA8Tm90Rm91bmQgLz4sXG4gIGVycm9yQ29tcG9uZW50OiBwcm9wcyA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxEb2N1bWVudD5cbiAgICAgICAgPERlZmF1bHRDYXRjaEJvdW5kYXJ5IHsuLi5wcm9wc30gLz5cbiAgICAgIDwvRG9jdW1lbnQ+XG4gICAgKVxuICB9LFxuICBjb21wb25lbnQ6ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPERvY3VtZW50PlxuICAgICAgICA8T3V0bGV0IC8+XG4gICAgICA8L0RvY3VtZW50PlxuICAgIClcbiAgfSxcbn0pXG5cbmZ1bmN0aW9uIERvY3VtZW50KHByb3BzOiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBhcnRpY2xlUm91dGUgPSB1c2VNYXRjaCh7IGZyb206IFwiLyRcIiwgc2hvdWxkVGhyb3c6IGZhbHNlIH0pXG4gIGNvbnN0IHdpdGhTaWRlYmFyID0gYXJ0aWNsZVJvdXRlPy5sb2FkZXJEYXRhPy5zaWRlYmFyXG5cbiAgcmV0dXJuIChcbiAgICA8aHRtbCBsYW5nPVwiZW5cIj5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8SGVhZENvbnRlbnQgLz5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8TGF5b3V0IHdpdGhTaWRlYmFyPXt3aXRoU2lkZWJhcn0+e3Byb3BzLmNoaWxkcmVufTwvTGF5b3V0PlxuICAgICAgICA8VG9hc3RlciBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiAvPlxuICAgICAgICA8VGFuU3RhY2tEZXZ0b29sc1xuICAgICAgICAgIGNvbmZpZz17eyBoaWRlVW50aWxIb3ZlcjogdHJ1ZSwgcG9zaXRpb246IFwiYm90dG9tLWxlZnRcIiB9fVxuICAgICAgICAgIHBsdWdpbnM9e1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJUYW5TdGFjayBRdWVyeVwiLFxuICAgICAgICAgICAgICByZW5kZXI6IDxSZWFjdFF1ZXJ5RGV2dG9vbHNQYW5lbCAvPixcbiAgICAgICAgICAgICAgZGVmYXVsdE9wZW46IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcIlRhblN0YWNrIFJvdXRlclwiLFxuICAgICAgICAgICAgICByZW5kZXI6IDxUYW5TdGFja1JvdXRlckRldnRvb2xzUGFuZWwgLz4sXG4gICAgICAgICAgICAgIGRlZmF1bHRPcGVuOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgLz5cbiAgICAgICAgPFNjcmlwdHMgLz5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIClcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useHotkey } from "@tanstack/react-hotkeys"
|
|
1
2
|
import { ArrowUp } from "lucide-react"
|
|
2
3
|
import { useEffect, useState } from "react"
|
|
3
4
|
import { Button } from "../elements/button.tsx"
|
|
@@ -14,6 +15,8 @@ export function BackToTop() {
|
|
|
14
15
|
return () => window.removeEventListener("scroll", onScroll)
|
|
15
16
|
}, [])
|
|
16
17
|
|
|
18
|
+
useHotkey("B", () => window.scrollTo({ top: 0, behavior: "smooth" }))
|
|
19
|
+
|
|
17
20
|
return (
|
|
18
21
|
<Button
|
|
19
22
|
type="button"
|
|
@@ -4,7 +4,7 @@ export function Footer() {
|
|
|
4
4
|
<p className="mt-12 text-center text-sm text-muted-foreground">
|
|
5
5
|
Created with <span className="text-red-500">❤</span> and{" "}
|
|
6
6
|
<a
|
|
7
|
-
href="https://
|
|
7
|
+
href="https://livemark.dev"
|
|
8
8
|
target="_blank"
|
|
9
9
|
rel="noopener noreferrer"
|
|
10
10
|
className="font-medium hover:text-foreground transition-colors"
|
|
@@ -25,9 +25,11 @@ import { Theme } from "./Theme.tsx"
|
|
|
25
25
|
export function Sidebar(props: { withSidebar?: boolean }) {
|
|
26
26
|
const pathname = useLocation({ select: l => l.pathname })
|
|
27
27
|
const articleRoute = useMatch({ from: "/$", shouldThrow: false })
|
|
28
|
-
const { toggleSidebar } = useSidebar()
|
|
28
|
+
const { toggleSidebar, isMobile } = useSidebar()
|
|
29
29
|
|
|
30
|
-
useHotkey("S",
|
|
30
|
+
useHotkey("S", () => {
|
|
31
|
+
if (props.withSidebar || isMobile) toggleSidebar()
|
|
32
|
+
})
|
|
31
33
|
|
|
32
34
|
const section = articleRoute
|
|
33
35
|
? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
|
package/source/routes/$.tsx
CHANGED
|
@@ -10,7 +10,6 @@ import { Article } from "../components/Article.tsx"
|
|
|
10
10
|
import { BlogIndex } from "../components/BlogIndex.tsx"
|
|
11
11
|
import { ChangelogIndex } from "../components/ChangelogIndex.tsx"
|
|
12
12
|
import { TagIndex } from "../components/TagIndex.tsx"
|
|
13
|
-
import markdownCss from "../styles/markdown.css?url"
|
|
14
13
|
|
|
15
14
|
export const Route = createFileRoute("/$")({
|
|
16
15
|
loader: ({ params }) => {
|
|
@@ -72,7 +71,6 @@ export const Route = createFileRoute("/$")({
|
|
|
72
71
|
? [{ name: "description", content: loaderData.description }]
|
|
73
72
|
: []),
|
|
74
73
|
],
|
|
75
|
-
links: [{ rel: "stylesheet", href: markdownCss }],
|
|
76
74
|
}),
|
|
77
75
|
component: Component,
|
|
78
76
|
})
|
package/source/routes/__root.tsx
CHANGED
|
@@ -17,6 +17,7 @@ import { Toaster } from "../elements/sonner.tsx"
|
|
|
17
17
|
import { faviconType } from "../helpers/favicon.ts"
|
|
18
18
|
import defaultFavicon from "../assets/logo.svg"
|
|
19
19
|
import generalCss from "../styles/general.css?url"
|
|
20
|
+
import markdownCss from "../styles/markdown.css?url"
|
|
20
21
|
|
|
21
22
|
export const Route = createRootRoute({
|
|
22
23
|
head: () => {
|
|
@@ -41,6 +42,7 @@ export const Route = createRootRoute({
|
|
|
41
42
|
links: [
|
|
42
43
|
{ rel: "icon", href: favicon, type: faviconType(favicon) },
|
|
43
44
|
{ rel: "stylesheet", href: generalCss },
|
|
45
|
+
{ rel: "stylesheet", href: markdownCss },
|
|
44
46
|
],
|
|
45
47
|
}
|
|
46
48
|
},
|