diff --git a/demo/src/app.rs b/demo/src/app.rs index ff7e5c8..eae129d 100644 --- a/demo/src/app.rs +++ b/demo/src/app.rs @@ -39,6 +39,8 @@ fn TheRouter(is_routing: RwSignal) -> impl IntoView { + + diff --git a/demo/src/pages/guide.rs b/demo/src/pages/guide.rs index 89ac8da..c236070 100644 --- a/demo/src/pages/guide.rs +++ b/demo/src/pages/guide.rs @@ -115,5 +115,18 @@ pub(crate) fn gen_guide_menu_data() -> Vec { label: "Server Sider Rendering".into(), }], }, + MenuGroupOption { + label: "Development".into(), + children: vec![ + MenuItemOption { + value: "development/guide".into(), + label: "Guide".into(), + }, + MenuItemOption { + value: "development/components".into(), + label: "Components".into(), + }, + ], + }, ] } diff --git a/demo_markdown/docs/_guide/development/components.md b/demo_markdown/docs/_guide/development/components.md new file mode 100644 index 0000000..4dc07e3 --- /dev/null +++ b/demo_markdown/docs/_guide/development/components.md @@ -0,0 +1,32 @@ +# Internal component + +There are some internal components that let developers know how to use them. + +## Binder / Follwer + +```rust +use crate::components::{Binder, Follower, FollowerPlacement}; +use leptos::*; + +// Used to internally track the location of this DOM +let div_ref= NodeRef::new(); +// Used to turn on and off the position to listen to the DOM when the show changes +let show = RwSignal::new(false); + +// placement: The position relative to the DOM when the popup opens + +view! { + +
+ "content" +
+ + { + move || { + show.get().then_some("popover") + } + } + +
+} +``` diff --git a/demo_markdown/docs/_guide/development/guide.md b/demo_markdown/docs/_guide/development/guide.md new file mode 100644 index 0000000..7eb66e7 --- /dev/null +++ b/demo_markdown/docs/_guide/development/guide.md @@ -0,0 +1,16 @@ +# Development guide + +### Code style + +It is recommended to use the Rust style instead of the functional stule in the newly added reactive code. + +```rust +RwSignal::new(12) // ✅ +create_rw_signal(12) // 🙅 + +Memo::new(|_| {}) // ✅ +create_memo(|_| {}) // 🙅 + +Effect::new(|_| {}) // ✅ +create_effect(|_| {}) // 🙅 +``` \ No newline at end of file diff --git a/demo_markdown/src/lib.rs b/demo_markdown/src/lib.rs index 83f3f8b..f4076af 100644 --- a/demo_markdown/src/lib.rs +++ b/demo_markdown/src/lib.rs @@ -8,6 +8,14 @@ use syn::ItemFn; #[proc_macro] pub fn include_md(_token_stream: proc_macro::TokenStream) -> proc_macro::TokenStream { let file_list = vec![ + ( + "DevelopmentComponentsMdPage", + include_str!("../docs/_guide/development/components.md"), + ), + ( + "DevelopmentGuideMdPage", + include_str!("../docs/_guide/development/guide.md"), + ), ( "InstallationMdPage", include_str!("../docs/_guide/installation.md"),