diff --git a/packages/docsite/assets/tailwind.css b/packages/docsite/assets/tailwind.css index a702ad651..44eaafeec 100644 --- a/packages/docsite/assets/tailwind.css +++ b/packages/docsite/assets/tailwind.css @@ -641,6 +641,9 @@ .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); } + .cursor-pointer { + cursor: pointer; + } .resize { resize: both; } @@ -989,9 +992,6 @@ .py-3 { padding-block: calc(var(--spacing) * 3); } - .py-4 { - padding-block: calc(var(--spacing) * 4); - } .py-6 { padding-block: calc(var(--spacing) * 6); } diff --git a/packages/docsite/src/components/learn.rs b/packages/docsite/src/components/learn.rs index fa05e297f..5369fc9f6 100644 --- a/packages/docsite/src/components/learn.rs +++ b/packages/docsite/src/components/learn.rs @@ -252,6 +252,8 @@ fn SidebarChapter(chapter: &'static SummaryItem, nest: usize pub fn RightNav() -> Element { let page = R::use_route(); let short_version = R::short_version(); + let llms_url = format!("{}/llms.txt", page.global_route().to_string().trim_end_matches('/')); + let mut copied = use_signal(|| false); let edit_github_url = use_resource(use_reactive!(|(page,)| async move { let page = page.to_string(); @@ -300,7 +302,49 @@ pub fn RightNav() -> Element { } } } - h2 { class: "py-4 ", + h2 { class: "pt-4 pb-2", + button { + class: "hover:text-sky-500 dark:hover:text-sky-400 flex flex-row items-center gap-x-1 cursor-pointer", + onclick: { + let llms_url = llms_url.clone(); + move |_| { + let llms_url = llms_url.clone(); + let mut copied = copied; + async move { + let js = format!( + r#"const res = await fetch("{}"); + const text = await res.text(); + await navigator.clipboard.writeText(text); + dioxus.send(true);"#, + llms_url + ); + let mut eval = document::eval(&js); + if eval.recv::().await.is_ok() {{ + copied.set(true); + gloo_timers::future::TimeoutFuture::new(2000).await; + copied.set(false); + }} + } + } + }, + if copied() { + "Copied!" + } else { + "Copy as Markdown" + } + icons::Copy {} + } + } + h2 { class: "pb-2", + a { + class: "hover:text-sky-500 dark:hover:text-sky-400 flex flex-row items-center gap-x-1", + href: "{llms_url}", + target: "_blank", + "Raw Markdown" + icons::ExternalLinkIcon2 {} + } + } + h2 { class: "pb-4", if let Some(url) = edit_github_url.cloned() { a { class: "hover:text-sky-500 dark:hover:text-sky-400 flex flex-row items-center gap-x-1",