jevstrudel.git / website / src / config.ts
1export const SITE = {
2  title: 'Strudel',
3  description: 'Strudel is a music live coding editor that brings TidalCycles to the browser.',
4  defaultLanguage: 'en',
5};
6
7export const OPEN_GRAPH = {
8  image: {
9    src: 'https://strudel.cc/icon.png',
10    alt: 'Strudel Logo',
11  },
12};
13
14// This is the type of the frontmatter you put in the docs markdown files.
15export type Frontmatter = {
16  title: string;
17  description: string;
18  layout: string;
19  image?: { src: string; alt: string };
20  dir?: 'ltr' | 'rtl';
21  ogLocale?: string;
22  lang?: string;
23};
24
25export const KNOWN_LANGUAGES = {
26  English: 'en',
27  German: 'de',
28} as const;
29export const KNOWN_LANGUAGE_CODES = Object.values(KNOWN_LANGUAGES);
30
31export const GITHUB_EDIT_URL = `https://codeberg.org/uzu/strudel/src/branch/main/website`;
32
33export const COMMUNITY_INVITE_URL = `https://discord.com/invite/HGEdXmRkzT`;
34
35// See "Algolia" section of the README for more information.
36export const ALGOLIA = {
37  indexName: 'strudel-tidalcycles',
38  appId: 'SAZ71S8CLS',
39  apiKey: 'd5044f9d21b80e7721e5b0067a8730b1',
40};
41
42export type SidebarLang = Record<string, { text: string; link: string }[]>;
43export type Sidebar = Record<(typeof KNOWN_LANGUAGE_CODES)[number], SidebarLang>;
44export const SIDEBAR: Sidebar = {
45  de: {
46    Workshop: [
47      { text: 'Intro', link: 'de/workshop/getting-started' },
48      { text: 'Erste Sounds', link: 'de/workshop/first-sounds' },
49      { text: 'Erste Töne', link: 'de/workshop/first-notes' },
50      { text: 'Erste Effekte', link: 'de/workshop/first-effects' },
51      { text: 'Pattern Effekte', link: 'de/workshop/pattern-effects' },
52      { text: 'Rückblick', link: 'de/workshop/recap' },
53      { text: 'Mehr Seiten auf Englisch', link: 'workshop/getting-started' },
54    ],
55  },
56  en: {
57    Presentation: [
58      { text: 'What is Strudel?', link: 'workshop/getting-started' },
59      { text: 'Showcase', link: 'intro/showcase' },
60      { text: 'Blog', link: 'blog' },
61      /* { text: 'Community Bakery', link: 'bakery' }, */
62    ],
63    Workshop: [
64      // { text: 'Getting Started', link: 'workshop/getting-started' },
65      { text: 'First Sounds', link: 'workshop/first-sounds' },
66      { text: 'First Notes', link: 'workshop/first-notes' },
67      { text: 'First Effects', link: 'workshop/first-effects' },
68      { text: 'Pattern Effects', link: 'workshop/pattern-effects' },
69      { text: 'Recap', link: 'workshop/recap' },
70      { text: 'Workshop in German', link: 'de/workshop/getting-started' },
71    ],
72    'Making Sound': [
73      { text: 'Samples', link: 'learn/samples' },
74      { text: 'Synths', link: 'learn/synths' },
75      { text: 'Audio Effects', link: 'learn/effects' },
76      { text: 'MIDI & OSC', link: 'learn/input-output' },
77    ],
78    More: [
79      { text: 'FAQ', link: 'learn/faq' },
80      { text: 'Recipes', link: 'recipes/recipes' },
81      { text: 'Mini-Notation', link: 'learn/mini-notation' },
82      { text: 'Visual Feedback', link: 'learn/visual-feedback' },
83      { text: 'Offline', link: 'learn/pwa' },
84      { text: 'Patterns', link: 'technical-manual/patterns' },
85      { text: 'Mondo Notation', link: 'learn/mondo-notation' },
86      { text: 'Music metadata', link: 'learn/metadata' },
87      { text: 'CSound', link: 'learn/csound' },
88      { text: 'Hydra', link: 'learn/hydra' },
89      { text: 'Input Devices', link: 'learn/input-devices' },
90      { text: 'Device Motion', link: 'learn/devicemotion' },
91    ],
92    'Pattern Functions': [
93      { text: 'Introduction', link: 'functions/intro' },
94      { text: 'Creating Patterns', link: 'learn/factories' },
95      { text: 'Time Modifiers', link: 'learn/time-modifiers' },
96      { text: 'Control Parameters', link: 'functions/value-modifiers' },
97      { text: 'Signals', link: 'learn/signals' },
98      { text: 'Random Modifiers', link: 'learn/random-modifiers' },
99      { text: 'Conditional Modifiers', link: 'learn/conditional-modifiers' },
100      { text: 'Accumulation', link: 'learn/accumulation' },
101      { text: 'LFOs', link: 'learn/lfo' },
102      { text: 'Tonal Functions', link: 'learn/tonal' },
103      { text: 'Stepwise Functions', link: 'learn/stepwise' },
104    ],
105    Understand: [
106      { text: 'Coding syntax', link: 'learn/code' },
107      { text: 'Pitch', link: 'understand/pitch' },
108      { text: 'Xenharmonic Functions', link: 'learn/xen' },
109      { text: 'Cycles', link: 'understand/cycles' },
110      { text: 'Voicings', link: 'understand/voicings' },
111      { text: 'Pattern Alignment', link: 'technical-manual/alignment' },
112      { text: 'Strudel vs Tidal', link: 'learn/strudel-vs-tidal' },
113    ],
114    Development: [
115      { text: 'Strudel in your Project', link: 'technical-manual/project-start' },
116      { text: 'Packages', link: 'technical-manual/packages' },
117      { text: 'REPL', link: 'technical-manual/repl' },
118      { text: 'Sounds', link: 'technical-manual/sounds' },
119      { text: 'Docs', link: 'technical-manual/docs' },
120      { text: 'Testing', link: 'technical-manual/testing' },
121      // { text: 'Internals', link: 'technical-manual/internals' },
122    ],
123  },
124};