fix: things

This commit is contained in:
Torsten Dittmann
2023-09-25 16:34:53 +02:00
parent 6afcc722dc
commit 30bcccdef2
23 changed files with 54 additions and 108 deletions

View File

@@ -94,68 +94,6 @@
</li> </li>
</ul> </ul>
</li> </li>
<li class="aw-footer-nav-main-item">
<h5 class="aw-footer-nav-main-title aw-is-not-mobile aw-caption-500 aw-eyebrow">Learn</h5>
<button class="aw-footer-nav-button is-open aw-is-only-mobile">
<span class="aw-caption-500 aw-eyebrow">Learn</span>
<svg
class="aw-footer-nav-button-arrow"
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M10.4243 13.0243C10.19 13.2586 9.81007 13.2586 9.57576 13.0243L5.07576 8.52426C4.84145 8.28995 4.84145 7.91005 5.07576 7.67574C5.31007 7.44142 5.68997 7.44142 5.92429 7.67574L10 11.7515L14.0758 7.67574C14.3101 7.44142 14.69 7.44142 14.9243 7.67574C15.1586 7.91005 15.1586 8.28995 14.9243 8.52426L10.4243 13.0243Z"
fill="#ADADB0"
/>
</svg>
</button>
<ul class="aw-footer-nav-secondary-list">
<li class="aw-footer-nav-secondary-item"><a href="/docs">Docs</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/community">Community</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/blog">Blog</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/roadmap">Roadmap</a></li>
<li class="aw-footer-nav-secondary-item">
<a href="https://status.appwrite.io" target="_blank">Status</a>
</li>
</ul>
</li>
<li class="aw-footer-nav-main-item">
<h5 class="aw-footer-nav-main-title aw-is-not-mobile">About</h5>
<button class="aw-footer-nav-button is-open aw-is-only-mobile">
<span class="aw-caption-500">About</span>
<svg
class="aw-footer-nav-button-arrow"
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M10.4243 13.0243C10.19 13.2586 9.81007 13.2586 9.57576 13.0243L5.07576 8.52426C4.84145 8.28995 4.84145 7.91005 5.07576 7.67574C5.31007 7.44142 5.68997 7.44142 5.92429 7.67574L10 11.7515L14.0758 7.67574C14.3101 7.44142 14.69 7.44142 14.9243 7.67574C15.1586 7.91005 15.1586 8.28995 14.9243 8.52426L10.4243 13.0243Z"
fill="#ADADB0"
/>
</svg>
</button>
<ul class="aw-footer-nav-secondary-list">
<li class="aw-footer-nav-secondary-item"><a href="/pricing">Pricing</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/company">Company</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/careers">Careers</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/heroes">Heroes</a></li>
<li class="aw-footer-nav-secondary-item">
<a href="https://store.appwrite.io" target="_blank">Store</a>
</li>
<li class="aw-footer-nav-secondary-item"><a href="/brand">Brand</a></li>
<li class="aw-footer-nav-secondary-item"><a href="/contact-us">Contact us</a></li>
</ul>
</li>
<li class="aw-footer-nav-main-item"> <li class="aw-footer-nav-main-item">
<h5 class="aw-footer-nav-main-title aw-is-not-mobile aw-caption-500 aw-eyebrow">About</h5> <h5 class="aw-footer-nav-main-title aw-is-not-mobile aw-caption-500 aw-eyebrow">About</h5>
<button class="aw-footer-nav-button is-open aw-is-only-mobile"> <button class="aw-footer-nav-button is-open aw-is-only-mobile">
@@ -178,7 +116,6 @@
</button> </button>
<ul class="aw-footer-nav-secondary-list aw-sub-body-400"> <ul class="aw-footer-nav-secondary-list aw-sub-body-400">
<li><a class="aw-link" href="/pricing">Pricing</a></li> <li><a class="aw-link" href="/pricing">Pricing</a></li>
<li><a class="aw-link" href="/company">Company</a></li>
<li><a class="aw-link" href="/careers">Careers</a></li> <li><a class="aw-link" href="/careers">Careers</a></li>
<li><a class="aw-link" href="/heroes">Heroes</a></li> <li><a class="aw-link" href="/heroes">Heroes</a></li>
<li> <li>

View File

@@ -58,7 +58,7 @@ const languages = {
css: css css: css
} as const satisfies Record<string, LanguageFn>; } as const satisfies Record<string, LanguageFn>;
const platformAliases: Record<Platform, keyof typeof languages> = { const platformAliases: Record<string, keyof typeof languages> = {
[Platform.ClientWeb]: 'js', [Platform.ClientWeb]: 'js',
[Platform.ClientFlutter]: 'dart', [Platform.ClientFlutter]: 'dart',
[Platform.ClientAndroidJava]: 'java', [Platform.ClientAndroidJava]: 'java',
@@ -73,7 +73,9 @@ const platformAliases: Record<Platform, keyof typeof languages> = {
[Platform.ServerPhp]: 'php', [Platform.ServerPhp]: 'php',
[Platform.ServerPython]: 'py', [Platform.ServerPython]: 'py',
[Platform.ServerRuby]: 'rb', [Platform.ServerRuby]: 'rb',
[Platform.ServerSwift]: 'swift' [Platform.ServerSwift]: 'swift',
vue: 'html',
svelte: 'html'
}; };
Object.entries(languages).forEach(([key, value]) => { Object.entries(languages).forEach(([key, value]) => {

View File

@@ -42,7 +42,7 @@ export enum Platform {
ServerSwift = 'server-swift' ServerSwift = 'server-swift'
} }
export const platformMap: Record<Language, string> = { export const platformMap: Record<Language|string, string> = {
[Platform.ClientApple]: 'Apple', [Platform.ClientApple]: 'Apple',
[Platform.ClientFlutter]: 'Flutter', [Platform.ClientFlutter]: 'Flutter',
[Platform.ClientWeb]: 'Web', [Platform.ClientWeb]: 'Web',
@@ -86,7 +86,9 @@ export const platformMap: Record<Language, string> = {
powershell: 'PowerShell', powershell: 'PowerShell',
cmd: 'CMD', cmd: 'CMD',
yaml: 'YAML', yaml: 'YAML',
text: 'Text' text: 'Text',
vue: 'Vue',
svelte: 'Svelte'
}; };
export const serviceMap: Record<Service, string> = { export const serviceMap: Record<Service, string> = {

View File

@@ -1,7 +1,7 @@
<script context="module" lang="ts"> <script context="module" lang="ts">
export type AuthorData = { export type AuthorData = {
name: string; name: string;
id: string; slug: string;
role: string; role: string;
avatar: string; avatar: string;
bio: string; bio: string;
@@ -14,6 +14,7 @@
<script lang="ts"> <script lang="ts">
import { Article, FooterNav, MainFooter } from '$lib/components'; import { Article, FooterNav, MainFooter } from '$lib/components';
import { page } from '$app/stores';
import { Main } from '$lib/layouts'; import { Main } from '$lib/layouts';
import { getContext } from 'svelte'; import { getContext } from 'svelte';
import type { PostsData } from './Post.svelte'; import type { PostsData } from './Post.svelte';
@@ -27,6 +28,10 @@
export let github: string; export let github: string;
const posts = getContext<PostsData[]>('posts'); const posts = getContext<PostsData[]>('posts');
const authors = getContext<AuthorData[]>('authors');
const author = authors.find(
(p) => $page.url.pathname.substring($page.url.pathname.lastIndexOf('/') + 1) === p.slug
);
</script> </script>
<Main> <Main>
@@ -249,7 +254,7 @@
<div class="u-margin-block-start-48"> <div class="u-margin-block-start-48">
<ul class="aw-grid-articles"> <ul class="aw-grid-articles">
{#each posts as post} {#each posts.filter((p) => p.author === author?.slug) as post}
<Article <Article
title={post.title} title={post.title}
href={post.href} href={post.href}
@@ -282,5 +287,5 @@
<MainFooter /> <MainFooter />
</div> </div>
</div> </div>
</div></Main </div>
> </Main>

View File

@@ -27,7 +27,7 @@
export let category: string; export let category: string;
const authors = getContext<AuthorData[]>('authors'); const authors = getContext<AuthorData[]>('authors');
const authorData = authors.find((a) => a.name.includes(author)); const authorData = authors.find((a) => a.slug === author);
const categoriesList = getContext<CategoryData[]>('categories'); const categoriesList = getContext<CategoryData[]>('categories');
const categories = getValidCategories(); const categories = getValidCategories();
const posts = getContext<PostsData[]>('posts'); const posts = getContext<PostsData[]>('posts');
@@ -158,7 +158,7 @@
<section class="u-margin-block-start-32"> <section class="u-margin-block-start-32">
<ul class="aw-grid-articles"> <ul class="aw-grid-articles">
{#each posts.filter((p) => p.title !== title).slice(0, 3) as post} {#each posts.filter((p) => p.title !== title).slice(0, 3) as post}
{@const author = authors.find((a) => a.name.includes(post.author))} {@const author = authors.find((a) => a.slug === post.author)}
{#if author} {#if author}
<Article <Article
title={post.title} title={post.title}

View File

@@ -37,25 +37,25 @@ export function load() {
return b.date.getTime() - a.date.getTime(); return b.date.getTime() - a.date.getTime();
}); });
const authors = Object.entries(authorsGlob).map(([_filepath, authorList]) => { const authors = Object.values(authorsGlob).map((authorList) => {
const { frontmatter } = authorList as { const { frontmatter } = authorList as {
frontmatter: AuthorData; frontmatter: AuthorData;
}; };
const name = frontmatter.id ?? frontmatter.name.toLowerCase().replace(' ', '-');
return { return {
name: frontmatter.name, name: frontmatter.name,
slug: frontmatter.slug,
role: frontmatter.role, role: frontmatter.role,
avatar: frontmatter.avatar, avatar: frontmatter.avatar,
bio: frontmatter.bio, bio: frontmatter.bio,
twitter: frontmatter.twitter, twitter: frontmatter.twitter,
linkedin: frontmatter.linkedin, linkedin: frontmatter.linkedin,
github: frontmatter.github, github: frontmatter.github,
href: `${base}/blog/author/${frontmatter.name.toLowerCase().replaceAll(' ', '-')}` href: `${base}/blog/author/${frontmatter.slug}`
}; };
}); });
const categories = Object.entries(categoriesGlob).map(([_filepath, categoryList]) => { const categories = Object.values(categoriesGlob).map((categoryList) => {
const { frontmatter } = categoryList as { const { frontmatter } = categoryList as {
frontmatter: CategoryData; frontmatter: CategoryData;
}; };
@@ -66,7 +66,7 @@ export function load() {
href: `${base}/blog/category/${frontmatter.name.toLowerCase()}` href: `${base}/blog/category/${frontmatter.name.toLowerCase()}`
}; };
}); });
console.log({posts, authors})
return { return {
posts, posts,
authors, authors,

View File

@@ -86,7 +86,7 @@
/> />
<div class="aw-author-info"> <div class="aw-author-info">
<h4 class="aw-sub-body-400 aw-u-color-text-primary">Authors name</h4> <h4 class="aw-sub-body-400 aw-u-color-text-primary">Authors name</h4>
<p class="aw-caption-400 u-hide">Authors role or bio</p> <p class="aw-caption-400 u-hide">Author's role or bio</p>
<ul class="aw-metadata aw-caption-400 aw-is-not-mobile"> <ul class="aw-metadata aw-caption-400 aw-is-not-mobile">
<li>[data]</li> <li>[data]</li>
<li>[time-to-read] min</li> <li>[time-to-read] min</li>
@@ -231,7 +231,7 @@
<ul class="aw-grid-articles"> <ul class="aw-grid-articles">
{#each data.posts as post} {#each data.posts as post}
{@const author = data.authors.find( {@const author = data.authors.find(
(author) => author.name.toLowerCase() === post.author.toLowerCase() (author) => author.slug === post.author
)} )}
{#if author} {#if author}
<Article <Article

View File

@@ -33,22 +33,21 @@ export function load() {
return b.date.getTime() - a.date.getTime(); return b.date.getTime() - a.date.getTime();
}); });
const authors = Object.entries(authorsGlob).map(([_filepath, authorList]) => { const authors = Object.values(authorsGlob).map((authorList) => {
const { frontmatter } = authorList as { const { frontmatter } = authorList as {
frontmatter: AuthorData; frontmatter: AuthorData;
}; };
const name = frontmatter.id ?? frontmatter.name.toLowerCase().replace(' ', '-');
return { return {
name: frontmatter.name, name: frontmatter.name,
slug: frontmatter.slug,
role: frontmatter.role, role: frontmatter.role,
avatar: frontmatter.avatar, avatar: frontmatter.avatar,
bio: frontmatter.bio, bio: frontmatter.bio,
twitter: frontmatter.twitter, twitter: frontmatter.twitter,
linkedin: frontmatter.linkedin, linkedin: frontmatter.linkedin,
github: frontmatter.github, github: frontmatter.github,
href: `${base}/blog/author/${name}` href: `${base}/blog/author/${frontmatter.slug}`
}; };
}); });

View File

@@ -1,7 +1,7 @@
--- ---
layout: author layout: author
name: Arman name: Arman
id: arman slug: arman
role: Frontend Developer role: Frontend Developer
bio: In ♥ with Svelte and Vue, currently working at Appwrite bio: In ♥ with Svelte and Vue, currently working at Appwrite
avatar: /images/avatars/arman.png avatar: /images/avatars/arman.png

View File

@@ -1,5 +1,6 @@
--- ---
layout: author layout: author
slug: christy-jacob
name: Christy Jacob name: Christy Jacob
role: Engineering lead role: Engineering lead
bio: Leading Appwrite's Cloud development. bio: Leading Appwrite's Cloud development.

View File

@@ -1,6 +1,7 @@
--- ---
layout: author layout: author
name: Eldad Fux name: Eldad Fux
slug: eldad-fux
role: Founder and CEO role: Founder and CEO
bio: Appwrite's first open-source contributor. bio: Appwrite's first open-source contributor.
avatar: /images/avatars/eldad.png avatar: /images/avatars/eldad.png

View File

@@ -1,6 +1,7 @@
--- ---
layout: author layout: author
name: Laura Du Ry name: Laura Du Ry
slug: laura-du-ry
role: Growth manager role: Growth manager
bio: Managing Appwrite's growth effort. bio: Managing Appwrite's growth effort.
avatar: /images/avatars/laura.png avatar: /images/avatars/laura.png

View File

@@ -1,6 +1,7 @@
--- ---
layout: author layout: author
name: Sara Kaandorp name: Sara Kaandorp
slug: sara-kaandorp
role: Design lead role: Design lead
bio: Leading Appwrite's product and visual design teams. bio: Leading Appwrite's product and visual design teams.
avatar: /images/avatars/sara.png avatar: /images/avatars/sara.png

View File

@@ -1,6 +1,7 @@
--- ---
layout: author layout: author
name: Vincent Ge name: Vincent Ge
slug: vincent-ge
role: Developer Advocate role: Developer Advocate
bio: Focusing on developer experience and documentation. bio: Focusing on developer experience and documentation.
avatar: /images/avatars/vincent.png avatar: /images/avatars/vincent.png

View File

@@ -5,7 +5,7 @@ description: Lorem Ipsum dolor et amet.
date: 2023-11-14 date: 2023-11-14
cover: /images/pages/homepage/dashboard.svg cover: /images/pages/homepage/dashboard.svg
timeToRead: 3 timeToRead: 3
author: Arman author: arman
category: design, accessibility, appwrite, community, accessiblity category: design, accessibility, appwrite, community, accessiblity
--- ---

View File

@@ -5,7 +5,7 @@ description: TBD
date: 2023-05-02 date: 2023-05-02
cover: /images/pages/homepage/dashboard.svg cover: /images/pages/homepage/dashboard.svg
timeToRead: 5 timeToRead: 5
author: Vincent author: vincent-ge
category: docs, devex category: docs, devex
--- ---

View File

@@ -5,7 +5,7 @@ description: Appwrite Cloud pricing are now available.
date: 2023-05-02 date: 2023-05-02
cover: /images/pages/homepage/dashboard.svg cover: /images/pages/homepage/dashboard.svg
timeToRead: 5 timeToRead: 5
author: Laura author: laura-du-ry
category: cloud category: cloud
--- ---

View File

@@ -5,7 +5,7 @@ description: Lorem Ipsum dolor et amet.
date: 2022-11-12 date: 2022-11-12
cover: /images/blog/placeholder.png cover: /images/blog/placeholder.png
timeToRead: 5 timeToRead: 5
author: Eldad author: eldad-fux
category: design, accessibility, appwrite, community, accessiblity category: design, accessibility, appwrite, community, accessiblity
--- ---

View File

@@ -5,7 +5,7 @@ description: Unveiling Appwrite's new fresh look and feel with a new brand, webs
date: 2023-09-22 date: 2023-09-22
cover: /images/blog/logo.png cover: /images/blog/logo.png
timeToRead: 5 timeToRead: 5
author: Sara author: sara-kaandorp
category: design, brand category: design, brand
--- ---

View File

@@ -5,7 +5,7 @@ description: We're happy to announce Cloud is now available for everyone to sign
date: 2023-05-02 date: 2023-05-02
cover: /images/pages/homepage/dashboard.svg cover: /images/pages/homepage/dashboard.svg
timeToRead: 5 timeToRead: 5
author: Christy author: christy-jacob
category: cloud category: cloud
--- ---

View File

@@ -30,7 +30,7 @@ HTTP requests made to your webhook's configured URL endpoint will contain severa
## Verification {% #verification %} ## Verification {% #verification %}
Webhooks can be verified by using the [X-Appwrite-Webhook-Signature](/docs/webhooks#headers) header. Webhooks can be verified by using the [X-Appwrite-Webhook-Signature](/docs/advanced/platform/webhooks#headers) header.
This is the HMAC-SHA1 signature of the payload. You can find the signature key in your webhooks properties in the dashboard. This is the HMAC-SHA1 signature of the payload. You can find the signature key in your webhooks properties in the dashboard.
To generate this hash you append the payload to the end of webhook URL (make sure there are no spaces in between) and then use the HMAC-SHA1 algorithm to generate the signature. To generate this hash you append the payload to the end of webhook URL (make sure there are no spaces in between) and then use the HMAC-SHA1 algorithm to generate the signature.
After you've generated the signature, compare it to the `X-Appwrite-Webhook-Signature` header value. After you've generated the signature, compare it to the `X-Appwrite-Webhook-Signature` header value.

View File

@@ -64,7 +64,7 @@ appwrite deploy collection
## Deploying Teams {% #deploying-teams %} ## Deploying Teams {% #deploying-teams %}
The Appwrite CLI can create teams to organize users. Teams can be used to grant access permissions to a group of users. [Learn more about permissions](/docs/permissions#permission-roles). The Appwrite CLI can create teams to organize users. Teams can be used to grant access permissions to a group of users. Learn more about permissions.
Deploy teams by running this command in the folder holding your `appwrite.json` file. Deploy teams by running this command in the folder holding your `appwrite.json` file.
@@ -74,7 +74,7 @@ appwrite deploy team
## Deploying Storage {% #deploying-storage %} ## Deploying Storage {% #deploying-storage %}
The Appwrite CLI allows you to configure and deploy buckets across projects. All the bucket's settings are available through the [appwrite.json](/docs/command-line-deployment#appwriteJSON) file. The Appwrite CLI allows you to configure and deploy buckets across projects. All the bucket's settings are available through the [appwrite.json](/docs/tooling/command-line/deployment#appwrite-json) file.
Deploy storage buckets by running this command in the folder holding your `appwrite.json` file. Deploy storage buckets by running this command in the folder holding your `appwrite.json` file.
@@ -98,11 +98,11 @@ Here's a complete list of all configurable options in `appwrite.json`:
| --- | --- | --- | | --- | --- | --- |
| `projectId` | string | ID of your Appwrite Project. | | `projectId` | string | ID of your Appwrite Project. |
| `projectName` | string | Name of your Appwrite Project. | | `projectName` | string | Name of your Appwrite Project. |
| `functions` | array of [functions](/docs/command-line-deployment#function-options) | Configuration of functions in your project. | | `functions` | array of [functions](#function-options) | Configuration of functions in your project. |
| `databases` | array of [databases](/docs/command-line-deployment#databases-options) | Configuration of databases in your project. | | `databases` | array of [databases](#databases-options) | Configuration of databases in your project. |
| `collections` | array of [collections](/docs/command-line-deployment#collection-options) | Configuration of collections in your project. | | `collections` | array of [collections](#collection-options) | Configuration of collections in your project. |
| `teams` | array of [teams](/docs/command-line-deployment#teams-options) | Configuration of teams in your project. | | `teams` | array of [teams](#teams-options) | Configuration of teams in your project. |
| `buckets` | array of [buckets](/docs/command-line-deployment#buckets-options) | Configuration of teams in your project. | | `buckets` | array of [buckets](#buckets-options) | Configuration of teams in your project. |
#### Function options #### Function options
@@ -110,13 +110,13 @@ Here's a complete list of all configurable options in `appwrite.json`:
| --- | --- | --- | | --- | --- | --- |
| `$id` | string | Function ID. | | `$id` | string | Function ID. |
| `name` | string | Function Name. | | `name` | string | Function Name. |
| `runtime` | string | Function runtime, must be enabled. [Learn more about runtimes](/docs/functions#supportedRuntimes). | | `runtime` | string | Function runtime, must be enabled. [Learn more about runtimes](/docs/products/functions/runtimes#available-runtimes). |
| `path` | string | Path to folder containing the function's source code. | | `path` | string | Path to folder containing the function's source code. |
| `entrypoint` | string | Entry point of the function relative to the folder specified in path. | | `entrypoint` | string | Entry point of the function relative to the folder specified in path. |
| `ignore` | array of strings | Files to ignore inside the function. [Learn more about ignoring files](/docs/functions#ignoreFiles). | | `ignore` | array of strings | Files to ignore inside the function. [Learn more about ignoring files](/docs). |
| `execute` | array of strings | Grants execute permissions to users. [Learn more about role strings](/docs/rest#permissions). | | `execute` | array of strings | Grants execute permissions to users. [Learn more about role strings](/docs/apis/rest#permissions). |
| `events` | array of strings | Events that trigger the function to execute. [Learn more about events](/docs/events). | | `events` | array of strings | Events that trigger the function to execute. [Learn more about events](/docs). |
| `schedule` | string | Execute schedule for the function. [Learn more about scheduled executions](/docs/functions#scheduled-execution). | | `schedule` | string | Execute schedule for the function. [Learn more about scheduled executions](/docs/products/functions/execution#schedule). |
| `timeout` | int | Execution timeout of the function in seconds, with a maximum configurable limit of 900 seconds. | | `timeout` | int | Execution timeout of the function in seconds, with a maximum configurable limit of 900 seconds. |
| `variables` | JSON object | Variables provided to the function on execution stored as a key-value JSON object. | | `variables` | JSON object | Variables provided to the function on execution stored as a key-value JSON object. |

View File

@@ -40,10 +40,6 @@ const config = {
$scss: './src/scss', $scss: './src/scss',
$appwrite: './node_modules/@appwrite.io/repo', $appwrite: './node_modules/@appwrite.io/repo',
$markdoc: './src/markdoc' $markdoc: './src/markdoc'
},
prerender: {
handleHttpError: 'warn',
handleMissingId: 'warn'
} }
} }
}; };