chore: documentation added and adapted to RuDS
This commit is contained in:
@@ -15,6 +15,8 @@ use crate::i18n::t;
|
||||
const API_REFERENCE: &str = include_str!("../../../../docs/scripting/API_REFERENCE.md");
|
||||
const API_TYPES: &str = include_str!("../../../../docs/scripting/TYPES.md");
|
||||
const USER_GUIDE: &str = include_str!("../../../../DOCUMENTATION.md");
|
||||
const CLI_GUIDE: &str = include_str!("../../../../CLI.md");
|
||||
const MCP_GUIDE: &str = include_str!("../../../../MCP.md");
|
||||
const UTILITY_EXAMPLE: &str = include_str!("../../../../docs/scripting/examples/utility.lua");
|
||||
const MACRO_EXAMPLE: &str = include_str!("../../../../docs/scripting/examples/macro.lua");
|
||||
const TRANSFORM_EXAMPLE: &str = include_str!("../../../../docs/scripting/examples/transform.lua");
|
||||
@@ -24,6 +26,8 @@ pub const API_DOCUMENTATION_URL: &str = "https://ruds.invalid/api-documentation"
|
||||
pub enum DocumentationKind {
|
||||
Guide,
|
||||
Api,
|
||||
Cli,
|
||||
Mcp,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -136,6 +140,8 @@ pub fn scroll_id(kind: DocumentationKind) -> scrollable::Id {
|
||||
scrollable::Id::new(match kind {
|
||||
DocumentationKind::Guide => "user-documentation",
|
||||
DocumentationKind::Api => "api-documentation",
|
||||
DocumentationKind::Cli => "cli-documentation",
|
||||
DocumentationKind::Mcp => "mcp-documentation",
|
||||
})
|
||||
}
|
||||
|
||||
@@ -143,10 +149,14 @@ pub fn view(state: &DocumentationState, locale: UiLocale) -> Element<'_, Message
|
||||
let title_key = match state.kind {
|
||||
DocumentationKind::Guide => "documentation.title",
|
||||
DocumentationKind::Api => "documentation.apiTitle",
|
||||
DocumentationKind::Cli => "documentation.cliTitle",
|
||||
DocumentationKind::Mcp => "documentation.mcpTitle",
|
||||
};
|
||||
let subtitle_key = match state.kind {
|
||||
DocumentationKind::Guide => "documentation.subtitle",
|
||||
DocumentationKind::Api => "documentation.apiSubtitle",
|
||||
DocumentationKind::Cli => "documentation.cliSubtitle",
|
||||
DocumentationKind::Mcp => "documentation.mcpSubtitle",
|
||||
};
|
||||
let toolbar = inputs::toolbar(
|
||||
vec![
|
||||
@@ -244,10 +254,21 @@ fn table_row<'a>(values: &'a [String], header: bool) -> Element<'a, Message> {
|
||||
}
|
||||
|
||||
pub fn load_user_guide() -> DocumentLoad {
|
||||
let path = user_guide_path();
|
||||
match load_document_file(&path) {
|
||||
load_embedded_document(&user_guide_path(), USER_GUIDE)
|
||||
}
|
||||
|
||||
pub fn load_cli_guide() -> DocumentLoad {
|
||||
load_embedded_document(&root_document_path("CLI.md"), CLI_GUIDE)
|
||||
}
|
||||
|
||||
pub fn load_mcp_guide() -> DocumentLoad {
|
||||
load_embedded_document(&root_document_path("MCP.md"), MCP_GUIDE)
|
||||
}
|
||||
|
||||
fn load_embedded_document(path: &Path, embedded: &str) -> DocumentLoad {
|
||||
match load_document_file(path) {
|
||||
DocumentLoad::Missing { signature } => DocumentLoad::Ready {
|
||||
source: USER_GUIDE.to_string(),
|
||||
source: embedded.to_string(),
|
||||
signature,
|
||||
},
|
||||
load => load,
|
||||
@@ -308,6 +329,8 @@ pub fn load_api_document() -> DocumentLoad {
|
||||
pub fn current_signature(kind: DocumentationKind) -> u64 {
|
||||
match kind {
|
||||
DocumentationKind::Guide => file_signature(&user_guide_path()),
|
||||
DocumentationKind::Cli => file_signature(&root_document_path("CLI.md")),
|
||||
DocumentationKind::Mcp => file_signature(&root_document_path("MCP.md")),
|
||||
DocumentationKind::Api => {
|
||||
let root = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../docs/scripting");
|
||||
paths_signature(
|
||||
@@ -325,7 +348,11 @@ pub fn current_signature(kind: DocumentationKind) -> u64 {
|
||||
}
|
||||
|
||||
fn user_guide_path() -> PathBuf {
|
||||
Path::new(env!("CARGO_MANIFEST_DIR")).join("../../DOCUMENTATION.md")
|
||||
root_document_path("DOCUMENTATION.md")
|
||||
}
|
||||
|
||||
fn root_document_path(name: &str) -> PathBuf {
|
||||
Path::new(env!("CARGO_MANIFEST_DIR")).join("../..").join(name)
|
||||
}
|
||||
|
||||
pub fn parse_document(source: &str) -> ParsedDocument {
|
||||
|
||||
@@ -134,6 +134,8 @@ pub fn view<'a>(
|
||||
duplicates_state: &'a DuplicatesState,
|
||||
guide_documentation: &'a DocumentationState,
|
||||
api_documentation: &'a DocumentationState,
|
||||
cli_documentation: &'a DocumentationState,
|
||||
mcp_documentation: &'a DocumentationState,
|
||||
metadata_diff_state: &'a MetadataDiffState,
|
||||
menu_editor_state: &'a MenuEditorState,
|
||||
translation_validation_state: &'a TranslationValidationState,
|
||||
@@ -168,6 +170,8 @@ pub fn view<'a>(
|
||||
duplicates_state,
|
||||
guide_documentation,
|
||||
api_documentation,
|
||||
cli_documentation,
|
||||
mcp_documentation,
|
||||
metadata_diff_state,
|
||||
menu_editor_state,
|
||||
translation_validation_state,
|
||||
@@ -414,6 +418,8 @@ fn route_content_area<'a>(
|
||||
duplicates_state: &'a DuplicatesState,
|
||||
guide_documentation: &'a DocumentationState,
|
||||
api_documentation: &'a DocumentationState,
|
||||
cli_documentation: &'a DocumentationState,
|
||||
mcp_documentation: &'a DocumentationState,
|
||||
metadata_diff_state: &'a MetadataDiffState,
|
||||
menu_editor_state: &'a MenuEditorState,
|
||||
translation_validation_state: &'a TranslationValidationState,
|
||||
@@ -507,6 +513,8 @@ fn route_content_area<'a>(
|
||||
ContentRoute::FindDuplicates => duplicates::view(duplicates_state, locale),
|
||||
ContentRoute::Documentation => documentation::view(guide_documentation, locale),
|
||||
ContentRoute::ApiDocumentation => documentation::view(api_documentation, locale),
|
||||
ContentRoute::CliDocumentation => documentation::view(cli_documentation, locale),
|
||||
ContentRoute::McpDocumentation => documentation::view(mcp_documentation, locale),
|
||||
ContentRoute::MetadataDiff => metadata_diff::view(metadata_diff_state, locale),
|
||||
ContentRoute::MenuEditor => menu_editor::view(menu_editor_state, locale),
|
||||
ContentRoute::TranslationValidation => {
|
||||
@@ -546,6 +554,8 @@ enum ContentRoute<'a> {
|
||||
FindDuplicates,
|
||||
Documentation,
|
||||
ApiDocumentation,
|
||||
CliDocumentation,
|
||||
McpDocumentation,
|
||||
MetadataDiff,
|
||||
MenuEditor,
|
||||
TranslationValidation,
|
||||
@@ -638,6 +648,8 @@ fn route_kind<'a>(
|
||||
TabType::FindDuplicates => ContentRoute::FindDuplicates,
|
||||
TabType::Documentation => ContentRoute::Documentation,
|
||||
TabType::ApiDocumentation => ContentRoute::ApiDocumentation,
|
||||
TabType::CliDocumentation => ContentRoute::CliDocumentation,
|
||||
TabType::McpDocumentation => ContentRoute::McpDocumentation,
|
||||
TabType::MenuEditor => ContentRoute::MenuEditor,
|
||||
TabType::Style => ContentRoute::Placeholder(&tab.title),
|
||||
TabType::TranslationValidation => ContentRoute::TranslationValidation,
|
||||
|
||||
Reference in New Issue
Block a user