feat: added publications
This commit is contained in:
parent
1e2ad78314
commit
e042996b55
8 changed files with 148 additions and 0 deletions
|
|
@ -5,6 +5,7 @@
|
|||
const NAV_ITEMS = [
|
||||
{ href: '/', label: 'Home' },
|
||||
{ href: '/blog', label: 'Blog' },
|
||||
{ href: '/publications', label: 'Publications' },
|
||||
{ href: '/projects', label: 'Projects' },
|
||||
{ href: '/contact', label: 'Contact' },
|
||||
];
|
||||
|
|
|
|||
40
src/lib/components/publications/PublicationListItem.svelte
Normal file
40
src/lib/components/publications/PublicationListItem.svelte
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<script lang="ts">
|
||||
export let title: string;
|
||||
export let authors: string[];
|
||||
export let conference: string;
|
||||
export let pdf: string;
|
||||
</script>
|
||||
|
||||
<li>
|
||||
<a class="main" href={pdf}>
|
||||
<span>
|
||||
{#each authors as author, i}
|
||||
{#if i != authors.length && i != 0}
|
||||
,
|
||||
{/if}
|
||||
{#if author == 'Alexander Daichendt'}
|
||||
<b>{author}</b>
|
||||
{:else}
|
||||
{author}
|
||||
{/if}
|
||||
{/each}
|
||||
</span>
|
||||
|
||||
{title}
|
||||
|
||||
{conference}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<style>
|
||||
.main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -46,3 +46,17 @@ export interface PageData {
|
|||
keywords: string[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface PublicationFrontmatter {
|
||||
created: string;
|
||||
title: string;
|
||||
authors: string[];
|
||||
conference: string;
|
||||
pdf: string; // url to pdf
|
||||
keywords: string[];
|
||||
hidden: boolean;
|
||||
}
|
||||
|
||||
export interface PublicationMeta extends PublicationFrontmatter {
|
||||
href: string;
|
||||
}
|
||||
|
|
|
|||
22
src/routes/publications/+page.server.ts
Normal file
22
src/routes/publications/+page.server.ts
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import type { PublicationMeta, PublicationFrontmatter } from '$lib/utils/types';
|
||||
import type { PageServerLoad } from './$types';
|
||||
|
||||
const removeExtension = (path: string) => path.replace(/\.[^.]*$/g, '').replace('/+page', '');
|
||||
|
||||
export const load: PageServerLoad = async () => {
|
||||
const modulesSVX = import.meta.glob('./**/*.svx');
|
||||
const modulesMD = import.meta.glob('./**/*.md');
|
||||
const modules = { ...modulesMD, ...modulesSVX };
|
||||
const publications: PublicationMeta[] = [];
|
||||
const resolved = (await Promise.all(Object.values(modules).map((f) => f()))) as {
|
||||
metadata: PublicationFrontmatter;
|
||||
}[];
|
||||
resolved.forEach((file, index) => {
|
||||
const path = Object.keys(modules)[index];
|
||||
const { metadata } = file;
|
||||
|
||||
publications.push({ ...metadata, href: `publications/${removeExtension(path)}` });
|
||||
});
|
||||
|
||||
return { publications };
|
||||
};
|
||||
24
src/routes/publications/+page.svelte
Normal file
24
src/routes/publications/+page.svelte
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<script lang="ts">
|
||||
import Seo from '$components/SEO.svelte';
|
||||
import PublicationListItem from '$components/publications/PublicationListItem.svelte';
|
||||
import type { PageData } from './$types';
|
||||
|
||||
export let data: PageData;
|
||||
$: publications = data.publications;
|
||||
</script>
|
||||
|
||||
<Seo />
|
||||
|
||||
<h1>Publications</h1>
|
||||
|
||||
<h2>Conference papers</h2>
|
||||
<ul>
|
||||
{#each publications as publication}
|
||||
<PublicationListItem
|
||||
title={publication.title}
|
||||
authors={publication.authors}
|
||||
pdf={publication.pdf}
|
||||
conference={publication.conference}
|
||||
/>
|
||||
{/each}
|
||||
</ul>
|
||||
11
src/routes/publications/+page.ts
Normal file
11
src/routes/publications/+page.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import type { PageLoad } from './$types';
|
||||
|
||||
export const load: PageLoad = ({ data }) => {
|
||||
return {
|
||||
publications: data.publications,
|
||||
seo: {
|
||||
title: 'Publications',
|
||||
description: 'Detailed descriptions of publications by Alex Daichendt',
|
||||
},
|
||||
};
|
||||
};
|
||||
17
src/routes/publications/conference/itc-35/+page.md
Normal file
17
src/routes/publications/conference/itc-35/+page.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
title: 'Containing Low Tail-Latencies in Packet Processing Using Lightweight Virtualization'
|
||||
authors:
|
||||
- Florian Wiedner
|
||||
- Max Helm
|
||||
- Alexander Daichendt
|
||||
- Jonas Andre
|
||||
- Georg Carle
|
||||
conference: 2023 35rd International Teletraffic Congress (ITC-35)
|
||||
pdf: https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/wiedner_itc35.pdf
|
||||
keywords:
|
||||
- publication
|
||||
- low latency
|
||||
- networking
|
||||
- virtualization
|
||||
layout: blog
|
||||
---
|
||||
19
src/routes/publications/conference/nfv-sdn23/+page.md
Normal file
19
src/routes/publications/conference/nfv-sdn23/+page.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: 'Control Groups Added Latency in NFVs: An Update Needed?'
|
||||
authors:
|
||||
- Florian Wiedner
|
||||
- Alexander Daichendt
|
||||
- Jonas Andre
|
||||
- Georg Carle
|
||||
conference: 2023 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Nov. 2023
|
||||
pdf: https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/wiedner_nfvsdn2023.pdf
|
||||
keywords:
|
||||
- publication
|
||||
- low latency
|
||||
- networking
|
||||
- virtualization
|
||||
- kernel
|
||||
- container
|
||||
- cgroups
|
||||
layout: blog
|
||||
---
|
||||
Loading…
Add table
Add a link
Reference in a new issue