This commit is contained in:
Jill 2022-05-04 01:34:53 +03:00
parent 734dcca462
commit 57b87d318c
7 changed files with 33 additions and 10 deletions

View File

@ -1,9 +1,9 @@
<script> <script>
import Markdown from 'svelte-exmarkdown'; import Markdown from 'svelte-exmarkdown';
import { gfmPlugin } from 'svelte-exmarkdown/gfm'; import { gfmPlugin } from 'svelte-exmarkdown/gfm';
import Code from './Code.svelte'; import Code from './markdown/Code.svelte';
import Link from './Link.svelte'; import Link from './markdown/Link.svelte';
import Section from './Section.svelte'; import Section from './markdown/Section.svelte';
const highlightPlugin = { const highlightPlugin = {
renderer: { renderer: {

View File

@ -18,7 +18,7 @@
</style> </style>
<!-- svelte-ignore a11y-missing-attribute --> <!-- svelte-ignore a11y-missing-attribute -->
<a {...properties} {target}> <a {...properties} {target} rel={isExternal ? 'nofollow noreferrer external' : ''}>
<Children {children} /> <Children {children} />
{#if isExternal} {#if isExternal}
<span class="icon"> <span class="icon">

View File

@ -1,6 +1,6 @@
<script> <script>
import Children from 'svelte-exmarkdown/renderer/Children.svelte'; import Children from 'svelte-exmarkdown/renderer/Children.svelte';
import { toAnchor } from './anchors'; import { toAnchor } from '$lib/anchors';
export let children; export let children;
export let properties; export let properties;

View File

@ -2,18 +2,19 @@ import { getPost, getPostsFlat, isDir } from "$lib/pages";
export async function get({ params }) { export async function get({ params }) {
let dir = await isDir(params.name); let dir = await isDir(params.name);
let split = params.name.split('/');
if (dir === null) { if (dir === null) {
return {status: 404}; return {status: 404};
} else if (dir) { } else if (dir) {
return { return {
body: { body: {
pages: await getPostsFlat(params.name) pages: await getPostsFlat(params.name),
loc: split[split.length - 1]
} }
} }
} else { } else {
let pages = []; let pages = [];
let split = params.name.split('/');
if (split.length > 1) { if (split.length > 1) {
pages = await getPostsFlat(split[split.length - 2]); pages = await getPostsFlat(split[split.length - 2]);
} }
@ -25,7 +26,8 @@ export async function get({ params }) {
return { return {
body: { body: {
page: post, page: post,
pages: pages pages: pages,
loc: split[split.length - 2]
} }
} }
} }

View File

@ -3,11 +3,22 @@
import PageRenderer from './_page.svelte'; import PageRenderer from './_page.svelte';
export let page; export let page;
export let pages; export let pages;
export let loc;
</script> </script>
{#if page} {#if page}
<PageRenderer {page} {pages}/> <PageRenderer {page} {pages} {loc}/>
{:else if pages} {:else if pages}
<style>
.pagesin {
font-size: 1.5em;
margin-top: 1em;
margin-bottom: 1em;
}
</style>
<div class="pagesin">Pages in <b>{loc}</b>:</div>
<Pages {pages}/> <Pages {pages}/>
{:else} {:else}
404! 404!

View File

@ -4,6 +4,7 @@
import Pages from "$lib/Pages.svelte"; import Pages from "$lib/Pages.svelte";
export let page; export let page;
export let pages; export let pages;
export let loc;
</script> </script>
<style> <style>
@ -11,6 +12,7 @@
display: flex; display: flex;
flex-direction: row; flex-direction: row;
gap: 1em; gap: 1em;
max-width: 100%;
} }
.side { .side {
min-width: 120px; min-width: 120px;
@ -40,6 +42,13 @@
margin-bottom: 1em; margin-bottom: 1em;
border-bottom: 1px solid #888; border-bottom: 1px solid #888;
} }
.viewall {
margin-top: 2em;
font-size: 0.9em;
color: #bbb;
}
@media screen and (max-width: 1300px) { @media screen and (max-width: 1300px) {
.side { .side {
display: none; display: none;
@ -91,7 +100,7 @@
</nav> </nav>
</div> </div>
<content> <content>
<Page content={page.content}></Page> <Page content={page.content}/>
</content> </content>
</div> </div>
@ -99,4 +108,5 @@
<div class="other">Other pages in this category:</div> <div class="other">Other pages in this category:</div>
<br> <br>
<Pages pages={pages.slice(0, 3)}/> <Pages pages={pages.slice(0, 3)}/>
<a class="viewall" href="/p/{page.path.split('/').slice(0, -1).join('/') + '/'}">View all pages in <b>{loc}</b></a>
{/if} {/if}