Compare commits
27 Commits
6d64b61323
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| f7eda2e4ec | |||
| 28f657fb07 | |||
| 709053b27e | |||
| 76573dc378 | |||
|
|
ba9bcbaa08 | ||
| d93e2f8928 | |||
| cc8b8b6d8b | |||
| 1255ce4f07 | |||
| a261eb62c8 | |||
| e55af45fa3 | |||
| f40c02585f | |||
|
|
2829504b2b | ||
|
|
808338f547 | ||
|
|
498cb37561 | ||
|
|
51e44db779 | ||
|
|
a93ffff00d | ||
|
|
2702d7dc8f | ||
|
|
f26ab99960 | ||
|
|
aaa2fe85f7 | ||
|
|
9762d463ed | ||
|
|
22d19d45f7 | ||
|
|
a84e9418ba | ||
|
|
3e517a8ce8 | ||
|
|
13d995ec4d | ||
|
|
33d1b343a0 | ||
|
|
ec8ab9a7eb | ||
|
|
0b530ac9be |
13
README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
This repo is for content hosted at djledda.net
|
||||
|
||||
The basic idea is that the `/app` folder contains shared files (in the root)
|
||||
and separate Vue apps (each folder) whose code doesn't need to be built and can
|
||||
be run in SSR mode or sent to the client directly, transpiled on the fly using
|
||||
Deno's built in transpilation API.
|
||||
|
||||
# Structure
|
||||
- `/app/` contains shared files and individual vue apps ('sites')
|
||||
- `/app/<site>/client.ts` is the javascript entry point for the client
|
||||
- `/app/<site>/server.ts` is the javascript entry point for the server
|
||||
- `/public/` contains static files publicly available using the same folder structure over HTTP
|
||||
- `/public/home` and `/app/home` will be remapped to root requests: a request to `/img/*` is retrieved from `/public/home/img/*`
|
||||
@@ -1,21 +0,0 @@
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
name: "dj-email",
|
||||
setup(_props, { slots }) {
|
||||
function clickMail() {
|
||||
const a = "gmail";
|
||||
const b = "com";
|
||||
const c = "danjledda";
|
||||
let link = "ma" + "il" + "" + "to:" + c + a + b;
|
||||
link = link.slice(0, 10) + "." + link.slice(10, 11) + "." + link.slice(11, 16) + "@" + link.slice(16, 21) +
|
||||
"." + link.slice(21);
|
||||
window.location.href = link;
|
||||
}
|
||||
return () => (
|
||||
<a href="#" onClick={clickMail}>
|
||||
{slots.default ? slots.default() : "dan.j.ledda [at] gmail [dot] com"}
|
||||
</a>
|
||||
);
|
||||
},
|
||||
});
|
||||
19
app/DjEmail.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
name: "dj-email",
|
||||
setup(_props, { slots }) {
|
||||
function clickMail() {
|
||||
const a = "dan";
|
||||
const b = "djledda";
|
||||
const c = "net";
|
||||
let link = "mailto:" + a + "@" + b + "." + c;
|
||||
window.location.href = link;
|
||||
}
|
||||
return () => (
|
||||
<a href="#" onClick={clickMail}>
|
||||
{slots.default ? slots.default() : "dan [at] djledda [dot] net"}
|
||||
</a>
|
||||
);
|
||||
},
|
||||
});
|
||||
@@ -1,4 +1,4 @@
|
||||
import { nextTick, inject, provide, watch, type InjectionKey, onBeforeUnmount, watchEffect, onMounted, type Ref, type CSSProperties, defineComponent, ref } from "vue";
|
||||
import { nextTick, inject, provide, watch, type InjectionKey, onBeforeUnmount, watchEffect, onMounted, type Ref, defineComponent, ref } from "vue";
|
||||
import { addCSS, css, h as djh } from "@/util.ts";
|
||||
|
||||
type TooltipContext = {
|
||||
@@ -17,9 +17,10 @@ const tooltipStyles = css`
|
||||
opacity: 0;
|
||||
display: block;
|
||||
pointer-events: none;
|
||||
background-color: black;
|
||||
border: white solid 1px;
|
||||
color: white;
|
||||
background-color: var(--dj-bgpalette1);
|
||||
box-shadow: 0 0 12px 1px rgb(10 12 15 / 70%);
|
||||
border: var(--dj-palette3) solid 1px;
|
||||
color: var(--dj-palette3);
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
@@ -91,7 +92,7 @@ export function setupTooltip(options: { carrier: Ref<HTMLElement | null> }) {
|
||||
const ctx: TooltipContext = {
|
||||
show(tooltip, x, y) {
|
||||
if (carrier.value) {
|
||||
carrier.value.firstChild!.textContent = tooltip;
|
||||
(carrier.value.firstChild as HTMLElement)!.innerHTML = tooltip;
|
||||
}
|
||||
active.value = true;
|
||||
listener({ x, y });
|
||||
@@ -118,12 +119,12 @@ export default defineComponent({
|
||||
onBeforeUnmount(() => tooltip.hide());
|
||||
|
||||
return () => <>
|
||||
<div class="tooltip-container"
|
||||
<span class="tooltip-container"
|
||||
{...attrs}
|
||||
onMouseenter={(e) => tooltip.show(props.tooltip, e.pageX, e.pageY)}
|
||||
onMouseleave={() => tooltip.hide()}>
|
||||
{slots.default && <slots.default />}
|
||||
</div>
|
||||
{slots.default?.()}
|
||||
</span>
|
||||
</>;
|
||||
},
|
||||
});
|
||||
24
app/api.ts
@@ -1,4 +1,17 @@
|
||||
export type DJAPIEndpoint = "/rp-articles";
|
||||
export type DjAPIEndpoint =
|
||||
| "/rp-articles"
|
||||
| "/blog-entries"
|
||||
;
|
||||
|
||||
type BlogEntry = {
|
||||
title: string,
|
||||
slug: string;
|
||||
createdAt: string,
|
||||
updatedAt: string,
|
||||
tags?: string[],
|
||||
guid: string,
|
||||
teaser: string,
|
||||
};
|
||||
|
||||
type RPArticle = {
|
||||
title: string,
|
||||
@@ -9,15 +22,16 @@ type RPArticle = {
|
||||
tags?: string[],
|
||||
};
|
||||
|
||||
export interface DJAPIResultMap extends Record<DJAPIEndpoint, unknown> {
|
||||
export interface DjAPIResultMap extends Record<DjAPIEndpoint, unknown> {
|
||||
"/rp-articles": RPArticle[];
|
||||
"/blog-entries": BlogEntry[];
|
||||
}
|
||||
|
||||
export type DJAPIResult = DJAPIResultMap[DJAPIEndpoint];
|
||||
export type DjAPIResult = DjAPIResultMap[DjAPIEndpoint];
|
||||
|
||||
export default async function getDJAPI<T extends DJAPIEndpoint>(
|
||||
export default async function getDjAPI<T extends DjAPIEndpoint>(
|
||||
hostUrl: string,
|
||||
endpoint: T,
|
||||
): Promise<DJAPIResultMap[typeof endpoint]> {
|
||||
): Promise<DjAPIResultMap[typeof endpoint]> {
|
||||
return await (await fetch(`${hostUrl}/api${endpoint}`)).json();
|
||||
}
|
||||
|
||||
98
app/blog/DjBlogEntry.tsx
Normal file
@@ -0,0 +1,98 @@
|
||||
import { computed, createTextVNode, defineComponent, h, type VNode } from "vue";
|
||||
import useHead from "@/useHead.ts";
|
||||
import useAsyncState from "@/useAsyncState.ts";
|
||||
import getDjAPI from "@/api.ts";
|
||||
import getDomParser from "@/domParse.ts";
|
||||
import { addCSS, css } from "../util.ts";
|
||||
|
||||
const style = css`
|
||||
.byline {
|
||||
font-style: italic;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--dj-palette1);
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
`;
|
||||
|
||||
export default defineComponent({
|
||||
name: "DjBlogEntry",
|
||||
props: {
|
||||
slug: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
async setup(props) {
|
||||
addCSS('DjBlogEntry', style);
|
||||
|
||||
const parseDom = getDomParser();
|
||||
|
||||
const blogpostContent = useAsyncState(
|
||||
`dj-blog-article-content-${ props.slug }`,
|
||||
async ({ hostUrl }) => {
|
||||
const blogpostResponse = await fetch(`${hostUrl}/blog/content/${ props.slug }.html`);
|
||||
const result = await blogpostResponse.text();
|
||||
return result;
|
||||
},
|
||||
);
|
||||
|
||||
const blogpostsMetadata = useAsyncState('article-metadata', ({ hostUrl }) => getDjAPI(hostUrl, '/blog-entries'));
|
||||
|
||||
const blogpostMetadata = computed(() => blogpostsMetadata.result.value?.find(_ => _.slug === props.slug));
|
||||
|
||||
useHead({
|
||||
title: () => blogpostMetadata.value?.title ?? '',
|
||||
metatags: () => blogpostMetadata.value ? [
|
||||
{ name: 'title', content: blogpostMetadata.value.title },
|
||||
{ name: 'author', content: 'Daniel Ledda' },
|
||||
] : [],
|
||||
});
|
||||
|
||||
function transformPostNode(node: Node): VNode | string {
|
||||
if (node.nodeType === node.ELEMENT_NODE) {
|
||||
const el = node as Element;
|
||||
const attrs: Record<string, string> = {};
|
||||
const children = [...node.childNodes].map((_) => transformPostNode(_));
|
||||
|
||||
for (let i = 0; i < el.attributes.length; i++) {
|
||||
const item = el.attributes.item(i);
|
||||
if (item) {
|
||||
attrs[item.name] = item.value;
|
||||
}
|
||||
}
|
||||
|
||||
return h((node as Element).tagName, attrs, children);
|
||||
} else {
|
||||
return createTextVNode(node.textContent ?? "");
|
||||
}
|
||||
}
|
||||
|
||||
function PostContentTransformed() {
|
||||
if (blogpostContent.result.value) {
|
||||
const dom = parseDom(blogpostContent.result.value);
|
||||
return h("div", {}, [...dom.children].map((_) => transformPostNode(_)));
|
||||
}
|
||||
return <div>Blog post loading...</div>;
|
||||
}
|
||||
|
||||
await Promise.allSettled([ blogpostContent.done, blogpostsMetadata.done ]);
|
||||
|
||||
return () => <>
|
||||
{ blogpostMetadata.value
|
||||
? <>
|
||||
<h1>{ blogpostMetadata.value.title }</h1>
|
||||
<div class="byline">by Daniel Ledda, first published { new Date(blogpostMetadata.value.createdAt).toLocaleDateString() }</div>
|
||||
<PostContentTransformed />
|
||||
</>
|
||||
: "Sorry, this blog post doesn't seem to exist."
|
||||
}
|
||||
</>;
|
||||
}
|
||||
});
|
||||
|
||||
54
app/blog/DjBlogMain.tsx
Normal file
@@ -0,0 +1,54 @@
|
||||
import { defineComponent } from "vue";
|
||||
import useAsyncState from "@/useAsyncState.ts";
|
||||
import getDjAPI from "@/api.ts";
|
||||
import { RouterLink } from "vue-router";
|
||||
import { addCSS, css } from "@/util.ts";
|
||||
|
||||
const style = css`
|
||||
.dj-blog-main {
|
||||
.entry {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
em {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export default defineComponent({
|
||||
name: "DjBlogMain",
|
||||
async setup() {
|
||||
addCSS('DjBlogMain', style);
|
||||
|
||||
const blogEntries = useAsyncState('blog-entries-meta', ({ hostUrl }) => getDjAPI(hostUrl, "/blog-entries"));
|
||||
|
||||
await blogEntries.done;
|
||||
|
||||
return () => <>
|
||||
<main class="dj-blog-main">
|
||||
<h2>Entries</h2>
|
||||
<ul>
|
||||
{blogEntries.result.value?.map(_ => (
|
||||
<li key={_.slug}>
|
||||
<div class="entry">
|
||||
<RouterLink to={{ name: 'DjBlogEntry', params: { slug: _.slug }}}>{ _.title }</RouterLink>
|
||||
</div>
|
||||
<div>
|
||||
<em>first published <time datetime={ _.createdAt }>{ new Date(_.createdAt).toLocaleDateString() }</time></em>
|
||||
</div>
|
||||
</li>
|
||||
)) ?? <li>Blog posts loading...</li>}
|
||||
</ul>
|
||||
</main>
|
||||
</>;
|
||||
},
|
||||
});
|
||||
|
||||
151
app/blog/DjBlogRoot.tsx
Normal file
@@ -0,0 +1,151 @@
|
||||
import { defineComponent, ref, type VNode, Suspense } from "vue";
|
||||
import { type RouteRecordRaw, RouterLink, RouterView } from "vue-router";
|
||||
import DjTooltip, { setupTooltip } from "@/DjTooltip.tsx";
|
||||
import DjBlogEntry from "@/blog/DjBlogEntry.tsx";
|
||||
import DjBlogMain from "@/blog/DjBlogMain.tsx";
|
||||
import DjEmail from "@/DjEmail.tsx";
|
||||
import { addCSS, css } from "@/util.ts";
|
||||
import useHead from "@/useHead.ts";
|
||||
|
||||
export const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: "/",
|
||||
name: "DjBlogMain",
|
||||
component: DjBlogMain,
|
||||
},
|
||||
{
|
||||
path: "/post/:slug",
|
||||
name: "DjBlogEntry",
|
||||
component: DjBlogEntry,
|
||||
props: ({ params }) => {
|
||||
if ("slug" in params) {
|
||||
return { slug: params.slug };
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const styles = css`
|
||||
body {
|
||||
height: 100svh;
|
||||
}
|
||||
|
||||
.dj-blog-root {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin: auto;
|
||||
width: 800px;
|
||||
|
||||
.dot {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 100%;
|
||||
font-style: italic;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 25px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--dj-palette3);
|
||||
text-decoration: solid line;
|
||||
|
||||
&:visited {
|
||||
color: var(--dj-visited);
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: disclosure-closed;
|
||||
}
|
||||
|
||||
nav {
|
||||
width: 100%;
|
||||
font-size: 40px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
text-decoration: none;
|
||||
text-align: right;
|
||||
|
||||
a, a:visited {
|
||||
color: var(--dj-palette3);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1024px) {
|
||||
width: calc(100% - 20px);
|
||||
padding: 10px;
|
||||
|
||||
.dj-title {
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export default defineComponent({
|
||||
name: "DjBlogRoot",
|
||||
setup() {
|
||||
const carrier = ref<HTMLDivElement | null>(null);
|
||||
setupTooltip({ carrier });
|
||||
|
||||
addCSS('dj-blog-root', styles);
|
||||
useHead({ title: "djblog Home" });
|
||||
|
||||
return () => (
|
||||
<>
|
||||
<div ref={carrier} class="tooltip-carrier" />
|
||||
<div class="dj-blog-root">
|
||||
<nav>
|
||||
<DjTooltip tooltip="flog, clog, bog, frog, cog, log, grog, fog, snog...">
|
||||
<RouterLink to={{ name: 'DjBlogMain' }}>
|
||||
dj blog
|
||||
</RouterLink>
|
||||
</DjTooltip>
|
||||
</nav>
|
||||
<div class="container">
|
||||
<RouterView>
|
||||
{{
|
||||
default: ({ Component }: { Component: VNode }) => (Component &&
|
||||
(
|
||||
<Suspense>
|
||||
{{
|
||||
default: () => Component,
|
||||
fallback: () => <div>Page loading...</div>,
|
||||
}}
|
||||
</Suspense>
|
||||
)),
|
||||
}}
|
||||
</RouterView>
|
||||
</div>
|
||||
<hr />
|
||||
<footer>
|
||||
<div class="bottom">
|
||||
<div>
|
||||
<a href="/">djledda.net</a> {new Date().getFullYear()}<span class="dot">·</span><DjEmail>{() => "Contact"}</DjEmail><span class="dot">·</span><a href="/blog/djblog.rss">RSS Feed</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
},
|
||||
});
|
||||
12
app/blog/client.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { createSSRApp } from "vue";
|
||||
import { createRouter, createWebHistory } from "vue-router";
|
||||
import DjBlogRoot, { routes } from "@/blog//DjBlogRoot.tsx";
|
||||
import { cssRegistry } from "@/util.ts";
|
||||
|
||||
createSSRApp(DjBlogRoot)
|
||||
.provide(cssRegistry, new Set())
|
||||
.use(createRouter({
|
||||
routes,
|
||||
history: createWebHistory("/blog"),
|
||||
}))
|
||||
.mount("#app-root");
|
||||
16
app/blog/index.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
<meta name="description" content="dj blog - djledda's blog">
|
||||
|
||||
<!-- SSR HEAD OUTLET -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app-root"><!-- SSR OUTLET --></ div>
|
||||
</body>
|
||||
</html>
|
||||
12
app/blog/server.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { createSSRApp } from "vue";
|
||||
import DjBlogRoot, { routes } from "@/blog/DjBlogRoot.tsx";
|
||||
import { createMemoryHistory, createRouter } from "vue-router";
|
||||
|
||||
export default function createApp() {
|
||||
const router = createRouter({
|
||||
routes: routes,
|
||||
history: createMemoryHistory("/blog"),
|
||||
});
|
||||
const app = createSSRApp(DjBlogRoot).use(router);
|
||||
return { app, router };
|
||||
}
|
||||
8
app/domParse.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { inject } from "vue";
|
||||
|
||||
export default function getDomParser() {
|
||||
return inject(
|
||||
"dom-parse",
|
||||
(innerHTML: string) => Object.assign(document.createElement("div"), { innerHTML }),
|
||||
);
|
||||
}
|
||||
@@ -1,21 +1,20 @@
|
||||
import { defineComponent } from "vue";
|
||||
import { RouterLink } from "vue-router";
|
||||
import DJEmail from "@/DJEmail.tsx";
|
||||
import DjEmail from "@/DjEmail.tsx";
|
||||
import useHead from "@/useHead.ts";
|
||||
import useAsyncState from "@/useAsyncState.ts";
|
||||
import getDJAPI from "@/api.ts";
|
||||
import getDjAPI from "@/api.ts";
|
||||
import DjTooltip from "@/DjTooltip.tsx";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ge-deutsch",
|
||||
async setup() {
|
||||
useHead({ title: "Ray Peat Artikel auf Deutsch" });
|
||||
|
||||
const {
|
||||
result: rpArticles,
|
||||
stateIsReady,
|
||||
} = useAsyncState("rp-articles", ({ hostUrl }) => getDJAPI(hostUrl, "/rp-articles"));
|
||||
const rpArticles = useAsyncState("rp-articles", ({ hostUrl }) => getDjAPI(hostUrl, "/rp-articles"));
|
||||
|
||||
await rpArticles.done;
|
||||
|
||||
await stateIsReady;
|
||||
return () => <>
|
||||
<header>
|
||||
<h1>Ray Peat Deutsche Übersetzungen</h1>
|
||||
@@ -28,16 +27,35 @@ export default defineComponent({
|
||||
<h2>Artikelliste</h2>
|
||||
<div class="text-slab">
|
||||
<ul id="article">
|
||||
{rpArticles.value && rpArticles.value.map((_) => (
|
||||
{rpArticles.result.value && rpArticles.result.value.map((_) => (
|
||||
<li>
|
||||
<RouterLink to={{ name: "GEDeutschArticle", params: { articleName: _.slug } }}>
|
||||
{_.titleDe}
|
||||
</RouterLink>
|
||||
{_.tags?.map(tag => <span class="tag">{tag}</span>)}
|
||||
<DjTooltip tooltip={`Englischer Titel: <em>»${ _.titleEn }«</em>`}>
|
||||
{_.tags?.includes('in-arbeit')
|
||||
? _.titleDe
|
||||
: (
|
||||
<RouterLink to={{ name: "GEDeutschArticle", params: { articleName: _.slug } }}>
|
||||
{_.titleDe}
|
||||
</RouterLink>
|
||||
)}
|
||||
{_.tags?.map(tag => <span class="tag">{tag}</span>)}
|
||||
</DjTooltip>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
<hr />
|
||||
<h3>Geplante Artikel (mit Link zum Original)</h3>
|
||||
<div class="text-slab">
|
||||
<ul>
|
||||
<li><a href="http://raypeat.com/articles/articles/dark-side-of-stress-learned-helplessness.shtml">The dark side of stress (learned helplessness)</a></li>
|
||||
<li><a href="http://raypeat.com/articles/articles/vegetables.shtml">Vegetables etc. - Who Defines Food?</a></li>
|
||||
<li><a href="http://raypeat.com/articles/articles/glucose-sucrose-diabetes.shtml">Glucose and sucrose for diabetes</a></li>
|
||||
<li><a href="http://raypeat.com/articles/articles/milk.shtml">Milk in context: allergies, ecology, and some myths</a></li>
|
||||
<li><a href="http://raypeat.com/articles/articles/gelatin.shtml">Gelatin, stress, longevity</a></li>
|
||||
<li><a href="http://raypeat.com/articles/articles/unsaturatedfats.shtml">Unsaturated fatty acids: Nutritionally essential, or toxic?</a></li>
|
||||
</ul>
|
||||
<DjEmail>Schick mir deine Vorschläge!</DjEmail>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<h3>Zu Ray</h3>
|
||||
@@ -54,18 +72,15 @@ export default defineComponent({
|
||||
<a href="http://raypeat.com/">seiner Website</a> zu finden sind.
|
||||
</p>
|
||||
<p>
|
||||
Da er in meinem Leben zu einem enormen Verständnis meines Körpers und einem unglaublichen
|
||||
Zurückerlangen meiner Gesundheit und meines Wohlbefindens trotz dem Scheitern mehrerer Ärzte
|
||||
beigetragen hat, und sein Nachlass in Deutschland kaum Publikum aufgrund schwieriger
|
||||
physiologischer Texte genießt, habe ich entschieden hauptsächlich für Freunde und Bekannte
|
||||
einige seiner Artikel ins Deutsche zu übersetzen, damit vielleicht auch ein breiteres Publikum
|
||||
von seinen Ideen profitieren könnte.
|
||||
Da er in meinem Leben zu einem besseren Verständnis meines Körpers und dem Zurückerlangen
|
||||
meiner Gesundheit beigetragen hat, und sein Nachlass in Deutschland kaum Publikum genießt, habe ich
|
||||
einige seiner Artikel ins Deutsche übersetzt, damit mehr Leute wie ich von seinen Ideen und Ratschlägen profieren können.
|
||||
</p>
|
||||
</div>
|
||||
<h3>Helfen</h3>
|
||||
<p class="text-slab">
|
||||
Falls was bei der Übersetzung auffällt oder besonders unidiomatisch klingt, bzw. der deutschen
|
||||
Fachsprache der Medizin nicht gerecht sein sollte, kannst du mir unter <DJEmail />{" "}
|
||||
Fachsprache der Medizin nicht gerecht sein sollte, kannst du mir unter <DjEmail />{" "}
|
||||
eine Mail senden. Meine Muttersprache ist schließlich Englisch und ich bin kein professioneller
|
||||
Übersetzer!
|
||||
Falls jemand Hilfe leisten möchte, sag gerne Bescheid!
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { createTextVNode, computed, defineComponent, h, inject, onServerPrefetch, ref, type VNode, watchEffect } from "vue";
|
||||
import { createTextVNode, computed, defineComponent, h, inject, ref, type VNode } from "vue";
|
||||
import { RouterLink } from "vue-router";
|
||||
import useAsyncState from "@/useAsyncState.ts";
|
||||
import useHead from "@/useHead.ts";
|
||||
import DJEmail from "@/DJEmail.tsx";
|
||||
import getDJAPI from "@/api.ts";
|
||||
import DjEmail from "@/DjEmail.tsx";
|
||||
import getDjAPI from "@/api.ts";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ge-deutsch-article",
|
||||
@@ -25,8 +25,8 @@ export default defineComponent({
|
||||
(innerHTML: string) => Object.assign(document.createElement("div"), { innerHTML }),
|
||||
);
|
||||
|
||||
const { result: articleContent, stateIsReady } = useAsyncState(
|
||||
"ge-deutsch-article-data",
|
||||
const articleContent = useAsyncState(
|
||||
"ge-deutsch-article-content",
|
||||
async ({ hostUrl }) => {
|
||||
const articleResponse = await fetch(`${hostUrl}/generative-energy/content/${props.articleName}.html`);
|
||||
const result = await articleResponse.text();
|
||||
@@ -34,12 +34,9 @@ export default defineComponent({
|
||||
},
|
||||
);
|
||||
|
||||
const {
|
||||
result: articleData,
|
||||
stateIsReady: articleDataReady,
|
||||
} = useAsyncState('article-data', ({hostUrl}) => getDJAPI(hostUrl, '/rp-articles'));
|
||||
const articlesMetadata = useAsyncState('article-metadata', ({hostUrl}) => getDjAPI(hostUrl, '/rp-articles'));
|
||||
|
||||
const articleMetadata = computed(() => articleData.value?.find(_ => _.slug === props.articleName));
|
||||
const articleMetadata = computed(() => articlesMetadata.result.value?.find(_ => _.slug === props.articleName));
|
||||
|
||||
useHead({
|
||||
title: () => articleMetadata.value?.title ?? '',
|
||||
@@ -92,14 +89,14 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function ArticleContentTransformed() {
|
||||
if (articleContent.value) {
|
||||
const dom = parseDom(articleContent.value);
|
||||
if (articleContent.result.value) {
|
||||
const dom = parseDom(articleContent.result.value);
|
||||
return h("div", {}, [...dom.children].map((_) => transformArticleNode(_)));
|
||||
}
|
||||
return <div>Artikel lädt...</div>;
|
||||
}
|
||||
|
||||
await Promise.all([stateIsReady, articleDataReady]);
|
||||
await Promise.allSettled([ articleContent.done, articlesMetadata.done ]);
|
||||
|
||||
return () => (
|
||||
<div class="ge-article">
|
||||
@@ -111,7 +108,7 @@ export default defineComponent({
|
||||
</div>
|
||||
<p class="text-slab">
|
||||
Bei dem untenstehenden Artikel handelt es sich um eine hobbymäßige, amateurhafte Übersetzung des
|
||||
Artikels „{ articleMetadata.value?.titleEn }“ von Ray Peat. Bei Ungenauigkeiten oder Fehlübersetzungen freue ich mich über <DJEmail>eine Mail</DJEmail>!
|
||||
Artikels „{ articleMetadata.value?.titleEn }“ von Ray Peat. Bei Ungenauigkeiten oder Fehlübersetzungen freue ich mich über <DjEmail>eine Mail</DjEmail>!
|
||||
</p>
|
||||
{ articleMetadata.value?.tags?.includes('in-arbeit') && <h5 class="baustelle">🚧 Bitte beachte, dass diese Übersetzung noch in Arbeit ist! 🚧</h5> }
|
||||
<hr />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { RouterLink } from "vue-router";
|
||||
import useHead from "@/useHead.ts";
|
||||
import DJTooltip from "@/DJTooltip.tsx";
|
||||
import DjTooltip from "@/DjTooltip.tsx";
|
||||
|
||||
export default {
|
||||
name: "ge-main",
|
||||
@@ -17,18 +17,33 @@ export default {
|
||||
and my life in general. Hover over the links below for more detail.
|
||||
</p>
|
||||
</div>
|
||||
<h2>Projects</h2>
|
||||
<div class="text-slab">
|
||||
<ul>
|
||||
<li>
|
||||
<DjTooltip tooltip="Convert to and from grains, set ratios, etc.">
|
||||
<RouterLink to={{ name: "GECalculator" }}>Thyroid Calculator</RouterLink>
|
||||
</DjTooltip>
|
||||
</li>
|
||||
<li>
|
||||
<DjTooltip tooltip="A selection of articles by Ray that I have translated in my spare time into German.">
|
||||
<RouterLink to={{ name: "GEDeutsch" }}>Ray Peat Articles in German</RouterLink>
|
||||
</DjTooltip>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2>Links</h2>
|
||||
<div class="text-slab">
|
||||
<ul>
|
||||
<li>
|
||||
<DJTooltip tooltip="Convert to and from grains, set ratios, etc.">
|
||||
<RouterLink to={{ name: "GECalculator" }}>Thyroid Calculator</RouterLink>
|
||||
</DJTooltip>
|
||||
<DjTooltip tooltip="Full text search of the majority of Ray's interviews. Extremely helpful and fun to use.">
|
||||
<a href="https://bioenergeic.life">bioenergetic.life - A Ray Peat Search Engine</a>
|
||||
</DjTooltip>
|
||||
</li>
|
||||
<li>
|
||||
<DJTooltip tooltip="A selection of articles by Ray that I have translated in my spare time into German.">
|
||||
<RouterLink to={{ name: "GEDeutsch" }}>Ray Peat Articles in German</RouterLink>
|
||||
</DJTooltip>
|
||||
<DjTooltip tooltip="Ray's original website with articles and bookstore">
|
||||
<a href="https://raypeat.com">raypeat.com</a>
|
||||
</DjTooltip>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { defineComponent, ref, Suspense, type VNode } from "vue";
|
||||
import { type RouteRecordRaw, RouterLink, RouterView, useRoute } from "vue-router";
|
||||
import GEMain from "@/generative-energy/GEMain.tsx";
|
||||
import DJEmail from "@/DJEmail.tsx";
|
||||
import DjEmail from "@/DjEmail.tsx";
|
||||
import GEDeutsch from "@/generative-energy/GEDeutsch.tsx";
|
||||
import GEDeutschArticle from "@/generative-energy/GEDeutschArticle.tsx";
|
||||
import GECalculator from "@/generative-energy/GECalculator.tsx";
|
||||
import DJDonate from "@/DJDonate.tsx";
|
||||
import { setupTooltip } from "@/DJTooltip.tsx";
|
||||
import DjDonate from "@/DjDonate.tsx";
|
||||
import { setupTooltip } from "@/DjTooltip.tsx";
|
||||
|
||||
export const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
@@ -67,9 +67,9 @@ export default defineComponent({
|
||||
<footer>
|
||||
<div class="bottom">
|
||||
<div>
|
||||
<a href="/">djledda.de</a> 2024 - <DJEmail>{() => "Contact"}</DJEmail>
|
||||
<a href="/">djledda.net</a> {new Date().getFullYear()} - <DjEmail>{() => "Contact"}</DjEmail>
|
||||
</div>
|
||||
<DJDonate />
|
||||
<DjDonate />
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
import { defineComponent, computed, ref, type Ref } from "vue";
|
||||
import useHead from "@/useHead.ts";
|
||||
import DJTooltip, { setupTooltip } from "@/DJTooltip.tsx";
|
||||
import DJEmail from "@/DJEmail.tsx";
|
||||
|
||||
export default defineComponent({
|
||||
name: "app-root",
|
||||
setup() {
|
||||
useHead({ title: "DJ Ledda's Homepage" });
|
||||
|
||||
const tooltipCarrier = ref<HTMLDivElement | null>(null);
|
||||
setupTooltip({ carrier: tooltipCarrier });
|
||||
|
||||
const dude1Spinning = ref(false);
|
||||
const dude2Spinning = ref(false);
|
||||
|
||||
function toggleDude(event: MouseEvent, dudeRef: Ref<boolean>) {
|
||||
const dude = event.target as HTMLImageElement;
|
||||
if (dudeRef.value) {
|
||||
dude.addEventListener("animationiteration", function listener() {
|
||||
dudeRef.value = false;
|
||||
dude.removeEventListener("animationiteration", listener as EventListenerOrEventListenerObject);
|
||||
});
|
||||
} else {
|
||||
dudeRef.value = true;
|
||||
}
|
||||
}
|
||||
|
||||
const shaking = computed(() => dude1Spinning.value || dude2Spinning.value);
|
||||
|
||||
return () => <>
|
||||
<div ref={tooltipCarrier} class="tooltip-carrier" />
|
||||
<div class="supercontainer">
|
||||
<div class={{ shakeable: true, shakeMe: shaking.value }}>
|
||||
<div class="title_name">
|
||||
<DJTooltip tooltip="I wonder what he's listening to?">
|
||||
<img src="/home/img/dj.gif" alt="dj legt krasse Mucke auf"
|
||||
class={{ dude: true, spinMe: dude1Spinning.value }}
|
||||
onClick={ (e) => toggleDude(e, dude1Spinning)} />
|
||||
</DJTooltip>
|
||||
<DJTooltip tooltip="Easily the coolest guy out there.">
|
||||
<span>DJ Ledda</span>
|
||||
</DJTooltip>
|
||||
<DJTooltip tooltip="I once heard this guy played at revs.">
|
||||
<img src="/home/img/dj.gif" alt="dj laying down some sick beats"
|
||||
class={{ dude: true, spinMe: dude2Spinning.value }}
|
||||
onClick={ (e) => toggleDude(e, dude2Spinning) } />
|
||||
</DJTooltip>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="subject">
|
||||
<div class="resourcelist">
|
||||
<a href="https://drum-slayer.com">
|
||||
<DJTooltip class="resource" tooltip="Small app for designing multitrack looped rhythms with local save and multiple files. Originally built using just vanilla TypeScript and CSS, now with Vue.">
|
||||
Drum Slayer
|
||||
</DJTooltip>
|
||||
</a>
|
||||
<a href="/somaesque">
|
||||
<DJTooltip class="resource" tooltip="Puzzle solver app for puzzle cubes resembling the original Soma Cube puzzle. Save and edit your own puzzles! Built with Svelte, THREE.js and AssemblyScript.">
|
||||
Somaesque
|
||||
</DJTooltip>
|
||||
</a>
|
||||
<a href="/generative-energy">
|
||||
<DJTooltip class="resource" tooltip="Thyroid calculator, German translations, and more...">
|
||||
Generative Energy - Ray Peat Resources
|
||||
</DJTooltip>
|
||||
</a>
|
||||
<a href="/home/muenchen-auf-englisch.html">
|
||||
<DJTooltip class="resource" tooltip="
|
||||
Authentic historically accurate translations of all of Munich's S-Bahn and U-Bahn
|
||||
stations, as well as the main municipalities, into English. You live in Allach? It's
|
||||
Axleigh now. Giesing? Nope! Kyesing! This is a WIP.
|
||||
">
|
||||
München auf Englisch - Munich in English
|
||||
</DJTooltip>
|
||||
</a>
|
||||
<a href="/kadi/">
|
||||
<DJTooltip class="resource" tooltip="Make an account and start saving paper and tracking your Yatzy stats with your
|
||||
friends! Make your own rulesets, and more. Built with React, express.js, and
|
||||
MongoDB. Currently inactive.">
|
||||
K A D I: Online Yatzy Scoresheets
|
||||
</DJTooltip>
|
||||
</a>
|
||||
<a href="http://git.djledda.de/Ledda">
|
||||
<DJTooltip class="resource" tooltip="Check out what I'm coding!">
|
||||
My git projects
|
||||
</DJTooltip>
|
||||
</a>
|
||||
<DJEmail>
|
||||
<DJTooltip class="resource" tooltip="You'll see my address when you click here.">
|
||||
Click here to get in touch
|
||||
</DJTooltip>
|
||||
</DJEmail>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tooltipCarrier"></div>
|
||||
</div>
|
||||
</div>
|
||||
</>;
|
||||
},
|
||||
});
|
||||
166
app/home/DjHomeRoot.tsx
Normal file
@@ -0,0 +1,166 @@
|
||||
import { defineComponent, ref } from "vue";
|
||||
import useHead from "@/useHead.ts";
|
||||
import DjTooltip, { setupTooltip } from "@/DjTooltip.tsx";
|
||||
import DjEmail from "@/DjEmail.tsx";
|
||||
import { addCSS, css } from "@/util.ts";
|
||||
|
||||
const styles = css`
|
||||
.dj-home-root {
|
||||
margin: auto;
|
||||
width: 500px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.resource {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.dj-title {
|
||||
font-size: 48px;
|
||||
margin: 20px auto;
|
||||
color: var(--dj-palette3);
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-flow: row-reverse;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.underline {
|
||||
text-decoration: underline solid var(--dj-palette3);
|
||||
}
|
||||
|
||||
.pad {
|
||||
color: var(--dj-bgpalette1);
|
||||
}
|
||||
|
||||
.main {
|
||||
margin: 20px auto;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: disclosure-closed;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--dj-palette3);
|
||||
|
||||
&:visited {
|
||||
color: var(--dj-visited);
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-left: 10px;
|
||||
margin-bottom: 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1024px) {
|
||||
width: 100%;
|
||||
|
||||
.dj-title {
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export default defineComponent({
|
||||
name: "DjHomeRoot",
|
||||
setup() {
|
||||
addCSS('DjHomeRoot', styles);
|
||||
useHead({ title: "djledda" });
|
||||
|
||||
const tooltipCarrier = ref<HTMLDivElement | null>(null);
|
||||
setupTooltip({ carrier: tooltipCarrier });
|
||||
|
||||
return () => <>
|
||||
<div ref={tooltipCarrier} class="tooltip-carrier" />
|
||||
<div class="dj-home-root">
|
||||
<div>
|
||||
<div class="dj-title">
|
||||
<DjTooltip tooltip="Easily the coolest guy out there.">
|
||||
<div class="underline">
|
||||
<span class="pad">_ _ _ _ _ _ _ __</span><span>dj ledda</span>
|
||||
</div>
|
||||
</DjTooltip>
|
||||
</div>
|
||||
<main class="main">
|
||||
<ul class="resourcelist">
|
||||
<li>
|
||||
<a href="/blog">
|
||||
<DjTooltip class="resource" tooltip="My musings, my losings, my winnings, my thoughts">
|
||||
Blog
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/generative-energy">
|
||||
<DjTooltip class="resource" tooltip="Thyroid calculator, German translations, and more...">
|
||||
Generative Energy - Ray Peat Resources
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.djledda.net/Ledda">
|
||||
<DjTooltip class="resource" tooltip="Check out what I'm coding!">
|
||||
My git projects
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/home/muenchen-auf-englisch.html">
|
||||
<DjTooltip class="resource" tooltip="
|
||||
Authentic historically accurate translations of all of Munich's S-Bahn and U-Bahn
|
||||
stations, as well as the main municipalities, into English. You live in Allach? It's
|
||||
Axleigh now. Giesing? Nope! Kyesing! This is a WIP.
|
||||
">
|
||||
München auf Englisch - Munich in English
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://drum-slayer.com">
|
||||
<DjTooltip class="resource" tooltip="Small app for designing multitrack looped rhythms with local save and multiple files. Originally built using just vanilla TypeScript and CSS, now with Vue.">
|
||||
Drum Slayer
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/somaesque/index.html">
|
||||
<DjTooltip class="resource" tooltip="Puzzle solver app for puzzle cubes resembling the original Soma Cube puzzle. Save and edit your own puzzles! Built with Svelte, THREE.js and AssemblyScript.">
|
||||
Somaesque
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/kadi/">
|
||||
<DjTooltip class="resource" tooltip="Make an account and start saving paper and tracking your Yatzy stats with your
|
||||
friends! Make your own rulesets, and more. Built with React, express.js, and
|
||||
MongoDB. Currently inactive.">
|
||||
K A D I: Online Yatzy Scoresheets
|
||||
</DjTooltip>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</main>
|
||||
</div>
|
||||
<hr />
|
||||
<footer>
|
||||
<div class="bottom">
|
||||
<div>
|
||||
<a href="/">djledda.net</a> {new Date().getFullYear()} - <DjEmail>{() => "Contact"}</DjEmail>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</>;
|
||||
},
|
||||
});
|
||||
@@ -1,7 +1,7 @@
|
||||
import { createSSRApp } from "vue";
|
||||
import DJHomeRoot from "@/home/DJHomeRoot.tsx";
|
||||
import DjHomeRoot from "@/home/DjHomeRoot.tsx";
|
||||
import { cssRegistry } from "@/util.ts";
|
||||
|
||||
createSSRApp(DJHomeRoot)
|
||||
createSSRApp(DjHomeRoot)
|
||||
.provide(cssRegistry, new Set())
|
||||
.mount("#app-root");
|
||||
|
||||
16
app/home/index.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/png" href="/favicon.png" sizes="256x256">
|
||||
<link rel="icon" type="image/png" href="/favicon-small.png" sizes="32x32">
|
||||
<link rel="stylesheet" href="/static/theme.css" />
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<!-- SSR HEAD OUTLET -->
|
||||
</head>
|
||||
<body>
|
||||
<div id="app-root"><!-- SSR OUTLET --></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,7 +1,7 @@
|
||||
import { createSSRApp } from "vue";
|
||||
import DJHomeRoot from "@/home/DJHomeRoot.tsx";
|
||||
import DjHomeRoot from "@/home/DjHomeRoot.tsx";
|
||||
|
||||
export default function createApp() {
|
||||
const app = createSSRApp(DJHomeRoot);
|
||||
const app = createSSRApp(DjHomeRoot);
|
||||
return { app, router: null };
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { onMounted, onServerPrefetch, type ShallowRef, shallowRef } from "vue";
|
||||
import useDJSSRContext from "@/useDJSSRContext.ts";
|
||||
import useDjSSRContext from "@/useDjSSRContext.ts";
|
||||
|
||||
declare global {
|
||||
// deno-lint-ignore no-var
|
||||
var appstate: Partial<Record<string, unknown>>;
|
||||
}
|
||||
|
||||
@@ -10,8 +9,8 @@ export default function useAsyncState<T>(
|
||||
key: string,
|
||||
getter: (context: { hostUrl: string }) => Promise<T | null>,
|
||||
options?: { suspensible: boolean },
|
||||
): { result: ShallowRef<T | null>; stateIsReady: Promise<unknown> } {
|
||||
const ssrContext = useDJSSRContext();
|
||||
): { result: ShallowRef<T | null>; done: Promise<void> } {
|
||||
const ssrContext = useDjSSRContext();
|
||||
const isClient = typeof ssrContext === "undefined";
|
||||
|
||||
const registry = ssrContext?.registry ?? globalThis?.appstate;
|
||||
@@ -51,5 +50,5 @@ export default function useAsyncState<T>(
|
||||
}
|
||||
}
|
||||
|
||||
return { result: state, stateIsReady: promise };
|
||||
return { result: state, done: promise };
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { type MaybeRefOrGetter, useSSRContext } from "vue";
|
||||
|
||||
export type DJSSRContext = {
|
||||
export type DjSSRContext = {
|
||||
head: {
|
||||
title: MaybeRefOrGetter<string>;
|
||||
metatags: MaybeRefOrGetter<Array<{ name: string, content: string }>>;
|
||||
@@ -9,6 +9,6 @@ export type DJSSRContext = {
|
||||
styles: Record<string, string>;
|
||||
};
|
||||
|
||||
export default function useDJSSRContext() {
|
||||
return useSSRContext<DJSSRContext>();
|
||||
export default function useDjSSRContext() {
|
||||
return useSSRContext<DjSSRContext>();
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
import { watch, toValue, type MaybeRefOrGetter } from 'vue';
|
||||
import useDJSSRContext from "@/useDJSSRContext.ts";
|
||||
import useDjSSRContext from "@/useDjSSRContext.ts";
|
||||
import { h } from "@/util.ts";
|
||||
|
||||
export default function useHead(params: {
|
||||
title: MaybeRefOrGetter<string>,
|
||||
metatags?: MaybeRefOrGetter<Array<{ name: string, content: string }>>
|
||||
}) {
|
||||
const context = useDJSSRContext();
|
||||
const context = useDjSSRContext();
|
||||
|
||||
if (context) {
|
||||
context.head.title = params.title;
|
||||
|
||||
22
app/util.ts
@@ -1,5 +1,5 @@
|
||||
import { type InjectionKey, inject } from 'vue';
|
||||
import useDJSSRContext from "@/useDJSSRContext.ts";
|
||||
import useDjSSRContext from "@/useDjSSRContext.ts";
|
||||
|
||||
export function gid(id: string, doc: (Document | ShadowRoot) | undefined) {
|
||||
return ((doc ?? document).getElementById(id));
|
||||
@@ -46,7 +46,7 @@ export function css(strs: TemplateStringsArray, ...vals: string[]) {
|
||||
|
||||
export const cssRegistry = Symbol('css-registry') as InjectionKey<Set<string>>;
|
||||
export function addCSS(key: string, css: string) {
|
||||
const context = useDJSSRContext();
|
||||
const context = useDjSSRContext();
|
||||
if (context && !context.styles[key]) {
|
||||
context.styles[key] = css;
|
||||
} else {
|
||||
@@ -58,21 +58,3 @@ export function addCSS(key: string, css: string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
export class DJElement extends HTMLElement {
|
||||
static styles: CSSStyleSheet;
|
||||
|
||||
static template: HTMLTemplateElement;
|
||||
|
||||
root: ShadowRoot;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
const statics = this.constructor as typeof DJElement;
|
||||
this.root = this.attachShadow({ mode: "open" });
|
||||
this.root.appendChild(statics.template.content.cloneNode(true));
|
||||
this.root.adoptedStyleSheets = statics.styles ? [statics.styles] : [];
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -9,7 +9,12 @@
|
||||
"indentWidth": 4
|
||||
},
|
||||
"imports": {
|
||||
"vue": "npm:vue@^3.5.12",
|
||||
"@b-fuze/deno-dom": "jsr:@b-fuze/deno-dom@^0.1.56",
|
||||
"@deno/emit": "jsr:@deno/emit@^0.46.0",
|
||||
"@std/fs": "jsr:@std/fs@^1.0.20",
|
||||
"@std/http": "jsr:@std/http@^1.0.22",
|
||||
"@std/path": "jsr:@std/path@^1.1.3",
|
||||
"vue": "npm:vue@3.6.0-beta.1",
|
||||
"vue-router": "npm:vue-router@4.4.5",
|
||||
"vue/jsx-runtime": "npm:vue/jsx-runtime",
|
||||
"@vue/devtools-api": "npm:@vue/devtools-api",
|
||||
|
||||
369
deno.lock
generated
@@ -1,35 +1,44 @@
|
||||
{
|
||||
"version": "4",
|
||||
"version": "5",
|
||||
"specifiers": {
|
||||
"jsr:@b-fuze/deno-dom@*": "0.1.48",
|
||||
"jsr:@b-fuze/deno-dom@~0.1.56": "0.1.56",
|
||||
"jsr:@deno/cache-dir@0.13.2": "0.13.2",
|
||||
"jsr:@deno/emit@*": "0.46.0",
|
||||
"jsr:@deno/emit@0.46": "0.46.0",
|
||||
"jsr:@deno/graph@~0.73.1": "0.73.1",
|
||||
"jsr:@denosaurs/plug@1.1.0": "1.1.0",
|
||||
"jsr:@std/assert@0.223": "0.223.0",
|
||||
"jsr:@std/bytes@0.223": "0.223.0",
|
||||
"jsr:@std/cli@^1.0.6": "1.0.6",
|
||||
"jsr:@std/encoding@^1.0.5": "1.0.5",
|
||||
"jsr:@std/cli@^1.0.24": "1.0.24",
|
||||
"jsr:@std/encoding@1": "1.0.10",
|
||||
"jsr:@std/encoding@^1.0.10": "1.0.10",
|
||||
"jsr:@std/fmt@0.223": "0.223.0",
|
||||
"jsr:@std/fmt@^1.0.3": "1.0.3",
|
||||
"jsr:@std/fs@*": "0.223.0",
|
||||
"jsr:@std/fmt@1": "1.0.8",
|
||||
"jsr:@std/fmt@^1.0.8": "1.0.8",
|
||||
"jsr:@std/fs@0.223": "0.223.0",
|
||||
"jsr:@std/http@*": "1.0.9",
|
||||
"jsr:@std/fs@1": "1.0.20",
|
||||
"jsr:@std/fs@^1.0.20": "1.0.20",
|
||||
"jsr:@std/html@^1.0.5": "1.0.5",
|
||||
"jsr:@std/http@^1.0.22": "1.0.22",
|
||||
"jsr:@std/internal@^1.0.12": "1.0.12",
|
||||
"jsr:@std/io@0.223": "0.223.0",
|
||||
"jsr:@std/media-types@^1.0.3": "1.0.3",
|
||||
"jsr:@std/net@^1.0.4": "1.0.4",
|
||||
"jsr:@std/path@*": "1.0.7",
|
||||
"jsr:@std/media-types@^1.1.0": "1.1.0",
|
||||
"jsr:@std/net@^1.0.6": "1.0.6",
|
||||
"jsr:@std/path@0.223": "0.223.0",
|
||||
"jsr:@std/path@^1.0.7": "1.0.7",
|
||||
"jsr:@std/streams@^1.0.7": "1.0.7",
|
||||
"npm:@types/node@*": "22.5.4",
|
||||
"jsr:@std/path@1": "1.1.3",
|
||||
"jsr:@std/path@^1.1.3": "1.1.3",
|
||||
"jsr:@std/streams@^1.0.14": "1.0.14",
|
||||
"npm:@vue/devtools-api@*": "6.6.4",
|
||||
"npm:vue-router@4.4.5": "4.4.5_vue@3.5.12",
|
||||
"npm:vue@*": "3.5.12",
|
||||
"npm:vue@^3.5.12": "3.5.12"
|
||||
"npm:vue-router@4.4.5": "4.4.5_vue@3.5.26",
|
||||
"npm:vue@*": "3.5.26",
|
||||
"npm:vue@3.6.0-beta.1": "3.6.0-beta.1_@vue+runtime-dom@3.6.0-beta.1"
|
||||
},
|
||||
"jsr": {
|
||||
"@b-fuze/deno-dom@0.1.48": {
|
||||
"integrity": "bf5b591aef2e9e9c59adfcbb93a9ecd45bab5b7c8263625beafa5c8f1662e7da"
|
||||
"@b-fuze/deno-dom@0.1.56": {
|
||||
"integrity": "8030e2dc1d8750f1682b53462ab893d9c3470f2287feecbe22f44a88c54ab148",
|
||||
"dependencies": [
|
||||
"jsr:@denosaurs/plug"
|
||||
]
|
||||
},
|
||||
"@deno/cache-dir@0.13.2": {
|
||||
"integrity": "c22419dfe27ab85f345bee487aaaadba498b005cce3644e9d2528db035c5454d",
|
||||
@@ -51,43 +60,63 @@
|
||||
"@deno/graph@0.73.1": {
|
||||
"integrity": "cd69639d2709d479037d5ce191a422eabe8d71bb68b0098344f6b07411c84d41"
|
||||
},
|
||||
"@denosaurs/plug@1.1.0": {
|
||||
"integrity": "eb2f0b7546c7bca2000d8b0282c54d50d91cf6d75cb26a80df25a6de8c4bc044",
|
||||
"dependencies": [
|
||||
"jsr:@std/encoding@1",
|
||||
"jsr:@std/fmt@1",
|
||||
"jsr:@std/fs@1",
|
||||
"jsr:@std/path@1"
|
||||
]
|
||||
},
|
||||
"@std/assert@0.223.0": {
|
||||
"integrity": "eb8d6d879d76e1cc431205bd346ed4d88dc051c6366365b1af47034b0670be24"
|
||||
},
|
||||
"@std/bytes@0.223.0": {
|
||||
"integrity": "84b75052cd8680942c397c2631318772b295019098f40aac5c36cead4cba51a8"
|
||||
},
|
||||
"@std/cli@1.0.6": {
|
||||
"integrity": "d22d8b38c66c666d7ad1f2a66c5b122da1704f985d3c47f01129f05abb6c5d3d"
|
||||
"@std/cli@1.0.24": {
|
||||
"integrity": "b655a5beb26aa94f98add6bc8889f5fb9bc3ee2cc3fc954e151201f4c4200a5e"
|
||||
},
|
||||
"@std/encoding@1.0.5": {
|
||||
"integrity": "ecf363d4fc25bd85bd915ff6733a7e79b67e0e7806334af15f4645c569fefc04"
|
||||
"@std/encoding@1.0.10": {
|
||||
"integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1"
|
||||
},
|
||||
"@std/fmt@0.223.0": {
|
||||
"integrity": "6deb37794127dfc7d7bded2586b9fc6f5d50e62a8134846608baf71ffc1a5208"
|
||||
},
|
||||
"@std/fmt@1.0.3": {
|
||||
"integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f"
|
||||
"@std/fmt@1.0.8": {
|
||||
"integrity": "71e1fc498787e4434d213647a6e43e794af4fd393ef8f52062246e06f7e372b7"
|
||||
},
|
||||
"@std/fs@0.223.0": {
|
||||
"integrity": "3b4b0550b2c524cbaaa5a9170c90e96cbb7354e837ad1bdaf15fc9df1ae9c31c",
|
||||
"integrity": "3b4b0550b2c524cbaaa5a9170c90e96cbb7354e837ad1bdaf15fc9df1ae9c31c"
|
||||
},
|
||||
"@std/fs@1.0.20": {
|
||||
"integrity": "e953206aae48d46ee65e8783ded459f23bec7dd1f3879512911c35e5484ea187",
|
||||
"dependencies": [
|
||||
"jsr:@std/assert",
|
||||
"jsr:@std/path@0.223"
|
||||
"jsr:@std/internal",
|
||||
"jsr:@std/path@^1.1.3"
|
||||
]
|
||||
},
|
||||
"@std/http@1.0.9": {
|
||||
"integrity": "d409fc319a5e8d4a154e576c758752e9700282d74f31357a12fec6420f9ecb6c",
|
||||
"@std/html@1.0.5": {
|
||||
"integrity": "4e2d693f474cae8c16a920fa5e15a3b72267b94b84667f11a50c6dd1cb18d35e"
|
||||
},
|
||||
"@std/http@1.0.22": {
|
||||
"integrity": "53f0bb70e23a2eec3e17c4240a85bb23d185b2e20635adb37ce0f03cc4ca012a",
|
||||
"dependencies": [
|
||||
"jsr:@std/cli",
|
||||
"jsr:@std/encoding",
|
||||
"jsr:@std/fmt@^1.0.3",
|
||||
"jsr:@std/encoding@^1.0.10",
|
||||
"jsr:@std/fmt@^1.0.8",
|
||||
"jsr:@std/fs@^1.0.20",
|
||||
"jsr:@std/html",
|
||||
"jsr:@std/media-types",
|
||||
"jsr:@std/net",
|
||||
"jsr:@std/path@^1.0.7",
|
||||
"jsr:@std/path@^1.1.3",
|
||||
"jsr:@std/streams"
|
||||
]
|
||||
},
|
||||
"@std/internal@1.0.12": {
|
||||
"integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027"
|
||||
},
|
||||
"@std/io@0.223.0": {
|
||||
"integrity": "2d8c3c2ab3a515619b90da2c6ff5ea7b75a94383259ef4d02116b228393f84f1",
|
||||
"dependencies": [
|
||||
@@ -95,11 +124,11 @@
|
||||
"jsr:@std/bytes"
|
||||
]
|
||||
},
|
||||
"@std/media-types@1.0.3": {
|
||||
"integrity": "b12d30a7852f7578f4d210622df713bbfd1cbdd9b4ec2eaf5c1845ab70bab159"
|
||||
"@std/media-types@1.1.0": {
|
||||
"integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4"
|
||||
},
|
||||
"@std/net@1.0.4": {
|
||||
"integrity": "2f403b455ebbccf83d8a027d29c5a9e3a2452fea39bb2da7f2c04af09c8bc852"
|
||||
"@std/net@1.0.6": {
|
||||
"integrity": "110735f93e95bb9feb95790a8b1d1bf69ec0dc74f3f97a00a76ea5efea25500c"
|
||||
},
|
||||
"@std/path@0.223.0": {
|
||||
"integrity": "593963402d7e6597f5a6e620931661053572c982fc014000459edc1f93cc3989",
|
||||
@@ -107,139 +136,228 @@
|
||||
"jsr:@std/assert"
|
||||
]
|
||||
},
|
||||
"@std/path@1.0.7": {
|
||||
"integrity": "76a689e07f0e15dcc6002ec39d0866797e7156629212b28f27179b8a5c3b33a1"
|
||||
"@std/path@1.1.3": {
|
||||
"integrity": "b015962d82a5e6daea980c32b82d2c40142149639968549c649031a230b1afb3",
|
||||
"dependencies": [
|
||||
"jsr:@std/internal"
|
||||
]
|
||||
},
|
||||
"@std/streams@1.0.7": {
|
||||
"integrity": "1a93917ca0c58c01b2bfb93647189229b1702677f169b6fb61ad6241cd2e499b"
|
||||
"@std/streams@1.0.14": {
|
||||
"integrity": "c0df6cdd73bd4bbcbe4baa89e323b88418c90ceb2d926f95aa99bdcdbfca2411"
|
||||
}
|
||||
},
|
||||
"npm": {
|
||||
"@babel/helper-string-parser@7.25.9": {
|
||||
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="
|
||||
"@babel/helper-string-parser@7.27.1": {
|
||||
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="
|
||||
},
|
||||
"@babel/helper-validator-identifier@7.25.9": {
|
||||
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="
|
||||
"@babel/helper-validator-identifier@7.28.5": {
|
||||
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="
|
||||
},
|
||||
"@babel/parser@7.26.2": {
|
||||
"integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
|
||||
"@babel/parser@7.28.5": {
|
||||
"integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
|
||||
"dependencies": [
|
||||
"@babel/types"
|
||||
]
|
||||
],
|
||||
"bin": true
|
||||
},
|
||||
"@babel/types@7.26.0": {
|
||||
"integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
|
||||
"@babel/types@7.28.5": {
|
||||
"integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
|
||||
"dependencies": [
|
||||
"@babel/helper-string-parser",
|
||||
"@babel/helper-validator-identifier"
|
||||
]
|
||||
},
|
||||
"@jridgewell/sourcemap-codec@1.5.0": {
|
||||
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
|
||||
"@jridgewell/sourcemap-codec@1.5.5": {
|
||||
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="
|
||||
},
|
||||
"@types/node@22.5.4": {
|
||||
"integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==",
|
||||
"dependencies": [
|
||||
"undici-types"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-core@3.5.12": {
|
||||
"integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==",
|
||||
"@vue/compiler-core@3.5.26": {
|
||||
"integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==",
|
||||
"dependencies": [
|
||||
"@babel/parser",
|
||||
"@vue/shared",
|
||||
"@vue/shared@3.5.26",
|
||||
"entities",
|
||||
"estree-walker",
|
||||
"source-map-js"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-dom@3.5.12": {
|
||||
"integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-core",
|
||||
"@vue/shared"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-sfc@3.5.12": {
|
||||
"integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==",
|
||||
"@vue/compiler-core@3.6.0-beta.1": {
|
||||
"integrity": "sha512-Oiki36gKyoxc0pPnazo83coH6I4KTenCbhcMjALVo+vhz3cPVylo5Y5PyzX/u45IiMHc/25t492VB6CrFYKEgQ==",
|
||||
"dependencies": [
|
||||
"@babel/parser",
|
||||
"@vue/compiler-core",
|
||||
"@vue/compiler-dom",
|
||||
"@vue/compiler-ssr",
|
||||
"@vue/shared",
|
||||
"@vue/shared@3.6.0-beta.1",
|
||||
"entities",
|
||||
"estree-walker",
|
||||
"source-map-js"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-dom@3.5.26": {
|
||||
"integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-core@3.5.26",
|
||||
"@vue/shared@3.5.26"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-dom@3.6.0-beta.1": {
|
||||
"integrity": "sha512-6fbQSyjk6tdJO6UOvOtVl1BHw3CuzKSeNRU84LXvlyqm4K1LWJwKaceu5RZyi8+cFusuxtArpH6dwx9cPbejAg==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-core@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-sfc@3.5.26": {
|
||||
"integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==",
|
||||
"dependencies": [
|
||||
"@babel/parser",
|
||||
"@vue/compiler-core@3.5.26",
|
||||
"@vue/compiler-dom@3.5.26",
|
||||
"@vue/compiler-ssr@3.5.26",
|
||||
"@vue/shared@3.5.26",
|
||||
"estree-walker",
|
||||
"magic-string",
|
||||
"postcss",
|
||||
"source-map-js"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-ssr@3.5.12": {
|
||||
"integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==",
|
||||
"@vue/compiler-sfc@3.6.0-beta.1": {
|
||||
"integrity": "sha512-ntC1t5lbbbA5122ONOVQiQVXgDwJQ/xkB/KGUpP7e59An9m/I2CONRtAEB9wB6QQmMMP4ThoOuRH9+t2o6dqjQ==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-dom",
|
||||
"@vue/shared"
|
||||
"@babel/parser",
|
||||
"@vue/compiler-core@3.6.0-beta.1",
|
||||
"@vue/compiler-dom@3.6.0-beta.1",
|
||||
"@vue/compiler-ssr@3.6.0-beta.1",
|
||||
"@vue/compiler-vapor",
|
||||
"@vue/shared@3.6.0-beta.1",
|
||||
"estree-walker",
|
||||
"magic-string",
|
||||
"postcss",
|
||||
"source-map-js"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-ssr@3.5.26": {
|
||||
"integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-dom@3.5.26",
|
||||
"@vue/shared@3.5.26"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-ssr@3.6.0-beta.1": {
|
||||
"integrity": "sha512-8hvHjcNPcKYto87/vRCxFFCp6FEg9HAA/oQHQ6DZQe70xnJguCPvYhh+e59HuywN4E68RBOIPC9IYTXenTaIWA==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-dom@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1"
|
||||
]
|
||||
},
|
||||
"@vue/compiler-vapor@3.6.0-beta.1": {
|
||||
"integrity": "sha512-NW1FMqjag5fPVf8uK199gw5qFzPBNc4OghchSffS7D2UOs5QMzIpC4XevGA5DeGEuxhpuG9ckisGN2r9BsnTzQ==",
|
||||
"dependencies": [
|
||||
"@babel/parser",
|
||||
"@vue/compiler-dom@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1",
|
||||
"estree-walker",
|
||||
"source-map-js"
|
||||
]
|
||||
},
|
||||
"@vue/devtools-api@6.6.4": {
|
||||
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
|
||||
},
|
||||
"@vue/reactivity@3.5.12": {
|
||||
"integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==",
|
||||
"@vue/reactivity@3.5.26": {
|
||||
"integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==",
|
||||
"dependencies": [
|
||||
"@vue/shared"
|
||||
"@vue/shared@3.5.26"
|
||||
]
|
||||
},
|
||||
"@vue/runtime-core@3.5.12": {
|
||||
"integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==",
|
||||
"@vue/reactivity@3.6.0-beta.1": {
|
||||
"integrity": "sha512-IbmZR0/UVlfRgDE8oVERx8pmYpG0CtE8CWfkdrnjnQckuCoImXCn7W9HiShzmmDNus371hGw6cXCctjQL7hkZw==",
|
||||
"dependencies": [
|
||||
"@vue/reactivity",
|
||||
"@vue/shared"
|
||||
"@vue/shared@3.6.0-beta.1"
|
||||
]
|
||||
},
|
||||
"@vue/runtime-dom@3.5.12": {
|
||||
"integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==",
|
||||
"@vue/runtime-core@3.5.26": {
|
||||
"integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==",
|
||||
"dependencies": [
|
||||
"@vue/reactivity",
|
||||
"@vue/runtime-core",
|
||||
"@vue/shared",
|
||||
"@vue/reactivity@3.5.26",
|
||||
"@vue/shared@3.5.26"
|
||||
]
|
||||
},
|
||||
"@vue/runtime-core@3.6.0-beta.1": {
|
||||
"integrity": "sha512-UtZCF+rPSPsKQUTOwB3EHd2y8mY9lD6nr78Gt/fqwnSdxaXY0ksbhc1Q9BjHZPaDMpn8NKzQKlMXf/h1w8VMkg==",
|
||||
"dependencies": [
|
||||
"@vue/reactivity@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1"
|
||||
]
|
||||
},
|
||||
"@vue/runtime-dom@3.5.26": {
|
||||
"integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==",
|
||||
"dependencies": [
|
||||
"@vue/reactivity@3.5.26",
|
||||
"@vue/runtime-core@3.5.26",
|
||||
"@vue/shared@3.5.26",
|
||||
"csstype"
|
||||
]
|
||||
},
|
||||
"@vue/server-renderer@3.5.12_vue@3.5.12": {
|
||||
"integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==",
|
||||
"@vue/runtime-dom@3.6.0-beta.1": {
|
||||
"integrity": "sha512-+vv8WwxSFzXzjXWvZ92q1ec13fp+RBtAiOTu7M5dWRLqsDEHuVnuzmPB5O+gmiNU0YViLEXP5c/+gDCP3y5yUw==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-ssr",
|
||||
"@vue/shared",
|
||||
"vue"
|
||||
"@vue/reactivity@3.6.0-beta.1",
|
||||
"@vue/runtime-core@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1",
|
||||
"csstype"
|
||||
]
|
||||
},
|
||||
"@vue/shared@3.5.12": {
|
||||
"integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg=="
|
||||
"@vue/runtime-vapor@3.6.0-beta.1_@vue+runtime-dom@3.6.0-beta.1": {
|
||||
"integrity": "sha512-XVethfYDcowADbaq1XVEq6BAqnpKgc/75WL5xjy2ChwEB9slMa7B2PBpGSGwvEKKsNyAapYQoa/af5fyogaSlw==",
|
||||
"dependencies": [
|
||||
"@vue/reactivity@3.6.0-beta.1",
|
||||
"@vue/runtime-dom@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1"
|
||||
]
|
||||
},
|
||||
"csstype@3.1.3": {
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
||||
"@vue/server-renderer@3.5.26_vue@3.5.26": {
|
||||
"integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-ssr@3.5.26",
|
||||
"@vue/shared@3.5.26",
|
||||
"vue@3.5.26"
|
||||
]
|
||||
},
|
||||
"entities@4.5.0": {
|
||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
|
||||
"@vue/server-renderer@3.6.0-beta.1_vue@3.6.0-beta.1__@vue+runtime-dom@3.6.0-beta.1": {
|
||||
"integrity": "sha512-MpjAiqP/4JTDMswoDSWyS1PCDzR9+ud2aRAOhvtlpnsuNFLwYbf8tNOiPd3x3gty8ghWYMyKCP4isQHNcPRmLA==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-ssr@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1",
|
||||
"vue@3.6.0-beta.1_@vue+runtime-dom@3.6.0-beta.1"
|
||||
]
|
||||
},
|
||||
"@vue/shared@3.5.26": {
|
||||
"integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A=="
|
||||
},
|
||||
"@vue/shared@3.6.0-beta.1": {
|
||||
"integrity": "sha512-M+JCCPvuXgRGkgRYQ9LISH8eJXlQgz862OBtO2n7Ef2cyz+DgLQTGfZoNzf3WbVnNUP9/5x7/O0P1ED42IDCCw=="
|
||||
},
|
||||
"csstype@3.2.3": {
|
||||
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
|
||||
},
|
||||
"entities@7.0.0": {
|
||||
"integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ=="
|
||||
},
|
||||
"estree-walker@2.0.2": {
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
|
||||
},
|
||||
"magic-string@0.30.12": {
|
||||
"integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
|
||||
"magic-string@0.30.21": {
|
||||
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
|
||||
"dependencies": [
|
||||
"@jridgewell/sourcemap-codec"
|
||||
]
|
||||
},
|
||||
"nanoid@3.3.7": {
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
|
||||
"nanoid@3.3.11": {
|
||||
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
|
||||
"bin": true
|
||||
},
|
||||
"picocolors@1.1.1": {
|
||||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
|
||||
},
|
||||
"postcss@8.4.47": {
|
||||
"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
|
||||
"postcss@8.5.6": {
|
||||
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
|
||||
"dependencies": [
|
||||
"nanoid",
|
||||
"picocolors",
|
||||
@@ -249,33 +367,46 @@
|
||||
"source-map-js@1.2.1": {
|
||||
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
|
||||
},
|
||||
"undici-types@6.19.8": {
|
||||
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
|
||||
},
|
||||
"vue-router@4.4.5_vue@3.5.12": {
|
||||
"vue-router@4.4.5_vue@3.5.26": {
|
||||
"integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==",
|
||||
"dependencies": [
|
||||
"@vue/devtools-api",
|
||||
"vue"
|
||||
"vue@3.5.26"
|
||||
]
|
||||
},
|
||||
"vue@3.5.12": {
|
||||
"integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==",
|
||||
"vue@3.5.26": {
|
||||
"integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-dom",
|
||||
"@vue/compiler-sfc",
|
||||
"@vue/runtime-dom",
|
||||
"@vue/server-renderer",
|
||||
"@vue/shared"
|
||||
"@vue/compiler-dom@3.5.26",
|
||||
"@vue/compiler-sfc@3.5.26",
|
||||
"@vue/runtime-dom@3.5.26",
|
||||
"@vue/server-renderer@3.5.26_vue@3.5.26",
|
||||
"@vue/shared@3.5.26"
|
||||
]
|
||||
},
|
||||
"vue@3.6.0-beta.1_@vue+runtime-dom@3.6.0-beta.1": {
|
||||
"integrity": "sha512-z2VKatkexJ9XZ/eYbUUQaitaYC1MpTtE+7zESy7bBvfcExlF5ubBmCB001I6GznEw4vRR1WMZbDqT482QJEJHw==",
|
||||
"dependencies": [
|
||||
"@vue/compiler-dom@3.6.0-beta.1",
|
||||
"@vue/compiler-sfc@3.6.0-beta.1",
|
||||
"@vue/runtime-dom@3.6.0-beta.1",
|
||||
"@vue/runtime-vapor",
|
||||
"@vue/server-renderer@3.6.0-beta.1_vue@3.6.0-beta.1__@vue+runtime-dom@3.6.0-beta.1",
|
||||
"@vue/shared@3.6.0-beta.1"
|
||||
]
|
||||
}
|
||||
},
|
||||
"workspace": {
|
||||
"dependencies": [
|
||||
"jsr:@b-fuze/deno-dom@~0.1.56",
|
||||
"jsr:@deno/emit@0.46",
|
||||
"jsr:@std/fs@^1.0.20",
|
||||
"jsr:@std/http@^1.0.22",
|
||||
"jsr:@std/path@^1.1.3",
|
||||
"npm:@vue/devtools-api@*",
|
||||
"npm:vue-router@4.4.5",
|
||||
"npm:vue@*",
|
||||
"npm:vue@^3.5.12"
|
||||
"npm:vue@3.6.0-beta.1"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
6
deps.ts
@@ -1,6 +0,0 @@
|
||||
import "jsr:@deno/emit";
|
||||
import "jsr:@std/http";
|
||||
import "vue";
|
||||
import "jsr:@b-fuze/deno-dom";
|
||||
import "jsr:@std/fs";
|
||||
import "jsr:@std/path";
|
||||
59
font-shortlist.txt
Normal file
@@ -0,0 +1,59 @@
|
||||
Abhaya Libre
|
||||
Alegreya
|
||||
Alice
|
||||
Amethysta
|
||||
Antic Didone
|
||||
Bacasime Antique
|
||||
Baskervville
|
||||
Batang
|
||||
Bellefair
|
||||
Benne
|
||||
Bodoni Moda
|
||||
Bona Nova
|
||||
Cactus Classical Serif
|
||||
Caudex
|
||||
Charmonman
|
||||
Chiron Sung HK
|
||||
Cormorant
|
||||
> Cormorant Garamond
|
||||
> Cormorant Infant
|
||||
EB Garamond
|
||||
Estonia
|
||||
Flamenco
|
||||
Fondamento
|
||||
Forum
|
||||
Gentium PLus
|
||||
GFS Didot
|
||||
Grandiflora One
|
||||
Gulzar
|
||||
Ibarra Real Nova
|
||||
IM FELL Double Pica
|
||||
> IM FELL DW Pica
|
||||
Jacques Fancois
|
||||
KoHo
|
||||
KoPub Batang
|
||||
Lancelot
|
||||
Libertinus Serif Display
|
||||
Linden Hill
|
||||
Lora
|
||||
Milonga
|
||||
Namdhinggo
|
||||
NanumMyeongjo
|
||||
Newsreader
|
||||
Parastoo
|
||||
Platwrite ED Deco
|
||||
> Playwrite ID
|
||||
> Playwrite IT Moderna
|
||||
> Playwrite PE
|
||||
Prata
|
||||
Rosarivo
|
||||
Scheherazade New
|
||||
Sedan
|
||||
Shippori Mincho B1
|
||||
Spectral
|
||||
Srisakdi
|
||||
Tai Heritage Pro
|
||||
Unna
|
||||
Ysabeau Infant
|
||||
Yuji Syuku
|
||||
Zen Old Mincho
|
||||
4
font-shortlist2.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
Baskervville
|
||||
\
|
||||
|
||||
|
||||
133
main.ts
@@ -1,20 +1,104 @@
|
||||
import { serveFile } from "jsr:@std/http/file-server";
|
||||
import { STATUS_TEXT } from "jsr:@std/http/status";
|
||||
import { serveFile } from "@std/http/file-server";
|
||||
import { STATUS_TEXT } from "@std/http/status";
|
||||
import { type App, toValue } from "vue";
|
||||
import { type Router } from "vue-router";
|
||||
import { renderToString } from "vue/server-renderer";
|
||||
import transpileResponse from "./transpile.ts";
|
||||
import { DOMParser } from "jsr:@b-fuze/deno-dom";
|
||||
import { join } from "jsr:@std/path/join";
|
||||
import { exists } from "jsr:@std/fs";
|
||||
import { type DJSSRContext } from "@/useDJSSRContext.ts";
|
||||
import { type DJAPIResult, type DJAPIResultMap } from "@/api.ts";
|
||||
import { DOMParser } from "@b-fuze/deno-dom";
|
||||
import { join } from "@std/path/join";
|
||||
import { exists } from "@std/fs";
|
||||
import { type DjSSRContext } from "@/useDjSSRContext.ts";
|
||||
import { type DjAPIResult, type DjAPIResultMap } from "@/api.ts";
|
||||
|
||||
const utf8Decoder = new TextDecoder("utf-8");
|
||||
|
||||
const HOST = 'https://djledda.net';
|
||||
|
||||
const parser = new DOMParser();
|
||||
|
||||
function appHeaderScript(params: { ssrContext: DJSSRContext, entryPath: string }) {
|
||||
async function getBlogEntries() {
|
||||
const paths: string[] = [];
|
||||
const contentDir = './public/blog/content/';
|
||||
for await (const dirEnt of Deno.readDir(contentDir)) {
|
||||
if (dirEnt.isFile && dirEnt.name.endsWith('.html')) {
|
||||
paths.push(`${contentDir}${dirEnt.name}`);
|
||||
}
|
||||
}
|
||||
const result: DjAPIResultMap['/blog-entries'] = [];
|
||||
for (const filePath of paths) {
|
||||
const content = await Deno.readTextFile(filePath);
|
||||
const dom = parser.parseFromString(content, 'text/html');
|
||||
const metadata = {
|
||||
slug: '',
|
||||
tags: [] as string[],
|
||||
guid: '',
|
||||
title: '',
|
||||
createdAt: '',
|
||||
updatedAt: '',
|
||||
teaser: `${ dom.querySelector('article')?.textContent.slice(0, 256).trimStart().trimEnd() }...`,
|
||||
};
|
||||
const metaTags = dom.querySelectorAll('meta') as unknown as NodeListOf<HTMLMetaElement>;
|
||||
for (const metaTag of metaTags) {
|
||||
const name = metaTag.attributes.getNamedItem('name')?.value ?? '';
|
||||
const content = metaTag.attributes.getNamedItem('content')?.value ?? '';
|
||||
if (name === 'title') {
|
||||
metadata.title = content;
|
||||
} else if (name === 'tags') {
|
||||
metadata.tags = content ? content.split(",") : [];
|
||||
} else if (name === 'guid') {
|
||||
metadata.guid = content;
|
||||
} else if (name === 'slug') {
|
||||
metadata.slug = content;
|
||||
} else if (name === 'updatedAt') {
|
||||
metadata.createdAt = content;
|
||||
} else if (name === 'createdAt') {
|
||||
metadata.updatedAt = content;
|
||||
}
|
||||
}
|
||||
result.push(metadata);
|
||||
}
|
||||
result.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
||||
return result;
|
||||
}
|
||||
|
||||
async function rss() {
|
||||
const articles = await getBlogEntries();
|
||||
|
||||
return `<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>djledda's blog</title>
|
||||
<description>djledda's personal blog</description>
|
||||
<link>${ HOST }/blog</link>
|
||||
<managingEditor>Daniel Ledda</managingEditor>
|
||||
<image>
|
||||
<title>djledda's blog</title>
|
||||
<url>${ HOST }/favicon.png</url>
|
||||
<link>${ HOST }/blog</link>
|
||||
<description>djledda's personal blog</description>
|
||||
</image>
|
||||
<language>en-au</language>
|
||||
<copyright>${ new Date().getFullYear() } djledda.net All rights reserved</copyright>
|
||||
<lastBuildDate>${ new Date(articles.at(-1)!.updatedAt).toUTCString() }</lastBuildDate>
|
||||
<pubDate>${ new Date(articles.at(-1)!.updatedAt).toUTCString() }</pubDate>
|
||||
<ttl>1440</ttl>
|
||||
|
||||
${ articles.map(article => `<item>
|
||||
<title>${ article.title }</title>
|
||||
<link>${ HOST }/blog/post/${ article.slug }</link>
|
||||
<pubDate>${ new Date(article.createdAt).toUTCString() }</pubDate>
|
||||
<author>Daniel Ledda</author>
|
||||
<description>${ article.teaser }</description>
|
||||
<guid>${ article.guid }</guid>
|
||||
</item>
|
||||
`).join('')}
|
||||
|
||||
<atom:link href="${ HOST }/blog/djblog.rss" rel="self" type="application/rss+xml" />
|
||||
</channel>
|
||||
</rss>`;
|
||||
}
|
||||
|
||||
function appHeaderScript(params: { ssrContext: DjSSRContext, entryPath: string }) {
|
||||
return `
|
||||
<title>${ toValue(params.ssrContext.head.title) }</title>
|
||||
${ toValue(params.ssrContext.head.metatags).map(_ => `<meta name="${ _.name }" content="${ _.content }">`).join('\n\t') }
|
||||
@@ -42,20 +126,19 @@ async function* siteEntries(path: string): AsyncGenerator<string> {
|
||||
for await (const dirEnt of Deno.readDir(path)) {
|
||||
if (dirEnt.isDirectory) {
|
||||
yield* siteEntries(join(path, dirEnt.name));
|
||||
} else if (dirEnt.name === "index_template.html") {
|
||||
} else if (dirEnt.name === "index.html") {
|
||||
yield path.split("/")[1] ?? "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const publicFiles = siteEntries("public");
|
||||
const sites: string[] = [];
|
||||
for await (const path of publicFiles) {
|
||||
sites.push(path);
|
||||
for await (const entry of siteEntries("app")) {
|
||||
sites.push(entry);
|
||||
}
|
||||
|
||||
async function getAPIResponse(apiReq: Request): Promise<Response> {
|
||||
let jsonResponse: DJAPIResult | { error: string } | null = null;
|
||||
let jsonResponse: DjAPIResult | { error: string } | null = null;
|
||||
let status = 200;
|
||||
|
||||
const pathname = URL.parse(apiReq.url)?.pathname;
|
||||
@@ -76,7 +159,7 @@ async function getAPIResponse(apiReq: Request): Promise<Response> {
|
||||
paths.push(`${contentDir}${dirEnt.name}`);
|
||||
}
|
||||
}
|
||||
const result: DJAPIResultMap['/rp-articles'] = [];
|
||||
const result: DjAPIResultMap['/rp-articles'] = [];
|
||||
for (const filePath of paths) {
|
||||
const content = await Deno.readTextFile(filePath);
|
||||
const dom = parser.parseFromString(content, 'text/html');
|
||||
@@ -98,7 +181,10 @@ async function getAPIResponse(apiReq: Request): Promise<Response> {
|
||||
}
|
||||
result.push(metadata);
|
||||
}
|
||||
result.sort((a, b) => a.titleDe.localeCompare(b.titleDe));
|
||||
jsonResponse = result;
|
||||
} else if (apiPath === "/blog-entries") {
|
||||
jsonResponse = await getBlogEntries();
|
||||
}
|
||||
|
||||
if (!jsonResponse) {
|
||||
@@ -154,6 +240,13 @@ Deno.serve({
|
||||
response = await getAPIResponse(req);
|
||||
}
|
||||
|
||||
// RSS
|
||||
if (response === null) {
|
||||
if (pathname === '/blog/djblog.rss') {
|
||||
response = new Response(await rss(), { status: 200 });
|
||||
}
|
||||
}
|
||||
|
||||
// Public/static files
|
||||
if (response === null) {
|
||||
let filepath = join(".", "public", pathname);
|
||||
@@ -183,12 +276,12 @@ Deno.serve({
|
||||
|
||||
// SSR
|
||||
if (response === null) {
|
||||
const baseDirectoryName = pathname.split("/")[1] ?? "";
|
||||
let baseDirectoryName = pathname.split("/")[1] ?? "";
|
||||
baseDirectoryName = baseDirectoryName === "" ? "home" : baseDirectoryName;
|
||||
if (sites.includes(baseDirectoryName)) {
|
||||
const appLocation = baseDirectoryName === "" ? "home" : baseDirectoryName;
|
||||
const siteTemplate = join("public", baseDirectoryName, "index_template.html");
|
||||
const siteEntry = join("app", appLocation, "server.ts");
|
||||
const clientEntry = join("@", appLocation, "client.ts");
|
||||
const siteTemplate = join("app", baseDirectoryName, "index.html");
|
||||
const siteEntry = join("app", baseDirectoryName, "server.ts");
|
||||
const clientEntry = join("@", baseDirectoryName, "client.ts");
|
||||
const { app, router } = (await import("./" + siteEntry)).default() as {
|
||||
app: App;
|
||||
router: Router | null;
|
||||
@@ -196,7 +289,7 @@ Deno.serve({
|
||||
app.provide("dom-parse", (innerHTML: string) => {
|
||||
return parser.parseFromString(innerHTML, "text/html").documentElement;
|
||||
});
|
||||
const ssrContext: DJSSRContext = { styles: {}, registry: {}, head: { title: "", metatags: [] } };
|
||||
const ssrContext: DjSSRContext = { styles: {}, registry: {}, head: { title: "", metatags: [] } };
|
||||
if (router) {
|
||||
await router.replace(pathname.split('/' + baseDirectoryName)[1]);
|
||||
await router.isReady();
|
||||
|
||||
105
public/blog/content/poof-and-its-gone.html
Normal file
@@ -0,0 +1,105 @@
|
||||
<meta name="title" content="Poof, and it's gone">
|
||||
<meta name="slug" content="poof-and-its-gone">
|
||||
<meta name="createdAt" content="2025-12-20T17:54:05.000Z">
|
||||
<meta name="updatedAt" content="2025-12-20T17:54:05.000Z">
|
||||
<meta name="tags" content="">
|
||||
<meta name="guid" content="4655d2b9-0c4b-4dd7-bf95-538d36166000">
|
||||
|
||||
<article>
|
||||
<p>
|
||||
Since reading Ray Peat's work and drastically improving my wellbeing—something that had been declining for years—I've
|
||||
been thinking more and more often about the phenomenon of learned helplessness and its relevance in my own life. Sometimes,
|
||||
looking back to past times can be useful to help reorient yourself in the present. In doing so, you can be better equipped to
|
||||
aim towards a more desirable future. Sometimes, a new perspective or experience might instantly obliterate previous
|
||||
behaviour without any concerted mental or physical gruntwork to eradicate it.
|
||||
</p>
|
||||
<p>
|
||||
On the flipside, I have sometimes hopelessly tried to forcefully change my behaviour, employing all the en vogue
|
||||
self-help tricks to form long-term habits, only to lose them just as quickly as they formed in the months that
|
||||
followed. These kinds of experiences remind me of those hypnosis advertisements that claim they'll have you give up smoking
|
||||
after just a few sessions; sometimes it's even after just one visit. There's no short supply of <i>miracle cure</i> stories
|
||||
or reports of sudden, permanent breaks in addiction. Cold-turkey clean cuts that seem to arise with no obvious effort on
|
||||
the part of the addict, no signs of worn willpower.
|
||||
</p>
|
||||
<p>
|
||||
When I was sixteen I spent six weeks abroad in a small town called Marburg in Hesse, Germany. I spent that time
|
||||
living with a new family along with my exchange student, Arne, who had been staying with my own family in Melbourne for
|
||||
the same period of time just prior. Those were six exciting weeks of school, new acquaintances, a new language
|
||||
(albeit one I had been "studying" in the Australian school system) and unfamiliar cultural quirks.
|
||||
</p>
|
||||
<p>
|
||||
It was a barrage of stimulation, I came home every day from school and would collapse, totally exhausted, onto my
|
||||
exchange student's bed, which had been graciously given to me to use for the duration of my stay. Even tough I was utterly <i>kaputt</i> it's not like I was actually expected to
|
||||
<i>learn</i> anything or do any homework whilst I was at school here—I was basically on holidays and could really
|
||||
have just treated it as such. Plenty of my own classmates who had also been on a very similar trip certainly did. I'm not sure many of them
|
||||
learnt or used much German beyond <i>"Wo ist McDonalds?"</i> Thanks to a romantic summer fling,
|
||||
I had been gradually becoming more fascinated with the structure of German before arriving. Once there, the Deutsch on the blackboard looked more like a sophisticated puzzle game than a
|
||||
complete drag of a memorisation task, presumably aided by my younger, more language sensitive age at the time. Each day was a new game of detective guesswork, and better still, I got to play
|
||||
with new ideas about how the language works each day in the schoolyard with the new friends I was making. New ways to
|
||||
describe how things are situated in space, adverbs for how they move in relation to one another, mysterious new prefixes and other quaint linguistic
|
||||
quirks, like the insane backwards word order of German—unlimited entertainment to see if I was up to
|
||||
the challenge. I practically spent all my time in class ogling the immaculate chalk handwriting of the various teachers, I remember biology and German class in particular, and
|
||||
trying to work out what on Earth was going on. For some strange reason, it was a kind of bliss.
|
||||
</p>
|
||||
<p>
|
||||
On top of this, I was in the grade just above mine back home in Australia. Whilst that really shouldn't have made much
|
||||
difference, the amount of responsibility and independence these kids were allowed to exercise at sixteen or seventeen was
|
||||
nothing short of amazing to me at that age. I had never seen anything like it. Some of my classmates would stand out
|
||||
the front of school during lunchtime and smoke a couple of cigarettes with their own teachers, something I find kind of insane
|
||||
still to this day; it certainly would never have been acceptable back at home. Starting in the senior
|
||||
school, you were allowed to just leave and go home if you didn't have anywhere to be, so long as you were back in time
|
||||
for class. And we did. School uniforms simply weren't part of the culture either. For everyone else this perhaps just meant stressful decision making,
|
||||
another way to play the oft cruel status games of teenagerhood, but for me it was like every day was casual dress day back
|
||||
home. To top it all off, the legal drinking age in Germany is sixteen, at least for wine, beer, and other weaker drinks.
|
||||
</p>
|
||||
<p>
|
||||
These classmates of mine were running their own meetings headed by the <i>Klassensprecher</i>, the class
|
||||
representatives, and much unlike similar candidates back home, they actually seemed cool, they seemed like people I
|
||||
might like to hang out with and befriend. Alongside decision making regarding general classroom organisation, they would
|
||||
organise class bus trips: we saw a local band comprised of kids from the local schools, and for the first time in my life I drank
|
||||
alcohol along with everybody else there, just hanging out and left to our own devices. It was a sense of freedom and self-responsibility
|
||||
that wasn't afforded to me by the school system back home. Increasingly Australia, and especially Victoria, from which I
|
||||
hail, is branded as a "nanny state", and my experiences in Germany reinforce that.
|
||||
</p>
|
||||
<p>
|
||||
I really felt like I was in the midst of some sort of Hollywood production, an atmosphere that didn't quite seem tangible in
|
||||
Australia. The intersection in the Venn diagram of taking on responsibility and having free reign was
|
||||
vanishingly small amongst teenagers. Either you wagged class and maybe did drugs, or you obediently followed the rules. As the
|
||||
years went by, the fine line between the two seemed to vanish further and further, at least that's how it looked from where I was standing.
|
||||
</p>
|
||||
<p>
|
||||
Back in Australia, a routine had begun to solidify itself leading up to this trip. I would come home,
|
||||
maybe do homework, and then browse Reddit and play hours of Team Fortress 2. I had racked up an impressive 2000
|
||||
hours in-game. It seemed fairly inconsequential to me, and my high school friends, unlike primary school, were mostly
|
||||
fragmented, and so on weeknights I didn't find myself hanging out with many people regularly. I did try to get Team Fortress
|
||||
working on the old computer my host family had in Germany, just for fun, but to no avail. However, even whilst
|
||||
attempting to get it set up, something about it began to seem like an entirely futile endeavour.
|
||||
</p>
|
||||
<p>
|
||||
When I arrived back in Australia, it was as if a switch had been flipped. I all but stopped playing Team
|
||||
Fortress, a regular staple of my free time. Practically overnight it seemed to have turned from being an incredibly
|
||||
seductive way to pass the time to being a colossal <i>waste</i> of it. I just stopped playing cold turkey, and as far as I could tell, no
|
||||
effort went in to the dissolution of that habit whatsoever.
|
||||
</p>
|
||||
<p>
|
||||
I'm not exactly sure what facet of my overseas trip pushed me to change my behaviour so effortlessly, but I think it was
|
||||
the culmination of all my experiences in that incredibly enriched environment. As I have looked back on those times over the past few years, especially since
|
||||
discovering Ray, I can't help but think that I found myself in a "rat park" experiment during that time. Or I perhaps I was one of the rats
|
||||
looking on, watching as others were freed from certain death by drowning. My habits in Australia suddenly seemed dull and useless, like I was stuck in
|
||||
what the Germans call a <i>goldener Käfig</i> or <i>gilded cage</i>; basically inescapably trapped in an environment forged by
|
||||
my own riches and good intentions. Participating in the foreign exchange program widened my horizons. I could see that what
|
||||
I was missing out on indeed <i>was</i> possible, and I had the power to change my lifestyle.
|
||||
</p>
|
||||
<p>
|
||||
It would be nice if I could now say that I've since enjoyed a deeply enriched life and it has been smooth sailing from there on out, that this turning point in my life catapulted me into nirvana. But alas
|
||||
I wouldn't be a fan of Ray's if I never encountered a struggle or two along the way. But it seems to have profoundly changed the course of my
|
||||
life for the better. Ever since then, I've found it extremely difficult to waste my days away without having a
|
||||
sense of direction in my life. Although, this has been a source of anxiety, some time more than others. I certainly don't think I
|
||||
would have found it so simple to move abroad and continue to learn German whilst living, studying, and working in Munich for
|
||||
several years like I have been if I had never gone on that trip.
|
||||
</p>
|
||||
<p>
|
||||
So I guess, in that respect, watching your fellow rats have a good time, in real life, might just get you to settle for
|
||||
no less. One look at those old menial habits and—<i>poof</i>—they're gone. And for that I'm grateful.
|
||||
</p>
|
||||
</article>
|
||||
291
public/blog/content/straightjacket-of-indecision.html
Normal file
@@ -0,0 +1,291 @@
|
||||
<meta name="title" content="The Straightjacket of Indecision">
|
||||
<meta name="slug" content="straightjacket-of-indecision">
|
||||
<meta name="createdAt" content="2026-01-18T20:00:00.000Z">
|
||||
<meta name="updatedAt" content="2026-01-18T20:00:00.000Z">
|
||||
<meta name="tags" content="">
|
||||
<meta name="guid" content="5d3b68de-35fb-48da-8caf-8f6f1f6398f5">
|
||||
|
||||
<article>
|
||||
<p>
|
||||
Over the last six or seven years living abroad in the faraway place of
|
||||
Munich, Germany, I’ve often wondered when, or even whether, I might return
|
||||
home to Melbourne, Australia. Even though I never spent much time
|
||||
contemplating my distant future, my mother certainly didn’t let me forget
|
||||
that she wished to have me back at home sooner rather than later. I'd
|
||||
listen to her talk in absolutes every return visit, “when you’re back
|
||||
next year…,” and so on. I shrugged it off as just motherly love. I'm
|
||||
in Germany, Mum, and I’m staying here for now!
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Despite this, the thought in the back of my mind that this overseas
|
||||
journey would in all likelihood be ephemeral proved to be a constant
|
||||
burden. Wherever I went, whichever decision I made, the immense doubt
|
||||
haunted me. Before the COVID pandemic, I had originally planned
|
||||
to study my Master’s, probably work a couple of years at a local
|
||||
company “in the industry”, and then return home ideally feeling fulfilled and
|
||||
satisfied. Like I had earnt some kind of imaginary certificate of
|
||||
intercultural aptitude. Secretly however, I imagined falling in love
|
||||
with a beautiful German girl and living in the idyllic Bavarian
|
||||
countryside, happily ever after, even if I was unwilling to admit it
|
||||
even to myself.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
But given the retreat of pandemic-related restrictions and regulations was
|
||||
so gradual, as were too the many changes in my life circumstances
|
||||
in-between, it never seemed like quite the right time to draw a line in the
|
||||
sand. It would seem I became the frog in boiling water.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Finally, maybe around late 2023, things seemed to have settled. I chose to
|
||||
move into my own apartment, after my roommate moved in with his
|
||||
girlfriend. It became clear to me that I would soon have to give serious
|
||||
thought as to whether I wanted to return home, or if I wanted to seriously
|
||||
commit to “being German.” The weight I was carrying was growing
|
||||
heavier, and somehow I knew this was slowing me down. I just didn't
|
||||
realise how much exactly.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In the first few years here, sure—it never made much sense to paint my
|
||||
student dorm room or invest in expensive furniture, even once I began earning a
|
||||
full-time salary—I figured I probably wouldn’t be here much longer,
|
||||
anyway. But as the years went by and the dorm rooms became my own rental
|
||||
apartments, I could feel the desire to invest in long-term commitments grow
|
||||
stronger within me. Actually bringing any of them to fruition, on the other
|
||||
hand, seemed impossible. I could hardly bring myself to buy a
|
||||
dishwasher for the longest time: moving countries could have always been
|
||||
right around the corner, so I had better not waste the money and effort.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Never knowing when I was going to leave, I froze in the face of more
|
||||
important decisions, even ones that might have promised to greatly improve
|
||||
my quality of life, and that seemed frankly banal to outsiders. It plagued
|
||||
the back of my mind when searching for the motivation to meet people or go
|
||||
on dates. What if I eventually want to go home? Will she lose interest in me
|
||||
because I’m a flight risk?
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Whenever I would meet someone in my daily life, they would inevitably
|
||||
ask me whether I would like to stay in Germany forever or if I plan to
|
||||
move home at some stage. Over the years, I learnt to come with
|
||||
pre-prepared answers that suggested I was comfortable with my
|
||||
open-ended life abroad. But I wasn’t. I felt trapped, like I couldn’t
|
||||
go anywhere. Like I couldn’t start any meaningful projects. I wanted to
|
||||
take on so much more and feel resolute in each step. But I felt
|
||||
suffocated by the idea that the rug would soon be pulled out from under
|
||||
my feet.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I did however eventually start voicing the idea that, as long as I
|
||||
don’t meet anybody here that I come to love so much that I simply must
|
||||
stay, it would be better for me to go home. That was the beginning of
|
||||
the end, I suppose, but the thought was so limp in spirit that it
|
||||
hardly made any difference in my life. Instead it was the perfect
|
||||
excuse to remain undecided: at any moment, the love of my life could
|
||||
waltz around the corner. Ironically, this straitjacket of indecision
|
||||
all but prevented me from doing anything about my bachelorhood.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Things did improve; I grew adamant that I would break down old habits
|
||||
that were once born of helplessness. I found it increasingly easier to
|
||||
“just do things,” as the chronically online say, but there was an upper
|
||||
limit to their magnitude. Such things as buying more expensive home
|
||||
furnishings or making slightly more long-term commitments became easier
|
||||
(think “one year” rather than “a couple of months”), but nonetheless I
|
||||
stillfelt tremendously stuck.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In the summer of 2025, my parents visited and stayed with me for two
|
||||
months, during which we went on many European trips alongside my daily
|
||||
life in Munich. Afterwards, I joined them on the plane ride home and
|
||||
visited Melbourne. This time, it was outside of the usual Christmas
|
||||
holiday period so as to really get a sense of how life back home had
|
||||
changed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I stayed a month, bringing the total time spent with family and friends
|
||||
to three months, which was a lot of time for me after having lived for
|
||||
so long abroad. Alhoutgh I had visited for a month almost every year,
|
||||
this time around felt a bit different. I felt like I was actually back
|
||||
home, and not just peering through the window. Maybe it was the time of
|
||||
year, maybe because of the high school reunion I attended, or maybe
|
||||
even just due to how much time had passed since COVID. Whatever it was,
|
||||
those three months made their mark. After saying our goodbyes at the
|
||||
airport, I headed to stand in line at the first security checkpoint.
|
||||
After turning the corner, I lost sight of my parents, and my heart
|
||||
sank.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For the first time in seven years, something felt wrong. I didn’t want
|
||||
to leave any more. I realised that my time in Munich was over. After
|
||||
two years of deliberating over the minutiae of my life and where I
|
||||
lived, the epiphany seemed to come in an instant. It was emotional.
|
||||
There was no logical breakthrough. No intellectual victory. I was just
|
||||
homesick. After six years, no less.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once I arrived back in Munich, everything about this charming place
|
||||
became grossly annoying overnight. The northern winter annoyed me. The
|
||||
people annoyed me. My job annoyed me. My entire surroundings were so
|
||||
fastidious that I couldn’t wait to get home. Even the German language
|
||||
that has brought me so much joy to learn, to which I effortlessly
|
||||
dedicated so much time and interest; even it became a nuisance. I
|
||||
wanted my native tongue back. I wanted effortless freedom of expression
|
||||
back. I was imprinted with a culture when I was younger and I just
|
||||
wanted it back.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Paradoxically, though, I felt fully liberated all of a sudden. Free to
|
||||
do whatever I wanted. Having made the decision to pack up and leave
|
||||
filled me with such a profound sense of direction that everything else
|
||||
was able to just slide into place, as if a circuit had been completed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
By forfeiting many potential futures for just one that I could count
|
||||
on, the organisation of the rest of my life was able to spontaneously
|
||||
emerge. I guess I always sensed this would happen, but I seriously
|
||||
underestimated the ramifications. A cataclysmic domino effect resolved
|
||||
a hierarchy of assumptions about who I was, where I was, and what I was
|
||||
doing, running incredibly deep. Before, I was basically floundering.
|
||||
Even though I could feel that I knew what feeling I wanted out of
|
||||
life—and indeed I strove to work towards it&mash;I was
|
||||
nonetheless totally directionless. And it was painful. Not so any more.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The irony of all this is that by making this decision, I suddenly feel
|
||||
like <em>I know what I’m doing here right now</em> and can arrange the
|
||||
coming months accordingly. I feel freer that ever to date people in
|
||||
Germany and with even more intention than I did before. I feel like I
|
||||
have permission to take on any domestic projects I feel like. Isn’t
|
||||
that strange? I sure thought so. In all honesty I expected the opposite
|
||||
outcome. But now there’s a timeline: I can see how it all fits into the
|
||||
grand plan.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
There are more reasons to move home, however, than just family and
|
||||
friends, as important as they are to me. They were simply the more
|
||||
obvious tip of the iceberg, as it were.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Trying to live in two cultures at once results in a kind of purgatory,
|
||||
and I suppose I never quite committed to living in one or the other.
|
||||
But over the last few years, especially upon contemplating the
|
||||
physiological and psychological impact of learnt helplessness, it
|
||||
became clear that there was a deep desire in me to self-actualise, and
|
||||
that it should be given more serious attention. During my preteen and
|
||||
early teen years, I was a prolific user of the Adobe suite, I loved to
|
||||
draw, write stories, and produce music. I loved to make silly games and
|
||||
build worlds with atmosphere. It was here where I was completely in my
|
||||
element, and I sense deep within myself that I need to reprise these
|
||||
pursuits. Alas, it would seem I can hardly find the time (or if I am
|
||||
honest, the energy) to invest in them. I have mostly blamed this on my
|
||||
day job, but it has become increasingly obvious that I’m mostly
|
||||
being stifled simply by <em>living alone in a foreign country</em>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The purpose of a culture is apparently to obviate the need to think
|
||||
about what to do as much as possible so as to free up energy for more
|
||||
niche specialisation. Having to think about how to greet somebody, or
|
||||
what is appropriate to do in public versus in private, or even what
|
||||
amount and what type of conversation is appropriate, and with
|
||||
whom—these are all things that are imparted simply by virtue of
|
||||
growing up in a particular culture. They are acquired in similar
|
||||
fashion to language (and some might say that these two are indeed
|
||||
exactly the same thing). If it weren’t for these effortless
|
||||
assumptions, it might become an exhausting moment-by-moment decision
|
||||
making process, in perpetuity. The broader cultural context can take
|
||||
care of much of this, both in the aforementioned sense of traditions
|
||||
and customs as well as by making use of particular industrial
|
||||
specialisations, such as manufacturing and the provision of services
|
||||
and application of expertise. This way, you can focus on you, so you
|
||||
can “relax into complexity”.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The imprinting of childhood seems especially important. It's possible,
|
||||
and certainly proven in the case of language acquisition, that children
|
||||
growing up with multiple cultural contexts in parallel find the
|
||||
context-switching relatively painless and easy, if not equally as easy
|
||||
as the monoculturally reared child. These additional cultures are like
|
||||
an extra sub-context within a single culture. Being “German” is, for
|
||||
example, another social language, with its own grammar, akin to
|
||||
attending church versus going to a bar. And it, too, has multiple
|
||||
manifestations.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
But I am not a child of Germany. Neither is German my native tongue. I
|
||||
may have long been a C2 speaker, and indeed, I live my life basically
|
||||
incognito unless I explicitly mention my background—no one really
|
||||
notices I’m not from around here. Yet no matter how good my language
|
||||
skills get, this mismatch still presents as an extra layer of
|
||||
abstraction. For the programmers out there: I do not feel like I’m
|
||||
running on “bare metal” like I do back home. The extra latency becomes
|
||||
cumulatively exhausting. I’m running in an interpreter, playing life on
|
||||
hard mode, when the opportunity to compile to machine code and switch
|
||||
to normal mode (or even easy) is right at my fingertips.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I previously described my circumstances as a purgatory, and this is an
|
||||
apt word to exemplify the cultural incongruencies. The word itself is
|
||||
frequently used—but only in English speaking cultures—in a
|
||||
looser sense to refer to a state of suffering that is almost always
|
||||
temporary, before a type of finalising “decision” relieves oneself of
|
||||
it. This is not so in other languages. Whilst the word and idea of a
|
||||
purgatory do exist in German (<em>Fegefeuer</em>), they don’t in this
|
||||
metaphorical sense. Many other types of analogies, turns of phrases,
|
||||
and cultural metaphors used in everyday life don't neatly map to one
|
||||
another (even though some do, thanks to the more remotely shared
|
||||
cultural and linguistic history).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I’ve come to believe that you might have to fully relinquish one
|
||||
cultural context for another in order to remove the extra cognitive
|
||||
burden. That would entail essentially “giving up” Australia once and
|
||||
for all to stay in Germany and focus on more specialised pursuits. Upon
|
||||
reflection, I think I really did do this for a few years, whilst I was
|
||||
still enthralled by the joy of learning a new language to proficiency,
|
||||
but its novelty soon faded.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When I use my computer, I always have two keyboard layouts active,
|
||||
depending on what I’m doing. One for writing German prose and
|
||||
messaging, and another with my “native” layout for everything else. I
|
||||
originally figured this two-pronged approach would make things easier,
|
||||
but really, it's constant chaos. Forever having one foot in each door
|
||||
is the same kind of chaos.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
As such, it now seems obvious to me that I have to return to a single
|
||||
keyboard layout and go home. If I want to “relax into complexity,” then
|
||||
I must free up as much energy as possible, and in making this decision
|
||||
I can feel another entanglement of helplessness slowly unravel.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
And this time, it’s a big one.
|
||||
</p>
|
||||
</article>
|
||||
17
public/blog/drafts/milk-in-context-five-years-ray-peat.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<meta name="title" content="Milk in Context: Five Years of Ray PEat">
|
||||
<meta name="slug" content="milk-in-context-five-years-ray-peat">
|
||||
<meta name="createdAt" content="">
|
||||
<meta name="updatedAt" content="">
|
||||
<meta name="tags" content="">
|
||||
<meta name="guid" content="ca23e27a-7c6d-40be-8b8d-9aba6711ad09">
|
||||
|
||||
|
||||
<article>
|
||||
<p>
|
||||
Growing up with grandparents from rural Sardinia, I was sensitised at a
|
||||
young age to the vast differences in lifestyle and worldview that came
|
||||
with inheriting two cultures. Donkeys pulling carts, milking goats, and
|
||||
festivals straight out of a fantasy novel featured regularly in the
|
||||
stories that my Nonno and Nonna told me.
|
||||
</p>
|
||||
</article>
|
||||
BIN
public/favicon-small.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
public/favicon.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
@@ -1,32 +1,25 @@
|
||||
<meta name="slug" content="hypothyroidism">
|
||||
<meta name="slug" content="three-hormones">
|
||||
<meta name="title-en" content="Progesterone Pregnenolone & DHEA - Three Youth-Associated Hormones">
|
||||
<meta name="title-de" content="">
|
||||
<meta name="title-de" content="Progesteron Pregnenolon & DHEA - Drei Jugend-assoziierte Hormone">
|
||||
<meta name="author" content="Ray Peat, übersetzt von Daniel Ledda">
|
||||
<meta name="tags" content="in-arbeit">
|
||||
<meta name="tags" content="">
|
||||
|
||||
<h1 lang="en">Progesterone Pregnenolone & DHEA - Three Youth-Associated Hormones</h1>
|
||||
<h1 lang="de">Progesteron Pregnenolon & DHEA - Drei Jugend-assoziierte hormone</h1>
|
||||
<h1 data-tunit>
|
||||
<span lang="en">Progesterone Pregnenolone & DHEA - Three Youth-Associated Hormones</span>
|
||||
<span lang="de">Progesteron Pregnenolon & DHEA - Drei Jugend-assoziierte Hormone</span>
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
<h3 data-tunit>
|
||||
<strong lang="en">PROGESTERONE INFORMATION</strong>
|
||||
<strong lang="de">INFORMATION ZU PROGESTERON</strong>
|
||||
</p>
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
<span lang="en">
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon)
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon), Endocrine Physiologist, specializing in hormonal changes in stress and aging
|
||||
</span>
|
||||
<span lang="de">
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon)
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span lang="en">
|
||||
Endocrine Physiologist, specializing in hormonal changes in stress and aging
|
||||
</span>
|
||||
<span lang="de">
|
||||
Endokriner Physiologe, mit Schwerpunkt Stress- und Alterungs-bedingte hormonelle Veränderungen
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon), Endokriner Physiologe, mit Schwerpunkt Stress- und Alterungs-bedingte hormonelle Veränderungen
|
||||
</span>
|
||||
</p>
|
||||
|
||||
@@ -42,14 +35,14 @@
|
||||
also profoundly dependent on progesterone.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Vor sechzig Jahren wurde entdeckt, dass Progesteron das wichtigste Hormon, das von den Eierstöcken hergestellt
|
||||
wird. Da es erkannt wurde, dass es für die Fruchtbarkeit nötig ist, sowie für die Aufrechterhaltung einer
|
||||
Vor sechzig Jahren wurde entdeckt, dass Progesteron das wichtigste Hormon ist, das von den Eierstöcken hergestellt
|
||||
wird. Da es erkannt wurde, dass es für die Fruchtbarkeit notwendig ist, sowie für die Aufrechterhaltung einer
|
||||
gesunden Schwangerschaft, wurde es das "Pro-Gestations-Hormon" genannt, und sein Name lässt manchmal glauben,
|
||||
dass es nicht vonnöten ist, wenn man keine Schwangerschaft möchte. Tatsächlich ist es eines der schützendsten
|
||||
Hormone, die vom Körper hergestellt werden, und die großen Mengen, die während einer Schwangerschaft
|
||||
ausgeschüttet werden, sind auf das hohe Bedürfnis des Säuglings zurückzuführen, Schutz gegen seine stressvolle
|
||||
Umgebung zu haben. Normalerweise enthält das Gehirn eine sehr hohe Konzentration an Progesteron, was dessen
|
||||
schützende Wirkung auf das wichstige Organ widerspiegelt.
|
||||
dass es nicht vonnöten ist, wenn man keine Schwangerschaft möchte. Tatsächlich ist es ein Hormon, das den größten Schutz
|
||||
aller körpereigenen Hormone bietet, und die großen Mengen, die während einer Schwangerschaft
|
||||
ausgeschüttet werden, sind auf darauf zurückzuführen, dass der Säugling ein hohes Bedürfnis nach Schutz gegen seine stressvolle
|
||||
Umgebung hat. Normalerweise enthält das Gehirn eine sehr hohe Konzentration an Progesteron, was dessen
|
||||
schützende Wirkung auf das wichtigste Organ widerspiegelt.
|
||||
</span>
|
||||
</p>
|
||||
|
||||
@@ -64,7 +57,7 @@
|
||||
<span lang="de">
|
||||
In Experimenten wurde gezeigt, dass Progesteron ein grundlegendes Adaptations- und Resistenzhormon gegen Stress
|
||||
ist. Die Nebennieren nutzen es, um deren Antistress-Hormone herzustellen, und wenn genügend Progesteron
|
||||
vorhanden ist, müssen sie das potentiell schädliche Cortison produzieren. Bei einem Progesteronmangel
|
||||
vorhanden ist, müssen sie das potenziell schädliche Cortison nicht produzieren. Bei einem Progesteronmangel
|
||||
produzieren wir zu viel Cortison, und ein Cortisonüberschuss verursacht Osteoporose, Alterung der Haut,
|
||||
Schädigung der Gehirnzellen, und die Ansammlung von Fett, vor allem am Rücken und am Bauch.
|
||||
</span>
|
||||
@@ -97,11 +90,11 @@
|
||||
</span>
|
||||
<span lang="de">
|
||||
Wenn Progesteron in einer Lösung mit Vitamin E zugeführt wird, wird es sehr effizient aufgenommen, und wird
|
||||
schnell an alle Körpergewebe abgegeben. Sollte eine Frau Eierstöcke haben, hilft ihnen Progesteron dabei,
|
||||
sowohol Progesteron selber als auch Östrogen bei Bedarf zu produzieren, und hilft auch, eine normale
|
||||
schnell an alle Körpergewebe abgegeben. Sollte eine Frau Eierstöcke haben, hilft ihr Progesteron dabei,
|
||||
bei Bedarf sowohl Progesteron selber als auch Östrogen zu produzieren, und hilft auch, eine normale
|
||||
Funktionsweise der Schilddrüse sowie der anderen Drüsen wiederherzustellen. Sollten ihre Eierstöcke entfernt
|
||||
worden sein, sollte Progesteron konsequent eingenommen werden um die fehlende Versorgung zu ersetzen. Ein
|
||||
Progesteronmangel wurde oft mit einer erhöhtem Krebsrisiko assoziiert und Progesteron wurde oft bei einer
|
||||
worden sein, sollte Progesteron konsequent eingenommen werden, um die fehlende Versorgung zu ersetzen. Ein
|
||||
Progesteronmangel wurde oft mit einem erhöhten Krebsrisiko assoziiert und es wurde ebenfalls oft bei einer
|
||||
Krebsbehandlung eingesetzt.
|
||||
</span>
|
||||
</p>
|
||||
@@ -119,7 +112,7 @@
|
||||
<span lang="de">
|
||||
Es ist wichtig zu betonen, dass Progesteron nicht einfach nur ein Schwangerschaftshormon ist. Es "nur zu
|
||||
verwenden, um die Gebärmutter zu schützen", wäre, als würde man einem Mann erzählen, er würde Testosteron nicht
|
||||
brauchen, wenn er keine Kinderpläne haben sollte, außer dass Progesteron eine viel größere, grundlegende
|
||||
brauchen, wenn er keine Kinderpläne haben sollte, außer dass Progesteron eine viel größere, grundlegendere
|
||||
Bedeutung als Testosteron hat. Obwohl Männer auch natürlicherweise Progesteron produzieren,
|
||||
und manchmal von dessen Gebrauch profitieren, ist es kein männliches Hormon. Einige Leute bekommen diesen
|
||||
Eindruck, weil einige Ärzte empfehlen, Östrogen mit entweder Testosteron oder Progesteron zu kombinieren, um vor
|
||||
@@ -136,16 +129,17 @@
|
||||
digestion and absorption of the food.
|
||||
</span>
|
||||
<span lang="de">
|
||||
In einer Lösung mit Vitamin E beginnt Progesteron, in die Blutbahn zu gelangen, kurz nachdem es ein Membran
|
||||
berührt, zum Beispiel die Lippen, die Zunge, das Zahnfleisch, oder den Gaumen, aber wenn es verschluckt wird,
|
||||
wird es kontinuierlich im Laufe des Verdauungsprozesses aufgenommen. Bei gleichzeitiger Einnahme mit Essen
|
||||
findet die Aufnahme mit der gleichen Geschwindigkeit der Verdauung und Aufnahme des Essens statt.
|
||||
In einer Lösung mit Vitamin E beginnt Progesteron, kurz nachdem es eine Membran berührt (zum Beispiel die Lippen, die
|
||||
Zunge, das Zahnfleisch, oder den Gaumen) in die Blutbahn zu gelangen, aber wenn es verschluckt wird, wird es
|
||||
kontinuierlich im Laufe des Verdauungsprozesses aufgenommen. Bei gleichzeitiger Einnahme mit Essen findet die Aufnahme
|
||||
mit der gleichen Geschwindigkeit der Verdauung und der Aufnahme des Essens statt.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<hr>
|
||||
<h3 data-tunit>
|
||||
<strong lang="en">PREGNENOLONE</strong>
|
||||
<strong lang="de">PREGNENOLON</strong>
|
||||
</p>
|
||||
</h3>
|
||||
<p>
|
||||
<span lang="en">
|
||||
Pregnenolone, which is the raw material for producing many of the hormones of stress and adaptation, was
|
||||
@@ -155,7 +149,7 @@
|
||||
effect.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Pregnenolon, das Rohmaterial zur Herstellung vieler der Hormone von Stress und Adaptation, ist seit frühestens
|
||||
Pregnenolon, das Rohmaterial zur Herstellung vieler der Hormone von Stress und Adaptation, ist seit bereits
|
||||
1934 bekannt, aber es wurde einige Jahre als inaktive Substanz wahrgenommen. Ein Grund für diesen Glauben ist,
|
||||
dass die ersten Versuche mit Pregnenolon mit gesunden Jungtieren waren. Da diese Tiere bereits hohe Mengen von
|
||||
Pregnenolon produzierten (und zwar im Gehirn, in den Nebennieren und in den Gonaden), war die zusätzliche Gabe
|
||||
@@ -186,7 +180,7 @@
|
||||
haben müsste, und jede Droge eine Krankheit. Die Nebeneffekte einiger dieser synthetischen Hormone waren so
|
||||
schrecklich, dass viele mit der Zeit Angst vor ihnen bekamen. Zum Beispiel können synthetische Varianten von
|
||||
"Cortison" die Immunität zerstören und Osteoporose, Diabetes, und schnelles Altern verursachen, mit dem Verlust
|
||||
von Haut- und Haarpigmentierung, und extremer Verdünnung der Haut.
|
||||
von Haut- und Haarpigmentierung sowie extremer Verdünnung der Haut.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -198,9 +192,9 @@
|
||||
minimized.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Natürliches Pregnenolon ist in jungen Menschen beider Geschlechter in hohen Konzentrationen vorhanden, und eine
|
||||
Natürliches Pregnenolon ist in jungen Menschen beider Geschlechter in hohen Konzentrationen vorhanden und ein
|
||||
Grund für die hohe Menge, die während der Jugend produziert wird, ist, dass es uns einen grundlegenden Schutz
|
||||
gegen die schädlichen Nebeneffekten biete, die von einem Ungleichgewicht selbst unserer eigenen natürlichen Hormone
|
||||
gegen die schädlichen Nebeneffekte bietet, die von einem Ungleichgewicht selbst unserer eigenen natürlichen Hormone
|
||||
hervorgerufen werden können. Ein Überschuss natürlichen Cortisons oder Östrogens kann schädlich sein, aber wenn
|
||||
ein Überfluss von Pregnenolon besteht, werden diese Nebeneffekte verhindert oder minimiert.
|
||||
</span>
|
||||
@@ -215,12 +209,12 @@
|
||||
pregnenolone.
|
||||
</span>
|
||||
<span lang="de">
|
||||
In a healthy young person or animal, taking even a large dose of pregnenolone has no hormone-like or
|
||||
drug-like action at all. It is unique in this way. But if the animal or person is under stress, and
|
||||
producing more cortisone than usual, taking pregnenolone causes the cortisone to come down to the normal
|
||||
level. After the age of 40 or 45, it seems that everyone lives in a state of continuous "stress," just as a
|
||||
normal part of aging. This coincides with the body's decreased ability to produce an abundance of
|
||||
pregnenolone.
|
||||
Bei einem gesunden, jungen Menschen oder Tier weist die Zufuhr von selbst einer hohen Dosis Pregnenolon keine hormon-
|
||||
oder drogenähnlichen Wirkungen auf. Es ist auf diese Weise einzigartig. Aber wenn der Mensch oder das Tier unter
|
||||
Stress leidet und mehr Cortison als gewöhnlich produziert, sorgt die Gabe von Pregnenolon dafür, dass das
|
||||
Cortison auf seinen normalen Spiegel sinkt. Nach dem Alter von 40 oder 45 Jahren befindet sich scheinbar jeder einfach
|
||||
im Zuge des normalen Alterungsprozesses in einem ununterbrochenen "Stresszustand". Das geht mit der geringeren
|
||||
Fähigkeit des Körpers einher, einen Überfluss von Pregnenolon herzustellen.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -234,13 +228,14 @@
|
||||
People feel a mood of resilience and an ability to confront challenges.
|
||||
</span>
|
||||
<span lang="de">
|
||||
When aging rats are given a supplement of pregnenolone, it immediately improves their memory and general
|
||||
performance. Human studies, as early as the 1940s, have also demonstrated improved performance of ordinary
|
||||
tasks. It is now known that pregnenolone is one of the major hormones in the brain. It is produced by
|
||||
certain brain cells, as well as being absorbed into the brain from the blood. It protects brain cells from
|
||||
injury caused by fatigue, and an adequate amount has a calming effect on the emotions, which is part of the
|
||||
reason that it protects us from the stress response that leads to an excessive production of cortisone.
|
||||
People feel a mood of resilience and an ability to confront challenges.
|
||||
Wenn alternden Ratten Pregnenolon zugeführt wird, steigert es sofort ihr Gedächtnis und ihre allgemeine Leistung.
|
||||
Studien zu Menschen demonstrierten bereits in den 1940er Jahren eine gesteigerte Leistung bei alltäglichen
|
||||
Aufgaben. Es ist mittlerweile bekannt, dass Pregnenolon eines der wichtigsten Hormone im Gehirn ist. Es wird von
|
||||
bestimmten Gehirnzellen produziert und wird zudem vom Gehirn aus dem Blut aufgenommen. Es schützt Gehirnzellen
|
||||
vor durch Erschöpfung hervorgerufenen Verletzungen und eine ausreichende Menge wirkt beruhigend auf die
|
||||
Emotionen. Gerade diese Wirkung erklärt zumindest zum Teil, warum es uns vor der Stressreaktion schützt, die zu einer
|
||||
erhöhten Cortisonproduktion führt. Es führt zu einer subjektiven Wahrnehmung von Belastbarkeit und der
|
||||
Fähigkeit, sich Herausforderungen stellen zu können.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -252,11 +247,12 @@
|
||||
proven to prevent the tumors that can be caused by estrogen.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Many people have noticed that pregnenolone has a "face-lifting" action. This effect seems to be produced by
|
||||
improved circulation to the skin, and by an actual contraction of some muscle-like cells in the skin. A
|
||||
similar effect can improve joint mobility in arthritis, tissue elasticity in the lungs, and even eyesight.
|
||||
Many studies have shown it to be protective of "fibrous tissues" in general, and in this connection it was
|
||||
proven to prevent the tumors that can be caused by estrogen.
|
||||
Es wurde von vielen Personen bemerkt, dass Pregnenolon eine gesichtsstraffende Wirkung hat. Diese Wirkung scheint
|
||||
durch eine verbesserte Durchblutung der Haut hervorgerufen zu werden, sowie durch die tatsächliche Anspannung einiger
|
||||
muskelähnlichen Zellen in der Haut. Eine ähnliche Wirkung kann bei einer Arthrose die Mobilität der Gelenke
|
||||
verbessern, sowie die Elastizität des Lungengewebes oder sogar die Sehkraft. Es wurde in vielen Studien gezeigt,
|
||||
dass es allgemein vor "fibrotischen Geweben" schützt, und in diesem Zusammenhang wurde bewiesen, dass es den
|
||||
Tumoren vorbeugen kann, die durch Östrogen verursacht werden können.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -270,30 +266,27 @@
|
||||
"normalizing" effect on the other glands helps to account for its wide range of beneficial effects.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Pregnenolone is largely converted into two other "youth-associated" protective hormones, progesterone and
|
||||
DHEA. At the age of 30, both men and women produce roughly 30 to 50 mg. of pregnenolone daily. When taken
|
||||
orally, even in the powdered form, it is absorbed fairly well. One dose of approximately 300 mg (the size of
|
||||
an aspirin tablet) keeps acting for about a week, as absorption continues along the intestine, and as it is
|
||||
"recycled" in the body. Part of this long lasting effect is because it improves the body's ability to
|
||||
produce its own pregnenolone. It tends to improve function of the thyroid and other glands, and this
|
||||
"normalizing" effect on the other glands helps to account for its wide range of beneficial effects.
|
||||
Pregnenolon wird größtenteils in zwei andere "Jugend-assoziierte", schützende Hormone umgewandelt, nämlich Progesteron
|
||||
und DHEA. Sowohl Männer als auch Frauen im Alter von 30 Jahren stellen ungefähr 30 bis 50 mg Pregnenolon
|
||||
täglich her. Bei einer oralen Zufuhr, selbst in Pulverform, wird es relativ gut aufgenommen. Eine Dosis von ca. 300
|
||||
mg (der Größe einer Aspirin-Tablette) behält ungefähr eine Woche lang seine Wirkung bei, während es entlang des
|
||||
Verdauungstraktes weiter aufgenommen und im Körper "wiederverwertet" wird. Diese lang anhaltende Wirkung hat es
|
||||
teilweise der Eigenschaft zu verdanken, dass es dem Körper dabei hilft, sein eigenes Pregnenolon herzustellen.
|
||||
Es neigt dazu, die Schilddrüsenfunktion zu fördern sowie die Funktion anderer Drüsen, und diese "normalisierende" Wirkung
|
||||
auf andere Drüsen hilft dabei, das breite Spektrum seiner positiven Wirkungen zu erklären.
|
||||
</span>
|
||||
</p>
|
||||
<p><strong>DHEA: ANOTHER YOUTH-ASSOCIATED HORMONE</strong></p>
|
||||
<hr>
|
||||
<h3 data-tunit>
|
||||
<strong lang="en">DHEA: ANOTHER YOUTH-ASSOCIATED HORMONE</strong>
|
||||
<strong lang="de">DHEA: EIN WEITERES JUGEND-ASSOZIIERTES HORMON</strong>
|
||||
</h3>
|
||||
<p>
|
||||
<span lang="en">
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon)
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon), Endocrine Physiologist
|
||||
</span>
|
||||
<span lang="en">
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon)
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<span lang="en">
|
||||
Endocrine Physiologist
|
||||
</span>
|
||||
<span lang="en">
|
||||
Endocrine Physiologist
|
||||
<span lang="de">
|
||||
Raymond Peat, MA, PhD (Univ. of Oregon), Endokriner Physiologe
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -306,13 +299,13 @@
|
||||
the blood does.
|
||||
</span>
|
||||
<span lang="de">
|
||||
DHEA (dehydroepiandrosterone) has a technical-sounding name because it has never been identified with a
|
||||
single dominant function, in spite of its abundance in the body. Many researchers still think of it as a
|
||||
substance produced by the adrenal glands, but experiments show that animals without adrenals are able to
|
||||
produce it in normal amounts. Much of it is formed in the brain (from pregnenolone), but it is probably
|
||||
produced in other organs, including the skin. The brain contains a much higher concentration of DHEA than
|
||||
the blood does.
|
||||
</span>
|
||||
DHEA (Dehydroepiandrosteron) hat einen technisch klingenden Namen, weil dafür noch keine einzige dominante
|
||||
Funktion identifiziert wurde, obwohl es sich im Körper in großen Mengen befindet. Viele Forscher betrachten es
|
||||
immer noch als Substanz, die von den Nebennieren produziert wird, aber Experimente zeigen, dass Tiere ohne
|
||||
Nebennieren in der Lage sind, es in normalen Mengen zu produzieren. Viel davon wird im Gehirn (aus Pregnenolon)
|
||||
hergestellt, aber es wird wohl auch in anderen Organen produziert, wie der Haut. Das Gehirn hat eine höhere
|
||||
Konzentration von DHEA als das Blut.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<span lang="en">
|
||||
@@ -323,11 +316,12 @@
|
||||
specialized hormones is a major function of DHEA and the other youth-associated hormones.
|
||||
</span>
|
||||
<span lang="de">
|
||||
In old age, we produce only about 5% as much as we do in youth. This is about the same decrease that occurs
|
||||
with progesterone and pregnenolone. The other hormones (for example, cortisone) do not decrease so much; as
|
||||
a result, our balance shifts continually during aging toward dominance by hormones such as cortisone, which
|
||||
use up more and more body substance, without rebuilding it. Protection against the toxic actions of these
|
||||
specialized hormones is a major function of DHEA and the other youth-associated hormones.
|
||||
Im hohen Alter produzieren wir nur noch ungefähr 5 % so viel davon, wie während der Jugend. Diese Abnahme
|
||||
entspricht ungefähr der von Progesteron und Pregnenolon. Die anderen Hormone, wie zum Beispiel Cortison, nehmen
|
||||
nicht so viel ab; das hat zur Folge, dass unser Hormonhaushalt im Laufe des Alterns immer weiter in die
|
||||
Richtung der Dominanz von Hormonen wie Cortison rückt, die immer mehr Körpersubstanz verbrauchen, ohne sie
|
||||
wiederherzustellen. Schutz gegen die toxischen Wirkungen dieser spezialisierten Hormone ist eine wichtige
|
||||
Funktion von DHEA und den anderen Jugend-assoziierten Hormonen.
|
||||
</span>
|
||||
</p>
|
||||
|
||||
@@ -343,14 +337,16 @@
|
||||
many symptoms caused by osteoporosis and arthritis, even when applied topically in an oily solution.
|
||||
</span>
|
||||
<span lang="de">
|
||||
For example, starvation, aging, and stress cause the skin to become thin and fragile. An excess of
|
||||
cortisone--whether it is from medical treatment, or from stress, aging, or malnutrition--does the same
|
||||
thing. Material from the skin is dissolved to provide nutrition for the more essential organs. Other organs,
|
||||
such as the muscles and bones, dissolve more slowly, but just as destructively, under the continued
|
||||
influence of cortisone. DHEA blocks these destructive effects of cortisone, and actively restores the normal
|
||||
growth and repair processes to those organs, strengthening the skin and bones and other organs. Stimulation
|
||||
of bone-growth by DHEA has been demonstrated in vitro (in laboratory tests), and it has been used to relieve
|
||||
many symptoms caused by osteoporosis and arthritis, even when applied topically in an oily solution.
|
||||
Es führen zum Beispiel das Hungern, das Altern, und Stress dazu, dass sich die Haut verdünnt und dass sie
|
||||
brüchiger wird. Ein Überschuss von Cortison—ob durch medizinische Behandlung oder durch Stress, Alterung, oder
|
||||
Mangelernährung—hat immer dieselbe Wirkung. Material aus der Haut wird abgebaut, um essenziellere Organe mit
|
||||
Ressourcen zu versorgen. Andere Organe, wie die Muskeln und die Knochen, lösen sich unter dem Einfluss von
|
||||
Cortison etwas langsamer auf, aber tun das auf die gleiche zerstörerische Art und Weise. DHEA blockiert diese
|
||||
zerstörerische Wirkung von Cortison und trägt aktiv zu normalem Wachstum und den Wiederherstellungsprozessen
|
||||
dieser Organe bei, und stärkt dabei die Haut und die Knochen sowie die anderen Organe. Die Stimulierung von
|
||||
Knochenwachstum durch DHEA wurde in vitro (in Laborversuchen) gezeigt, und es wurde zur Linderung vieler der
|
||||
Symptome von Osteoporose und Arthrose eingesetzt, selbst wenn es in einer Lösung mit einem Öl auf die Haut
|
||||
aufgetragen wird.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -360,9 +356,9 @@
|
||||
diseases.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Estrogen is known to produce a great variety of immunological defects, and DHEA, apparently by its balancing
|
||||
and restorative actions, is able to correct some of those immunological defects, including some "autoimmune"
|
||||
diseases.
|
||||
Östrogen kann bekanntermaßen eine große Zahl immunologischer Defekte hervorrufen, und DHEA ist
|
||||
in der Lage, einige dieser Defekte (einschließlich einiger "autoimmunen" Krankheiten) zu korrigieren, scheinbar
|
||||
durch seine ausgleichenden und stärkenden Wirkungen.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -372,9 +368,9 @@
|
||||
properties probably involve many other functions.
|
||||
</span>
|
||||
<span lang="de">
|
||||
It is established that DHEA protects against cancer, but it isn't yet understood how it does this. It
|
||||
appears to protect against the toxic cancer-producing effects of excess estrogen, but its anti-cancer
|
||||
properties probably involve many other functions.
|
||||
Es ist etabliert, dass DHEA vor Krebs schützt, aber der genaue Mechanismus ist noch nicht bekannt. Es scheint
|
||||
vor den toxischen Krebs-verursachenden Wirkungen überschüssigen Östrogens zu schützen, aber bei seinen
|
||||
Anti-Krebs-Eigenschaften spielen wahrscheinlich viele andere Funktionen eine Rolle.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -387,12 +383,12 @@
|
||||
energy level and helps to prevent obesity.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Diabetes can be produced experimentally by certain poisons which kill the insulin-producing cells in the
|
||||
pancreas. Rabbits were experimentally made diabetic, and when treated with DHEA their diabetes was cured. It
|
||||
was found that the insulin-producing cells had regenerated. Many people with diabetes have used brewer's
|
||||
yeast and DHEA to improve their sugar metabolism. In diabetes, very little sugar enters the cells, so
|
||||
fatigue is a problem. DHEA stimulates cells to absorb sugar and to burn it, so it increases our general
|
||||
energy level and helps to prevent obesity.
|
||||
Diabetes kann in Experimenten durch einige Giftstoffe hervorgerufen werden, die die insulinproduzierenden Zellen
|
||||
der Bauchspeicheldrüse abtöten. Kaninchen wurden experimentell zu Diabetikern gemacht und wurden nach einer
|
||||
Behandlung mit DHEA geheilt. Es wurde entdeckt, dass die insulinproduzierenden Zellen regeneriert wurden. Viele
|
||||
Diabetiker verwendeten Bierhefe und DHEA, um ihren Zuckerstoffwechsel zu verbessern. Bei Diabetes gelangt sehr
|
||||
wenig Zucker in die Zellen und Ermüdung ist daher oft ein Problem. DHEA stimuliert die Zellen, Zucker aufzunehmen
|
||||
und ihn zu verbrennen, und erhöht so das allgemeine Energieniveau.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -407,14 +403,14 @@
|
||||
gland and the liver.
|
||||
</span>
|
||||
<span lang="de">
|
||||
Young people produce about 12 to 15 milligrams of DHEA per day, and that amount decreases by about 2 mg. per
|
||||
day for every decade after the age of 30. This is one of the reasons that young people eat more without
|
||||
getting fat, and tolerate cold weather better: DHEA, like the thyroid hormone, increases our heat production
|
||||
and ability to burn calories. At the age of 50, about 4 mg. of DHEA per day will usually restore the level
|
||||
of DHEA in the blood to a youthful level. It is important to avoid taking more than needed, since some
|
||||
people (especially if they are deficient in progesterone, pregnenolone, or thyroid) can turn the excess into
|
||||
estrogen or testosterone, and large amounts of those sex hormones can disturb the function of the thymus
|
||||
gland and the liver.
|
||||
Junge Menschen produzieren ungefähr 12 bis 15 Milligramm DHEA pro Tag und dieser Wert nimmt mit jedem
|
||||
Jahrzehnt nach einem Alter von 30 Jahren um ca. 2 mg ab. Das ist einer der Gründe, warum junge Menschen mehr
|
||||
essen, ohne dick zu werden, und die Kälte besser ertragen können: DHEA, wie das Schilddrüsenhormon, erhöht
|
||||
unsere Hitzeproduktion und unsere Fähigkeit, Kalorien zu verbrennen. Im Alter von 50 Jahren sorgen ca. 4 mg
|
||||
DHEA pro Tag dafür, den Blutspiegel auf ein jugendlicheres Niveau zu erhöhen. Es ist wichtig, nicht mehr als
|
||||
nötig zu nehmen, da es von einigen Leuten (besonders denen, die einen Progesteron-, Pregnenolon- oder
|
||||
Schilddrüsenhormonmangel aufweisen) in überschüssiges Östrogen oder Testosteron umgewandelt wird, und hohe
|
||||
Mengen dieser Sexualhormone können die Funktion des Thymus und der Leber stören.
|
||||
</span>
|
||||
</p>
|
||||
|
||||
@@ -424,22 +420,23 @@
|
||||
can cause the liver to enlarge, and the thymus to shrink.
|
||||
</span>
|
||||
<span lang="de">
|
||||
People who have taken an excess of DHEA have been found to have abnormally high estrogen levels, and this
|
||||
can cause the liver to enlarge, and the thymus to shrink.
|
||||
Bei Personen, die überschüssiges DHEA einnahmen, wurden abnormal hohe Östrogenspiegel festgestellt, und das kann
|
||||
eine Vergrößerung der Leber verursachen sowie die Verkleinerung des Thymus.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<span lang="en">
|
||||
One study has found that the only hormone abnormality in a groupt of Alzheimers patients' brains was an
|
||||
One study has found that the only hormone abnormality in a group of Alzheimers patients' brains was an
|
||||
excess of DHEA. In cell culture, DHEA can cause changes in glial cells resembling those seen in the aging
|
||||
brain. These observations suggest that DHEA should be used with caution. Supplements of pregnenolone and
|
||||
thyroid seem to be the safest way to optimize DHEA production.
|
||||
</span>
|
||||
<span lang="de">
|
||||
One study has found that the only hormone abnormality in a groupt of Alzheimers patients' brains was an
|
||||
excess of DHEA. In cell culture, DHEA can cause changes in glial cells resembling those seen in the aging
|
||||
brain. These observations suggest that DHEA should be used with caution. Supplements of pregnenolone and
|
||||
thyroid seem to be the safest way to optimize DHEA production.
|
||||
Eine Studie zeigte, dass die einzige hormonelle Anomalie in den Gehirnen einer Gruppe von Alzheimer-Patienten
|
||||
ein DHEA-Überschuss war. In einer Zellenkultur kann DHEA Veränderungen in Gliazellen verursachen, die denen
|
||||
im alternden Gehirn ähneln. Diese Beobachtungen legen nahe, dass DHEA mit Vorsicht zu verwenden ist.
|
||||
Pregnenolon- und Schilddrüsenhormonpräparate scheinen der sicherste Weg zu sein, die Produktion von DHEA zu
|
||||
optimieren.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -450,3 +447,6 @@
|
||||
© Ray Peat 2006. All Rights Reserved. www.RayPeat.com
|
||||
</span>
|
||||
</p>
|
||||
<p data-notranslate>
|
||||
<a href="https://raypeat.com/articles/articles/three-hormones.shtml">Originalartikel und Quellenverzeichnis</a>
|
||||
</p>
|
||||
|
||||
@@ -1,185 +0,0 @@
|
||||
:root {
|
||||
--subject-spacing: 40px;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #292929;
|
||||
font-family: "Roboto", serif;
|
||||
}
|
||||
|
||||
.title_name {
|
||||
font-size: 50px;
|
||||
color: floralwhite;
|
||||
font-family: "Roboto Slab", "Times New Roman", Times, serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title_name img {
|
||||
margin: 20px;
|
||||
height: 100px;
|
||||
width: auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.spinMe {
|
||||
animation: spin 1s infinite linear;
|
||||
}
|
||||
|
||||
.shakeMe {
|
||||
animation: shake 0.2s infinite linear;
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
0% {
|
||||
transform: scale(1) translate(1px, 1px) rotate(0deg);
|
||||
}
|
||||
25% {
|
||||
transform: scale(0.95) translate(-1px, -2px) rotate(-1deg);
|
||||
}
|
||||
50% {
|
||||
transform: scale(0.9) translate(-3px, 0px) rotate(1deg);
|
||||
}
|
||||
75% {
|
||||
transform: scale(0.95) translate(3px, 2px) rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1) translate(-1px, 2px) rotate(-1deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg) scale(1);
|
||||
filter: hue-rotate(0deg) saturate(5);
|
||||
}
|
||||
25% {
|
||||
transform: rotate(90deg) scale(2);
|
||||
}
|
||||
50% {
|
||||
transform: rotate(180deg) scale(1);
|
||||
}
|
||||
75% {
|
||||
transform: rotate(270deg) scale(2);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg) scale(1);
|
||||
filter: hue-rotate(360deg) saturate(5);
|
||||
}
|
||||
}
|
||||
|
||||
.supercontainer {
|
||||
padding-top: 3em;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 50em;
|
||||
margin: 20px auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1024px) {
|
||||
.main {
|
||||
width: 35em;
|
||||
padding: 20px;
|
||||
}
|
||||
:root {
|
||||
--subject-spacing: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
.title_name img {
|
||||
margin: 10px;
|
||||
height: 60px;
|
||||
width: auto;
|
||||
}
|
||||
.title_name {
|
||||
font-size: 30px;
|
||||
}
|
||||
.main {
|
||||
width: 20em;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
span.subjecttitle {
|
||||
height: 100%;
|
||||
font-family: "Roboto Slab", "Times New Roman", Times, serif;
|
||||
font-size: 20px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.subject:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.subject:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.subject {
|
||||
margin-top: var(--subject-spacing);
|
||||
margin-bottom: var(--subject-spacing);
|
||||
}
|
||||
|
||||
.resourcelist {
|
||||
margin-top: 2px;
|
||||
background-color: white;
|
||||
border-style: solid;
|
||||
border-color: #292929;
|
||||
border-width: 1px;
|
||||
border-radius: 5px;
|
||||
|
||||
a:first-of-type {
|
||||
.resource {
|
||||
padding: 15px 20px 10px 20px;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
a:last-of-type {
|
||||
.resource {
|
||||
padding: 10px 20px 15px 20px;
|
||||
border-radius: 0 0 5px 5px;
|
||||
}
|
||||
}
|
||||
|
||||
a:only-of-type {
|
||||
.resource {
|
||||
border-radius: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.resource {
|
||||
position: relative;
|
||||
background-color: white;
|
||||
padding: 10px 20px 10px 20px;
|
||||
display: block;
|
||||
color: #333333;
|
||||
text-decorAtion: none;
|
||||
transition: background-color 200ms;
|
||||
}
|
||||
|
||||
.resource:hover {
|
||||
background-color: #bde4ff;
|
||||
}
|
||||
|
||||
.resource:active {
|
||||
box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.50) inset;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" href="/home/icon.webp" />
|
||||
<link rel="stylesheet" href="/home/main.css" />
|
||||
<link rel="icon" href="/home/img/dj.gif" />
|
||||
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Roboto&family=Roboto+Slab:wght@600&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<!-- SSR HEAD OUTLET -->
|
||||
</head>
|
||||
<body>
|
||||
<div id="app-root"><!-- SSR OUTLET --></div>
|
||||
</body>
|
||||
</html>
|
||||
0
public/manifest.json
Normal file
BIN
public/somaesque/ColorWheel.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
1
public/somaesque/build/bundle.css
Normal file
7
public/somaesque/build/bundle.js
Normal file
1
public/somaesque/build/bundle.js.map
Normal file
BIN
public/somaesque/favicon.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
72
public/somaesque/global.css
Normal file
@@ -0,0 +1,72 @@
|
||||
html, body {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #333;
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
}
|
||||
|
||||
a {
|
||||
color: rgb(0,100,200);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: rgb(0,80,160);
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
}
|
||||
|
||||
input, button, select, textarea {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
-webkit-padding: 0.4em 0;
|
||||
padding: 0.4em;
|
||||
margin: 0 0 0.5em 0;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
input:disabled {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
button {
|
||||
color: #333;
|
||||
background-color: #f4f4f4;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
button:not(:disabled):active {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
border-color: #666;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
background-color: transparent;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(0,0,0,0.25);
|
||||
}
|
||||
19
public/somaesque/index.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
||||
|
||||
<title>Somaesque</title>
|
||||
|
||||
<link rel='icon' type='image/png' href='./favicon.png'>
|
||||
<link rel='stylesheet' href='./global.css'>
|
||||
<link rel='stylesheet' href='./build/bundle.css'>
|
||||
|
||||
<script defer src='./build/bundle.js'></script>
|
||||
</head>
|
||||
<script>
|
||||
</script>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
BIN
public/somaesque/main.wasm
Normal file
BIN
public/somaesque/resources/3x3x4.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
674
public/somaesque/resources/c000000.obj
Normal file
@@ -0,0 +1,674 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v 0.399961 0.500000 -0.399961
|
||||
v 0.500000 0.399961 -0.399961
|
||||
v 0.399961 0.399961 -0.500000
|
||||
v 0.438244 0.492385 -0.399961
|
||||
v 0.470699 0.470699 -0.399961
|
||||
v 0.399961 0.492385 -0.438244
|
||||
v 0.439203 0.483194 -0.439203
|
||||
v 0.465612 0.465612 -0.437212
|
||||
v 0.457718 0.457718 -0.457718
|
||||
v 0.492385 0.399961 -0.438244
|
||||
v 0.470699 0.399961 -0.470699
|
||||
v 0.492385 0.438244 -0.399961
|
||||
v 0.483194 0.439203 -0.439203
|
||||
v 0.465612 0.437212 -0.465612
|
||||
v 0.399961 0.438244 -0.492385
|
||||
v 0.399961 0.470699 -0.470699
|
||||
v 0.438244 0.399961 -0.492385
|
||||
v 0.439203 0.439203 -0.483194
|
||||
v 0.437212 0.465612 -0.465612
|
||||
v 0.500000 -0.399961 -0.399961
|
||||
v 0.399961 -0.500000 -0.399961
|
||||
v 0.399961 -0.399961 -0.500000
|
||||
v 0.492385 -0.438244 -0.399961
|
||||
v 0.470699 -0.470699 -0.399961
|
||||
v 0.492385 -0.399961 -0.438244
|
||||
v 0.483194 -0.439203 -0.439203
|
||||
v 0.465612 -0.465612 -0.437212
|
||||
v 0.457718 -0.457718 -0.457718
|
||||
v 0.399961 -0.492385 -0.438244
|
||||
v 0.399961 -0.470699 -0.470699
|
||||
v 0.438244 -0.492385 -0.399961
|
||||
v 0.439203 -0.483194 -0.439203
|
||||
v 0.437212 -0.465612 -0.465612
|
||||
v 0.438244 -0.399961 -0.492385
|
||||
v 0.470699 -0.399961 -0.470699
|
||||
v 0.399961 -0.438244 -0.492385
|
||||
v 0.439203 -0.439203 -0.483194
|
||||
v 0.465612 -0.437212 -0.465612
|
||||
v 0.500000 0.399961 0.399961
|
||||
v 0.399961 0.500000 0.399961
|
||||
v 0.399961 0.399961 0.500000
|
||||
v 0.492385 0.438244 0.399961
|
||||
v 0.470699 0.470699 0.399961
|
||||
v 0.492385 0.399961 0.438244
|
||||
v 0.483194 0.439203 0.439203
|
||||
v 0.465612 0.465612 0.437212
|
||||
v 0.457718 0.457718 0.457718
|
||||
v 0.399961 0.492385 0.438244
|
||||
v 0.399961 0.470699 0.470699
|
||||
v 0.438244 0.492385 0.399961
|
||||
v 0.439203 0.483194 0.439203
|
||||
v 0.437212 0.465612 0.465612
|
||||
v 0.438244 0.399961 0.492385
|
||||
v 0.470699 0.399961 0.470699
|
||||
v 0.399961 0.438244 0.492385
|
||||
v 0.439203 0.439203 0.483194
|
||||
v 0.465612 0.437212 0.465612
|
||||
v 0.399961 -0.399961 0.500000
|
||||
v 0.399961 -0.500000 0.399961
|
||||
v 0.500000 -0.399961 0.399961
|
||||
v 0.399961 -0.438244 0.492385
|
||||
v 0.399961 -0.470699 0.470699
|
||||
v 0.438244 -0.399961 0.492385
|
||||
v 0.439203 -0.439203 0.483194
|
||||
v 0.437212 -0.465612 0.465612
|
||||
v 0.457718 -0.457718 0.457718
|
||||
v 0.438244 -0.492385 0.399961
|
||||
v 0.470699 -0.470699 0.399961
|
||||
v 0.399961 -0.492385 0.438244
|
||||
v 0.439203 -0.483194 0.439203
|
||||
v 0.465612 -0.465612 0.437212
|
||||
v 0.492385 -0.399961 0.438244
|
||||
v 0.470699 -0.399961 0.470699
|
||||
v 0.492385 -0.438244 0.399961
|
||||
v 0.483194 -0.439203 0.439203
|
||||
v 0.465612 -0.437212 0.465612
|
||||
v -0.500000 0.399961 -0.399961
|
||||
v -0.399961 0.500000 -0.399961
|
||||
v -0.399961 0.399961 -0.500000
|
||||
v -0.492385 0.438244 -0.399961
|
||||
v -0.470699 0.470699 -0.399961
|
||||
v -0.492385 0.399961 -0.438244
|
||||
v -0.483194 0.439203 -0.439203
|
||||
v -0.465612 0.465612 -0.437212
|
||||
v -0.457718 0.457718 -0.457718
|
||||
v -0.399961 0.492385 -0.438244
|
||||
v -0.399961 0.470699 -0.470699
|
||||
v -0.438244 0.492385 -0.399961
|
||||
v -0.439203 0.483194 -0.439203
|
||||
v -0.437212 0.465612 -0.465612
|
||||
v -0.438244 0.399961 -0.492385
|
||||
v -0.470699 0.399961 -0.470699
|
||||
v -0.399961 0.438244 -0.492385
|
||||
v -0.439203 0.439203 -0.483194
|
||||
v -0.465612 0.437212 -0.465612
|
||||
v -0.399961 -0.399961 -0.500000
|
||||
v -0.399961 -0.500000 -0.399961
|
||||
v -0.500000 -0.399961 -0.399961
|
||||
v -0.399961 -0.438244 -0.492385
|
||||
v -0.399961 -0.470699 -0.470699
|
||||
v -0.438244 -0.399961 -0.492385
|
||||
v -0.439203 -0.439203 -0.483194
|
||||
v -0.437212 -0.465612 -0.465612
|
||||
v -0.457718 -0.457718 -0.457718
|
||||
v -0.438244 -0.492385 -0.399961
|
||||
v -0.470699 -0.470699 -0.399961
|
||||
v -0.399961 -0.492385 -0.438244
|
||||
v -0.439203 -0.483194 -0.439203
|
||||
v -0.465612 -0.465612 -0.437212
|
||||
v -0.492385 -0.399961 -0.438244
|
||||
v -0.470699 -0.399961 -0.470699
|
||||
v -0.492385 -0.438244 -0.399961
|
||||
v -0.483194 -0.439203 -0.439203
|
||||
v -0.465612 -0.437212 -0.465612
|
||||
v -0.500000 0.399961 0.399961
|
||||
v -0.399961 0.399961 0.500000
|
||||
v -0.399961 0.500000 0.399961
|
||||
v -0.492385 0.399961 0.438244
|
||||
v -0.470699 0.399961 0.470699
|
||||
v -0.492385 0.438244 0.399961
|
||||
v -0.483194 0.439203 0.439203
|
||||
v -0.465612 0.437212 0.465612
|
||||
v -0.457718 0.457718 0.457718
|
||||
v -0.399961 0.438244 0.492385
|
||||
v -0.399961 0.470699 0.470699
|
||||
v -0.438244 0.399961 0.492385
|
||||
v -0.439203 0.439203 0.483194
|
||||
v -0.437212 0.465612 0.465612
|
||||
v -0.438244 0.492385 0.399961
|
||||
v -0.470699 0.470699 0.399961
|
||||
v -0.399961 0.492385 0.438244
|
||||
v -0.439203 0.483194 0.439203
|
||||
v -0.465612 0.465612 0.437212
|
||||
v -0.399961 -0.399961 0.500000
|
||||
v -0.500000 -0.399961 0.399961
|
||||
v -0.399961 -0.500000 0.399961
|
||||
v -0.438244 -0.399961 0.492385
|
||||
v -0.470699 -0.399961 0.470699
|
||||
v -0.399961 -0.438244 0.492385
|
||||
v -0.439203 -0.439203 0.483194
|
||||
v -0.465612 -0.437212 0.465612
|
||||
v -0.457718 -0.457718 0.457718
|
||||
v -0.492385 -0.438244 0.399961
|
||||
v -0.470699 -0.470699 0.399961
|
||||
v -0.492385 -0.399961 0.438244
|
||||
v -0.483194 -0.439203 0.439203
|
||||
v -0.465612 -0.465612 0.437212
|
||||
v -0.399961 -0.492385 0.438244
|
||||
v -0.399961 -0.470699 0.470699
|
||||
v -0.438244 -0.492385 0.399961
|
||||
v -0.439203 -0.483194 0.439203
|
||||
v -0.437212 -0.465612 0.465612
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.650010 0.525010
|
||||
vt 0.849990 0.525010
|
||||
vt 0.849990 0.724990
|
||||
vt 0.650010 0.724990
|
||||
vt 0.400010 0.275010
|
||||
vt 0.599990 0.275010
|
||||
vt 0.599990 0.474990
|
||||
vt 0.400010 0.474990
|
||||
vt 0.400010 0.775010
|
||||
vt 0.599990 0.775010
|
||||
vt 0.599990 0.974990
|
||||
vt 0.400010 0.974990
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.400010 0.525010
|
||||
vt 0.390439 0.525010
|
||||
vt 0.390199 0.515199
|
||||
vt 0.400010 0.515439
|
||||
vt 0.375000 0.525010
|
||||
vt 0.375000 0.515697
|
||||
vt 0.390697 0.500000
|
||||
vt 0.400010 0.500000
|
||||
vt 0.375000 0.510570
|
||||
vt 0.599990 0.265439
|
||||
vt 0.609801 0.265199
|
||||
vt 0.609561 0.275010
|
||||
vt 0.599990 0.250000
|
||||
vt 0.609303 0.250000
|
||||
vt 0.625000 0.265697
|
||||
vt 0.625000 0.275010
|
||||
vt 0.614430 0.250000
|
||||
vt 0.859561 0.724990
|
||||
vt 0.859801 0.734801
|
||||
vt 0.849990 0.734561
|
||||
vt 0.875000 0.724990
|
||||
vt 0.875000 0.734303
|
||||
vt 0.859303 0.750000
|
||||
vt 0.849990 0.750000
|
||||
vt 0.875000 0.739430
|
||||
vt 0.390439 0.275010
|
||||
vt 0.390199 0.265199
|
||||
vt 0.400010 0.265439
|
||||
vt 0.375000 0.275010
|
||||
vt 0.375000 0.265697
|
||||
vt 0.390697 0.250000
|
||||
vt 0.400010 0.250000
|
||||
vt 0.375000 0.260570
|
||||
vt 0.599990 0.015439
|
||||
vt 0.609801 0.015199
|
||||
vt 0.609561 0.025010
|
||||
vt 0.599990 0.000000
|
||||
vt 0.609303 0.000000
|
||||
vt 0.625000 0.015697
|
||||
vt 0.625000 0.025010
|
||||
vt 0.614430 0.000000
|
||||
vt 0.650010 0.734561
|
||||
vt 0.640199 0.734801
|
||||
vt 0.640439 0.724990
|
||||
vt 0.650010 0.750000
|
||||
vt 0.640697 0.750000
|
||||
vt 0.625000 0.734303
|
||||
vt 0.625000 0.724990
|
||||
vt 0.635570 0.750000
|
||||
vt 0.609561 0.474990
|
||||
vt 0.609801 0.484801
|
||||
vt 0.599990 0.484561
|
||||
vt 0.625000 0.474990
|
||||
vt 0.625000 0.484303
|
||||
vt 0.609303 0.500000
|
||||
vt 0.599990 0.500000
|
||||
vt 0.625000 0.489430
|
||||
vt 0.400010 0.724990
|
||||
vt 0.400010 0.734561
|
||||
vt 0.390199 0.734801
|
||||
vt 0.390439 0.724990
|
||||
vt 0.400010 0.750000
|
||||
vt 0.390697 0.750000
|
||||
vt 0.375000 0.734303
|
||||
vt 0.375000 0.724990
|
||||
vt 0.385570 0.750000
|
||||
vt 0.349990 0.515439
|
||||
vt 0.359801 0.515199
|
||||
vt 0.359561 0.525010
|
||||
vt 0.349990 0.500000
|
||||
vt 0.359303 0.500000
|
||||
vt 0.375000 0.515697
|
||||
vt 0.375000 0.525010
|
||||
vt 0.364430 0.500000
|
||||
vt 0.140439 0.525010
|
||||
vt 0.140199 0.515199
|
||||
vt 0.150010 0.515439
|
||||
vt 0.125000 0.525010
|
||||
vt 0.125000 0.515697
|
||||
vt 0.140697 0.500000
|
||||
vt 0.150010 0.500000
|
||||
vt 0.125000 0.510570
|
||||
vt 0.609561 0.224990
|
||||
vt 0.609801 0.234801
|
||||
vt 0.599990 0.234561
|
||||
vt 0.625000 0.224990
|
||||
vt 0.625000 0.234303
|
||||
vt 0.609303 0.250000
|
||||
vt 0.599990 0.250000
|
||||
vt 0.625000 0.239430
|
||||
vt 0.400010 0.484561
|
||||
vt 0.390199 0.484801
|
||||
vt 0.390439 0.474990
|
||||
vt 0.400010 0.500000
|
||||
vt 0.390697 0.500000
|
||||
vt 0.375000 0.484303
|
||||
vt 0.375000 0.474990
|
||||
vt 0.385570 0.500000
|
||||
vt 0.609561 0.974990
|
||||
vt 0.609801 0.984801
|
||||
vt 0.599990 0.984561
|
||||
vt 0.625000 0.974990
|
||||
vt 0.625000 0.984303
|
||||
vt 0.609303 1.000000
|
||||
vt 0.599990 1.000000
|
||||
vt 0.625000 0.989430
|
||||
vt 0.599990 0.525010
|
||||
vt 0.599990 0.515439
|
||||
vt 0.609801 0.515199
|
||||
vt 0.609561 0.525010
|
||||
vt 0.599990 0.500000
|
||||
vt 0.609303 0.500000
|
||||
vt 0.625000 0.515697
|
||||
vt 0.625000 0.525010
|
||||
vt 0.614430 0.500000
|
||||
vt 0.849990 0.515439
|
||||
vt 0.859801 0.515199
|
||||
vt 0.859561 0.525010
|
||||
vt 0.849990 0.500000
|
||||
vt 0.859303 0.500000
|
||||
vt 0.875000 0.515697
|
||||
vt 0.875000 0.525010
|
||||
vt 0.864430 0.500000
|
||||
vt 0.640439 0.525010
|
||||
vt 0.640199 0.515199
|
||||
vt 0.650010 0.515439
|
||||
vt 0.625000 0.525010
|
||||
vt 0.625000 0.515697
|
||||
vt 0.640697 0.500000
|
||||
vt 0.650010 0.500000
|
||||
vt 0.625000 0.510570
|
||||
vt 0.390439 0.025010
|
||||
vt 0.390199 0.015199
|
||||
vt 0.400010 0.015439
|
||||
vt 0.375000 0.025010
|
||||
vt 0.375000 0.015697
|
||||
vt 0.390697 0.000000
|
||||
vt 0.400010 0.000000
|
||||
vt 0.375000 0.010570
|
||||
vt 0.400010 0.984561
|
||||
vt 0.390199 0.984801
|
||||
vt 0.390439 0.974990
|
||||
vt 0.400010 1.000000
|
||||
vt 0.390697 1.000000
|
||||
vt 0.375000 0.984303
|
||||
vt 0.375000 0.974990
|
||||
vt 0.385570 1.000000
|
||||
vt 0.599990 0.765439
|
||||
vt 0.609801 0.765199
|
||||
vt 0.609561 0.775010
|
||||
vt 0.599990 0.750000
|
||||
vt 0.609303 0.750000
|
||||
vt 0.625000 0.765697
|
||||
vt 0.625000 0.775010
|
||||
vt 0.614430 0.750000
|
||||
vt 0.359561 0.724990
|
||||
vt 0.359801 0.734801
|
||||
vt 0.349990 0.734561
|
||||
vt 0.375000 0.724990
|
||||
vt 0.375000 0.734303
|
||||
vt 0.359303 0.750000
|
||||
vt 0.349990 0.750000
|
||||
vt 0.375000 0.739430
|
||||
vt 0.599990 0.724990
|
||||
vt 0.609561 0.724990
|
||||
vt 0.609801 0.734801
|
||||
vt 0.599990 0.734561
|
||||
vt 0.625000 0.724990
|
||||
vt 0.625000 0.734303
|
||||
vt 0.609303 0.750000
|
||||
vt 0.599990 0.750000
|
||||
vt 0.625000 0.739430
|
||||
vt 0.150010 0.734561
|
||||
vt 0.140199 0.734801
|
||||
vt 0.140439 0.724990
|
||||
vt 0.150010 0.750000
|
||||
vt 0.140697 0.750000
|
||||
vt 0.125000 0.734303
|
||||
vt 0.125000 0.724990
|
||||
vt 0.135570 0.750000
|
||||
vt 0.390439 0.775010
|
||||
vt 0.390199 0.765199
|
||||
vt 0.400010 0.765439
|
||||
vt 0.375000 0.775010
|
||||
vt 0.375000 0.765697
|
||||
vt 0.390697 0.750000
|
||||
vt 0.400010 0.750000
|
||||
vt 0.375000 0.760570
|
||||
vt 0.400010 0.234561
|
||||
vt 0.390199 0.234801
|
||||
vt 0.390439 0.224990
|
||||
vt 0.400010 0.250000
|
||||
vt 0.390697 0.250000
|
||||
vt 0.375000 0.234303
|
||||
vt 0.375000 0.224990
|
||||
vt 0.385570 0.250000
|
||||
vn 0.1004 -0.1004 0.9899
|
||||
vn 0.1004 0.1004 0.9899
|
||||
vn -0.1004 0.1004 0.9899
|
||||
vn -0.1004 -0.1004 0.9899
|
||||
vn -0.1004 -0.1004 -0.9899
|
||||
vn -0.1004 0.1004 -0.9899
|
||||
vn 0.1004 0.1004 -0.9899
|
||||
vn 0.1004 -0.1004 -0.9899
|
||||
vn 0.9899 -0.1004 -0.1004
|
||||
vn 0.9899 0.1004 -0.1004
|
||||
vn 0.9899 0.1004 0.1004
|
||||
vn 0.9899 -0.1004 0.1004
|
||||
vn -0.9899 -0.1004 0.1004
|
||||
vn -0.9899 0.1004 0.1004
|
||||
vn -0.9899 0.1004 -0.1004
|
||||
vn -0.9899 -0.1004 -0.1004
|
||||
vn -0.1004 -0.9899 -0.1004
|
||||
vn 0.1004 -0.9899 -0.1004
|
||||
vn 0.1004 -0.9899 0.1004
|
||||
vn -0.1004 -0.9899 0.1004
|
||||
vn 0.1004 0.9899 -0.1004
|
||||
vn 0.3792 0.9201 -0.0981
|
||||
vn 0.3673 0.8545 -0.3673
|
||||
vn 0.0981 0.9201 -0.3792
|
||||
vn 0.7041 0.7041 -0.0919
|
||||
vn 0.6663 0.6663 -0.3347
|
||||
vn 0.3347 0.6663 -0.6663
|
||||
vn 0.0919 0.7041 -0.7041
|
||||
vn 0.5774 0.5774 -0.5774
|
||||
vn 0.9201 0.0981 -0.3792
|
||||
vn 0.8545 0.3673 -0.3673
|
||||
vn 0.9201 0.3792 -0.0981
|
||||
vn 0.7041 0.0919 -0.7041
|
||||
vn 0.6663 0.3347 -0.6663
|
||||
vn 0.0981 0.3792 -0.9201
|
||||
vn 0.3673 0.3673 -0.8545
|
||||
vn 0.3792 0.0981 -0.9201
|
||||
vn 0.9201 -0.3792 -0.0981
|
||||
vn 0.8545 -0.3673 -0.3673
|
||||
vn 0.9201 -0.0981 -0.3792
|
||||
vn 0.7041 -0.7041 -0.0919
|
||||
vn 0.6663 -0.6663 -0.3347
|
||||
vn 0.6663 -0.3347 -0.6663
|
||||
vn 0.7041 -0.0919 -0.7041
|
||||
vn 0.5774 -0.5774 -0.5773
|
||||
vn 0.0981 -0.9201 -0.3792
|
||||
vn 0.3673 -0.8545 -0.3673
|
||||
vn 0.3792 -0.9201 -0.0981
|
||||
vn 0.0919 -0.7041 -0.7041
|
||||
vn 0.3347 -0.6663 -0.6663
|
||||
vn 0.3792 -0.0981 -0.9201
|
||||
vn 0.3673 -0.3673 -0.8545
|
||||
vn 0.0981 -0.3792 -0.9201
|
||||
vn 0.9201 0.3792 0.0981
|
||||
vn 0.8545 0.3673 0.3673
|
||||
vn 0.9201 0.0981 0.3792
|
||||
vn 0.7041 0.7041 0.0919
|
||||
vn 0.6663 0.6663 0.3347
|
||||
vn 0.6663 0.3347 0.6663
|
||||
vn 0.7041 0.0919 0.7041
|
||||
vn 0.5774 0.5774 0.5773
|
||||
vn 0.1004 0.9899 0.1004
|
||||
vn 0.0981 0.9201 0.3792
|
||||
vn 0.3673 0.8545 0.3673
|
||||
vn 0.3792 0.9201 0.0981
|
||||
vn 0.0919 0.7041 0.7041
|
||||
vn 0.3347 0.6663 0.6663
|
||||
vn 0.3792 0.0981 0.9201
|
||||
vn 0.3673 0.3673 0.8545
|
||||
vn 0.0981 0.3792 0.9201
|
||||
vn 0.0981 -0.3792 0.9201
|
||||
vn 0.3673 -0.3673 0.8545
|
||||
vn 0.3792 -0.0981 0.9201
|
||||
vn 0.0919 -0.7041 0.7041
|
||||
vn 0.3347 -0.6663 0.6663
|
||||
vn 0.6663 -0.3347 0.6663
|
||||
vn 0.7041 -0.0919 0.7041
|
||||
vn 0.5773 -0.5774 0.5774
|
||||
vn 0.3792 -0.9201 0.0981
|
||||
vn 0.3673 -0.8545 0.3673
|
||||
vn 0.0981 -0.9201 0.3792
|
||||
vn 0.7041 -0.7041 0.0919
|
||||
vn 0.6663 -0.6663 0.3347
|
||||
vn 0.9201 -0.0981 0.3792
|
||||
vn 0.8545 -0.3673 0.3673
|
||||
vn 0.9201 -0.3792 0.0981
|
||||
vn -0.9201 0.3792 -0.0981
|
||||
vn -0.8545 0.3673 -0.3673
|
||||
vn -0.9201 0.0981 -0.3792
|
||||
vn -0.7041 0.7041 -0.0919
|
||||
vn -0.6663 0.6663 -0.3347
|
||||
vn -0.6663 0.3347 -0.6663
|
||||
vn -0.7041 0.0919 -0.7041
|
||||
vn -0.5774 0.5774 -0.5773
|
||||
vn -0.1004 0.9899 -0.1004
|
||||
vn -0.0981 0.9201 -0.3792
|
||||
vn -0.3673 0.8545 -0.3673
|
||||
vn -0.3792 0.9201 -0.0981
|
||||
vn -0.0919 0.7041 -0.7041
|
||||
vn -0.3347 0.6663 -0.6663
|
||||
vn -0.3792 0.0981 -0.9201
|
||||
vn -0.3673 0.3673 -0.8545
|
||||
vn -0.0981 0.3792 -0.9201
|
||||
vn -0.0981 -0.3792 -0.9201
|
||||
vn -0.3673 -0.3673 -0.8545
|
||||
vn -0.3792 -0.0981 -0.9201
|
||||
vn -0.0919 -0.7041 -0.7041
|
||||
vn -0.3347 -0.6663 -0.6663
|
||||
vn -0.6663 -0.3347 -0.6663
|
||||
vn -0.7041 -0.0919 -0.7041
|
||||
vn -0.5773 -0.5774 -0.5774
|
||||
vn -0.3792 -0.9201 -0.0981
|
||||
vn -0.3673 -0.8545 -0.3673
|
||||
vn -0.0981 -0.9201 -0.3792
|
||||
vn -0.7041 -0.7041 -0.0919
|
||||
vn -0.6663 -0.6663 -0.3347
|
||||
vn -0.9201 -0.0981 -0.3792
|
||||
vn -0.8545 -0.3673 -0.3673
|
||||
vn -0.9201 -0.3792 -0.0981
|
||||
vn -0.9201 0.0981 0.3792
|
||||
vn -0.8545 0.3673 0.3673
|
||||
vn -0.9201 0.3792 0.0981
|
||||
vn -0.7041 0.0919 0.7041
|
||||
vn -0.6663 0.3347 0.6663
|
||||
vn -0.6663 0.6663 0.3347
|
||||
vn -0.7041 0.7041 0.0919
|
||||
vn -0.5774 0.5774 0.5773
|
||||
vn -0.0981 0.3792 0.9201
|
||||
vn -0.3673 0.3673 0.8545
|
||||
vn -0.3792 0.0981 0.9201
|
||||
vn -0.0919 0.7041 0.7041
|
||||
vn -0.3347 0.6663 0.6663
|
||||
vn -0.1004 0.9899 0.1004
|
||||
vn -0.3792 0.9201 0.0981
|
||||
vn -0.3673 0.8545 0.3673
|
||||
vn -0.0981 0.9201 0.3792
|
||||
vn -0.3792 -0.0981 0.9201
|
||||
vn -0.3673 -0.3673 0.8545
|
||||
vn -0.0981 -0.3792 0.9201
|
||||
vn -0.7041 -0.0919 0.7041
|
||||
vn -0.6663 -0.3347 0.6663
|
||||
vn -0.3347 -0.6663 0.6663
|
||||
vn -0.0919 -0.7041 0.7041
|
||||
vn -0.5774 -0.5774 0.5773
|
||||
vn -0.9201 -0.3792 0.0981
|
||||
vn -0.8545 -0.3673 0.3673
|
||||
vn -0.9201 -0.0981 0.3792
|
||||
vn -0.7041 -0.7041 0.0919
|
||||
vn -0.6663 -0.6663 0.3347
|
||||
vn -0.0981 -0.9201 0.3792
|
||||
vn -0.3673 -0.8545 0.3673
|
||||
vn -0.3792 -0.9201 0.0981
|
||||
s 1
|
||||
f 58/1/1 41/2/2 116/3/3 134/4/4
|
||||
f 96/5/5 79/6/6 3/7/7 22/8/8
|
||||
f 20/9/9 2/10/10 39/11/11 60/12/12
|
||||
f 135/13/13 115/14/14 77/15/15 98/16/16
|
||||
f 97/17/17 21/18/18 59/19/19 136/20/20
|
||||
f 1/21/21 4/22/22 7/23/23 6/24/24
|
||||
f 4/22/22 5/25/25 8/26/26 7/23/23
|
||||
f 6/24/24 7/23/23 19/27/27 16/28/28
|
||||
f 7/23/23 8/26/26 9/29/29 19/27/27
|
||||
f 2/10/10 10/30/30 13/31/31 12/32/32
|
||||
f 10/30/30 11/33/33 14/34/34 13/31/31
|
||||
f 12/32/32 13/31/31 8/35/26 5/36/25
|
||||
f 13/31/31 14/34/34 9/37/29 8/35/26
|
||||
f 3/7/7 15/38/35 18/39/36 17/40/37
|
||||
f 15/38/35 16/41/28 19/42/27 18/39/36
|
||||
f 17/40/37 18/39/36 14/43/34 11/44/33
|
||||
f 18/39/36 19/42/27 9/45/29 14/43/34
|
||||
f 20/9/9 23/46/38 26/47/39 25/48/40
|
||||
f 23/46/38 24/49/41 27/50/42 26/47/39
|
||||
f 25/48/40 26/47/39 38/51/43 35/52/44
|
||||
f 26/47/39 27/50/42 28/53/45 38/51/43
|
||||
f 21/18/18 29/54/46 32/55/47 31/56/48
|
||||
f 29/54/46 30/57/49 33/58/50 32/55/47
|
||||
f 31/56/48 32/55/47 27/59/42 24/60/41
|
||||
f 32/55/47 33/58/50 28/61/45 27/59/42
|
||||
f 22/8/8 34/62/51 37/63/52 36/64/53
|
||||
f 34/62/51 35/65/44 38/66/43 37/63/52
|
||||
f 36/64/53 37/63/52 33/67/50 30/68/49
|
||||
f 37/63/52 38/66/43 28/69/45 33/67/50
|
||||
f 39/11/11 42/70/54 45/71/55 44/72/56
|
||||
f 42/70/54 43/73/57 46/74/58 45/71/55
|
||||
f 44/72/56 45/71/55 57/75/59 54/76/60
|
||||
f 45/71/55 46/74/58 47/77/61 57/75/59
|
||||
f 40/78/62 48/79/63 51/80/64 50/81/65
|
||||
f 48/79/63 49/82/66 52/83/67 51/80/64
|
||||
f 50/81/65 51/80/64 46/84/58 43/85/57
|
||||
f 51/80/64 52/83/67 47/86/61 46/84/58
|
||||
f 41/2/2 53/87/68 56/88/69 55/89/70
|
||||
f 53/87/68 54/90/60 57/91/59 56/88/69
|
||||
f 55/89/70 56/88/69 52/92/67 49/93/66
|
||||
f 56/88/69 57/91/59 47/94/61 52/92/67
|
||||
f 58/1/1 61/95/71 64/96/72 63/97/73
|
||||
f 61/95/71 62/98/74 65/99/75 64/96/72
|
||||
f 63/97/73 64/96/72 76/100/76 73/101/77
|
||||
f 64/96/72 65/99/75 66/102/78 76/100/76
|
||||
f 59/19/19 67/103/79 70/104/80 69/105/81
|
||||
f 67/103/79 68/106/82 71/107/83 70/104/80
|
||||
f 69/105/81 70/104/80 65/108/75 62/109/74
|
||||
f 70/104/80 71/107/83 66/110/78 65/108/75
|
||||
f 60/12/12 72/111/84 75/112/85 74/113/86
|
||||
f 72/111/84 73/114/77 76/115/76 75/112/85
|
||||
f 74/113/86 75/112/85 71/116/83 68/117/82
|
||||
f 75/112/85 76/115/76 66/118/78 71/116/83
|
||||
f 77/15/15 80/119/87 83/120/88 82/121/89
|
||||
f 80/119/87 81/122/90 84/123/91 83/120/88
|
||||
f 82/121/89 83/120/88 95/124/92 92/125/93
|
||||
f 83/120/88 84/123/91 85/126/94 95/124/92
|
||||
f 78/127/95 86/128/96 89/129/97 88/130/98
|
||||
f 86/128/96 87/131/99 90/132/100 89/129/97
|
||||
f 88/130/98 89/129/97 84/133/91 81/134/90
|
||||
f 89/129/97 90/132/100 85/135/94 84/133/91
|
||||
f 79/6/6 91/136/101 94/137/102 93/138/103
|
||||
f 91/136/101 92/139/93 95/140/92 94/137/102
|
||||
f 93/138/103 94/137/102 90/141/100 87/142/99
|
||||
f 94/137/102 95/140/92 85/143/94 90/141/100
|
||||
f 96/5/5 99/144/104 102/145/105 101/146/106
|
||||
f 99/144/104 100/147/107 103/148/108 102/145/105
|
||||
f 101/146/106 102/145/105 114/149/109 111/150/110
|
||||
f 102/145/105 103/148/108 104/151/111 114/149/109
|
||||
f 97/17/17 105/152/112 108/153/113 107/154/114
|
||||
f 105/152/112 106/155/115 109/156/116 108/153/113
|
||||
f 107/154/114 108/153/113 103/157/108 100/158/107
|
||||
f 108/153/113 109/156/116 104/159/111 103/157/108
|
||||
f 98/16/16 110/160/117 113/161/118 112/162/119
|
||||
f 110/160/117 111/163/110 114/164/109 113/161/118
|
||||
f 112/162/119 113/161/118 109/165/116 106/166/115
|
||||
f 113/161/118 114/164/109 104/167/111 109/165/116
|
||||
f 115/14/14 118/168/120 121/169/121 120/170/122
|
||||
f 118/168/120 119/171/123 122/172/124 121/169/121
|
||||
f 120/170/122 121/169/121 133/173/125 130/174/126
|
||||
f 121/169/121 122/172/124 123/175/127 133/173/125
|
||||
f 116/3/3 124/176/128 127/177/129 126/178/130
|
||||
f 124/176/128 125/179/131 128/180/132 127/177/129
|
||||
f 126/178/130 127/177/129 122/181/124 119/182/123
|
||||
f 127/177/129 128/180/132 123/183/127 122/181/124
|
||||
f 117/184/133 129/185/134 132/186/135 131/187/136
|
||||
f 129/185/134 130/188/126 133/189/125 132/186/135
|
||||
f 131/187/136 132/186/135 128/190/132 125/191/131
|
||||
f 132/186/135 133/189/125 123/192/127 128/190/132
|
||||
f 134/4/4 137/193/137 140/194/138 139/195/139
|
||||
f 137/193/137 138/196/140 141/197/141 140/194/138
|
||||
f 139/195/139 140/194/138 152/198/142 149/199/143
|
||||
f 140/194/138 141/197/141 142/200/144 152/198/142
|
||||
f 135/13/13 143/201/145 146/202/146 145/203/147
|
||||
f 143/201/145 144/204/148 147/205/149 146/202/146
|
||||
f 145/203/147 146/202/146 141/206/141 138/207/140
|
||||
f 146/202/146 147/205/149 142/208/144 141/206/141
|
||||
f 136/20/20 148/209/150 151/210/151 150/211/152
|
||||
f 148/209/150 149/212/143 152/213/142 151/210/151
|
||||
f 150/211/152 151/210/151 147/214/149 144/215/148
|
||||
f 151/210/151 152/213/142 142/216/144 147/214/149
|
||||
f 136/20/20 59/19/19 69/105/81 148/209/150
|
||||
f 148/209/150 69/105/81 62/109/74 149/212/143
|
||||
f 149/199/143 62/98/74 61/95/71 139/195/139
|
||||
f 139/195/139 61/95/71 58/1/1 134/4/4
|
||||
f 59/19/19 21/18/18 31/56/48 67/103/79
|
||||
f 67/103/79 31/56/48 24/60/41 68/106/82
|
||||
f 68/117/82 24/49/41 23/46/38 74/113/86
|
||||
f 74/113/86 23/46/38 20/9/9 60/12/12
|
||||
f 1/21/21 40/78/62 50/81/65 4/22/22
|
||||
f 4/22/22 50/81/65 43/85/57 5/25/25
|
||||
f 5/36/25 43/73/57 42/70/54 12/32/32
|
||||
f 12/32/32 42/70/54 39/11/11 2/10/10
|
||||
f 21/18/18 97/17/17 107/154/114 29/54/46
|
||||
f 29/54/46 107/154/114 100/158/107 30/57/49
|
||||
f 30/68/49 100/147/107 99/144/104 36/64/53
|
||||
f 36/64/53 99/144/104 96/5/5 22/8/8
|
||||
f 117/184/133 78/127/95 88/130/98 129/185/134
|
||||
f 129/185/134 88/130/98 81/134/90 130/188/126
|
||||
f 130/174/126 81/122/90 80/119/87 120/170/122
|
||||
f 120/170/122 80/119/87 77/15/15 115/14/14
|
||||
f 97/17/17 136/20/20 150/211/152 105/152/112
|
||||
f 105/152/112 150/211/152 144/215/148 106/155/115
|
||||
f 106/166/115 144/204/148 143/201/145 112/162/119
|
||||
f 112/162/119 143/201/145 135/13/13 98/16/16
|
||||
f 40/78/62 117/184/133 131/187/136 48/79/63
|
||||
f 48/79/63 131/187/136 125/191/131 49/82/66
|
||||
f 49/93/66 125/179/131 124/176/128 55/89/70
|
||||
f 55/89/70 124/176/128 116/3/3 41/2/2
|
||||
f 41/2/2 58/1/1 63/97/73 53/87/68
|
||||
f 53/87/68 63/97/73 73/101/77 54/90/60
|
||||
f 54/76/60 73/114/77 72/111/84 44/72/56
|
||||
f 44/72/56 72/111/84 60/12/12 39/11/11
|
||||
f 2/10/10 20/9/9 25/48/40 10/30/30
|
||||
f 10/30/30 25/48/40 35/52/44 11/33/33
|
||||
f 11/44/33 35/65/44 34/62/51 17/40/37
|
||||
f 17/40/37 34/62/51 22/8/8 3/7/7
|
||||
f 134/4/4 116/3/3 126/178/130 137/193/137
|
||||
f 137/193/137 126/178/130 119/182/123 138/196/140
|
||||
f 138/207/140 119/171/123 118/168/120 145/203/147
|
||||
f 145/203/147 118/168/120 115/14/14 135/13/13
|
||||
f 78/127/95 1/21/21 6/24/24 86/128/96
|
||||
f 86/128/96 6/24/24 16/28/28 87/131/99
|
||||
f 87/142/99 16/41/28 15/38/35 93/138/103
|
||||
f 93/138/103 15/38/35 3/7/7 79/6/6
|
||||
f 79/6/6 96/5/5 101/146/106 91/136/101
|
||||
f 91/136/101 101/146/106 111/150/110 92/139/93
|
||||
f 92/125/93 111/163/110 110/160/117 82/121/89
|
||||
f 82/121/89 110/160/117 98/16/16 77/15/15
|
||||
f 1/21/21 78/127/95 117/184/133 40/78/62
|
||||
455
public/somaesque/resources/c000001.obj
Normal file
@@ -0,0 +1,455 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib c000001.mtl
|
||||
o Cube_Cube.002
|
||||
v -0.399961 0.399961 0.500000
|
||||
v -0.399961 -0.399961 0.500000
|
||||
v 0.499961 -0.399961 0.500000
|
||||
v 0.499961 0.399961 0.500000
|
||||
v 0.499961 0.399961 -0.500000
|
||||
v 0.499961 -0.399961 -0.500000
|
||||
v -0.399961 -0.399961 -0.500000
|
||||
v -0.399961 0.399961 -0.500000
|
||||
v -0.500000 0.399961 -0.399961
|
||||
v -0.500000 -0.399961 -0.399961
|
||||
v -0.500000 -0.399961 0.399961
|
||||
v -0.500000 0.399961 0.399961
|
||||
v 0.499961 0.500000 -0.399961
|
||||
v -0.399961 0.500000 -0.399961
|
||||
v -0.399961 0.500000 0.399961
|
||||
v 0.499961 0.500000 0.399961
|
||||
v -0.399961 -0.500000 -0.399961
|
||||
v -0.438244 -0.492385 -0.399961
|
||||
v -0.439203 -0.483194 -0.439203
|
||||
v -0.399961 -0.492385 -0.438244
|
||||
v -0.470699 -0.470699 -0.399961
|
||||
v -0.465612 -0.465612 -0.437212
|
||||
v -0.437212 -0.465612 -0.465612
|
||||
v -0.399961 -0.470699 -0.470699
|
||||
v -0.457718 -0.457718 -0.457718
|
||||
v -0.492385 -0.399961 -0.438244
|
||||
v -0.483194 -0.439203 -0.439203
|
||||
v -0.492385 -0.438244 -0.399961
|
||||
v -0.470699 -0.399961 -0.470699
|
||||
v -0.465612 -0.437212 -0.465612
|
||||
v -0.399961 -0.438244 -0.492385
|
||||
v -0.439203 -0.439203 -0.483194
|
||||
v -0.438244 -0.399961 -0.492385
|
||||
v -0.492385 0.438244 -0.399961
|
||||
v -0.483194 0.439203 -0.439203
|
||||
v -0.492385 0.399961 -0.438244
|
||||
v -0.470699 0.470699 -0.399961
|
||||
v -0.465612 0.465612 -0.437212
|
||||
v -0.465612 0.437212 -0.465612
|
||||
v -0.470699 0.399961 -0.470699
|
||||
v -0.457718 0.457718 -0.457718
|
||||
v -0.399961 0.492385 -0.438244
|
||||
v -0.439203 0.483194 -0.439203
|
||||
v -0.438244 0.492385 -0.399961
|
||||
v -0.399961 0.470699 -0.470699
|
||||
v -0.437212 0.465612 -0.465612
|
||||
v -0.438244 0.399961 -0.492385
|
||||
v -0.439203 0.439203 -0.483194
|
||||
v -0.399961 0.438244 -0.492385
|
||||
v -0.492385 -0.438244 0.399961
|
||||
v -0.483194 -0.439203 0.439203
|
||||
v -0.492385 -0.399961 0.438244
|
||||
v -0.470699 -0.470699 0.399961
|
||||
v -0.465612 -0.465612 0.437212
|
||||
v -0.465612 -0.437212 0.465612
|
||||
v -0.470699 -0.399961 0.470699
|
||||
v -0.457718 -0.457718 0.457718
|
||||
v -0.399961 -0.500000 0.399961
|
||||
v -0.399961 -0.492385 0.438244
|
||||
v -0.439203 -0.483194 0.439203
|
||||
v -0.438244 -0.492385 0.399961
|
||||
v -0.399961 -0.470699 0.470699
|
||||
v -0.437212 -0.465612 0.465612
|
||||
v -0.438244 -0.399961 0.492385
|
||||
v -0.439203 -0.439203 0.483194
|
||||
v -0.399961 -0.438244 0.492385
|
||||
v -0.399961 0.438244 0.492385
|
||||
v -0.439203 0.439203 0.483194
|
||||
v -0.438244 0.399961 0.492385
|
||||
v -0.399961 0.470699 0.470699
|
||||
v -0.437212 0.465612 0.465612
|
||||
v -0.465612 0.437212 0.465612
|
||||
v -0.470699 0.399961 0.470699
|
||||
v -0.457718 0.457718 0.457718
|
||||
v -0.438244 0.492385 0.399961
|
||||
v -0.439203 0.483194 0.439203
|
||||
v -0.399961 0.492385 0.438244
|
||||
v -0.470699 0.470699 0.399961
|
||||
v -0.465612 0.465612 0.437212
|
||||
v -0.492385 0.399961 0.438244
|
||||
v -0.483194 0.439203 0.439203
|
||||
v -0.492385 0.438244 0.399961
|
||||
v 0.499961 -0.500000 -0.399961
|
||||
v 0.499961 -0.492385 -0.438244
|
||||
v 0.499961 -0.470699 -0.470699
|
||||
v 0.499961 -0.438244 -0.492385
|
||||
v 0.499961 0.438244 -0.492385
|
||||
v 0.499961 0.470699 -0.470699
|
||||
v 0.499961 0.492385 -0.438244
|
||||
v 0.499961 -0.438244 0.492385
|
||||
v 0.499961 -0.470699 0.470699
|
||||
v 0.499961 -0.500000 0.399961
|
||||
v 0.499961 -0.492385 0.438244
|
||||
v 0.499961 0.438244 0.492385
|
||||
v 0.499961 0.470699 0.470699
|
||||
v 0.499961 0.492385 0.438244
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.650010 0.525010
|
||||
vt 0.849990 0.525010
|
||||
vt 0.849990 0.724990
|
||||
vt 0.650010 0.724990
|
||||
vt 0.400010 0.275010
|
||||
vt 0.599990 0.275010
|
||||
vt 0.599990 0.474990
|
||||
vt 0.400010 0.474990
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.400010 0.525010
|
||||
vt 0.390439 0.525010
|
||||
vt 0.390199 0.515199
|
||||
vt 0.400010 0.515439
|
||||
vt 0.375000 0.525010
|
||||
vt 0.375000 0.515697
|
||||
vt 0.390697 0.500000
|
||||
vt 0.400010 0.500000
|
||||
vt 0.375000 0.510570
|
||||
vt 0.599990 0.265439
|
||||
vt 0.609801 0.265199
|
||||
vt 0.609561 0.275010
|
||||
vt 0.599990 0.250000
|
||||
vt 0.609303 0.250000
|
||||
vt 0.625000 0.265697
|
||||
vt 0.625000 0.275010
|
||||
vt 0.614430 0.250000
|
||||
vt 0.859561 0.724990
|
||||
vt 0.859801 0.734801
|
||||
vt 0.849990 0.734561
|
||||
vt 0.875000 0.724990
|
||||
vt 0.875000 0.734303
|
||||
vt 0.859303 0.750000
|
||||
vt 0.849990 0.750000
|
||||
vt 0.875000 0.739430
|
||||
vt 0.390439 0.275010
|
||||
vt 0.390199 0.265199
|
||||
vt 0.400010 0.265439
|
||||
vt 0.375000 0.275010
|
||||
vt 0.375000 0.265697
|
||||
vt 0.390697 0.250000
|
||||
vt 0.400010 0.250000
|
||||
vt 0.375000 0.260570
|
||||
vt 0.599990 0.015439
|
||||
vt 0.609801 0.015199
|
||||
vt 0.609561 0.025010
|
||||
vt 0.599990 0.000000
|
||||
vt 0.609303 0.000000
|
||||
vt 0.625000 0.015697
|
||||
vt 0.625000 0.025010
|
||||
vt 0.614430 0.000000
|
||||
vt 0.650010 0.734561
|
||||
vt 0.640199 0.734801
|
||||
vt 0.640439 0.724990
|
||||
vt 0.650010 0.750000
|
||||
vt 0.640697 0.750000
|
||||
vt 0.625000 0.734303
|
||||
vt 0.625000 0.724990
|
||||
vt 0.635570 0.750000
|
||||
vt 0.609561 0.474990
|
||||
vt 0.609801 0.484801
|
||||
vt 0.599990 0.484561
|
||||
vt 0.625000 0.474990
|
||||
vt 0.625000 0.484303
|
||||
vt 0.609303 0.500000
|
||||
vt 0.599990 0.500000
|
||||
vt 0.625000 0.489430
|
||||
vt 0.400010 0.724990
|
||||
vt 0.400010 0.734561
|
||||
vt 0.390199 0.734801
|
||||
vt 0.390439 0.724990
|
||||
vt 0.400010 0.750000
|
||||
vt 0.390697 0.750000
|
||||
vt 0.375000 0.734303
|
||||
vt 0.375000 0.724990
|
||||
vt 0.385570 0.750000
|
||||
vt 0.349990 0.515439
|
||||
vt 0.359801 0.515199
|
||||
vt 0.359561 0.525010
|
||||
vt 0.349990 0.500000
|
||||
vt 0.359303 0.500000
|
||||
vt 0.375000 0.515697
|
||||
vt 0.375000 0.525010
|
||||
vt 0.364430 0.500000
|
||||
vt 0.140439 0.525010
|
||||
vt 0.140199 0.515199
|
||||
vt 0.150010 0.515439
|
||||
vt 0.125000 0.525010
|
||||
vt 0.125000 0.515697
|
||||
vt 0.140697 0.500000
|
||||
vt 0.150010 0.500000
|
||||
vt 0.125000 0.510570
|
||||
vt 0.609561 0.224990
|
||||
vt 0.609801 0.234801
|
||||
vt 0.599990 0.234561
|
||||
vt 0.625000 0.224990
|
||||
vt 0.625000 0.234303
|
||||
vt 0.609303 0.250000
|
||||
vt 0.599990 0.250000
|
||||
vt 0.625000 0.239430
|
||||
vt 0.400010 0.484561
|
||||
vt 0.390199 0.484801
|
||||
vt 0.390439 0.474990
|
||||
vt 0.400010 0.500000
|
||||
vt 0.390697 0.500000
|
||||
vt 0.375000 0.484303
|
||||
vt 0.375000 0.474990
|
||||
vt 0.385570 0.500000
|
||||
vt 0.400010 0.234561
|
||||
vt 0.400010 0.250000
|
||||
vt 0.125000 0.724990
|
||||
vt 0.140439 0.724990
|
||||
vt 0.400010 0.015439
|
||||
vt 0.400010 0.000000
|
||||
vt 0.625000 0.525010
|
||||
vt 0.640439 0.525010
|
||||
vt 0.599990 0.724990
|
||||
vt 0.599990 0.734561
|
||||
vt 0.599990 0.750000
|
||||
vt 0.375000 0.724990
|
||||
vt 0.359561 0.724990
|
||||
vt 0.599990 0.525010
|
||||
vt 0.599990 0.515439
|
||||
vt 0.599990 0.500000
|
||||
vt 0.875000 0.525010
|
||||
vt 0.859561 0.525010
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn -0.1004 0.1004 0.9899
|
||||
vn -0.1004 -0.1004 0.9899
|
||||
vn 0.0000 -0.0980 0.9952
|
||||
vn -0.0000 0.0980 0.9952
|
||||
vn 0.0000 0.0980 -0.9952
|
||||
vn 0.0000 -0.0980 -0.9952
|
||||
vn -0.1004 -0.1004 -0.9899
|
||||
vn -0.1004 0.1004 -0.9899
|
||||
vn -0.9899 0.1004 -0.1004
|
||||
vn -0.9899 -0.1004 -0.1004
|
||||
vn -0.9899 -0.1004 0.1004
|
||||
vn -0.9899 0.1004 0.1004
|
||||
vn 0.0000 0.9952 -0.0980
|
||||
vn -0.1004 0.9899 -0.1004
|
||||
vn -0.1004 0.9899 0.1004
|
||||
vn 0.0000 0.9952 0.0980
|
||||
vn -0.1004 -0.9899 -0.1004
|
||||
vn -0.3792 -0.9201 -0.0981
|
||||
vn -0.3673 -0.8545 -0.3673
|
||||
vn -0.0981 -0.9201 -0.3792
|
||||
vn -0.7041 -0.7041 -0.0919
|
||||
vn -0.6663 -0.6663 -0.3347
|
||||
vn -0.3347 -0.6663 -0.6663
|
||||
vn -0.0919 -0.7041 -0.7041
|
||||
vn -0.5774 -0.5774 -0.5773
|
||||
vn -0.9201 -0.0981 -0.3792
|
||||
vn -0.8545 -0.3673 -0.3673
|
||||
vn -0.9201 -0.3792 -0.0981
|
||||
vn -0.7041 -0.0919 -0.7041
|
||||
vn -0.6663 -0.3347 -0.6663
|
||||
vn -0.0981 -0.3792 -0.9201
|
||||
vn -0.3673 -0.3673 -0.8545
|
||||
vn -0.3792 -0.0981 -0.9201
|
||||
vn -0.9201 0.3792 -0.0981
|
||||
vn -0.8545 0.3673 -0.3673
|
||||
vn -0.9201 0.0981 -0.3792
|
||||
vn -0.7041 0.7041 -0.0919
|
||||
vn -0.6663 0.6663 -0.3347
|
||||
vn -0.6663 0.3347 -0.6663
|
||||
vn -0.7041 0.0919 -0.7041
|
||||
vn -0.5774 0.5774 -0.5773
|
||||
vn -0.0981 0.9201 -0.3792
|
||||
vn -0.3673 0.8545 -0.3673
|
||||
vn -0.3792 0.9201 -0.0981
|
||||
vn -0.0919 0.7041 -0.7041
|
||||
vn -0.3347 0.6663 -0.6663
|
||||
vn -0.3792 0.0981 -0.9201
|
||||
vn -0.3673 0.3673 -0.8545
|
||||
vn -0.0981 0.3792 -0.9201
|
||||
vn -0.9201 -0.3792 0.0981
|
||||
vn -0.8545 -0.3673 0.3673
|
||||
vn -0.9201 -0.0981 0.3792
|
||||
vn -0.7041 -0.7041 0.0919
|
||||
vn -0.6663 -0.6663 0.3347
|
||||
vn -0.6663 -0.3347 0.6663
|
||||
vn -0.7041 -0.0919 0.7041
|
||||
vn -0.5774 -0.5774 0.5773
|
||||
vn -0.1004 -0.9899 0.1004
|
||||
vn -0.0981 -0.9201 0.3792
|
||||
vn -0.3673 -0.8545 0.3673
|
||||
vn -0.3792 -0.9201 0.0981
|
||||
vn -0.0919 -0.7041 0.7041
|
||||
vn -0.3347 -0.6663 0.6663
|
||||
vn -0.3792 -0.0981 0.9201
|
||||
vn -0.3673 -0.3673 0.8545
|
||||
vn -0.0981 -0.3792 0.9201
|
||||
vn -0.0981 0.3792 0.9201
|
||||
vn -0.3673 0.3673 0.8545
|
||||
vn -0.3792 0.0981 0.9201
|
||||
vn -0.0919 0.7041 0.7041
|
||||
vn -0.3347 0.6663 0.6663
|
||||
vn -0.6663 0.3347 0.6663
|
||||
vn -0.7041 0.0919 0.7041
|
||||
vn -0.5774 0.5774 0.5773
|
||||
vn -0.3792 0.9201 0.0981
|
||||
vn -0.3673 0.8545 0.3673
|
||||
vn -0.0981 0.9201 0.3792
|
||||
vn -0.7041 0.7041 0.0919
|
||||
vn -0.6663 0.6663 0.3347
|
||||
vn -0.9201 0.0981 0.3792
|
||||
vn -0.8545 0.3673 0.3673
|
||||
vn -0.9201 0.3792 0.0981
|
||||
vn 0.0000 0.9239 0.3827
|
||||
vn 0.0000 0.7071 0.7071
|
||||
vn 0.0000 0.3827 0.9239
|
||||
vn 0.0000 0.9239 -0.3827
|
||||
vn 0.0000 0.7071 -0.7071
|
||||
vn 0.0000 0.3827 -0.9239
|
||||
vn -0.0000 -0.9952 0.0980
|
||||
vn -0.0000 -0.9239 0.3827
|
||||
vn -0.0000 -0.7071 0.7071
|
||||
vn -0.0000 -0.3827 0.9239
|
||||
vn -0.0000 -0.9952 -0.0980
|
||||
vn -0.0000 -0.9239 -0.3827
|
||||
vn -0.0000 -0.7071 -0.7071
|
||||
vn -0.0000 -0.3827 -0.9239
|
||||
usemtl Default_OBJ
|
||||
s off
|
||||
f 93/1/1 92/2/1 91/3/1
|
||||
f 4/4/1 16/5/1 95/6/1
|
||||
f 6/7/1 83/8/1 85/9/1
|
||||
f 13/10/1 5/11/1 88/12/1
|
||||
f 3/13/1 16/5/1 4/4/1
|
||||
f 16/5/1 96/14/1 95/6/1
|
||||
f 3/13/1 90/15/1 91/3/1
|
||||
f 5/11/1 13/10/1 92/2/1
|
||||
f 16/5/1 3/13/1 13/10/1
|
||||
f 83/8/1 5/11/1 92/2/1
|
||||
f 5/11/1 87/16/1 88/12/1
|
||||
f 95/6/1 94/17/1 4/4/1
|
||||
f 92/2/1 3/13/1 91/3/1
|
||||
f 5/11/1 83/8/1 6/7/1
|
||||
f 3/13/1 92/2/1 13/10/1
|
||||
f 85/9/1 86/18/1 6/7/1
|
||||
f 89/19/1 13/10/1 88/12/1
|
||||
f 83/8/1 84/20/1 85/9/1
|
||||
s 1
|
||||
f 1/21/2 2/22/3 3/23/4 4/24/5
|
||||
f 5/25/6 6/26/7 7/27/8 8/28/9
|
||||
f 9/29/10 10/30/11 11/31/12 12/32/13
|
||||
f 13/33/14 14/34/15 15/35/16 16/36/17
|
||||
f 17/37/18 18/38/19 19/39/20 20/40/21
|
||||
f 18/38/19 21/41/22 22/42/23 19/39/20
|
||||
f 20/40/21 19/39/20 23/43/24 24/44/25
|
||||
f 19/39/20 22/42/23 25/45/26 23/43/24
|
||||
f 10/30/11 26/46/27 27/47/28 28/48/29
|
||||
f 26/46/27 29/49/30 30/50/31 27/47/28
|
||||
f 28/48/29 27/47/28 22/51/23 21/52/22
|
||||
f 27/47/28 30/50/31 25/53/26 22/51/23
|
||||
f 7/27/8 31/54/32 32/55/33 33/56/34
|
||||
f 31/54/32 24/57/25 23/58/24 32/55/33
|
||||
f 33/56/34 32/55/33 30/59/31 29/60/30
|
||||
f 32/55/33 23/58/24 25/61/26 30/59/31
|
||||
f 9/29/10 34/62/35 35/63/36 36/64/37
|
||||
f 34/62/35 37/65/38 38/66/39 35/63/36
|
||||
f 36/64/37 35/63/36 39/67/40 40/68/41
|
||||
f 35/63/36 38/66/39 41/69/42 39/67/40
|
||||
f 14/34/15 42/70/43 43/71/44 44/72/45
|
||||
f 42/70/43 45/73/46 46/74/47 43/71/44
|
||||
f 44/72/45 43/71/44 38/75/39 37/76/38
|
||||
f 43/71/44 46/74/47 41/77/42 38/75/39
|
||||
f 8/28/9 47/78/48 48/79/49 49/80/50
|
||||
f 47/78/48 40/81/41 39/82/40 48/79/49
|
||||
f 49/80/50 48/79/49 46/83/47 45/84/46
|
||||
f 48/79/49 39/82/40 41/85/42 46/83/47
|
||||
f 11/31/12 50/86/51 51/87/52 52/88/53
|
||||
f 50/86/51 53/89/54 54/90/55 51/87/52
|
||||
f 52/88/53 51/87/52 55/91/56 56/92/57
|
||||
f 51/87/52 54/90/55 57/93/58 55/91/56
|
||||
f 58/94/59 59/95/60 60/96/61 61/97/62
|
||||
f 59/95/60 62/98/63 63/99/64 60/96/61
|
||||
f 61/97/62 60/96/61 54/100/55 53/101/54
|
||||
f 60/96/61 63/99/64 57/102/58 54/100/55
|
||||
f 2/22/3 64/103/65 65/104/66 66/105/67
|
||||
f 64/103/65 56/106/57 55/107/56 65/104/66
|
||||
f 66/105/67 65/104/66 63/108/64 62/109/63
|
||||
f 65/104/66 55/107/56 57/110/58 63/108/64
|
||||
f 1/21/2 67/111/68 68/112/69 69/113/70
|
||||
f 67/111/68 70/114/71 71/115/72 68/112/69
|
||||
f 69/113/70 68/112/69 72/116/73 73/117/74
|
||||
f 68/112/69 71/115/72 74/118/75 72/116/73
|
||||
f 15/35/16 75/119/76 76/120/77 77/121/78
|
||||
f 75/119/76 78/122/79 79/123/80 76/120/77
|
||||
f 77/121/78 76/120/77 71/124/72 70/125/71
|
||||
f 76/120/77 79/123/80 74/126/75 71/124/72
|
||||
f 12/32/13 80/127/81 81/128/82 82/129/83
|
||||
f 80/127/81 73/130/74 72/131/73 81/128/82
|
||||
f 82/129/83 81/128/82 79/132/80 78/133/79
|
||||
f 81/128/82 72/131/73 74/134/75 79/132/80
|
||||
f 16/36/17 15/35/16 77/121/78 96/135/84
|
||||
f 96/135/84 77/121/78 70/125/71 95/136/85
|
||||
f 95/137/85 70/114/71 67/111/68 94/138/86
|
||||
f 94/138/86 67/111/68 1/21/2 4/24/5
|
||||
f 15/35/16 14/34/15 44/72/45 75/119/76
|
||||
f 75/119/76 44/72/45 37/76/38 78/122/79
|
||||
f 78/133/79 37/65/38 34/62/35 82/129/83
|
||||
f 82/129/83 34/62/35 9/29/10 12/32/13
|
||||
f 17/37/18 58/94/59 61/97/62 18/38/19
|
||||
f 18/38/19 61/97/62 53/101/54 21/41/22
|
||||
f 21/52/22 53/89/54 50/86/51 28/48/29
|
||||
f 28/48/29 50/86/51 11/31/12 10/30/11
|
||||
f 14/34/15 13/33/14 89/139/87 42/70/43
|
||||
f 42/70/43 89/139/87 88/140/88 45/73/46
|
||||
f 45/84/46 88/141/88 87/142/89 49/80/50
|
||||
f 49/80/50 87/142/89 5/25/6 8/28/9
|
||||
f 58/94/59 92/143/90 93/144/91 59/95/60
|
||||
f 59/95/60 93/144/91 91/145/92 62/98/63
|
||||
f 62/109/63 91/146/92 90/147/93 66/105/67
|
||||
f 66/105/67 90/147/93 3/23/4 2/22/3
|
||||
f 2/22/3 1/21/2 69/113/70 64/103/65
|
||||
f 64/103/65 69/113/70 73/117/74 56/106/57
|
||||
f 56/92/57 73/130/74 80/127/81 52/88/53
|
||||
f 52/88/53 80/127/81 12/32/13 11/31/12
|
||||
f 10/30/11 9/29/10 36/64/37 26/46/27
|
||||
f 26/46/27 36/64/37 40/68/41 29/49/30
|
||||
f 29/60/30 40/81/41 47/78/48 33/56/34
|
||||
f 33/56/34 47/78/48 8/28/9 7/27/8
|
||||
f 83/148/94 17/37/18 20/40/21 84/149/95
|
||||
f 84/149/95 20/40/21 24/44/25 85/150/96
|
||||
f 85/151/96 24/57/25 31/54/32 86/152/97
|
||||
f 86/152/97 31/54/32 7/27/8 6/26/7
|
||||
f 17/37/18 83/148/94 92/143/90 58/94/59
|
||||
301
public/somaesque/resources/c000011.obj
Normal file
@@ -0,0 +1,301 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib c000011.mtl
|
||||
o Cube_Cube.003
|
||||
v 0.495579 0.504344 -0.499961
|
||||
v 0.495579 0.504344 0.399961
|
||||
v 0.504305 -0.495618 0.399961
|
||||
v 0.503432 -0.395583 0.500000
|
||||
v 0.504049 -0.466318 0.470699
|
||||
v 0.503766 -0.433864 0.492385
|
||||
v 0.504239 -0.488003 0.438244
|
||||
v 0.496118 0.442590 0.492385
|
||||
v 0.496452 0.404309 0.500000
|
||||
v 0.495834 0.475044 0.470699
|
||||
v 0.495645 0.496729 0.438244
|
||||
v 0.504305 -0.495618 -0.499961
|
||||
v -0.395583 -0.503471 -0.499961
|
||||
v -0.433931 -0.496191 -0.499961
|
||||
v -0.466574 -0.474789 -0.499961
|
||||
v -0.404309 0.496491 -0.499961
|
||||
v -0.503471 0.395583 -0.499961
|
||||
v -0.474789 0.466574 -0.499961
|
||||
v -0.496491 -0.404309 -0.499961
|
||||
v -0.488542 -0.442524 -0.499961
|
||||
v -0.442524 0.488542 -0.499961
|
||||
v -0.496190 0.433931 -0.499961
|
||||
v -0.496491 -0.404309 0.399961
|
||||
v -0.503471 0.395583 0.399961
|
||||
v -0.403436 0.396456 0.500000
|
||||
v -0.396456 -0.403436 0.500000
|
||||
v -0.404309 0.496491 0.399961
|
||||
v -0.434737 -0.403770 0.492385
|
||||
v -0.435354 -0.443019 0.483194
|
||||
v -0.396122 -0.441717 0.492385
|
||||
v -0.467191 -0.404053 0.470699
|
||||
v -0.461779 -0.441258 0.465612
|
||||
v -0.433132 -0.469410 0.465612
|
||||
v -0.395838 -0.474171 0.470699
|
||||
v -0.453706 -0.461695 0.457718
|
||||
v -0.488542 -0.442524 0.399961
|
||||
v -0.479343 -0.443403 0.439203
|
||||
v -0.488876 -0.404242 0.438244
|
||||
v -0.466574 -0.474789 0.399961
|
||||
v -0.461531 -0.469657 0.437212
|
||||
v -0.395583 -0.503471 0.399961
|
||||
v -0.395649 -0.495856 0.438244
|
||||
v -0.434970 -0.487008 0.439203
|
||||
v -0.433931 -0.496191 0.399961
|
||||
v -0.495856 0.395649 0.438244
|
||||
v -0.487008 0.434970 0.439203
|
||||
v -0.496191 0.433931 0.399961
|
||||
v -0.474171 0.395838 0.470699
|
||||
v -0.469410 0.433132 0.465612
|
||||
v -0.469657 0.461531 0.437212
|
||||
v -0.474789 0.466574 0.399961
|
||||
v -0.461695 0.453706 0.457718
|
||||
v -0.403770 0.434737 0.492385
|
||||
v -0.443019 0.435354 0.483194
|
||||
v -0.441718 0.396122 0.492385
|
||||
v -0.404053 0.467191 0.470699
|
||||
v -0.441258 0.461779 0.465612
|
||||
v -0.442524 0.488542 0.399961
|
||||
v -0.443403 0.479343 0.439203
|
||||
v -0.404243 0.488876 0.438244
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.400010 0.775010
|
||||
vt 0.599990 0.775010
|
||||
vt 0.599990 0.974990
|
||||
vt 0.400010 0.974990
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.599990 0.765439
|
||||
vt 0.609801 0.765199
|
||||
vt 0.609561 0.775010
|
||||
vt 0.599990 0.750000
|
||||
vt 0.609303 0.750000
|
||||
vt 0.625000 0.765697
|
||||
vt 0.625000 0.775010
|
||||
vt 0.614430 0.750000
|
||||
vt 0.359561 0.724990
|
||||
vt 0.359801 0.734801
|
||||
vt 0.349990 0.734561
|
||||
vt 0.375000 0.724990
|
||||
vt 0.375000 0.734303
|
||||
vt 0.359303 0.750000
|
||||
vt 0.349990 0.750000
|
||||
vt 0.375000 0.739430
|
||||
vt 0.599990 0.724990
|
||||
vt 0.609561 0.724990
|
||||
vt 0.609801 0.734801
|
||||
vt 0.599990 0.734561
|
||||
vt 0.625000 0.724990
|
||||
vt 0.625000 0.734303
|
||||
vt 0.609303 0.750000
|
||||
vt 0.599990 0.750000
|
||||
vt 0.625000 0.739430
|
||||
vt 0.150010 0.734561
|
||||
vt 0.140199 0.734801
|
||||
vt 0.140439 0.724990
|
||||
vt 0.150010 0.750000
|
||||
vt 0.140697 0.750000
|
||||
vt 0.125000 0.734303
|
||||
vt 0.125000 0.724990
|
||||
vt 0.135570 0.750000
|
||||
vt 0.390439 0.775010
|
||||
vt 0.390199 0.765199
|
||||
vt 0.400010 0.765439
|
||||
vt 0.375000 0.775010
|
||||
vt 0.375000 0.765697
|
||||
vt 0.390697 0.750000
|
||||
vt 0.400010 0.750000
|
||||
vt 0.375000 0.760570
|
||||
vt 0.400010 0.234561
|
||||
vt 0.390199 0.234801
|
||||
vt 0.390439 0.224990
|
||||
vt 0.400010 0.250000
|
||||
vt 0.390697 0.250000
|
||||
vt 0.375000 0.234303
|
||||
vt 0.375000 0.224990
|
||||
vt 0.385570 0.250000
|
||||
vt 0.599990 0.234561
|
||||
vt 0.599990 0.250000
|
||||
vt 0.125000 0.525010
|
||||
vt 0.140439 0.525010
|
||||
vt 0.599990 0.525010
|
||||
vt 0.609561 0.525010
|
||||
vt 0.625000 0.525010
|
||||
vt 0.625000 0.974990
|
||||
vt 0.609561 0.974990
|
||||
vt 0.390439 0.025010
|
||||
vt 0.375000 0.025010
|
||||
vt 0.375000 0.974990
|
||||
vt 0.390439 0.974990
|
||||
vt 0.400010 0.724990
|
||||
vt 0.400010 0.734561
|
||||
vt 0.400010 0.750000
|
||||
vt 0.375000 0.525010
|
||||
vt 0.359561 0.525010
|
||||
vt 0.400010 0.525010
|
||||
vn 1.0000 0.0087 -0.0000
|
||||
vn 1.0000 0.0088 -0.0000
|
||||
vn 1.0000 0.0087 -0.0001
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -0.9960 0.0893 -0.0000
|
||||
vn -0.9943 -0.1067 0.0000
|
||||
vn -0.9890 -0.1090 0.1004
|
||||
vn -0.9907 0.0917 0.1004
|
||||
vn -0.1013 0.0995 0.9899
|
||||
vn -0.0995 -0.1013 0.9899
|
||||
vn 0.0009 -0.0980 0.9952
|
||||
vn -0.0009 0.0980 0.9952
|
||||
vn -0.0087 0.9951 0.0980
|
||||
vn -0.0087 1.0000 -0.0000
|
||||
vn -0.1067 0.9943 -0.0000
|
||||
vn -0.1090 0.9890 0.1004
|
||||
vn -0.3783 -0.1014 0.9201
|
||||
vn -0.3641 -0.3705 0.8545
|
||||
vn -0.0948 -0.3801 0.9201
|
||||
vn -0.7033 -0.0981 0.7041
|
||||
vn -0.6634 -0.3405 0.6663
|
||||
vn -0.3289 -0.6692 0.6663
|
||||
vn -0.0858 -0.7049 0.7041
|
||||
vn -0.5723 -0.5824 0.5773
|
||||
vn -0.9167 -0.3872 0.0981
|
||||
vn -0.8512 -0.3748 0.3674
|
||||
vn -0.9192 -0.1062 0.3792
|
||||
vn -0.6979 -0.7102 0.0919
|
||||
vn -0.6605 -0.6721 0.3347
|
||||
vn -0.0917 -0.9907 0.1004
|
||||
vn -0.0901 -0.9209 0.3792
|
||||
vn -0.3599 -0.8576 0.3674
|
||||
vn -0.3712 -0.9234 0.0982
|
||||
vn -0.9209 0.0901 0.3792
|
||||
vn -0.8576 0.3599 0.3674
|
||||
vn -0.9234 0.3712 0.0982
|
||||
vn -0.7049 0.0858 0.7041
|
||||
vn -0.6692 0.3289 0.6663
|
||||
vn -0.6721 0.6605 0.3347
|
||||
vn -0.7102 0.6979 0.0919
|
||||
vn -0.5824 0.5723 0.5773
|
||||
vn -0.1014 0.3783 0.9201
|
||||
vn -0.3705 0.3641 0.8545
|
||||
vn -0.3801 0.0948 0.9201
|
||||
vn -0.0981 0.7033 0.7041
|
||||
vn -0.3405 0.6634 0.6663
|
||||
vn -0.3872 0.9167 0.0981
|
||||
vn -0.3748 0.8512 0.3674
|
||||
vn -0.1062 0.9192 0.3792
|
||||
vn -0.3907 0.9205 -0.0000
|
||||
vn -0.7132 0.7009 -0.0000
|
||||
vn -0.9272 0.3746 -0.0000
|
||||
vn 0.0087 -0.9951 0.0980
|
||||
vn 0.0081 -0.9238 0.3827
|
||||
vn 0.0062 -0.7071 0.7071
|
||||
vn 0.0033 -0.3827 0.9239
|
||||
vn -0.0081 0.9238 0.3827
|
||||
vn -0.0062 0.7071 0.7071
|
||||
vn -0.0033 0.3827 0.9239
|
||||
vn -0.0893 -0.9960 0.0000
|
||||
vn -0.3746 -0.9272 0.0000
|
||||
vn -0.7009 -0.7132 0.0000
|
||||
vn -0.9205 -0.3907 0.0000
|
||||
vn 0.0087 -1.0000 0.0000
|
||||
usemtl Default_OBJ.003
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1
|
||||
f 3/3/1 4/4/1 5/5/1
|
||||
f 4/4/1 6/6/1 5/5/1
|
||||
f 7/7/2 3/3/2 5/5/2
|
||||
f 8/8/3 9/9/3 10/10/3
|
||||
f 9/9/1 2/2/1 10/10/1
|
||||
f 2/2/1 11/11/1 10/10/1
|
||||
f 12/12/1 1/1/1 3/3/1
|
||||
f 4/4/1 3/3/1 9/9/1
|
||||
f 3/3/1 2/2/1 9/9/1
|
||||
f 13/13/4 14/14/4 15/15/4
|
||||
f 16/16/4 17/17/4 18/18/4
|
||||
f 13/13/4 1/1/4 12/12/4
|
||||
f 13/13/4 16/16/4 1/1/4
|
||||
f 16/16/4 19/19/4 17/17/4
|
||||
f 19/19/4 13/13/4 15/15/4
|
||||
f 20/20/4 19/19/4 15/15/4
|
||||
f 21/21/4 16/16/4 18/18/4
|
||||
f 19/19/4 16/16/4 13/13/4
|
||||
f 22/22/4 18/18/4 17/17/4
|
||||
s 1
|
||||
f 17/23/5 19/24/6 23/25/7 24/26/8
|
||||
f 25/27/9 26/28/10 4/29/11 9/30/12
|
||||
f 2/31/13 1/32/14 16/33/15 27/34/16
|
||||
f 26/28/10 28/35/17 29/36/18 30/37/19
|
||||
f 28/35/17 31/38/20 32/39/21 29/36/18
|
||||
f 30/37/19 29/36/18 33/40/22 34/41/23
|
||||
f 29/36/18 32/39/21 35/42/24 33/40/22
|
||||
f 23/25/7 36/43/25 37/44/26 38/45/27
|
||||
f 36/43/25 39/46/28 40/47/29 37/44/26
|
||||
f 38/45/27 37/44/26 32/48/21 31/49/20
|
||||
f 37/44/26 40/47/29 35/50/24 32/48/21
|
||||
f 41/51/30 42/52/31 43/53/32 44/54/33
|
||||
f 42/52/31 34/55/23 33/56/22 43/53/32
|
||||
f 44/54/33 43/53/32 40/57/29 39/58/28
|
||||
f 43/53/32 33/56/22 35/59/24 40/57/29
|
||||
f 24/26/8 45/60/34 46/61/35 47/62/36
|
||||
f 45/60/34 48/63/37 49/64/38 46/61/35
|
||||
f 47/62/36 46/61/35 50/65/39 51/66/40
|
||||
f 46/61/35 49/64/38 52/67/41 50/65/39
|
||||
f 25/27/9 53/68/42 54/69/43 55/70/44
|
||||
f 53/68/42 56/71/45 57/72/46 54/69/43
|
||||
f 55/70/44 54/69/43 49/73/38 48/74/37
|
||||
f 54/69/43 57/72/46 52/75/41 49/73/38
|
||||
f 27/34/16 58/76/47 59/77/48 60/78/49
|
||||
f 58/76/47 51/79/40 50/80/39 59/77/48
|
||||
f 60/78/49 59/77/48 57/81/46 56/82/45
|
||||
f 59/77/48 50/80/39 52/83/41 57/81/46
|
||||
f 27/34/16 16/33/15 21/84/50 58/76/47
|
||||
f 58/76/47 21/84/50 18/85/51 51/79/40
|
||||
f 51/66/40 18/86/51 22/87/52 47/62/36
|
||||
f 47/62/36 22/87/52 17/23/5 24/26/8
|
||||
f 41/51/30 3/88/53 7/89/54 42/52/31
|
||||
f 42/52/31 7/89/54 5/90/55 34/55/23
|
||||
f 34/41/23 5/91/55 6/92/56 30/37/19
|
||||
f 30/37/19 6/92/56 4/29/11 26/28/10
|
||||
f 2/31/13 27/34/16 60/78/49 11/93/57
|
||||
f 11/93/57 60/78/49 56/82/45 10/94/58
|
||||
f 10/95/58 56/71/45 53/68/42 8/96/59
|
||||
f 8/96/59 53/68/42 25/27/9 9/30/12
|
||||
f 13/97/60 41/51/30 44/54/33 14/98/61
|
||||
f 14/98/61 44/54/33 39/58/28 15/99/62
|
||||
f 15/100/62 39/46/28 36/43/25 20/101/63
|
||||
f 20/101/63 36/43/25 23/25/7 19/24/6
|
||||
f 24/26/8 23/25/7 38/45/27 45/60/34
|
||||
f 45/60/34 38/45/27 31/49/20 48/63/37
|
||||
f 48/74/37 31/38/20 28/35/17 55/70/44
|
||||
f 55/70/44 28/35/17 26/28/10 25/27/9
|
||||
f 12/102/64 3/88/53 41/51/30 13/97/60
|
||||
214
public/somaesque/resources/c000111.obj
Normal file
@@ -0,0 +1,214 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib c000111.mtl
|
||||
o Cube_Cube.004
|
||||
v 0.499961 -0.500000 0.399961
|
||||
v 0.499961 -0.399961 0.500000
|
||||
v 0.499961 -0.470699 0.470699
|
||||
v 0.499961 -0.438244 0.492385
|
||||
v 0.499961 -0.492385 0.438244
|
||||
v 0.499961 0.499961 0.500000
|
||||
v -0.399962 -0.500000 -0.499961
|
||||
v -0.438245 -0.492385 -0.499961
|
||||
v -0.470700 -0.470699 -0.499961
|
||||
v -0.500000 -0.399961 -0.499961
|
||||
v -0.492385 -0.438244 -0.499961
|
||||
v -0.500000 0.499961 -0.499961
|
||||
v -0.500000 -0.399961 0.399961
|
||||
v -0.500000 0.499962 0.399961
|
||||
v -0.399961 0.499962 0.500000
|
||||
v -0.399961 -0.399961 0.500000
|
||||
v -0.438244 -0.399961 0.492385
|
||||
v -0.439203 -0.439203 0.483194
|
||||
v -0.399962 -0.438243 0.492385
|
||||
v -0.470699 -0.399961 0.470699
|
||||
v -0.465612 -0.437211 0.465612
|
||||
v -0.437212 -0.465612 0.465612
|
||||
v -0.399961 -0.470699 0.470699
|
||||
v -0.457718 -0.457718 0.457718
|
||||
v -0.492385 -0.438244 0.399961
|
||||
v -0.483194 -0.439203 0.439203
|
||||
v -0.492385 -0.399960 0.438244
|
||||
v -0.470699 -0.470699 0.399961
|
||||
v -0.465612 -0.465612 0.437212
|
||||
v -0.399961 -0.500000 0.399961
|
||||
v -0.399961 -0.492384 0.438244
|
||||
v -0.439203 -0.483194 0.439203
|
||||
v -0.438244 -0.492385 0.399961
|
||||
v 0.499961 0.500000 -0.499961
|
||||
v 0.499961 -0.500000 -0.499961
|
||||
v -0.492384 0.499961 0.438244
|
||||
v -0.470699 0.499961 0.470699
|
||||
v -0.438244 0.499962 0.492385
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.599990 0.775010
|
||||
vt 0.400010 0.974990
|
||||
vt 0.400010 0.775010
|
||||
vt 0.599990 0.765439
|
||||
vt 0.609561 0.775010
|
||||
vt 0.599990 0.750000
|
||||
vt 0.609801 0.765199
|
||||
vt 0.625000 0.775010
|
||||
vt 0.614430 0.750000
|
||||
vt 0.625000 0.765697
|
||||
vt 0.359561 0.724990
|
||||
vt 0.349990 0.734561
|
||||
vt 0.375000 0.724990
|
||||
vt 0.359801 0.734801
|
||||
vt 0.349990 0.750000
|
||||
vt 0.375000 0.739430
|
||||
vt 0.359303 0.750000
|
||||
vt 0.609561 0.724990
|
||||
vt 0.599990 0.734561
|
||||
vt 0.599990 0.724990
|
||||
vt 0.625000 0.724990
|
||||
vt 0.609801 0.734801
|
||||
vt 0.599990 0.750000
|
||||
vt 0.625000 0.739430
|
||||
vt 0.609303 0.750000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.400010 0.525010
|
||||
vt 0.599990 0.525010
|
||||
vt 0.609561 0.525010
|
||||
vt 0.609561 0.974990
|
||||
vt 0.400010 0.724990
|
||||
vt 0.400010 0.734561
|
||||
vt 0.400010 0.750000
|
||||
vt 0.375000 0.525010
|
||||
vt 0.359561 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.150010 0.734561
|
||||
vt 0.150010 0.750000
|
||||
vt 0.400010 0.750000
|
||||
vt 0.400010 0.765439
|
||||
vt 0.599990 0.974990
|
||||
vt 0.609303 0.750000
|
||||
vt 0.375000 0.734303
|
||||
vt 0.625000 0.734303
|
||||
vt 0.625000 0.525010
|
||||
vt 0.625000 0.974990
|
||||
vn 0.8575 -0.5120 0.0504
|
||||
vn 0.8321 -0.0544 0.5520
|
||||
vn 0.8321 -0.3922 0.3922
|
||||
vn 0.2425 -0.3713 0.8963
|
||||
vn 0.3162 -0.8765 0.3630
|
||||
vn 0.6933 0.5095 0.5096
|
||||
vn -0.0588 -0.5971 -0.8000
|
||||
vn -0.3423 -0.8263 -0.4472
|
||||
vn -0.5657 -0.5657 -0.6000
|
||||
vn -0.5971 -0.0588 -0.8000
|
||||
vn -0.8264 -0.3423 -0.4472
|
||||
vn -0.5774 0.5773 -0.5774
|
||||
vn -0.9905 -0.0970 0.0970
|
||||
vn -0.7244 0.6857 0.0714
|
||||
vn -0.0970 -0.0970 0.9905
|
||||
vn -0.0714 0.6857 0.7244
|
||||
vn -0.3783 -0.0972 0.9206
|
||||
vn -0.0972 -0.3783 0.9206
|
||||
vn -0.7041 -0.0919 0.7041
|
||||
vn -0.3703 -0.3703 0.8519
|
||||
vn -0.0919 -0.7041 0.7041
|
||||
vn -0.5774 -0.5773 0.5774
|
||||
vn -0.3266 -0.6683 0.6683
|
||||
vn -0.9206 -0.3783 0.0972
|
||||
vn -0.9206 -0.0972 0.3783
|
||||
vn -0.7041 -0.7041 0.0919
|
||||
vn -0.8519 -0.3703 0.3703
|
||||
vn -0.6683 -0.3266 0.6683
|
||||
vn -0.0972 -0.9206 0.3783
|
||||
vn -0.3783 -0.9206 0.0972
|
||||
vn -0.0970 -0.9905 0.0970
|
||||
vn -0.3703 -0.8519 0.3703
|
||||
vn -0.6683 -0.6683 0.3266
|
||||
vn 0.5773 0.5774 -0.5773
|
||||
vn 0.5000 -0.7071 -0.5000
|
||||
vn -0.6894 0.6657 0.2856
|
||||
vn -0.5277 0.6657 0.5276
|
||||
vn -0.2856 0.6657 0.6894
|
||||
usemtl Default_OBJ.005
|
||||
s 1
|
||||
f 1/1/1 2/2/2 3/3/3
|
||||
f 2/2/2 4/4/4 3/3/3
|
||||
f 5/5/5 1/1/1 3/3/3
|
||||
f 2/2/2 1/1/1 6/6/6
|
||||
f 7/7/7 8/8/8 9/9/9
|
||||
f 10/10/10 7/7/7 9/9/9
|
||||
f 11/11/11 10/10/10 9/9/9
|
||||
f 12/12/12 13/13/13 14/14/14
|
||||
f 16/15/15 6/16/6 15/17/16
|
||||
f 17/18/17 19/19/18 16/15/15
|
||||
f 20/20/19 18/21/20 17/18/17
|
||||
f 18/21/20 23/22/21 19/19/18
|
||||
f 18/21/20 24/23/22 22/24/23
|
||||
f 25/25/24 27/26/25 13/13/13
|
||||
f 28/27/26 26/28/27 25/25/24
|
||||
f 26/28/27 20/29/19 27/26/25
|
||||
f 26/28/27 24/30/22 21/31/28
|
||||
f 31/32/29 33/33/30 30/34/31
|
||||
f 23/35/21 32/36/32 31/32/29
|
||||
f 32/36/32 28/37/26 33/33/30
|
||||
f 32/36/32 24/38/22 29/39/33
|
||||
f 10/10/10 12/12/12 34/40/34
|
||||
f 34/40/34 1/1/1 35/41/35
|
||||
f 34/40/34 14/14/14 15/17/16
|
||||
f 1/42/1 31/32/29 30/34/31
|
||||
f 5/43/5 23/35/21 31/32/29
|
||||
f 23/22/21 4/44/4 19/19/18
|
||||
f 4/44/4 16/15/15 19/19/18
|
||||
f 7/45/7 33/33/30 8/46/8
|
||||
f 33/33/30 9/47/9 8/46/8
|
||||
f 9/48/9 25/25/24 11/49/11
|
||||
f 25/25/24 10/50/10 11/49/11
|
||||
f 13/13/13 36/51/36 14/14/14
|
||||
f 27/26/25 37/52/37 36/51/36
|
||||
f 37/53/37 17/18/17 38/54/38
|
||||
f 17/18/17 15/17/16 38/54/38
|
||||
f 35/41/35 30/34/31 7/45/7
|
||||
f 12/12/12 10/50/10 13/13/13
|
||||
f 16/15/15 2/55/2 6/16/6
|
||||
f 17/18/17 18/21/20 19/19/18
|
||||
f 20/20/19 21/56/28 18/21/20
|
||||
f 18/21/20 22/24/23 23/22/21
|
||||
f 18/21/20 21/56/28 24/23/22
|
||||
f 25/25/24 26/28/27 27/26/25
|
||||
f 28/27/26 29/57/33 26/28/27
|
||||
f 26/28/27 21/31/28 20/29/19
|
||||
f 26/28/27 29/57/33 24/30/22
|
||||
f 31/32/29 32/36/32 33/33/30
|
||||
f 23/35/21 22/58/23 32/36/32
|
||||
f 32/36/32 29/39/33 28/37/26
|
||||
f 32/36/32 22/58/23 24/38/22
|
||||
f 35/41/35 7/7/7 34/40/34
|
||||
f 7/7/7 10/10/10 34/40/34
|
||||
f 34/40/34 6/16/6 1/1/1
|
||||
f 12/12/12 14/14/14 34/40/34
|
||||
f 14/14/14 36/51/36 38/54/38
|
||||
f 36/51/36 37/52/37 38/54/38
|
||||
f 38/54/38 15/17/16 14/14/14
|
||||
f 15/17/16 6/16/6 34/40/34
|
||||
f 1/42/1 5/43/5 31/32/29
|
||||
f 5/43/5 3/59/3 23/35/21
|
||||
f 23/22/21 3/60/3 4/44/4
|
||||
f 4/44/4 2/55/2 16/15/15
|
||||
f 7/45/7 30/34/31 33/33/30
|
||||
f 33/33/30 28/37/26 9/47/9
|
||||
f 9/48/9 28/27/26 25/25/24
|
||||
f 25/25/24 13/13/13 10/50/10
|
||||
f 13/13/13 27/26/25 36/51/36
|
||||
f 27/26/25 20/29/19 37/52/37
|
||||
f 37/53/37 20/20/19 17/18/17
|
||||
f 17/18/17 16/15/15 15/17/16
|
||||
f 35/41/35 1/42/1 30/34/31
|
||||
213
public/somaesque/resources/c001001.obj
Normal file
@@ -0,0 +1,213 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib c001001.mtl
|
||||
o Cube_Cube.010
|
||||
v -0.499961 0.500000 -0.399961
|
||||
v -0.499961 0.399961 0.500000
|
||||
v -0.499961 0.500000 0.399961
|
||||
v -0.499961 0.470699 0.470699
|
||||
v -0.499961 0.492385 0.438244
|
||||
v -0.499961 0.492385 -0.438244
|
||||
v -0.499961 0.470699 -0.470699
|
||||
v -0.499961 0.438244 -0.492385
|
||||
v -0.499961 0.399961 -0.500000
|
||||
v -0.499961 -0.399961 -0.500000
|
||||
v -0.499961 -0.438244 -0.492385
|
||||
v -0.499961 -0.470699 -0.470699
|
||||
v -0.499961 0.438244 0.492385
|
||||
v -0.499961 -0.399961 0.500000
|
||||
v -0.499961 -0.500000 0.399961
|
||||
v -0.499961 -0.470699 0.470699
|
||||
v 0.499961 0.500000 0.399961
|
||||
v 0.499961 0.399961 -0.500000
|
||||
v 0.499961 0.500000 -0.399961
|
||||
v -0.499961 -0.438244 0.492385
|
||||
v -0.499961 -0.500000 -0.399961
|
||||
v -0.499961 -0.492385 0.438244
|
||||
v -0.499961 -0.492385 -0.438244
|
||||
v 0.499961 0.470699 -0.470699
|
||||
v 0.499961 0.492385 -0.438244
|
||||
v 0.499961 0.492385 0.438244
|
||||
v 0.499961 0.470699 0.470699
|
||||
v 0.499961 0.438244 0.492385
|
||||
v 0.499961 0.399961 0.500000
|
||||
v 0.499961 -0.399961 0.500000
|
||||
v 0.499961 -0.438244 0.492385
|
||||
v 0.499961 -0.470699 0.470699
|
||||
v 0.499961 0.438244 -0.492385
|
||||
v 0.499961 -0.399961 -0.500000
|
||||
v 0.499961 -0.500000 -0.399961
|
||||
v 0.499961 -0.470699 -0.470699
|
||||
v 0.499961 -0.438244 -0.492385
|
||||
v 0.499961 -0.500000 0.399961
|
||||
v 0.499961 -0.492385 -0.438244
|
||||
v 0.499961 -0.492385 0.438244
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.650010 0.525010
|
||||
vt 0.849990 0.525010
|
||||
vt 0.849990 0.724990
|
||||
vt 0.650010 0.724990
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.599990 0.234561
|
||||
vt 0.400010 0.234561
|
||||
vt 0.599990 0.250000
|
||||
vt 0.400010 0.250000
|
||||
vt 0.125000 0.724990
|
||||
vt 0.125000 0.525010
|
||||
vt 0.140439 0.525010
|
||||
vt 0.140439 0.724990
|
||||
vt 0.400010 0.015439
|
||||
vt 0.599990 0.015439
|
||||
vt 0.400010 0.000000
|
||||
vt 0.599990 0.000000
|
||||
vt 0.625000 0.724990
|
||||
vt 0.625000 0.525010
|
||||
vt 0.640439 0.525010
|
||||
vt 0.640439 0.724990
|
||||
vt 0.400010 0.724990
|
||||
vt 0.599990 0.724990
|
||||
vt 0.599990 0.734561
|
||||
vt 0.400010 0.734561
|
||||
vt 0.599990 0.750000
|
||||
vt 0.400010 0.750000
|
||||
vt 0.375000 0.525010
|
||||
vt 0.375000 0.724990
|
||||
vt 0.359561 0.724990
|
||||
vt 0.359561 0.525010
|
||||
vt 0.599990 0.525010
|
||||
vt 0.400010 0.525010
|
||||
vt 0.400010 0.515439
|
||||
vt 0.599990 0.515439
|
||||
vt 0.400010 0.500000
|
||||
vt 0.599990 0.500000
|
||||
vt 0.875000 0.525010
|
||||
vt 0.875000 0.724990
|
||||
vt 0.859561 0.724990
|
||||
vt 0.859561 0.525010
|
||||
vn -1.0000 0.0000 -0.0000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
vn -0.0000 -0.9952 -0.0980
|
||||
vn -0.0000 -0.9952 0.0980
|
||||
vn 0.0000 0.9952 -0.0980
|
||||
vn 0.0000 0.9952 0.0980
|
||||
vn 0.0000 0.0980 -0.9952
|
||||
vn 0.0000 -0.0980 -0.9952
|
||||
vn 0.0000 -0.3827 -0.9239
|
||||
vn 0.0000 -0.7071 -0.7071
|
||||
vn -0.0000 -0.9239 -0.3827
|
||||
vn 0.0000 0.3827 -0.9239
|
||||
vn 0.0000 0.7071 -0.7071
|
||||
vn 0.0000 0.9239 -0.3827
|
||||
vn -0.0000 -0.0980 0.9952
|
||||
vn -0.0000 -0.3827 0.9239
|
||||
vn -0.0000 -0.7071 0.7071
|
||||
vn -0.0000 -0.9239 0.3827
|
||||
vn -0.0000 0.0980 0.9952
|
||||
vn -0.0000 0.3827 0.9239
|
||||
vn -0.0000 0.7071 0.7071
|
||||
vn 0.0000 0.9239 0.3827
|
||||
usemtl Default_OBJ.006
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1
|
||||
f 4/4/1 5/5/1 3/3/1
|
||||
f 1/1/1 6/6/1 7/7/1
|
||||
f 8/8/1 9/9/1 7/7/1
|
||||
f 10/10/1 11/11/1 12/12/1
|
||||
f 2/2/1 13/13/1 4/4/1
|
||||
f 14/14/1 15/15/1 16/16/1
|
||||
f 15/15/1 14/14/1 9/9/1
|
||||
f 2/2/1 1/1/1 14/14/1
|
||||
f 10/10/1 15/15/1 9/9/1
|
||||
f 17/17/2 18/18/2 19/19/2
|
||||
f 3/3/1 2/2/1 4/4/1
|
||||
f 9/9/1 1/1/1 7/7/1
|
||||
f 1/1/1 9/9/1 14/14/1
|
||||
f 20/20/1 14/14/1 16/16/1
|
||||
f 21/21/1 10/10/1 12/12/1
|
||||
f 15/15/1 22/22/1 16/16/1
|
||||
f 15/15/1 10/10/1 21/21/1
|
||||
f 12/12/1 23/23/1 21/21/1
|
||||
f 24/24/2 25/25/2 19/19/2
|
||||
f 17/17/2 26/26/2 27/27/2
|
||||
f 28/28/2 29/29/2 27/27/2
|
||||
f 30/30/2 31/31/2 32/32/2
|
||||
f 18/18/2 33/33/2 24/24/2
|
||||
f 34/34/2 35/35/2 36/36/2
|
||||
f 35/35/2 34/34/2 29/29/2
|
||||
f 18/18/2 17/17/2 34/34/2
|
||||
f 30/30/2 35/35/2 29/29/2
|
||||
f 19/19/2 18/18/2 24/24/2
|
||||
f 29/29/2 17/17/2 27/27/2
|
||||
f 17/17/2 29/29/2 34/34/2
|
||||
f 37/37/2 34/34/2 36/36/2
|
||||
f 38/38/2 30/30/2 32/32/2
|
||||
f 35/35/2 39/39/2 36/36/2
|
||||
f 35/35/2 30/30/2 38/38/2
|
||||
f 32/32/2 40/40/2 38/38/2
|
||||
s 1
|
||||
f 35/41/3 38/42/4 15/43/4 21/44/3
|
||||
f 1/45/5 3/46/6 17/47/6 19/48/5
|
||||
f 9/49/7 18/50/7 34/51/8 10/52/8
|
||||
f 10/52/8 34/51/8 37/53/9 11/54/9
|
||||
f 11/54/9 37/53/9 36/55/10 12/56/10
|
||||
f 12/57/10 36/58/10 39/59/11 23/60/11
|
||||
f 23/60/11 39/59/11 35/41/3 21/44/3
|
||||
f 18/50/7 9/49/7 8/61/12 33/62/12
|
||||
f 33/62/12 8/61/12 7/63/13 24/64/13
|
||||
f 24/65/13 7/66/13 6/67/14 25/68/14
|
||||
f 25/68/14 6/67/14 1/45/5 19/48/5
|
||||
f 30/69/15 14/70/15 20/71/16 31/72/16
|
||||
f 31/72/16 20/71/16 16/73/17 32/74/17
|
||||
f 32/75/17 16/76/17 22/77/18 40/78/18
|
||||
f 40/78/18 22/77/18 15/43/4 38/42/4
|
||||
f 2/79/19 29/80/19 28/81/20 13/82/20
|
||||
f 13/82/20 28/81/20 27/83/21 4/84/21
|
||||
f 4/85/21 27/86/21 26/87/22 5/88/22
|
||||
f 5/88/22 26/87/22 17/47/6 3/46/6
|
||||
f 29/80/19 2/79/19 14/70/15 30/69/15
|
||||
131
public/somaesque/resources/c001011.obj
Normal file
@@ -0,0 +1,131 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib c001011.mtl
|
||||
o Cube_Cube.011
|
||||
v -0.499961 -0.500000 -0.499961
|
||||
v -0.499961 -0.500000 0.499961
|
||||
v -0.499961 0.500000 0.499961
|
||||
v -0.499961 0.500000 -0.499961
|
||||
v 0.399961 0.500000 -0.499961
|
||||
v 0.438244 0.492385 -0.499961
|
||||
v 0.470699 0.470699 -0.499961
|
||||
v 0.399961 -0.500000 -0.499961
|
||||
v 0.500000 -0.399961 -0.499961
|
||||
v 0.470699 -0.470699 -0.499961
|
||||
v 0.500000 0.399961 -0.499961
|
||||
v 0.492385 0.438244 -0.499961
|
||||
v 0.438244 -0.492385 -0.499961
|
||||
v 0.492385 -0.438244 -0.499961
|
||||
v 0.399961 0.500000 0.499961
|
||||
v 0.399961 -0.500000 0.499961
|
||||
v 0.500000 -0.399961 0.499961
|
||||
v 0.500000 0.399961 0.499961
|
||||
v 0.438244 -0.492385 0.499961
|
||||
v 0.470699 -0.470699 0.499961
|
||||
v 0.438244 0.492385 0.499961
|
||||
v 0.470699 0.470699 0.499961
|
||||
v 0.492385 0.438244 0.499961
|
||||
v 0.492385 -0.438244 0.499961
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.599990 0.234561
|
||||
vt 0.400010 0.234561
|
||||
vt 0.599990 0.250000
|
||||
vt 0.400010 0.250000
|
||||
vt 0.125000 0.724990
|
||||
vt 0.125000 0.525010
|
||||
vt 0.140439 0.525010
|
||||
vt 0.140439 0.724990
|
||||
vt 0.400010 0.724990
|
||||
vt 0.599990 0.724990
|
||||
vt 0.599990 0.734561
|
||||
vt 0.400010 0.734561
|
||||
vt 0.599990 0.750000
|
||||
vt 0.400010 0.750000
|
||||
vt 0.375000 0.525010
|
||||
vt 0.375000 0.724990
|
||||
vt 0.359561 0.724990
|
||||
vt 0.359561 0.525010
|
||||
vt 0.400010 0.525010
|
||||
vt 0.599990 0.525010
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.9952 -0.0980 0.0000
|
||||
vn 0.9952 0.0980 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0980 -0.9952 0.0000
|
||||
vn 0.3827 -0.9239 0.0000
|
||||
vn 0.7071 -0.7071 0.0000
|
||||
vn 0.9239 -0.3827 0.0000
|
||||
vn 0.0980 0.9952 0.0000
|
||||
vn 0.3827 0.9239 0.0000
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.9239 0.3827 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
usemtl Default_OBJ.007
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1
|
||||
f 4/4/1 1/1/1 3/3/1
|
||||
f 5/5/2 6/6/2 7/7/2
|
||||
f 8/8/2 9/9/2 10/10/2
|
||||
f 5/5/2 1/1/2 4/4/2
|
||||
f 5/5/2 8/8/2 1/1/2
|
||||
f 8/8/2 11/11/2 9/9/2
|
||||
f 11/11/2 5/5/2 7/7/2
|
||||
f 12/12/2 11/11/2 7/7/2
|
||||
f 13/13/2 8/8/2 10/10/2
|
||||
f 11/11/2 8/8/2 5/5/2
|
||||
f 14/14/2 10/10/2 9/9/2
|
||||
f 15/15/3 3/3/3 2/2/3
|
||||
f 15/15/3 2/2/3 16/16/3
|
||||
f 16/16/3 17/17/3 15/15/3
|
||||
f 17/17/3 18/18/3 15/15/3
|
||||
f 16/16/3 19/19/3 20/20/3
|
||||
f 21/21/3 15/15/3 22/22/3
|
||||
f 17/17/3 16/16/3 20/20/3
|
||||
f 18/18/3 23/23/3 22/22/3
|
||||
f 15/15/3 18/18/3 22/22/3
|
||||
f 20/20/3 24/24/3 17/17/3
|
||||
s 1
|
||||
f 9/25/4 11/26/5 18/27/5 17/28/4
|
||||
f 2/29/6 1/30/6 8/31/7 16/32/7
|
||||
f 16/32/7 8/31/7 13/33/8 19/34/8
|
||||
f 19/34/8 13/33/8 10/35/9 20/36/9
|
||||
f 20/37/9 10/38/9 14/39/10 24/40/10
|
||||
f 24/40/10 14/39/10 9/25/4 17/28/4
|
||||
f 5/41/11 15/42/11 21/43/12 6/44/12
|
||||
f 6/44/12 21/43/12 22/45/13 7/46/13
|
||||
f 7/47/13 22/48/13 23/49/14 12/50/14
|
||||
f 12/50/14 23/49/14 18/27/5 11/26/5
|
||||
f 4/51/15 3/52/15 15/42/11 5/41/11
|
||||
92
public/somaesque/resources/c001111.obj
Normal file
@@ -0,0 +1,92 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib c001111.mtl
|
||||
o Cube_Cube.011
|
||||
v 0.505169 -0.500000 -0.494698
|
||||
v -0.494698 -0.500000 -0.505169
|
||||
v 0.495745 -0.500000 0.405174
|
||||
v 0.494698 -0.399961 0.505208
|
||||
v 0.495005 -0.470699 0.475909
|
||||
v 0.494698 0.499961 0.505208
|
||||
v 0.495344 -0.492385 0.443455
|
||||
v 0.494777 -0.438244 0.497593
|
||||
v -0.504122 -0.500000 0.394704
|
||||
v -0.505169 -0.399961 0.494737
|
||||
v -0.505169 0.499961 0.494737
|
||||
v -0.504523 -0.492385 0.432985
|
||||
v -0.504863 -0.470699 0.465438
|
||||
v 0.505169 0.500000 -0.494698
|
||||
v -0.494698 0.500000 -0.505169
|
||||
v -0.505090 -0.438244 0.487123
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.150010 0.525010
|
||||
vt 0.349990 0.525010
|
||||
vt 0.349990 0.724990
|
||||
vt 0.150010 0.724990
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.599990 0.234561
|
||||
vt 0.400010 0.234561
|
||||
vt 0.599990 0.250000
|
||||
vt 0.400010 0.250000
|
||||
vt 0.125000 0.724990
|
||||
vt 0.125000 0.525010
|
||||
vt 0.140439 0.525010
|
||||
vt 0.140439 0.724990
|
||||
vn 0.9280 -0.3696 0.0461
|
||||
vn 0.8262 -0.0544 0.5607
|
||||
vn 0.8279 -0.3922 0.4009
|
||||
vn 0.8122 0.4082 0.4168
|
||||
vn 0.4436 -0.8264 0.3469
|
||||
vn 0.4385 -0.3423 0.8310
|
||||
vn 0.5834 -0.5774 -0.5713
|
||||
vn 0.5834 0.5774 -0.5713
|
||||
vn -0.8990 -0.0438 0.4357
|
||||
vn -0.9013 0.3015 -0.3110
|
||||
vn -0.8948 -0.4451 0.0344
|
||||
vn -0.3997 -0.4082 -0.8207
|
||||
vn -0.4508 -0.8263 0.3376
|
||||
vn -0.8361 -0.3922 0.3835
|
||||
vn -0.4125 0.8165 0.4040
|
||||
vn -0.4558 -0.3423 0.8216
|
||||
usemtl Default_OBJ.007
|
||||
s 1
|
||||
f 3/1/1 4/2/2 5/3/3
|
||||
f 3/1/1 6/4/4 4/2/2
|
||||
f 7/5/5 3/1/1 5/3/3
|
||||
f 8/6/6 5/3/3 4/2/2
|
||||
f 1/7/7 14/8/8 3/1/1
|
||||
f 10/9/9 15/10/10 9/11/11
|
||||
f 14/8/8 2/12/12 15/10/10
|
||||
f 9/11/11 12/13/13 13/14/14
|
||||
f 11/15/15 14/8/8 15/10/10
|
||||
f 10/9/9 9/11/11 13/14/14
|
||||
f 11/15/15 6/4/4 14/8/8
|
||||
f 14/8/8 1/7/7 2/12/12
|
||||
f 13/14/14 16/16/16 10/9/9
|
||||
f 4/17/2 6/18/4 11/19/15 10/20/9
|
||||
f 2/21/12 1/22/7 3/23/1 9/24/11
|
||||
f 9/24/11 3/23/1 7/25/5 12/26/13
|
||||
f 12/26/13 7/25/5 5/27/3 13/28/14
|
||||
f 13/29/14 5/30/3 8/31/6 16/32/16
|
||||
f 16/32/16 8/31/6 4/17/2 10/20/9
|
||||
f 14/8/8 6/4/4 3/1/1
|
||||
f 15/10/10 2/12/12 9/11/11
|
||||
f 11/15/15 15/10/10 10/9/9
|
||||
45
public/somaesque/resources/c011011.obj
Normal file
@@ -0,0 +1,45 @@
|
||||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v 0.499961 0.500000 -0.499961
|
||||
v 0.499961 -0.500000 -0.499961
|
||||
v 0.499961 0.500000 0.499961
|
||||
v 0.499961 -0.500000 0.499961
|
||||
v -0.499961 0.500000 -0.499961
|
||||
v -0.499961 -0.500000 -0.499961
|
||||
v -0.499961 0.500000 0.499961
|
||||
v -0.499961 -0.500000 0.499961
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.400010 0.025010
|
||||
vt 0.599990 0.025010
|
||||
vt 0.599990 0.224990
|
||||
vt 0.400010 0.224990
|
||||
vt 0.400010 0.525010
|
||||
vt 0.599990 0.525010
|
||||
vt 0.599990 0.724990
|
||||
vt 0.400010 0.724990
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 2/1/1 6/2/1 5/3/1
|
||||
f 1/4/1 2/1/1 5/3/1
|
||||
f 3/5/2 2/1/2 1/4/2
|
||||
f 3/5/2 4/6/2 2/1/2
|
||||
f 7/7/3 5/3/3 6/2/3
|
||||
f 7/7/3 6/2/3 8/8/3
|
||||
f 4/6/4 7/7/4 8/8/4
|
||||
f 4/6/4 3/5/4 7/7/4
|
||||
s 1
|
||||
f 6/9/5 2/10/5 4/11/5 8/12/5
|
||||
f 1/13/6 5/14/6 7/15/6 3/16/6
|
||||
BIN
public/somaesque/resources/soma_icon.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
1
public/somaesque/solver/as-bind.esm.js
Normal file
1
public/somaesque/solver/false
Normal file
525
public/somaesque/solver/main.js
Normal file
BIN
public/somaesque/solver/main.wasm
Normal file
5644
public/somaesque/solver/main.wat
Normal file
525
public/somaesque/worker.js
Normal file
BIN
public/static/assets/baskervville-italic.ttf
Normal file
BIN
public/static/assets/baskervville.ttf
Normal file
52
public/static/assets/leaf-hrule.svg
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="600"
|
||||
height="200"
|
||||
viewBox="0 0 158.74999 52.916668"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="leaf-hrule.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.7071068"
|
||||
inkscape:cx="137.17871"
|
||||
inkscape:cy="316.78383"
|
||||
inkscape:window-width="1266"
|
||||
inkscape:window-height="1393"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g5" /><defs
|
||||
id="defs1" /><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g5"
|
||||
style="fill:#000000;stroke:#000000;stroke-opacity:1;stroke-width:1.3;stroke-dasharray:none;fill-opacity:1"><path
|
||||
id="path2-0"
|
||||
style="baseline-shift:baseline;display:inline;overflow:visible;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.929481;stroke-dasharray:none;stroke-opacity:1;enable-background:accumulate;stop-color:#000000"
|
||||
d="M 103.36799,2.0313828 C 97.919154,6.8995967 91.471199,11.753746 84.827928,14.831058 c -4.362977,1.802096 -7.940465,3.040049 -11.394641,4.403503 -3.454176,1.363449 -6.340528,3.057676 -8.267644,6.14033 -5.22085,8.35138 -2.842185,15.068204 -2.842185,18.481449 0,1.724681 -0.525164,2.55968 -1.088384,3.071689 -0.281623,0.256023 -0.581502,0.429253 -0.853178,0.571351 -0.271683,0.142059 -0.508375,0.220652 -0.726356,0.438636 l -0.312575,0.312841 0.34742,0.273911 c 0,0 0.43272,0.34337 0.861888,0.72737 0.325042,0.274708 0.981643,0.921464 1.438104,1.018694 0.121413,-0.33841 0.149273,-0.378664 0.20343,-0.574424 0.08654,-0.303399 0.232353,-0.750599 0.467589,-1.236469 0.470475,-0.971733 1.282748,-2.076821 2.688155,-2.56133 1.994639,-0.687658 5.353958,-1.426431 8.946599,-2.343299 4.779239,-1.219641 10.22039,-3.069062 15.235023,-8.379103 3.958164,-4.191327 5.964278,-9.648825 8.06647,-14.648789 2.546547,-6.056845 4.690947,-13.8886065 5.770337,-18.4960119 z m -1.6799,2.6207028 C 99.213484,8.7236849 95.38472,13.701658 91.668482,16.58763 87.307543,19.974273 83.212921,21.794112 74.737857,30.305127 70.346392,34.715218 65.920596,41.07391 62.74313,46.05384 c 0.225405,-0.579954 0.367657,-1.301376 0.367657,-2.1975 0,-3.821879 -2.329429,-9.983672 2.722028,-18.064078 1.809189,-2.894025 4.502799,-4.488442 7.889987,-5.825454 3.387197,-1.337011 6.985264,-2.582493 11.406427,-4.408627 C 91.756327,12.8209 98.71462,7.200396 101.68809,4.6520856 Z m 0.41378,0.8876305 c -0.71109,2.8413561 -2.647102,8.5402999 -5.229556,14.6825349 -2.098514,4.991206 -4.085673,10.360534 -7.913256,14.413589 -4.882789,5.17043 -10.123643,6.948053 -14.857624,8.156201 -3.576477,0.912731 -6.922349,1.642756 -9.008606,2.362003 -0.373131,0.128561 -0.710252,0.293891 -1.014844,0.485256 3.110097,-4.803562 7.240508,-10.637834 11.291177,-14.705694 8.418826,-8.454539 12.395209,-10.186264 16.846328,-13.642933 3.719463,-2.888477 7.372902,-7.7041657 9.886381,-11.7509569 z"
|
||||
sodipodi:nodetypes="csssssscccscssscsscccscssssccsssscsscs" /><path
|
||||
id="path2-0-3"
|
||||
style="baseline-shift:baseline;display:inline;overflow:visible;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.929481;stroke-dasharray:none;stroke-opacity:1;enable-background:accumulate;stop-color:#000000"
|
||||
d="M 52.941073,2.0313827 C 47.492246,6.8995966 41.044291,11.753746 34.40102,14.831058 c -4.362977,1.802096 -7.940465,3.040049 -11.394641,4.403503 -3.454176,1.363449 -6.340528,3.057676 -8.267644,6.14033 -5.22085,8.35138 -2.842185,15.068204 -2.842185,18.481449 0,1.724681 -0.525164,2.55968 -1.088384,3.071689 -0.281623,0.256023 -0.581502,0.429253 -0.853178,0.571351 -0.271683,0.142059 -0.508375,0.220652 -0.726356,0.438636 l -0.312575,0.312841 0.34742,0.273911 c 0,0 0.43272,0.34337 0.861888,0.72737 0.325042,0.274708 0.981643,0.921464 1.438104,1.018694 0.121413,-0.33841 0.149273,-0.378664 0.20343,-0.574424 0.08654,-0.303399 0.232353,-0.750599 0.467589,-1.236469 0.470475,-0.971733 1.282748,-2.076821 2.688155,-2.56133 1.994639,-0.687658 5.353958,-1.426431 8.946599,-2.343299 4.779239,-1.219641 10.22039,-3.069062 15.235023,-8.379103 3.958164,-4.191327 5.964278,-9.648825 8.06647,-14.648789 2.546551,-6.056845 4.690938,-13.8886066 5.770328,-18.496012 z m -1.6799,2.6207028 C 48.786576,8.7236848 44.957812,13.701658 41.241574,16.58763 36.880635,19.974273 32.786013,21.794112 24.310949,30.305127 19.919484,34.715218 15.493688,41.07391 12.316222,46.05384 c 0.225405,-0.579954 0.367657,-1.301376 0.367657,-2.1975 0,-3.821879 -2.329429,-9.983672 2.722028,-18.064078 1.809189,-2.894025 4.502799,-4.488442 7.889987,-5.825454 3.387197,-1.337011 6.985264,-2.582493 11.406427,-4.408627 C 41.329419,12.8209 48.287712,7.2003959 51.261173,4.6520855 Z m 0.41378,0.8876305 c -0.711087,2.8413561 -2.647093,8.5403 -5.229547,14.682535 -2.098514,4.991206 -4.085673,10.360534 -7.913256,14.413589 -4.882789,5.17043 -10.123643,6.948053 -14.857624,8.156201 -3.576477,0.912731 -6.922349,1.642756 -9.008606,2.362003 -0.373131,0.128561 -0.710252,0.293891 -1.014844,0.485256 3.110097,-4.803562 7.240508,-10.637834 11.291177,-14.705694 8.418826,-8.454539 12.395209,-10.186264 16.846328,-13.642933 3.719463,-2.888477 7.372902,-7.7041657 9.886372,-11.750957 z"
|
||||
sodipodi:nodetypes="csssssscccscssscsscccscssssccsssscsscs" /><path
|
||||
id="path2-0-0"
|
||||
style="baseline-shift:baseline;display:inline;overflow:visible;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.929481;stroke-dasharray:none;stroke-opacity:1;enable-background:accumulate;stop-color:#000000"
|
||||
d="m 153.79494,2.0313831 c -5.44882,4.868213 -11.89678,9.7223629 -18.54005,12.7996749 -4.36298,1.802096 -7.94047,3.040049 -11.39464,4.403503 -3.45418,1.363449 -6.34053,3.057676 -8.26765,6.14033 -5.22084,8.35138 -2.84218,15.068204 -2.84218,18.481449 0,1.724681 -0.52516,2.55968 -1.08838,3.071689 -0.28163,0.256023 -0.58151,0.429253 -0.85318,0.571351 -0.27168,0.142059 -0.50838,0.220652 -0.72636,0.438636 l -0.31257,0.312841 0.34742,0.273911 c 0,0 0.43272,0.34337 0.86189,0.72737 0.32504,0.274708 0.98164,0.921464 1.4381,1.018694 0.12141,-0.33841 0.14927,-0.378664 0.20343,-0.574424 0.0865,-0.303399 0.23235,-0.750599 0.46759,-1.236469 0.47047,-0.971733 1.28275,-2.076821 2.68815,-2.56133 1.99464,-0.687658 5.35396,-1.426431 8.9466,-2.343299 4.77924,-1.219641 10.22039,-3.069062 15.23502,-8.379103 3.95817,-4.191327 5.96428,-9.648825 8.06647,-14.648789 2.54656,-6.056845 4.69094,-13.8886069 5.77033,-18.4960119 z m -1.6799,2.620702 c -2.47459,4.0716 -6.30336,9.0495729 -10.0196,11.9355449 -4.36093,3.386643 -8.45556,5.206482 -16.93062,13.717497 -4.39147,4.410091 -8.81726,10.768783 -11.99473,15.748713 0.22541,-0.579954 0.36766,-1.301376 0.36766,-2.1975 0,-3.821879 -2.32943,-9.983672 2.72203,-18.064078 1.80919,-2.894025 4.5028,-4.488442 7.88998,-5.825454 3.3872,-1.337011 6.98527,-2.582493 11.40643,-4.408627 6.6271,-2.737281 13.58539,-8.3577849 16.55885,-10.9060959 z m 0.41378,0.887631 c -0.71108,2.841356 -2.64709,8.5402999 -5.22954,14.6825349 -2.09852,4.991206 -4.08568,10.360534 -7.91326,14.413589 -4.88279,5.17043 -10.12364,6.948053 -14.85762,8.156201 -3.57648,0.912731 -6.92235,1.642756 -9.00861,2.362003 -0.37313,0.128561 -0.71025,0.293891 -1.01484,0.485256 3.11009,-4.803562 7.2405,-10.637834 11.29117,-14.705694 8.41883,-8.454539 12.39521,-10.186264 16.84633,-13.642933 3.71946,-2.888477 7.3729,-7.7041657 9.88637,-11.7509569 z"
|
||||
sodipodi:nodetypes="csssssscccscssscsscccscssssccsssscsscs" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 7.9 KiB |
BIN
public/static/assets/quattrocento-bold.ttf
Normal file
BIN
public/static/assets/quattrocento-regular.ttf
Normal file
96
public/static/theme.css
Normal file
@@ -0,0 +1,96 @@
|
||||
@font-face {
|
||||
font-family: "Quattrocento";
|
||||
font-style: regular;
|
||||
src: local("Quattrocento"), url("assets/quattrocento-regular.ttf") format("truetype")
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Quattrocento";
|
||||
font-style: bold;
|
||||
src: local("Quattrocento"), url("assets/quattrocento-bold.ttf") format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Baskervville";
|
||||
font-style: regular;
|
||||
src: local("Baskervville"), url("assets/baskervville.ttf") format("truetype")
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Baskervville";
|
||||
font-style: italic;
|
||||
src: local("Baskervville"), url("assets/baskervville-italic.ttf") format("truetype");
|
||||
}
|
||||
|
||||
:root {
|
||||
--dj-palette1: #83a6bf;
|
||||
--dj-palette2: #5e81ac;
|
||||
--dj-palette3: #8fbcbb;
|
||||
--dj-prose: #98aab7;
|
||||
--dj-visited: #8d8bd5;
|
||||
--dj-bgpalette1: #2e3440;
|
||||
}
|
||||
|
||||
html, body {
|
||||
box-sizing: border-box;
|
||||
background-color: var(--dj-bgpalette1);
|
||||
color: var(--dj-palette1);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
font-family: "Quattrocento", serif;
|
||||
font-optical-sizing: auto;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
height: 1px;
|
||||
background-image: linear-gradient(to right, transparent, var(--dj-prose), transparent);
|
||||
margin: 40px 0 40px 0;
|
||||
width: 100%;
|
||||
|
||||
&::before, &::after {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
display: block;
|
||||
margin: auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
&::before {
|
||||
background-color: var(--dj-bgpalette1);
|
||||
width: 74px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
&::after {
|
||||
width: 66px;
|
||||
height: 22px;
|
||||
background-color: var(--dj-prose);
|
||||
background-size: cover;
|
||||
mask-image: url('assets/leaf-hrule.svg');
|
||||
mask-size: cover;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
color: var(--dj-prose);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, nav, .dj-title {
|
||||
font-family: "Baskervville", serif;
|
||||
font-optical-sizing: auto;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.spectral-regular, body {
|
||||
font-family: "Spectral", serif;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 19px;
|
||||
}
|
||||