Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add development guide #136

Merged
merged 1 commit into from
Mar 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions demo/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ fn TheRouter(is_routing: RwSignal<bool>) -> impl IntoView {
<Route path="/installation" view=InstallationMdPage/>
<Route path="/usage" view=UsageMdPage/>
<Route path="/server-sider-rendering" view=ServerSiderRenderingMdPage/>
<Route path="/development/guide" view=DevelopmentGuideMdPage/>
<Route path="/development/components" view=DevelopmentComponentsMdPage/>
</Route>
<Route path="/components" view=ComponentsPage>
<Route path="/tabbar" view=TabbarPage/>
Expand Down
13 changes: 13 additions & 0 deletions demo/src/pages/guide.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,5 +115,18 @@ pub(crate) fn gen_guide_menu_data() -> Vec<MenuGroupOption> {
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(),
},
],
},
]
}
32 changes: 32 additions & 0 deletions demo_markdown/docs/_guide/development/components.md
Original file line number Diff line number Diff line change
@@ -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! {
<Binder target_ref=div_ref>
<div ref=div_ref>
"content"
</div>
<Follower slot show placement=FollowerPlacement::BottomStart>
{
move || {
show.get().then_some("popover")
}
}
</Follower>
</Binder>
}
```
16 changes: 16 additions & 0 deletions demo_markdown/docs/_guide/development/guide.md
Original file line number Diff line number Diff line change
@@ -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(|_| {}) // 🙅
```
8 changes: 8 additions & 0 deletions demo_markdown/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand Down
Loading