From f5e898b6c2e55a6969ce76b8a686288282b5f604 Mon Sep 17 00:00:00 2001 From: EINDEX Date: Tue, 17 Sep 2024 00:28:11 +0800 Subject: [PATCH] docs: update document website --- README.md | 2 + docs/docusaurus.config.js | 135 +++++++++++------- docs/src/components/UserComments/index.js | 106 +++++++------- .../components/UserComments/styles.module.css | 1 - docs/src/css/custom.css | 2 +- docs/src/pages/index.js | 24 ++-- docs/src/pages/index.module.css | 17 +++ docs/src/pages/markdown-page.md | 7 - docs/static/img/docusaurus.png | Bin 5142 -> 0 bytes 9 files changed, 168 insertions(+), 126 deletions(-) delete mode 100644 docs/src/pages/markdown-page.md delete mode 100644 docs/static/img/docusaurus.png diff --git a/README.md b/README.md index b50171b..0334c9d 100755 --- a/README.md +++ b/README.md @@ -29,6 +29,8 @@ Logseq Copilot is a Chrome extension that allows you to access your Logseq using ## Features - 🔍 Show Logseq content when you search on popular search engines via your keywords. Now support Google, Bing, Ecosia, Baidu, Yandex, DuckDuckGo, SearX. +- Support Logseq DB version. +- Recall your note on every page. ## Support

diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index a3505a6..4f42de3 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -4,49 +4,49 @@ // There are various equivalent ways to declare your Docusaurus config. // See: https://docusaurus.io/docs/api/docusaurus-config -import { themes as prismThemes } from "prism-react-renderer"; +import { themes as prismThemes } from 'prism-react-renderer'; /** @type {import('@docusaurus/types').Config} */ const config = { - title: "Logseq Copilot", - tagline: "Connect browser with Logseq", - favicon: "img/favicon.png", + title: 'Logseq Copilot', + tagline: 'Connect Browser and Logseq', + favicon: 'img/favicon.png', // Set the production url of your site here - url: "https://logseq-copilot.eindex.me", + url: 'https://logseq-copilot.eindex.me', // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: "/", + baseUrl: '/', // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. - organizationName: "eindex", // Usually your GitHub org/user name. - projectName: "logseq-copliot", // Usually your repo name. + organizationName: 'eindex', // Usually your GitHub org/user name. + projectName: 'logseq-copliot', // Usually your repo name. - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'warn', // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you // may want to replace "en" with "zh-Hans". i18n: { - defaultLocale: "en", - locales: ["en"], + defaultLocale: 'en', + locales: ['en'], }, presets: [ [ - "classic", + 'classic', /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { - sidebarPath: "./sidebars.js", + sidebarPath: './sidebars.js', // Please change this to your repo. // Remove this to remove the "edit this page" links. - editUrl: "https://github.com/eindex/logseq-copilot", + editUrl: 'https://github.com/eindex/logseq-copilot', }, theme: { - customCss: "./src/css/custom.css", + customCss: './src/css/custom.css', }, }), ], @@ -56,80 +56,80 @@ const config = { /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ // Replace with your project's social card - image: "img/docusaurus-social-card.jpg", + // image: "img/docusaurus-social-card.jpg", navbar: { - title: "Logseq Copilot", + title: 'Logseq Copilot', logo: { - alt: "Logseq Copilot", - src: "img/favicon.png", + alt: 'Logseq Copilot', + src: 'img/favicon.png', }, items: [ { - type: "docSidebar", - sidebarId: "tutorialSidebar", - position: "left", - label: "Documents", + type: 'docSidebar', + sidebarId: 'tutorialSidebar', + position: 'left', + label: 'Documents', }, - { to: "/docs/changelogs", label: "Changelogs", position: "left" }, + { to: '/docs/changelogs', label: 'Changelogs', position: 'left' }, { - href: "https://github.com/eindex/logseq-copilot", - label: "GitHub", - position: "right", + href: 'https://github.com/eindex/logseq-copilot', + label: 'GitHub', + position: 'right', }, { - to: "/docs/sponsor", - label: "❤️ Sponsor", - position: "right", + to: '/docs/sponsor', + label: '❤️ Sponsor', + position: 'right', }, ], }, footer: { - style: "dark", + style: 'dark', links: [ { - title: "Docs", + title: 'Docs', items: [ { - label: "Introduce", - to: "/docs/intro", + label: 'Introduce', + to: '/docs/intro', }, { - label: "Setup", - to: "/docs/setup", + label: 'Setup', + to: '/docs/setup', }, { - label: "Changelogs", - to: "/docs/changelogs", + label: 'Changelogs', + to: '/docs/changelogs', }, ], }, { - title: "Community", + title: 'Community', items: [ { - label: "Github Discussions", - href: "https://github.com/EINDEX/logseq-copilot/discussions", + label: 'Github Discussions', + href: 'https://github.com/EINDEX/logseq-copilot/discussions', }, { - label: "Twitter", - href: "https://x.com/eindex", + label: 'Twitter', + href: 'https://x.com/eindex', }, ], }, { - title: "More", + title: 'More', items: [ { - label: "GitHub", - href: "https://github.com/eindex/logseq-copilot", + label: 'GitHub', + href: 'https://github.com/eindex/logseq-copilot', }, { - label: "Sponsor", - to: "/docs/sponsor", + label: 'Sponsor', + to: '/docs/sponsor', }, { - label: "Author", - href: "https://eindex.me", + label: 'Author', + href: 'https://eindex.me', }, ], }, @@ -141,6 +141,39 @@ const config = { darkTheme: prismThemes.dracula, }, }), + headTags: [ + { + tagName: 'link', + attributes: { + rel: 'preconnect', + href: 'https://fonts.googleapis.com', + }, + }, + { + tagName: 'link', + attributes: { + rel: 'preconnect', + href: 'https://fonts.gstatic.com', + crossorigin: 'true', + }, + }, + { + tagName: 'link', + attributes: { + rel: 'stylesheet', + href: 'https://fonts.googleapis.com/css2?family=Bitter:ital,wght@0,100..900;1,100..900&display=swap', + }, + }, + { + tagName: 'script', + attributes: { + 'data-website-id': '6728c810-c8a8-43ae-b072-4788d1ec7cc9', + src: 'https://umami.eindex.me/script.js', + defer: 'true', + async: 'true', + }, + }, + ], }; export default config; diff --git a/docs/src/components/UserComments/index.js b/docs/src/components/UserComments/index.js index 1135b3f..8fdde56 100644 --- a/docs/src/components/UserComments/index.js +++ b/docs/src/components/UserComments/index.js @@ -1,29 +1,29 @@ -import styles from "./styles.module.css"; +import styles from './styles.module.css'; const Comments = [ { - source: "chrome-web-store", - lang: "en", + source: 'chrome-web-store', + lang: 'en', score: 5, - date: "2024-03-26", - name: "Jordan G", + date: '2024-03-26', + name: 'Jordan G', review: - "Amazing extension, looking forward to using it more and it being open-sourced is even better", + 'Amazing extension, looking forward to using it more and it being open-sourced is even better', avatar: - "https://lh3.googleusercontent.com/a-/ALV-UjUJ7omSYEBpKwrWhZBSoalAZ3ourO_eI3Yr5_aTKHaEblRcmBrm=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a-/ALV-UjUJ7omSYEBpKwrWhZBSoalAZ3ourO_eI3Yr5_aTKHaEblRcmBrm=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, { - source: "chrome-web-store", - lang: "en", + source: 'chrome-web-store', + lang: 'en', score: 5, - date: "2024-03-24", - name: "Vitaliy Gordeev", + date: '2024-03-24', + name: 'Vitaliy Gordeev', review: - "Possibly one of the most useful extensions. Easy to use. Open source.", + 'Possibly one of the most useful extensions. Easy to use. Open source.', avatar: - "https://lh3.googleusercontent.com/a/ACg8ocLRJJgapC95QcH8baiyJbTX2oAFhhPh9fXIZ2gTespT1T-fuA=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a/ACg8ocLRJJgapC95QcH8baiyJbTX2oAFhhPh9fXIZ2gTespT1T-fuA=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, // { // source: "chrome-web-store", @@ -37,75 +37,75 @@ const Comments = [ // url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", // }, { - source: "chrome-web-store", - lang: "fr", + source: 'chrome-web-store', + lang: 'fr', score: 4, - date: "2024-01-25", - name: "Thierry Portmann", + date: '2024-01-25', + name: 'Thierry Portmann', review: "Presque excellent ! Manque juste la possibilité d'ajouter une note (prévue)", avatar: - "https://lh3.googleusercontent.com/a-/ALV-UjV2hVyn_dKomnfTfX52m4r0LQ9rmxGbLUCLlFcN-GZgppWd6sSI=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a-/ALV-UjV2hVyn_dKomnfTfX52m4r0LQ9rmxGbLUCLlFcN-GZgppWd6sSI=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, { - source: "chrome-web-store", - lang: "zh", + source: 'chrome-web-store', + lang: 'zh', score: 5, - date: "2023-05-02", - name: "Da Tou", - review: "确实是五星插件了!比印象笔记的google检索还好用!", + date: '2023-05-02', + name: 'Da Tou', + review: '确实是五星插件了!比印象笔记的google检索还好用!', avatar: - "https://lh3.googleusercontent.com/a-/ALV-UjWIJticHrAsHO7Z7-RZGCCncBecpf0uYPrZspBQr1dxOA=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a-/ALV-UjWIJticHrAsHO7Z7-RZGCCncBecpf0uYPrZspBQr1dxOA=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, { - source: "chrome-web-store", - lang: "zh", + source: 'chrome-web-store', + lang: 'zh', score: 5, - date: "2023-04-15", - name: "Joshua C", - review: "太好用了!本地笔记和搜索引擎无缝连接!", + date: '2023-04-15', + name: 'Joshua C', + review: '太好用了!本地笔记和搜索引擎无缝连接!', avatar: - "https://lh3.googleusercontent.com/a/ACg8ocL7xMHaEWwjYUeU_4gL55i1dOm-YN6sCo-iQ50wxjgR=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a/ACg8ocL7xMHaEWwjYUeU_4gL55i1dOm-YN6sCo-iQ50wxjgR=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, { - source: "chrome-web-store", - lang: "en", + source: 'chrome-web-store', + lang: 'en', score: 5, - date: "2023-03-10", - name: "Alexander Ivanov", + date: '2023-03-10', + name: 'Alexander Ivanov', review: - "Possibly the most beautiful application I have ever put on my browser. I feel like my thought is further than me, it has become part of the web.", + 'Possibly the most beautiful application I have ever put on my browser. I feel like my thought is further than me, it has become part of the web.', avatar: - "https://lh3.googleusercontent.com/a-/ALV-UjWYFzH_8Q3vAyEpyI9W6tt5KminF4NIGoRGnM39_wV1GlAD=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a-/ALV-UjWYFzH_8Q3vAyEpyI9W6tt5KminF4NIGoRGnM39_wV1GlAD=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, { - source: "chrome-web-store", - lang: "en", + source: 'chrome-web-store', + lang: 'en', score: 5, - date: "2023-02-18", - name: "Yurii Piskun", + date: '2023-02-18', + name: 'Yurii Piskun', review: 'AWESOME!!!!!!! Now "Promnesia" & "fireSeqSearch" can be deleted )))', avatar: - "https://lh3.googleusercontent.com/a-/ALV-UjXqKew0X4I9A6YFBPkMdHNDdCoww-PcTKMrUuE5LtUaOI3q=s96-w96-h96", - url: "https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl", + 'https://lh3.googleusercontent.com/a-/ALV-UjXqKew0X4I9A6YFBPkMdHNDdCoww-PcTKMrUuE5LtUaOI3q=s96-w96-h96', + url: 'https://chromewebstore.google.com/detail/logseq-copilot/hihgfcgbmnbomabfdbajlbpnacndeihl', }, ]; function UserComment({ source, score, name, review, avatar, url }) { return (

- {review} + {review}
- + {name+"'s {name} - {"⭐".repeat(score)} + {'⭐'.repeat(score)}
); @@ -115,9 +115,7 @@ export default function UserComments() { return (
{Comments.map((props, idx) => ( - <> - - + ))}
); diff --git a/docs/src/components/UserComments/styles.module.css b/docs/src/components/UserComments/styles.module.css index 0b2aa44..f3a1bf7 100644 --- a/docs/src/components/UserComments/styles.module.css +++ b/docs/src/components/UserComments/styles.module.css @@ -21,7 +21,6 @@ padding-top: 1rem; background-color: var(--ifm-color-secondary); color: var(--ifm-color-gray-900); - height: 11rem; } .review { diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 2bc6a4c..272993b 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -27,4 +27,4 @@ --ifm-color-primary-lighter: #32d8b4; --ifm-color-primary-lightest: #4fddbf; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} +} \ No newline at end of file diff --git a/docs/src/pages/index.js b/docs/src/pages/index.js index 695d2db..70ea5c6 100644 --- a/docs/src/pages/index.js +++ b/docs/src/pages/index.js @@ -1,22 +1,22 @@ -import clsx from "clsx"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import Layout from "@theme/Layout"; -import HomepageFeatures from "@site/src/components/HomepageFeatures"; -import DownloadLinks from "@site/src/components/DownloadLinks"; +import clsx from 'clsx'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Layout from '@theme/Layout'; +import HomepageFeatures from '@site/src/components/HomepageFeatures'; +import DownloadLinks from '@site/src/components/DownloadLinks'; -import Heading from "@theme/Heading"; -import styles from "./index.module.css"; -import UserComments from "../components/UserComments"; +import Heading from '@theme/Heading'; +import styles from './index.module.css'; +import UserComments from '../components/UserComments'; function HomepageHeader() { const { siteConfig } = useDocusaurusContext(); return ( -
+
- + {siteConfig.title} -

{siteConfig.tagline}

+

Connect Browser and Logseq

@@ -28,7 +28,7 @@ export default function Home() { return (
diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css index 6984d6e..abae445 100644 --- a/docs/src/pages/index.module.css +++ b/docs/src/pages/index.module.css @@ -8,6 +8,7 @@ text-align: center; position: relative; overflow: hidden; + min-height: 32rem; } @media screen and (max-width: 996px) { @@ -16,3 +17,19 @@ } } +.title { + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + font-size: 4rem; +} + +.subTitle { + font-family: 'Bitter', serif; + font-size: 3rem; + font-weight: bolder; + color: var(--ifm-color-secondary-contrast-foreground); +} + +.connect { + color: var(--ifm-color-warning); +} diff --git a/docs/src/pages/markdown-page.md b/docs/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b..0000000 --- a/docs/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/docs/static/img/docusaurus.png b/docs/static/img/docusaurus.png deleted file mode 100644 index f458149e3c8f53335f28fbc162ae67f55575c881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5142 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 F{0H{b<4^zq