mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-07 04:22:09 +00:00
fix: things
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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]) => {
|
||||||
|
|||||||
@@ -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> = {
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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">Author’s name</h4>
|
<h4 class="aw-sub-body-400 aw-u-color-text-primary">Author’s name</h4>
|
||||||
<p class="aw-caption-400 u-hide">Author’s 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
|
||||||
|
|||||||
@@ -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}`
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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. |
|
||||||
|
|
||||||
|
|||||||
@@ -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'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user