130 lines
1.6 KiB
Plaintext
130 lines
1.6 KiB
Plaintext
|
@startuml
|
||
|
|
||
|
class book::MDBook {
|
||
|
project_root : PathBuf
|
||
|
|
||
|
books : HashMap<&'a str, Book>
|
||
|
|
||
|
renderer : Box<Renderer>
|
||
|
livereload : Option<String>
|
||
|
indent_spaces: i32
|
||
|
multilingual: bool
|
||
|
|
||
|
new(root)
|
||
|
}
|
||
|
|
||
|
class book::book.Book {
|
||
|
config : BookConfig
|
||
|
metadata : BookMetadata
|
||
|
|
||
|
chapters: Vec<Chapter>
|
||
|
|
||
|
new(title)
|
||
|
}
|
||
|
|
||
|
class book::bookconfig.BookConfig {
|
||
|
lang : Language
|
||
|
|
||
|
project_root : PathBuf
|
||
|
book_dest : PathBuf
|
||
|
book_src : PathBuf
|
||
|
template_path : PathBuf
|
||
|
|
||
|
new(root)
|
||
|
}
|
||
|
|
||
|
class book::chapter.Chapter {
|
||
|
title
|
||
|
file
|
||
|
author
|
||
|
description
|
||
|
css_class
|
||
|
index : Vec<i32>
|
||
|
|
||
|
new(title, file)
|
||
|
}
|
||
|
|
||
|
namespace book::toc {
|
||
|
|
||
|
class TocItem {
|
||
|
content : TocContent
|
||
|
sub_items: Vec<TocItem>
|
||
|
new(content)
|
||
|
}
|
||
|
|
||
|
enum TocContent {
|
||
|
Frontmatter "Chapter"
|
||
|
Mainmatter "Chapter"
|
||
|
Backmatter "Chapter"
|
||
|
Insert "Chapter"
|
||
|
Spacer
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
namespace book::metadata {
|
||
|
|
||
|
class BookMetadata {
|
||
|
title
|
||
|
subtitle
|
||
|
description
|
||
|
publisher
|
||
|
language
|
||
|
authors
|
||
|
translators
|
||
|
number_format
|
||
|
section_names
|
||
|
new(title)
|
||
|
}
|
||
|
|
||
|
class Author {
|
||
|
name
|
||
|
email
|
||
|
new(name)
|
||
|
}
|
||
|
|
||
|
class Language {
|
||
|
name
|
||
|
code
|
||
|
}
|
||
|
|
||
|
class Publisher {
|
||
|
name
|
||
|
url
|
||
|
logo_src
|
||
|
}
|
||
|
|
||
|
enum NumberFormat {
|
||
|
Arabic
|
||
|
Roman
|
||
|
Word
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
class renderer::html_handlebars::HtmlHandlebars {
|
||
|
new()
|
||
|
render(book: MDBook)
|
||
|
}
|
||
|
|
||
|
class theme::Theme {
|
||
|
index
|
||
|
css
|
||
|
favicon
|
||
|
js
|
||
|
highlight_css
|
||
|
tomorrow_night_css
|
||
|
highlight_js
|
||
|
jquery
|
||
|
new(src)
|
||
|
}
|
||
|
|
||
|
book::book-[hidden]->book::bookconfig
|
||
|
book::book-[hidden]->book::chapter
|
||
|
book::book-[hidden]->book::toc
|
||
|
book::book-[hidden]->book::metadata
|
||
|
|
||
|
renderer::html_handlebars::HtmlHandlebars-[hidden]->theme::Theme
|
||
|
|
||
|
@enduml
|