Add card component for features (#8)

* more card work

* card component done

* fix relative path for stylesheets
This commit is contained in:
Evan Simkowitz
2024-09-23 14:55:19 -07:00
committed by GitHub
parent 6bd1de18f9
commit b1a22a37b2
21 changed files with 210 additions and 511 deletions
+2 -1
View File
@@ -5,6 +5,7 @@
"editor.tabSize": 4,
"editor.insertSpaces": false,
"prettier.useEditorConfig": true,
"mdx.server.enable": true,
"[plaintext]": {
"editor.formatOnSave": false,
"editor.formatOnPaste": false,
@@ -40,7 +41,7 @@
"editor.insertSpaces": true,
"editor.autoIndent": "keep"
},
"[markdown]": {
"[markdown,mdx]": {
"editor.defaultFormatter": "unifiedjs.vscode-remark"
},
"files.associations": {
+1
View File
@@ -0,0 +1 @@
# Preview
+8 -3
View File
@@ -4,7 +4,7 @@ id: "index"
title: "Home"
---
import Card from '@site/src/components/card.tsx';
import {Card, CardGroup} from '@site/src/components/card.tsx';
# Introduction
@@ -19,5 +19,10 @@ References:
* [Telemetry](./telemetry)
## Features
<Card />
<CardGroup>
<Card href="features/preview" icon="fa-file" title="File Previews" description="Preview widgets let you view markdown, images, video, CSVs, and more inline." />
<Card href="features/remotes" icon="fa-server" title="Reliable Remote Connections" description="Automatic reconnection, remote file previews, and more." />
<Card href="features/ai" icon="fa-sparkles" title="Integrated AI" description="Inline AI Chat Windows hooked up to any LLM (local or remote)." />
<Card href="features/browser" icon="fa-globe" title="Inline Web Browser" description="Access online content without switching context." />
<Card href="features/charts" icon="fa-chart-simple" title="Data Visualization" description="Create graphs of system stats or custom data piped directly from CLI programs." />
</CardGroup>
-8
View File
@@ -1,8 +0,0 @@
{
"label": "Tutorial - Basics",
"position": 2,
"link": {
"type": "generated-index",
"description": "5 minutes to learn the most important Docusaurus concepts."
}
}
-23
View File
@@ -1,23 +0,0 @@
---
sidebar_position: 6
---
# Congratulations!
You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
Docusaurus has **much more to offer**!
Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
## What's next?
* Read the [official documentation](https://docusaurus.io/)
* Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
* Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
* Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
* Add a [search bar](https://docusaurus.io/docs/search)
* Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
* Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
@@ -1,34 +0,0 @@
---
sidebar_position: 3
---
# Create a Blog Post
Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
## Create your first Post
Create a file at `blog/2021-02-28-greetings.md`:
```md title="blog/2021-02-28-greetings.md"
---
slug: greetings
title: Greetings!
authors:
- name: Joel Marcey
title: Co-creator of Docusaurus 1
url: https://github.com/JoelMarcey
image_url: https://github.com/JoelMarcey.png
- name: Sébastien Lorber
title: Docusaurus maintainer
url: https://sebastienlorber.com
image_url: https://github.com/slorber.png
tags: [greetings]
---
Congratulations, you have made your first post!
Feel free to play around and edit this post as much as you like.
```
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
-57
View File
@@ -1,57 +0,0 @@
---
sidebar_position: 2
---
# Create a Document
Documents are **groups of pages** connected through:
* a **sidebar**
* **previous/next navigation**
* **versioning**
## Create your first Doc
Create a Markdown file at `docs/hello.md`:
```md title="docs/hello.md"
# Hello
This is my **first Docusaurus document**!
```
A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
## Configure the Sidebar
Docusaurus automatically **creates a sidebar** from the `docs` folder.
Add metadata to customize the sidebar label and position:
```md title="docs/hello.md" {1-4}
---
sidebar_label: 'Hi!'
sidebar_position: 3
---
# Hello
This is my **first Docusaurus document**!
```
It is also possible to create your sidebar explicitly in `sidebars.js`:
```js title="sidebars.js"
export default {
tutorialSidebar: [
'intro',
// highlight-next-line
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
};
```
-43
View File
@@ -1,43 +0,0 @@
---
sidebar_position: 1
---
# Create a Page
Add **Markdown or React** files to `src/pages` to create a **standalone page**:
* `src/pages/index.js``localhost:3000/`
* `src/pages/foo.md``localhost:3000/foo`
* `src/pages/foo/bar.js``localhost:3000/foo/bar`
## Create your first React Page
Create a file at `src/pages/my-react-page.js`:
```jsx title="src/pages/my-react-page.js"
import React from 'react';
import Layout from '@theme/Layout';
export default function MyReactPage() {
return (
<Layout>
<h1>My React page</h1>
<p>This is a React page</p>
</Layout>
);
}
```
A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
## Create your first Markdown Page
Create a file at `src/pages/my-markdown-page.md`:
```mdx title="src/pages/my-markdown-page.md"
# My Markdown page
This is a Markdown page
```
A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
-31
View File
@@ -1,31 +0,0 @@
---
sidebar_position: 5
---
# Deploy your site
Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
It builds your site as simple **static HTML, JavaScript and CSS files**.
## Build your site
Build your site **for production**:
```bash
npm run build
```
The static files are generated in the `build` folder.
## Deploy your site
Test your production build locally:
```bash
npm run serve
```
The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
-152
View File
@@ -1,152 +0,0 @@
---
sidebar_position: 4
---
# Markdown Features
Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
## Front Matter
Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
```text title="my-doc.md"
// highlight-start
---
id: my-doc-id
title: My document title
description: My document description
slug: /my-custom-url
---
// highlight-end
## Markdown heading
Markdown text with [links](./hello.md)
```
## Links
Regular Markdown links are supported, using url paths or relative file paths.
```md
Let's see how to [Create a page](/create-a-page).
```
```md
Let's see how to [Create a page](./create-a-page.md).
```
**Result:** Let's see how to [Create a page](./create-a-page.md).
## Images
Regular Markdown images are supported.
You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
```md
![Docusaurus logo](/img/docusaurus.png)
```
![Docusaurus logo](/img/docusaurus.png)
You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:
```md
![Docusaurus logo](./img/docusaurus.png)
```
## Code Blocks
Markdown code blocks are supported with Syntax highlighting.
````md
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
````
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
## Admonitions
Docusaurus has a special syntax to create admonitions and callouts:
```md
:::tip My tip
Use this awesome feature option
:::
:::danger Take care
This action is dangerous
:::
```
:::tip My tip
Use this awesome feature option
:::
:::danger Take care
This action is dangerous
:::
## MDX and React Components
[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**:
```jsx
export const Highlight = ({children, color}) => (
<span
style={{
backgroundColor: color,
borderRadius: '20px',
color: '#fff',
padding: '10px',
cursor: 'pointer',
}}
onClick={() => {
alert(`You clicked the color ${color} with label ${children}`)
}}>
{children}
</span>
);
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
```
export const Highlight = ({children, color}) => (
<span
style={{
backgroundColor: color,
borderRadius: '20px',
color: '#fff',
padding: '10px',
cursor: 'pointer',
}}
onClick={() => {
alert(`You clicked the color ${color} with label ${children}`);
}}>
{children}
</span>
);
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
-7
View File
@@ -1,7 +0,0 @@
{
"label": "Tutorial - Extras",
"position": 3,
"link": {
"type": "generated-index"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

@@ -1,55 +0,0 @@
---
sidebar_position: 1
---
# Manage Docs Versions
Docusaurus can manage multiple versions of your docs.
## Create a docs version
Release a version 1.0 of your project:
```bash
npm run docusaurus docs:version 1.0
```
The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created.
Your docs now have 2 versions:
* `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs
* `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs**
## Add a Version Dropdown
To navigate seamlessly across versions, add a version dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
export default {
themeConfig: {
navbar: {
items: [
// highlight-start
{
type: 'docsVersionDropdown',
},
// highlight-end
],
},
},
};
```
The docs version dropdown appears in your navbar:
![Docs Version Dropdown](./img/docsVersionDropdown.png)
## Update an existing version
It is possible to edit versioned docs in their respective folder:
* `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello`
* `docs/hello.md` updates `http://localhost:3000/docs/next/hello`
@@ -1,88 +0,0 @@
---
sidebar_position: 2
---
# Translate your site
Let's translate `docs/intro.md` to French.
## Configure i18n
Modify `docusaurus.config.js` to add support for the `fr` locale:
```js title="docusaurus.config.js"
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
},
};
```
## Translate a doc
Copy the `docs/intro.md` file to the `i18n/fr` folder:
```bash
mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/
cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
```
Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French.
## Start your localized site
Start your site on the French locale:
```bash
npm run start -- --locale fr
```
Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated.
:::caution
In development, you can only use one locale at a time.
:::
## Add a Locale Dropdown
To navigate seamlessly across languages, add a locale dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
export default {
themeConfig: {
navbar: {
items: [
// highlight-start
{
type: 'localeDropdown',
},
// highlight-end
],
},
},
};
```
The locale dropdown now appears in your navbar:
![Locale Dropdown](./img/localeDropdown.png)
## Build your localized site
Build your site for a specific locale:
```bash
npm run build -- --locale fr
```
Or build your site to include all the locales at once:
```bash
npm run build
```
+3 -3
View File
@@ -6,7 +6,7 @@ const config: Config = {
favicon: "img/logo/wave-logo_appicon.svg",
// Set the production url of your site here
url: "https://beta.docs.waveterm.dev/",
url: "https://betadocs.waveterm.dev/",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",
@@ -55,7 +55,7 @@ const config: Config = {
logo: {
src: "img/logo/wave-light.png",
srcDark: "img/logo/wave-dark.png",
href: "https://waveterm.dev/",
href: "https://www.waveterm.dev/",
},
hideOnScroll: true,
items: [
@@ -77,7 +77,7 @@ const config: Config = {
copyright: `Copyright © ${new Date().getFullYear()} Command Line Inc. Built with Docusaurus.`,
},
},
stylesheets: ["fontawesome/css/fontawesome.min.css", "fontawesome/css/sharp-regular.min.css"],
stylesheets: ["/fontawesome/css/fontawesome.min.css", "/fontawesome/css/sharp-regular.min.css"],
staticDirectories: ["static"],
};
+2 -1
View File
@@ -21,7 +21,7 @@
"@docusaurus/plugin-sitemap": "^3.5.2",
"@docusaurus/theme-classic": "^3.5.2",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"clsx": "^2.1.1",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0",
@@ -33,6 +33,7 @@
"@docusaurus/tsconfig": "3.5.2",
"@docusaurus/types": "3.5.2",
"@eslint/js": "^9.11.0",
"@mdx-js/typescript-plugin": "^0.0.6",
"@types/eslint": "^9.6.1",
"@types/eslint-config-prettier": "^6.11.3",
"eslint": "^9.11.0",
+35
View File
@@ -0,0 +1,35 @@
.card {
display: flex;
flex-direction: column;
flex: 0 1 14rem;
gap: 10px;
padding: 10px 10px;
min-height: 14rem;
max-height: 14rem;
overflow: hidden;
.icon {
font-size: 1.5em;
}
.description {
color: var(--ifm-font-color-base);
}
border: 2px solid var(--ifm-color-primary-lightest);
transition: transform 0.1s ease;
transform-origin: 0% 0;
}
.card:hover {
text-decoration: none;
transform: translateZ(0) scale(1.024);
-webkit-transform: translateZ(0) scale(1.024);
}
.card-group {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 10px;
}
+16 -2
View File
@@ -1,9 +1,23 @@
import clsx from "clsx";
import "./card.css";
interface CardProps {
icon: string;
title: string;
description: string;
href: string;
}
export default function Card({ icon, title, description }: CardProps) {
return <div className="card"></div>;
export function Card({ icon, title, description, href }: CardProps) {
return (
<a className="card" href={href}>
<div className={clsx("icon", "fa-sharp fa-regular", icon)} />
<h2 className="title">{title}</h2>
<p className="description">{description}</p>
</a>
);
}
export function CardGroup({ children }) {
return <div className="card-group">{children}</div>;
}
+10 -1
View File
@@ -2,6 +2,15 @@
// This file is not used in compilation. It is here just for a nice editor experience.
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
"baseUrl": "."
"baseUrl": ".",
"plugins": [
{
"name": "@mdx-js/typescript-plugin"
}
]
},
"mdx": {
// Enable strict type checking in MDX files.
"checkMdx": true
}
}

Some files were not shown because too many files have changed in this diff Show More