- import { PUBLIC_BASE_URL } from '$env/static/public';
-import getTitle from '$lib/getTitle';
+ import getTitle from '$lib/getTitle';
import NavButton from '../components/navButton.svelte';
import '../styles/app.css';
@@ -12,16 +11,16 @@ import getTitle from '$lib/getTitle';
iconUri: string;
}
- let menuItems: MenuItem[] = [
+ const menuItems: MenuItem[] = [
{ href: '', name: 'home', iconUri: '/icons/home.png' },
{ href: 'entries', name: 'entries', iconUri: '/icons/entries.png' },
{ href: 'guestbook', name: 'guestbook', iconUri: '/icons/guestbook.png' },
{ href: 'about', name: 'about', iconUri: '/icons/about.png' }
];
- const routeComponents = data.route.split('/');
- const doAddPostItem = routeComponents.length > 3 && routeComponents[1] === 'entries';
- const isRoute = (_route: string) => {
+ $: routeComponents = data.route.split('/');
+ $: doAddPostItem = routeComponents.length > 3 && routeComponents[1] === 'entries';
+ $: isRoute = (_route: string) => {
if (doAddPostItem) {
if (_route === 'entries') {
return false;
@@ -32,22 +31,13 @@ import getTitle from '$lib/getTitle';
return _route === routeComponents[1];
};
- if (doAddPostItem) {
- menuItems.splice(2, 0, {
- href: data.route.slice(1),
- name: routeComponents[2],
- iconUri: '/icons/entry.png'
- });
- }
-
- const title = getTitle(data.route);
+ $: title = getTitle(data.route);
const svgSquiggles = [[2], [3], [2], [3], [1]];
{title}
-
@@ -152,18 +142,23 @@ import getTitle from '$lib/getTitle';
style="border-style: ridge hidden hidden hidden;"
>
- {#each menuItems as item}
+ {#each menuItems as item, menuIdx}
{@const highlight = isRoute(item.href)}
+ {#if doAddPostItem && menuIdx == 1}
+
+ {/if}
{/each}
-
-
+
+
-
+
diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts
index 809f1bf..ee4e645 100644
--- a/src/routes/+layout.ts
+++ b/src/routes/+layout.ts
@@ -1,4 +1,4 @@
-export const csr = false;
+export const csr = true;
export const ssr = true;
export const prerender = true;
export const trailingSlash = 'always';
diff --git a/src/routes/entries/_layout.svelte b/src/routes/entries/_layout.svelte
index 78c5e58..e35353d 100644
--- a/src/routes/entries/_layout.svelte
+++ b/src/routes/entries/_layout.svelte
@@ -9,6 +9,7 @@
+
diff --git a/src/routes/entries/test/+page.md b/src/routes/entries/test/+page.md
index 95fe0c3..b574c80 100644
--- a/src/routes/entries/test/+page.md
+++ b/src/routes/entries/test/+page.md
@@ -10,8 +10,49 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed iaculis ligula sed
Pellentesque massa purus, ornare aliquam velit et, hendrerit lacinia felis. Fusce nec felis maximus, egestas lorem et, vehicula libero. Donec gravida sodales porta. Nunc ac urna vestibulum, finibus erat vitae, euismod nisi. Morbi auctor pretium diam ut pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vivamus pulvinar orci vitae dolor sodales placerat. Integer tristique condimentum massa, non euismod nisi sodales eu.
-Integer consectetur ligula quis mauris porta sodales. Morbi tincidunt elementum tortor ut auctor. Vestibulum vehicula sit amet augue sed bibendum. Cras sit amet elit ac tortor malesuada condimentum. Nunc ac mi sed lectus mollis tristique sit amet eu nunc. Nunc dapibus dignissim dolor. Nam sed quam ex. Cras vel pharetra lectus, a interdum ante. Sed condimentum efficitur auctor. Vestibulum dignissim erat in rutrum sodales. Mauris ultrices nibh eget luctus lobortis.
+1. a
+1. b
+1. c
+1. d
-Etiam sollicitudin suscipit odio, sed malesuada ipsum luctus id. Phasellus commodo, turpis non ornare viverra, arcu tortor tincidunt orci, at pellentesque justo est ut dui. Aliquam erat volutpat. Nulla gravida risus eget nunc commodo hendrerit. Aenean faucibus dui blandit ipsum gravida, non elementum orci fermentum. Morbi consequat elementum nulla, a dictum eros imperdiet sit amet. Sed ac vulputate ante, nec lobortis erat. Aliquam sodales nisi magna, ut molestie orci varius tincidunt. Suspendisse tempor orci quis erat accumsan, nec eleifend tellus interdum. Phasellus nec massa mi. Donec mattis mi imperdiet nisl varius, id vehicula felis tempor. Aliquam in tincidunt erat. Proin nec ornare enim, id lacinia urna. Morbi dolor lorem, porttitor quis orci ac, facilisis fringilla neque. Nulla tempor, dui sit amet lacinia faucibus, felis erat posuere nisi, ac condimentum lorem ex vel elit.
+- a
+- b
+- c
+- d
-Pellentesque vitae massa quis purus sodales consectetur. Aliquam ex leo, efficitur vitae nulla sed, pretium luctus ante. Proin et lacus dictum, bibendum leo at, rhoncus sem. Suspendisse non tellus odio. In pulvinar quam sed arcu ornare volutpat. Cras commodo a enim id accumsan. Etiam nec augue ullamcorper, consequat tellus varius, lacinia urna. Aenean rutrum a lorem quis dapibus. Curabitur vitae ipsum faucibus risus elementum condimentum. Proin pretium vulputate leo commodo molestie. Proin ultricies ac nibh vel molestie. Vestibulum vitae lorem lobortis, ultrices odio bibendum, lacinia risus.
\ No newline at end of file
+`test test test`
+
+```rust
+fn main() {
+ println!("howdy")
+}
+```
+
+```js
+function lorem(ipsum, dolor = 1) {
+ const sit = ipsum == null ? 0 : ipsum.sit;
+ dolor = sit - amet(dolor);
+ return sit ? consectetur(ipsum, 0, dolor < 0 ? 0 : dolor) : [];
+}
+function adipiscing(...elit) {
+ if (!elit.sit) {
+ return [];
+ }
+ const sed = elit[0];
+ return eiusmod.tempor(sed) ? sed : [sed];
+}
+function incididunt(ipsum, ut = 1) {
+ ut = labore.et(amet(ut), 0);
+ const sit = ipsum == null ? 0 : ipsum.sit;
+ if (!sit || ut < 1) {
+ return [];
+ }
+ let dolore = 0;
+ let magna = 0;
+ const aliqua = new eiusmod(labore.ut(sit / ut));
+ while (dolore < sit) {
+ aliqua[magna++] = consectetur(ipsum, dolore, (dolore += ut));
+ }
+ return aliqua;
+}
+```
\ No newline at end of file
diff --git a/src/styles/app.css b/src/styles/app.css
index f154554..9544bed 100644
--- a/src/styles/app.css
+++ b/src/styles/app.css
@@ -188,4 +188,56 @@ a.app-selected-route {
linear-gradient(theme(colors.ralsei.pink.neon / 0.4), transparent 1px),
linear-gradient(to right, theme(colors.ralsei.pink.neon / 0.4), transparent 1px);
background-size: 100% 24px, 24px 100%;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ .animate-window-open {
+ animation: 0.5s ease-out window-open-scale forwards;
+ }
+
+ .animate-window-open-vertical {
+ animation: 0.5s ease-out window-open-scale-vertical forwards;
+ transform-origin: bottom;
+ }
+
+ .animate-window-open-horizontal {
+ animation: 0.5s ease-out window-open-scale-horizontal forwards;
+ transform-origin: left;
+ }
+
+ @keyframes window-open-scale {
+ 0% {
+ transform: scale(0.0);
+ }
+ 30% {
+ transform: scale(0.0);
+ }
+ 100% {
+ transform: scale(1.0);
+ }
+ }
+
+ @keyframes window-open-scale-vertical {
+ 0% {
+ transform: scale(1.0, 0.0);
+ }
+ 30% {
+ transform: scale(1.0, 0.0);
+ }
+ 100% {
+ transform: scale(1.0, 1.0);
+ }
+ }
+
+ @keyframes window-open-scale-horizontal {
+ 0% {
+ transform: scale(0.0, 1.0);
+ }
+ 30% {
+ transform: scale(0.0, 1.0);
+ }
+ 100% {
+ transform: scale(1.0, 1.0);
+ }
+ }
}
\ No newline at end of file