mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-06 12:57:48 +00:00
fix: things
This commit is contained in:
@@ -94,68 +94,6 @@
|
||||
</li>
|
||||
</ul>
|
||||
</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">
|
||||
<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">
|
||||
@@ -178,7 +116,6 @@
|
||||
</button>
|
||||
<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="/company">Company</a></li>
|
||||
<li><a class="aw-link" href="/careers">Careers</a></li>
|
||||
<li><a class="aw-link" href="/heroes">Heroes</a></li>
|
||||
<li>
|
||||
|
||||
@@ -58,7 +58,7 @@ const languages = {
|
||||
css: css
|
||||
} as const satisfies Record<string, LanguageFn>;
|
||||
|
||||
const platformAliases: Record<Platform, keyof typeof languages> = {
|
||||
const platformAliases: Record<string, keyof typeof languages> = {
|
||||
[Platform.ClientWeb]: 'js',
|
||||
[Platform.ClientFlutter]: 'dart',
|
||||
[Platform.ClientAndroidJava]: 'java',
|
||||
@@ -73,7 +73,9 @@ const platformAliases: Record<Platform, keyof typeof languages> = {
|
||||
[Platform.ServerPhp]: 'php',
|
||||
[Platform.ServerPython]: 'py',
|
||||
[Platform.ServerRuby]: 'rb',
|
||||
[Platform.ServerSwift]: 'swift'
|
||||
[Platform.ServerSwift]: 'swift',
|
||||
vue: 'html',
|
||||
svelte: 'html'
|
||||
};
|
||||
|
||||
Object.entries(languages).forEach(([key, value]) => {
|
||||
|
||||
@@ -42,7 +42,7 @@ export enum Platform {
|
||||
ServerSwift = 'server-swift'
|
||||
}
|
||||
|
||||
export const platformMap: Record<Language, string> = {
|
||||
export const platformMap: Record<Language|string, string> = {
|
||||
[Platform.ClientApple]: 'Apple',
|
||||
[Platform.ClientFlutter]: 'Flutter',
|
||||
[Platform.ClientWeb]: 'Web',
|
||||
@@ -86,7 +86,9 @@ export const platformMap: Record<Language, string> = {
|
||||
powershell: 'PowerShell',
|
||||
cmd: 'CMD',
|
||||
yaml: 'YAML',
|
||||
text: 'Text'
|
||||
text: 'Text',
|
||||
vue: 'Vue',
|
||||
svelte: 'Svelte'
|
||||
};
|
||||
|
||||
export const serviceMap: Record<Service, string> = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script context="module" lang="ts">
|
||||
export type AuthorData = {
|
||||
name: string;
|
||||
id: string;
|
||||
slug: string;
|
||||
role: string;
|
||||
avatar: string;
|
||||
bio: string;
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { Article, FooterNav, MainFooter } from '$lib/components';
|
||||
import { page } from '$app/stores';
|
||||
import { Main } from '$lib/layouts';
|
||||
import { getContext } from 'svelte';
|
||||
import type { PostsData } from './Post.svelte';
|
||||
@@ -27,6 +28,10 @@
|
||||
export let github: string;
|
||||
|
||||
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>
|
||||
|
||||
<Main>
|
||||
@@ -249,7 +254,7 @@
|
||||
|
||||
<div class="u-margin-block-start-48">
|
||||
<ul class="aw-grid-articles">
|
||||
{#each posts as post}
|
||||
{#each posts.filter((p) => p.author === author?.slug) as post}
|
||||
<Article
|
||||
title={post.title}
|
||||
href={post.href}
|
||||
@@ -282,5 +287,5 @@
|
||||
<MainFooter />
|
||||
</div>
|
||||
</div>
|
||||
</div></Main
|
||||
>
|
||||
</div>
|
||||
</Main>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
export let category: string;
|
||||
|
||||
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 categories = getValidCategories();
|
||||
const posts = getContext<PostsData[]>('posts');
|
||||
@@ -158,7 +158,7 @@
|
||||
<section class="u-margin-block-start-32">
|
||||
<ul class="aw-grid-articles">
|
||||
{#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}
|
||||
<Article
|
||||
title={post.title}
|
||||
|
||||
@@ -37,25 +37,25 @@ export function load() {
|
||||
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 {
|
||||
frontmatter: AuthorData;
|
||||
};
|
||||
const name = frontmatter.id ?? frontmatter.name.toLowerCase().replace(' ', '-');
|
||||
|
||||
return {
|
||||
name: frontmatter.name,
|
||||
slug: frontmatter.slug,
|
||||
role: frontmatter.role,
|
||||
avatar: frontmatter.avatar,
|
||||
bio: frontmatter.bio,
|
||||
twitter: frontmatter.twitter,
|
||||
linkedin: frontmatter.linkedin,
|
||||
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 {
|
||||
frontmatter: CategoryData;
|
||||
};
|
||||
@@ -66,7 +66,7 @@ export function load() {
|
||||
href: `${base}/blog/category/${frontmatter.name.toLowerCase()}`
|
||||
};
|
||||
});
|
||||
|
||||
console.log({posts, authors})
|
||||
return {
|
||||
posts,
|
||||
authors,
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
/>
|
||||
<div class="aw-author-info">
|
||||
<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">
|
||||
<li>[data]</li>
|
||||
<li>[time-to-read] min</li>
|
||||
@@ -231,7 +231,7 @@
|
||||
<ul class="aw-grid-articles">
|
||||
{#each data.posts as post}
|
||||
{@const author = data.authors.find(
|
||||
(author) => author.name.toLowerCase() === post.author.toLowerCase()
|
||||
(author) => author.slug === post.author
|
||||
)}
|
||||
{#if author}
|
||||
<Article
|
||||
|
||||
@@ -33,22 +33,21 @@ export function load() {
|
||||
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 {
|
||||
frontmatter: AuthorData;
|
||||
};
|
||||
|
||||
const name = frontmatter.id ?? frontmatter.name.toLowerCase().replace(' ', '-');
|
||||
|
||||
return {
|
||||
name: frontmatter.name,
|
||||
slug: frontmatter.slug,
|
||||
role: frontmatter.role,
|
||||
avatar: frontmatter.avatar,
|
||||
bio: frontmatter.bio,
|
||||
twitter: frontmatter.twitter,
|
||||
linkedin: frontmatter.linkedin,
|
||||
github: frontmatter.github,
|
||||
href: `${base}/blog/author/${name}`
|
||||
href: `${base}/blog/author/${frontmatter.slug}`
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: author
|
||||
name: Arman
|
||||
id: arman
|
||||
slug: arman
|
||||
role: Frontend Developer
|
||||
bio: In ♥ with Svelte and Vue, currently working at Appwrite
|
||||
avatar: /images/avatars/arman.png
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
layout: author
|
||||
slug: christy-jacob
|
||||
name: Christy Jacob
|
||||
role: Engineering lead
|
||||
bio: Leading Appwrite's Cloud development.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
layout: author
|
||||
name: Eldad Fux
|
||||
slug: eldad-fux
|
||||
role: Founder and CEO
|
||||
bio: Appwrite's first open-source contributor.
|
||||
avatar: /images/avatars/eldad.png
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
layout: author
|
||||
name: Laura Du Ry
|
||||
slug: laura-du-ry
|
||||
role: Growth manager
|
||||
bio: Managing Appwrite's growth effort.
|
||||
avatar: /images/avatars/laura.png
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
layout: author
|
||||
name: Sara Kaandorp
|
||||
slug: sara-kaandorp
|
||||
role: Design lead
|
||||
bio: Leading Appwrite's product and visual design teams.
|
||||
avatar: /images/avatars/sara.png
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
layout: author
|
||||
name: Vincent Ge
|
||||
slug: vincent-ge
|
||||
role: Developer Advocate
|
||||
bio: Focusing on developer experience and documentation.
|
||||
avatar: /images/avatars/vincent.png
|
||||
@@ -5,7 +5,7 @@ description: Lorem Ipsum dolor et amet.
|
||||
date: 2023-11-14
|
||||
cover: /images/pages/homepage/dashboard.svg
|
||||
timeToRead: 3
|
||||
author: Arman
|
||||
author: arman
|
||||
category: design, accessibility, appwrite, community, accessiblity
|
||||
---
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ description: TBD
|
||||
date: 2023-05-02
|
||||
cover: /images/pages/homepage/dashboard.svg
|
||||
timeToRead: 5
|
||||
author: Vincent
|
||||
author: vincent-ge
|
||||
category: docs, devex
|
||||
---
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ description: Appwrite Cloud pricing are now available.
|
||||
date: 2023-05-02
|
||||
cover: /images/pages/homepage/dashboard.svg
|
||||
timeToRead: 5
|
||||
author: Laura
|
||||
author: laura-du-ry
|
||||
category: cloud
|
||||
---
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ description: Lorem Ipsum dolor et amet.
|
||||
date: 2022-11-12
|
||||
cover: /images/blog/placeholder.png
|
||||
timeToRead: 5
|
||||
author: Eldad
|
||||
author: eldad-fux
|
||||
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
|
||||
cover: /images/blog/logo.png
|
||||
timeToRead: 5
|
||||
author: Sara
|
||||
author: sara-kaandorp
|
||||
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
|
||||
cover: /images/pages/homepage/dashboard.svg
|
||||
timeToRead: 5
|
||||
author: Christy
|
||||
author: christy-jacob
|
||||
category: cloud
|
||||
---
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ HTTP requests made to your webhook's configured URL endpoint will contain severa
|
||||
|
||||
## 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.
|
||||
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.
|
||||
|
||||
@@ -64,7 +64,7 @@ appwrite deploy collection
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -74,7 +74,7 @@ appwrite deploy team
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -98,11 +98,11 @@ Here's a complete list of all configurable options in `appwrite.json`:
|
||||
| --- | --- | --- |
|
||||
| `projectId` | string | ID 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. |
|
||||
| `databases` | array of [databases](/docs/command-line-deployment#databases-options) | Configuration of databases in your project. |
|
||||
| `collections` | array of [collections](/docs/command-line-deployment#collection-options) | Configuration of collections in your project. |
|
||||
| `teams` | array of [teams](/docs/command-line-deployment#teams-options) | Configuration of teams in your project. |
|
||||
| `buckets` | array of [buckets](/docs/command-line-deployment#buckets-options) | Configuration of teams in your project. |
|
||||
| `functions` | array of [functions](#function-options) | Configuration of functions in your project. |
|
||||
| `databases` | array of [databases](#databases-options) | Configuration of databases in your project. |
|
||||
| `collections` | array of [collections](#collection-options) | Configuration of collections in your project. |
|
||||
| `teams` | array of [teams](#teams-options) | Configuration of teams in your project. |
|
||||
| `buckets` | array of [buckets](#buckets-options) | Configuration of teams in your project. |
|
||||
|
||||
#### Function options
|
||||
|
||||
@@ -110,13 +110,13 @@ Here's a complete list of all configurable options in `appwrite.json`:
|
||||
| --- | --- | --- |
|
||||
| `$id` | string | Function ID. |
|
||||
| `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. |
|
||||
| `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). |
|
||||
| `execute` | array of strings | Grants execute permissions to users. [Learn more about role strings](/docs/rest#permissions). |
|
||||
| `events` | array of strings | Events that trigger the function to execute. [Learn more about events](/docs/events). |
|
||||
| `schedule` | string | Execute schedule for the function. [Learn more about scheduled executions](/docs/functions#scheduled-execution). |
|
||||
| `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/apis/rest#permissions). |
|
||||
| `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/products/functions/execution#schedule). |
|
||||
| `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. |
|
||||
|
||||
|
||||
@@ -40,10 +40,6 @@ const config = {
|
||||
$scss: './src/scss',
|
||||
$appwrite: './node_modules/@appwrite.io/repo',
|
||||
$markdoc: './src/markdoc'
|
||||
},
|
||||
prerender: {
|
||||
handleHttpError: 'warn',
|
||||
handleMissingId: 'warn'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user