143 lines
1.6 KiB
Plaintext
143 lines
1.6 KiB
Plaintext
|
@startuml
|
||
|
|
||
|
class book::MDBook {
|
||
|
root
|
||
|
dest
|
||
|
src
|
||
|
theme_path
|
||
|
title
|
||
|
author
|
||
|
description
|
||
|
content : Vec<BookItem>
|
||
|
books : HashMap<&'a str, Book>
|
||
|
renderer
|
||
|
livereload
|
||
|
}
|
||
|
|
||
|
class book::book.Book {
|
||
|
metadata
|
||
|
frontmatter
|
||
|
mainmatter
|
||
|
backmatter
|
||
|
|
||
|
new(title)
|
||
|
}
|
||
|
|
||
|
class book::bookconfig.BookConfig {
|
||
|
root
|
||
|
dest
|
||
|
src
|
||
|
theme_path
|
||
|
title
|
||
|
author
|
||
|
description
|
||
|
indent_spaces
|
||
|
multilingual
|
||
|
|
||
|
new(root)
|
||
|
}
|
||
|
|
||
|
class book::chapter.Chapter {
|
||
|
title
|
||
|
file
|
||
|
author
|
||
|
description
|
||
|
index
|
||
|
class
|
||
|
sub_chapters
|
||
|
|
||
|
new(title, file)
|
||
|
}
|
||
|
|
||
|
namespace book::bookitem {
|
||
|
|
||
|
enum BookItem {
|
||
|
Chapter "String, Chapter"
|
||
|
Affix "Chapter"
|
||
|
Spacer
|
||
|
}
|
||
|
|
||
|
class BookItems {
|
||
|
items : &'a [BookItem]
|
||
|
current_index
|
||
|
stack : Vec<"&'a [BookItem], usize">
|
||
|
}
|
||
|
|
||
|
class Chapter {
|
||
|
name
|
||
|
path
|
||
|
sub_items
|
||
|
|
||
|
new(name, path)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
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::bookitem
|
||
|
book::book-[hidden]->book::metadata
|
||
|
|
||
|
book::bookitem.BookItems-[hidden]->book::bookitem.BookItem
|
||
|
|
||
|
renderer::html_handlebars::HtmlHandlebars-[hidden]->theme::Theme
|
||
|
|
||
|
@enduml
|