From 6a8c24ebbf0d921c9b85cee67ab1de58d35a689b Mon Sep 17 00:00:00 2001 From: Maccesch Date: Mon, 15 May 2023 01:52:02 +0100 Subject: [PATCH] added book --- docs/book/.gitignore | 1 + docs/book/book.toml | 11 +++++++ docs/book/src/SUMMARY.md | 12 +++++++ docs/book/src/browser/use_event_listener.md | 3 ++ docs/book/src/extract_doc_comment.py | 21 ++++++++++++ docs/book/src/getting_started/functions.md | 3 ++ .../generate_function_overview.py | 33 +++++++++++++++++++ docs/book/src/getting_started/get_started.md | 31 +++++++++++++++++ src/lib.rs | 8 ++--- src/use_event_listener.rs | 3 +- 10 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 docs/book/.gitignore create mode 100644 docs/book/book.toml create mode 100644 docs/book/src/SUMMARY.md create mode 100644 docs/book/src/browser/use_event_listener.md create mode 100644 docs/book/src/extract_doc_comment.py create mode 100644 docs/book/src/getting_started/functions.md create mode 100644 docs/book/src/getting_started/generate_function_overview.py create mode 100644 docs/book/src/getting_started/get_started.md diff --git a/docs/book/.gitignore b/docs/book/.gitignore new file mode 100644 index 0000000..7585238 --- /dev/null +++ b/docs/book/.gitignore @@ -0,0 +1 @@ +book diff --git a/docs/book/book.toml b/docs/book/book.toml new file mode 100644 index 0000000..66f210d --- /dev/null +++ b/docs/book/book.toml @@ -0,0 +1,11 @@ +[book] +authors = ["Marc-Stefan Cassola"] +language = "en" +multilingual = false +src = "src" +title = "Leptos-Use Documentation" + +[output.html] +no-section-label = true + +[preprocessor.cmdrun] \ No newline at end of file diff --git a/docs/book/src/SUMMARY.md b/docs/book/src/SUMMARY.md new file mode 100644 index 0000000..668c3be --- /dev/null +++ b/docs/book/src/SUMMARY.md @@ -0,0 +1,12 @@ +# Summary + +[Introduction]() + +# Getting Started + +- [Get Started](getting_started/get_started.md) +- [Functions](getting_started/functions.md) + +# Browser + +- [useEventListener](browser/use_event_listener.md) diff --git a/docs/book/src/browser/use_event_listener.md b/docs/book/src/browser/use_event_listener.md new file mode 100644 index 0000000..783bca1 --- /dev/null +++ b/docs/book/src/browser/use_event_listener.md @@ -0,0 +1,3 @@ +# use_event_listener + + diff --git a/docs/book/src/extract_doc_comment.py b/docs/book/src/extract_doc_comment.py new file mode 100644 index 0000000..f7a0709 --- /dev/null +++ b/docs/book/src/extract_doc_comment.py @@ -0,0 +1,21 @@ +import sys + + +def main(): + name = sys.argv[1] + file_name = f"../../../../src/{name}.rs" + with open(file_name) as f: + in_code_block = False + for line in f.readlines(): + if line.startswith("///"): + line = line.strip().replace("/// ", "").replace("///", "") + if "```" in line: + if not in_code_block: + line = line.replace("```", "```rust,ignore") + in_code_block = not in_code_block + + print(line) + + +if __name__ == '__main__': + main() diff --git a/docs/book/src/getting_started/functions.md b/docs/book/src/getting_started/functions.md new file mode 100644 index 0000000..b2124ff --- /dev/null +++ b/docs/book/src/getting_started/functions.md @@ -0,0 +1,3 @@ +# Functions + + diff --git a/docs/book/src/getting_started/generate_function_overview.py b/docs/book/src/getting_started/generate_function_overview.py new file mode 100644 index 0000000..ae25cd0 --- /dev/null +++ b/docs/book/src/getting_started/generate_function_overview.py @@ -0,0 +1,33 @@ +import os +import sys + + +def main(): + for entry in sys.argv[1:]: + generate_function_overview_for_category(entry) + + +def generate_function_overview_for_category(category): + print(f"## {category.title()}") + + listdir = os.listdir(os.path.join(os.getcwd(), "..", category)) + listdir.sort() + + for name in listdir: + if name.endswith(".md"): + generate_function_overview(category, name[:-3]) + + +def generate_function_overview(category, name): + file_name = f"../../../../src/{name}.rs" + with open(file_name) as f: + in_code_block = False + for line in f.readlines(): + if line.startswith("///"): + line = line.strip().replace("/// ", "") + print(f"- [{name}](/{category}/{name}.md) – {line}") + return + + +if __name__ == '__main__': + main() diff --git a/docs/book/src/getting_started/get_started.md b/docs/book/src/getting_started/get_started.md new file mode 100644 index 0000000..3ed6d76 --- /dev/null +++ b/docs/book/src/getting_started/get_started.md @@ -0,0 +1,31 @@ +# Get Started + +## Installation + +```shell +cargo add leptos-use +``` + +## Examples + +- [Examples Directory](https://github.com/Synphonyte/leptos-use/tree/master/examples) + +## Usage Example + +Simply import the functions you need from `leptos-use` + +```rust,noplayground +# use leptos::*; +use leptos_use::use_mouse::*; + +#[component] +pub fn Demo(cx: Scope) -> into ImplView { + let UseMouseReturn { x, y, .. } = use_mouse(cx); + + view! { cx, + {x} "x" {y} + } +} +``` + +Please refer to the [functions list](functions.md) for more details. \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index ad91616..8b4d75b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ pub mod core; -mod use_event_listener; -mod use_scroll; +pub mod use_event_listener; +pub mod use_scroll; -pub use use_event_listener::*; -pub use use_scroll::*; +pub use use_event_listener::use_event_listener; +pub use use_scroll::use_scroll; diff --git a/src/use_event_listener.rs b/src/use_event_listener.rs index 196d832..77d1237 100644 --- a/src/use_event_listener.rs +++ b/src/use_event_listener.rs @@ -8,7 +8,8 @@ use std::rc::Rc; use wasm_bindgen::closure::Closure; use wasm_bindgen::JsCast; -/// Use EventListener with ease. Register using [addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) on mounted, +/// Use EventListener with ease. +/// Register using [addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) on mounted, /// and [removeEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener) automatically on cleanup. /// /// ## Usage