fix: cyrillic fonts, dev certs, page head, and ru-text typography (#67)
🤖 PR generated for branch `fix/cyrillic-fonts-dev-certs-and-page-head`.
### Changes Summary
- **Fonts**: Add Cyrillic glyph subsets for Lato, EB Garamond, and Fira
Code.
- **Dev**: Support remote Root CA and encrypted dev CA key in
`.env.dev`.
- **UI & Kits**: Add size variant to `Breadcrumbs` component and enlarge
`PageHead` breadcrumbs with tuned collapse scroll threshold.
- **ESLint**: Add `no-hanging-particles` i18n & markdown typography rule
with auto-fixer.
- **Content & i18n**: Apply `ru-text` editorial and typography polish
(em dashes, number ranges, «ё» restoration, non-breaking spaces) across
`services/www` and `services/docs`.
This commit is contained in:
1 parent
c6487dc258
commit
b3638f4d63
111 files changed
+2350
-1512
No files matched your search
@@ -3,19 +3,19 @@ title: Module Development Workflow
|
||||
weight: 1
|
||||
---
|
||||
|
||||
**Goal:** Create a new feature for the Quetza bot by implementing a self-contained module.
|
||||
**Goal:** Create a new feature for the Quetza bot by implementing a self-contained module.
|
||||
|
||||
## 1. Conceptualization Phase
|
||||
|
||||
Before writing code, determine the module's architecture:
|
||||
Before writing code, determine the module's architecture:
|
||||
|
||||
- **Simple Command:** Needs only a `commands/` folder (e.g., utility commands).
|
||||
- **Reactive Logic:** Needs `events/` to listen to Discord lifecycles (e.g., welcome messages).
|
||||
- **Stateful Feature:** Needs a **Controller** to manage state across guilds (e.g., music player).
|
||||
- **Simple Command:** Needs only a `commands/` folder (e.g., utility commands).
|
||||
- **Reactive Logic:** Needs `events/` to listen to Discord lifecycles (e.g., welcome messages).
|
||||
- **Stateful Feature:** Needs a **Controller** to manage state across guilds (e.g., music player).
|
||||
|
||||
## 2. Structure Establishment
|
||||
|
||||
Create the module directory structure. The presence of these files triggers automatic discovery.
|
||||
Create the module directory structure. The presence of these files triggers automatic discovery.
|
||||
|
||||
{{< filetree/container >}}
|
||||
{{< filetree/folder name="src" state="open" >}}
|
||||
@@ -34,9 +34,9 @@ Create the module directory structure. The presence of these files triggers auto
|
||||
|
||||
{{% steps %}}
|
||||
|
||||
### Step 1: Create the Manifest
|
||||
### Step 1: Create the Manifest
|
||||
|
||||
Create `module.ts` to declare the module.
|
||||
Create `module.ts` to declare the module.
|
||||
|
||||
```typescript
|
||||
// src/modules/my-feature/module.ts
|
||||
@@ -47,7 +47,7 @@ export const description = 'Adds cool feature capabilities';
|
||||
|
||||
### Step 2: Implement Commands
|
||||
|
||||
Create command files in `commands/`. Each file exports data and an executor.
|
||||
Create command files in `commands/`. Each file exports data and an executor.
|
||||
|
||||
```typescript
|
||||
// src/modules/my-feature/commands/ping.ts
|
||||
@@ -62,7 +62,7 @@ export async function execute(interaction) {
|
||||
|
||||
### Step 3: Implement Events (Optional)
|
||||
|
||||
Create event handlers in `events/` to observe Discord state.
|
||||
Create event handlers in `events/` to observe Discord state.
|
||||
|
||||
```typescript
|
||||
// src/modules/my-feature/events/ready.ts
|
||||
@@ -78,14 +78,14 @@ export function execute(client) {
|
||||
|
||||
### Step 4: Define Controller (Optional)
|
||||
|
||||
For stateful logic, implement a controller in `lib/` and export it in `module.ts`.
|
||||
For stateful logic, implement a controller in `lib/` and export it in `module.ts`.
|
||||
|
||||
### Step 5: Validate
|
||||
|
||||
Restart the bot.
|
||||
Restart the bot.
|
||||
|
||||
1. Check logs for "Loaded module: my-feature".
|
||||
2. Verify the command `/ping` appears in Discord.
|
||||
1. Check logs for "Loaded module: my-feature".
|
||||
2. Verify the command `/ping` appears in Discord.
|
||||
|
||||
{{% /steps %}}
|
||||
|
||||
|
||||
Reference in new issue
Block a user