Skip to content

Commit

Permalink
Sprikipedia, The Sprig wiki and encyclopedia - Under development (3) (h…
Browse files Browse the repository at this point in the history
…ackclub#1131)

* Update global.css

* updates

* fix links

* fix

* thanks marios (starting)

* back

* Update PT.json

* updates

* fix things

* add images (content)

* no more author

* more translations

* feat: Upodated translation removed fetch

* Update en_US.json

* fixes

* Update EN.json

* Update EN.json test

---------

Co-authored-by: Marios Mitsios <[email protected]>
Co-authored-by: graham <[email protected]>
  • Loading branch information
3 people authored Sep 19, 2023
1 parent 3c8ebda commit f851be0
Show file tree
Hide file tree
Showing 24 changed files with 426 additions and 88 deletions.
75 changes: 75 additions & 0 deletions .astro/types.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
declare module 'astro:content' {
export { z } from 'astro/zod';
export type CollectionEntry<C extends keyof typeof entryMap> =
(typeof entryMap)[C][keyof (typeof entryMap)[C]] & Render;

type BaseSchemaWithoutEffects =
| import('astro/zod').AnyZodObject
| import('astro/zod').ZodUnion<import('astro/zod').AnyZodObject[]>
| import('astro/zod').ZodDiscriminatedUnion<string, import('astro/zod').AnyZodObject[]>
| import('astro/zod').ZodIntersection<
import('astro/zod').AnyZodObject,
import('astro/zod').AnyZodObject
>;

type BaseSchema =
| BaseSchemaWithoutEffects
| import('astro/zod').ZodEffects<BaseSchemaWithoutEffects>;

type BaseCollectionConfig<S extends BaseSchema> = {
schema?: S;
slug?: (entry: {
id: CollectionEntry<keyof typeof entryMap>['id'];
defaultSlug: string;
collection: string;
body: string;
data: import('astro/zod').infer<S>;
}) => string | Promise<string>;
};
export function defineCollection<S extends BaseSchema>(
input: BaseCollectionConfig<S>
): BaseCollectionConfig<S>;

type EntryMapKeys = keyof typeof entryMap;
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
type ValidEntrySlug<C extends EntryMapKeys> = AllValuesOf<(typeof entryMap)[C]>['slug'];

export function getEntryBySlug<
C extends keyof typeof entryMap,
E extends ValidEntrySlug<C> | (string & {})
>(
collection: C,
// Note that this has to accept a regular string too, for SSR
entrySlug: E
): E extends ValidEntrySlug<C>
? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>;
export function getCollection<C extends keyof typeof entryMap, E extends CollectionEntry<C>>(
collection: C,
filter?: (entry: CollectionEntry<C>) => entry is E
): Promise<E[]>;
export function getCollection<C extends keyof typeof entryMap>(
collection: C,
filter?: (entry: CollectionEntry<C>) => unknown
): Promise<CollectionEntry<C>[]>;

type InferEntrySchema<C extends keyof typeof entryMap> = import('astro/zod').infer<
Required<ContentConfig['collections'][C]>['schema']
>;

type Render = {
render(): Promise<{
Content: import('astro').MarkdownInstance<{}>['Content'];
headings: import('astro').MarkdownHeading[];
remarkPluginFrontmatter: Record<string, any>;
}>;
};

const entryMap: {
"translations": {
},

};

type ContentConfig = never;
}
11 changes: 11 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# This configuration file was automatically generated by Gitpod.
# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml)
# and commit this file to your remote git repository to share the goodness with others.

# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart

tasks:
- init: yarn install && yarn run build
command: yarn run start


18 changes: 17 additions & 1 deletion public/translations/EN.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,21 @@
"team.categories.name": "Team - Sprikipedia, the Sprig encyclopedia",
"team.categories.title": "Team",
"team.categories.whats": "Our staff.",
"team.categories.about": "Who make Sprig possible."
"team.categories.about": "Who make Sprig possible.",
"tutorials.categories.name": "Tutorials - Sprikipedia, the Sprig encyclopedia",
"tutorials.categories.title": "Tutorial",
"tutorials.categories.whats": "Step-by-step.",
"tutorials.categories.about": "TBD",
"tutorials.categories.dspriki.github.comment": "",
"tutorials.categories.dtitle.github.comment": "",
"tutorials.categories.dauthor.github.comment": "",
"tutorials.categories.dspriki.github.mcomment": "",
"tutorials.categories.dtitle.github.mcomment": "",
"tutorials.categories.dauthor.github.mcomment": "",
"tutorials.categories.dspriki.github.pr": "",
"tutorials.categories.dtitle.github.pr": "",
"tutorials.categories.dauthor.github.pr": "",
"tutorials.categories.dspriki.github.upr": "",
"tutorials.categories.dtitle.github.upr": "",
"tutorials.categories.dauthor.github.upr": ""
}
64 changes: 40 additions & 24 deletions public/translations/PT.json
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
{
"home.head.title": "Sprikipedia, a enciclopédia Sprig",
"home.welcome.welcome": "",
"home.welcome.description": "",
"home.docs.start.name": "",
"home.docs.start.description": "",
"home.docs.tutorials.name": "",
"home.docs.tutorials.description": "",
"home.docs.firmware.name": "",
"home.docs.firmware.description": "",
"home.docs.hardware.name": "",
"home.docs.hardware.description": "",
"home.docs.team.name": "",
"home.docs.team.description": "",
"home.docs.about.name": "",
"home.docs.about.description": "",
"home.docs.brand.name": "",
"home.docs.brand.description": "",
"home.dark.info": "",
"about.head.title": "",
"about.content.title": "",
"about.blockquote.quote": "",
"about.blockquote.citation": "",
"about.content.p1": "",
"home.head.title": "Sprikipédia, a enciclopédia Sprig",
"home.welcome.welcome": "Boas-vindas à Sprikipédia,",
"home.welcome.description": "A enciclopédia Sprig que todo mundo pode editar.",
"home.docs.start.name": "Comece com Sprig!",
"home.docs.start.description": "Começando com Sprig? Aqui é o lugar perfeito",
"home.docs.tutorials.name": "Tutoriais",
"home.docs.tutorials.description": "Passo a passo para fazer coisas do seu jogo",
"home.docs.firmware.name": "Firmware",
"home.docs.firmware.description": "Links para Spade, Trowel, Spryg...",
"home.docs.hardware.name": "Hardware",
"home.docs.hardware.description": "Links para nossa PCB, componentes...",
"home.docs.team.name": "Equipe",
"home.docs.team.description": "Quem faz o Sprig possível",
"home.docs.about.name": "Sobre Sprikipédia",
"home.docs.about.description": "A história propósito, tudo",
"home.docs.brand.name": "Marca",
"home.docs.brand.description": "Todo material de marca para download",
"home.dark.info": "Venha para o lado escuro!",
"about.head.title": "Sobre Sprikipédia - Sprikipédia",
"about.content.title": "Sobre Sprikipédia",
"about.blockquote.quote": "Imagine um mundo que cada pessoa no planeta tenha acesso gratuito resumo de todo conhecimento Sprig. Isso é o que estamos fazendo.",
"about.blockquote.citation": "Lucas, parafraseando a frase de Jimmy Wales da página Sobre da Wikipedia",
"about.content.p1": "Sprikipédia é uma enciclopédia.",
"about.content.p2": "",
"about.content.p3": "",
"about.content.p4": "",
Expand All @@ -46,5 +46,21 @@
"team.categories.name": "",
"team.categories.title": "",
"team.categories.whats": "",
"team.categories.about": ""
"team.categories.about": "",
"tutorials.categories.name": "",
"tutorials.categories.title": "",
"tutorials.categories.whats": "",
"tutorials.categories.about": "",
"tutorials.categories.dspriki.github.comment": "",
"tutorials.categories.dtitle.github.comment": "",
"tutorials.categories.dauthor.github.comment": "",
"tutorials.categories.dspriki.github.mcomment": "",
"tutorials.categories.dtitle.github.mcomment": "",
"tutorials.categories.dauthor.github.mcomment": "",
"tutorials.categories.dspriki.github.pr": "",
"tutorials.categories.dtitle.github.pr": "",
"tutorials.categories.dauthor.github.pr": "",
"tutorials.categories.dspriki.github.upr": "",
"tutorials.categories.dtitle.github.upr": "",
"tutorials.categories.dauthor.github.upr": ""
}
2 changes: 1 addition & 1 deletion src/layouts/categories.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
import '../global.css'
import '../pages/sprikipedia/global.css'
import Navspriki from '../components/spriki-components/Navspriki.astro'
import StandardHead from '../components/standard-head.astro'
const { name, title, about, whats } = Astro.props
Expand Down
11 changes: 5 additions & 6 deletions src/layouts/docs.astro
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
---
import '../global.css'
import '../pages/sprikipedia/global.css'
import StandardHead from '../components/standard-head.astro'
import Navspriki from '../components/spriki-components/Navspriki.astro'
const { frontmatter } = Astro.props
const { dspriki, dtitle } = Astro.props
---

<html lang="en">
<head>
<StandardHead title={frontmatter.spriki} />
<StandardHead title={dspriki} />
</head>
<body>
<Navspriki />
<div class="main-spriki">
<h1>{frontmatter.title}</h1>
<p>by {frontmatter.author}</p>
<h1>{dtitle}</h1>
<article>
<slot />
</article>
</div>
</body>
</html>
</html>
14 changes: 6 additions & 8 deletions src/pages/sprikipedia/about/index.astro
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
---
import '../../../global.css'
import Navspriki from '../../../components/spriki-components/Navspriki.astro'
import Translations from '../../../pages/sprikipedia/translations/translations.json'
const response = await fetch(
`https://${Astro.url.host}/translations/${
Astro.url.searchParams.get("lang") || Translations[0]
}.json`
);
console.log(response);
const data = await response.json();
const data = (
(await Astro.glob(`/src/translations/*.json`)).find(
(translation) =>
translation.default.lang == (Astro.url.searchParams.get("lang") || "en_US")
) || {}
).default;
---
<html lang="en">
<head>
Expand Down
14 changes: 6 additions & 8 deletions src/pages/sprikipedia/firmware/index.astro
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
---
import '../../../global.css'
import Categories from '../../../layouts/categories.astro'
import Translations from '../../../pages/sprikipedia/translations/translations.json'
const response = await fetch(
`https://${Astro.url.host}/translations/${
Astro.url.searchParams.get("lang") || Translations[0]
}.json`
);
console.log(response);
const data = await response.json();
const data = (
(await Astro.glob(`/src/translations/*.json`)).find(
(translation) =>
translation.default.lang == (Astro.url.searchParams.get("lang") || "en_US")
) || {}
).default;
---
<Categories name={data["firmware.categories.name"]} title={data["firmware.categories.title"]} whats={data["firmware.categories.whats"]} about={data["firmware.categories.about"]}>
<ul>
Expand Down
26 changes: 26 additions & 0 deletions src/pages/sprikipedia/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,32 @@ html, body { height: 100%; }
html { box-sizing: border-box; overflow: hidden; }
body { overflow: auto; }

:root {
--font-text: 'Inter', sans-serif;
--font-code: 'Fira Mono', monospace;

--bg-base: #fafed7;
--bg-overlay: #000000cf;
--bg-drawing-hover: #9b9b9b52;
--bg-floating: #191919;
--bg-surface: #f8f9fa;
--bg-overflow: #dee2e6;
--bg-btn-inactive: #434343;
--bg-btn-inactive-dark: #2e2e2e;

--fg-muted: #9d9d9d;
--fg-muted-on-accent: #8fcabb;
--error: #e03131;
--accent: #078969;
--accent-light: #80c3a0;
--accent-dark: #136853;
--fg-switch-low: #515151;
--fg-switch-high: #f3f3f3;

--cursor-interactive: default;
--line-height-copy: 1.5;
}

body {
font-family: var(--font-text);
margin: 0;
Expand Down
14 changes: 6 additions & 8 deletions src/pages/sprikipedia/hardware/index.astro
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
---
import '../../../global.css'
import Categories from '../../../layouts/categories.astro'
import Translations from '../../../pages/sprikipedia/translations/translations.json'
const response = await fetch(
`https://${Astro.url.host}/translations/${
Astro.url.searchParams.get("lang") || Translations[0]
}.json`
);
console.log(response);
const data = await response.json();
const data = (
(await Astro.glob(`/src/translations/*.json`)).find(
(translation) =>
translation.default.lang == (Astro.url.searchParams.get("lang") || "en_US")
) || {}
).default;
---
<Categories name={data["hardware.categories.name"]} title={data["hardware.categories.title"]} whats={data["hardware.categories.whats"]} about={data["hardware.categories.about"]}>
<ul>
Expand Down
38 changes: 18 additions & 20 deletions src/pages/sprikipedia/index.astro
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
---
import '../../pages/sprikipedia/global.css'
import Docs from '../../components/spriki-components/Docs.astro'
import Dark from '../../components/spriki-components/Dark.astro'
import StandardHead from '../../components/standard-head.astro'
import Translations from '../../pages/sprikipedia/translations/translations.json'
import "../../pages/sprikipedia/global.css";
import Docs from "../../components/spriki-components/Docs.astro";
import Dark from "../../components/spriki-components/Dark.astro";
import StandardHead from "../../components/standard-head.astro";
const response = await fetch(
`https://${Astro.url.host}/translations/${
Astro.url.searchParams.get("lang") || Translations[0]
}.json`
);
console.log(response);
const data = await response.json();
const data = (
(await Astro.glob(`/src/translations/*.json`)).find(
(translation) =>
translation.default.lang == (Astro.url.searchParams.get("lang") || "en_US")
) || {}
).default;
---
<html lang="en">
<head>
Expand All @@ -26,34 +24,34 @@ const data = await response.json();
<Docs
name={data["home.docs.start.name"]}
description={data["home.docs.start.description"]}
links="getting-started" />
links="sprikipedia/getting-started" />
<Docs
name={data["home.docs.tutorials.name"]}
description={data["home.docs.tutorials.description"]}
links="tutorials" />
links="sprikipedia/tutorials" />
<Docs
name={data["home.docs.firmware.name"]}
description={data["home.docs.firmware.description"]}
links="firmware" />
links="sprikipedia/firmware" />
<Docs
name={data["home.docs.hardware.name"]}
description={data["home.docs.hardware.description"]}
links="hardware" />
links="sprikipedia/hardware" />
<Docs
name={data["home.docs.team.name"]}
description={data["home.docs.team.description"]}
links="team" />
links="sprikipedia/team" />
<Docs
name={data["home.docs.about.name"]}
description={data["home.docs.about.description"]}
links="about" />
links="sprikipedia/about" />
<Docs
name={data["home.docs.brand.name"]}
description={data["home.docs.brand.description"]}
links="brand" />
links="sprikipedia/brand" />
</div>
<div class="docs-preview">
<Dark links="github.com/hackclub/sprig/wiki" info={data["home.dark.info"]} />
</div>
</body>
</html>
</html>
Loading

0 comments on commit f851be0

Please sign in to comment.