Added docs RazorConsole
This commit is contained in:
116
docs/razorconsole/overview.md
Normal file
116
docs/razorconsole/overview.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# RazorConsole — Обзор
|
||||
|
||||
**Репозиторий:** https://github.com/RazorConsole/RazorConsole
|
||||
**Лицензия:** MIT
|
||||
**Последняя версия:** v0.5.0 (март 2026)
|
||||
**NuGet:** `RazorConsole.Core`
|
||||
|
||||
## Что такое RazorConsole?
|
||||
|
||||
RazorConsole — это .NET-библиотека для построения интерактивных TUI-приложений (Terminal User Interface) с использованием синтаксиса Razor-компонентов и движка рендеринга Spectre.Console.
|
||||
|
||||
Библиотека заполняет разрыв между веб-разработкой на Blazor/Razor и консольными приложениями: разработчик пишет компоненты `.razor`, а на выходе получает полноценный интерактивный терминальный интерфейс.
|
||||
|
||||
## Ключевые возможности
|
||||
|
||||
| Возможность | Описание |
|
||||
|---|---|
|
||||
| Компонентная архитектура | Razor-компоненты с data binding, event handling и lifecycle |
|
||||
| 25+ встроенных компонентов | Макет, ввод, отображение, утилиты |
|
||||
| Интерактивность | Кнопки, текстовые поля, селекторы, навигация клавиатурой |
|
||||
| Hot Reload | Обновление UI без перезапуска через metadata update handler |
|
||||
| VDOM + Translators | Виртуальный DOM с расширяемой системой трансляторов |
|
||||
| DI интеграция | Построен на `Microsoft.Extensions.Hosting` |
|
||||
| Галерея компонентов | Глобальный инструмент `razorconsole-gallery` |
|
||||
|
||||
## Технологический стек
|
||||
|
||||
- **Runtime:** .NET 8 / .NET 9
|
||||
- **SDK:** `Microsoft.NET.Sdk.Razor` (обязателен в `.csproj`)
|
||||
- **Рендеринг:** Spectre.Console
|
||||
- **DI/Host:** `Microsoft.Extensions.Hosting`
|
||||
- **Синтаксис подсветки:** ColorCode
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
dotnet add package RazorConsole.Core
|
||||
```
|
||||
|
||||
## Минимальный проект
|
||||
|
||||
### Файл проекта (`.csproj`)
|
||||
|
||||
```xml
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
<!-- другие настройки -->
|
||||
</Project>
|
||||
```
|
||||
|
||||
### Компонент `Counter.razor`
|
||||
|
||||
```razor
|
||||
@using Microsoft.AspNetCore.Components
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using RazorConsole.Components
|
||||
|
||||
<Columns>
|
||||
<p>Current count</p>
|
||||
<Markup Content="@currentCount.ToString()" Foreground="@Spectre.Console.Color.Green" />
|
||||
</Columns>
|
||||
<TextButton Content="Click me"
|
||||
OnClick="IncrementCount"
|
||||
BackgroundColor="@Spectre.Console.Color.Grey"
|
||||
FocusedColor="@Spectre.Console.Color.Blue" />
|
||||
|
||||
@code {
|
||||
private int currentCount = 0;
|
||||
private void IncrementCount() { currentCount++; }
|
||||
}
|
||||
```
|
||||
|
||||
### `Program.cs`
|
||||
|
||||
```csharp
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using RazorConsole.Core;
|
||||
|
||||
IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args)
|
||||
.UseRazorConsole<Counter>();
|
||||
|
||||
IHost host = hostBuilder.Build();
|
||||
await host.RunAsync();
|
||||
```
|
||||
|
||||
## Примеры приложений
|
||||
|
||||
| Пример | Демонстрирует |
|
||||
|---|---|
|
||||
| `examples/Counter/` | Основы: кнопки, состояние, layout, styled text |
|
||||
| `examples/LLMAgentTUI/` | Интеграция с AI SDK (OpenAI/Ollama), чат-интерфейс |
|
||||
| `examples/LoginForm/` | Форма с валидацией, маскирование пароля, состояния ошибок |
|
||||
|
||||
## Компонентная галерея
|
||||
|
||||
```bash
|
||||
dotnet tool install --global RazorConsole.Gallery --version 0.0.3-alpha
|
||||
razorconsole-gallery
|
||||
```
|
||||
|
||||
## Структура репозитория
|
||||
|
||||
```
|
||||
src/ — исходный код библиотеки
|
||||
examples/ — примеры приложений
|
||||
design-doc/ — архитектурные документы
|
||||
nuget/ — конфигурация NuGet
|
||||
release-notes/ — история релизов
|
||||
docfx/ — генерация документации
|
||||
website/ — сайт проекта
|
||||
```
|
||||
|
||||
## Сообщество
|
||||
|
||||
- Discord: https://discord.gg/DphHAnJxCM
|
||||
- Issues: https://github.com/RazorConsole/RazorConsole/issues
|
||||
- Codecov: https://codecov.io/gh/RazorConsole/RazorConsole
|
||||
Reference in New Issue
Block a user