Dumi Theme YuntiJS
dumi-theme-yunti is a documentation site theme package designed for `Dumi 2`.
It provides a more beautiful and user-friendly development and reading experience based on [dumi-theme-lobehub](https://github.com/lobehub/dumi-theme-lobehub) and [dumi-theme-antd](https://github.com/KuangPF/dumi-theme-antd).
[![][npm-release-shield]][npm-release-link]
[![][github-releasedate-shield]][github-releasedate-link]
[![][github-action-test-shield]][github-action-test-link]
[![][github-action-release-shield]][github-action-release-link]
[![][github-contributors-shield]][github-contributors-link]
[![][github-forks-shield]][github-forks-link]
[![][github-stars-shield]][github-stars-link]
[![][github-issues-shield]][github-issues-link]
[![][github-license-shield]][github-license-link]
[Changelog](./CHANGELOG.md) · [Report Bug][github-issues-link] · [Request Feature][github-issues-link]
![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
Table of contents
#### TOC
- [✨ Features](#-features)
- [📦 Installation](#-installation)
- [☁️ Usage](#️-usage)
- [⌨️ Local Development](#️-local-development)
- [🤝 Contributing](#-contributing)
- [🔗 Links](#-links)
- [More Products](#more-products)
####
✨ Features
- [x] 🤯 Modern Theme Style: This theme package adopts modern design techniques such as gradient colors, frosted glass, lighting effects, and natural animations to present the interface in a more concise and visually appealing way, making the documents more intuitive, readable, and user-friendly.
- [x] 🌓 One-click Switch between Light and Dark Theme Mode: Based on antd v5, custom algorithms for light and dark themes are provided by default, offering aesthetically pleasing and user-friendly options. Users can choose the theme mode according to their preferences and enjoy a good reading experience in different lighting environments.
- [x] 💅 Based on Ant Design and CSSinJS: This theme package uses antd as the base component library and implements the style solution using CSSinJS, which helps to better control the style details and improve style reusability and maintainability. The underlying antd-style library provides more flexibility, readability, and ease of maintenance in writing styles.
- [x] 🪄 Exquisite Syntax Highlighting: This theme package provides accurate and beautiful syntax highlighting. It utilizes modern syntax highlighting libraries like Shiki and Prism, and offers a rich set of code highlighting schemes to enhance code readability.
- [x] 🧩 Flexible Component Reusability: This theme package provides high flexibility for customizing local themes. It exports premium components from the theme package, which can be reused as independent modules. Developers can freely combine and use these components in the dumi local theme package.
- [x] 📱 Well-Adapted for Mobile Devices: This theme package is well-adapted for mobile devices. With the flexible style solution based on CSSinJS, multiple layout options are easily implemented. Users can enjoy a consistent and smooth experience across different devices.
- [ ] 🧭 SSR Enhancement and Menu Nesting: Refer to antd source code to optimize SSR and menu nesting.
[![][back-to-top]](#readme-top)
📦 Installation
To install dumi-theme-yunti
, run the following command:
$ pnpm add dumi dumi-theme-yunti
[![][back-to-top]](#readme-top)
☁️ Usage
Usage After installation, start the site with dumi
, and the theme will be automatically loaded for use.
interface SiteThemeConfig {
actions?: HeroProps['actions'];
apiHeader?: ApiHeaderConfig | false;
docStyle?: 'block' | 'pure';
features?: FeaturesProps['items'];
footer?: string | false;
footerConfig?: FooterConfig;
giscus?: {
category: string;
categoryId: string;
repo: `${string}/${string}`;
repoId: string;
};
hero?: HeroConfig | Record<string, HeroConfig>;
hideHomeNav?: boolean;
// logo?: string;
// logoType?: LogoProps['type'];
name?: string;
siteToken?: SiteConfigToken;
socialLinks?: {
[key in SocialTypes | 'discord']?: string;
};
title?: string;
/** 默认描述,未设置描述的页面,该值会用于生成 <meta> 标签 */
description?: string;
/** 默认关键词,未设置关键词的页面,该值会用于生成 <meta> 标签 */
keywords?: string[];
/** sidebar group 模式路由 */
sidebarGroupModePath?: true | SidebarGroupModePathItem[];
/** 自定义页面,可以通过配置去掉页面的头部、侧边栏和页脚 */
customPages?: CustomPageConfigItem[];
}
interface CustomPageConfigItem {
/** 页面路径 */
path: string;
/** 页面标题 */
title?: string;
/** 页面描述,该值会用于生成 <meta> 标签 */
description?: string;
/** 页面关键词,该值会用于生成 <meta> 标签 */
keywords?: string[];
/** 是否展示头部 */
header?: boolean;
/** 是否展示侧边栏 */
sider?: boolean;
/** 是否展示页脚 */
footer?: boolean;
}
[!NOTE]\
For detailed configuration, please refer to the 📘 Type file / 📘 Example.
[![][back-to-top]](#readme-top)
⌨️ Local Development
You can use Github Codespaces for online development:
Or clone it for local development:
$ git clone https://github.com/yuntijs/dumi-theme-yunti.git
$ cd dumi-theme-yunti
$ pnpm install
$ pnpm docs:dev
[![][back-to-top]](#readme-top)
🤝 Contributing
Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub Issues to get stuck in to show us what you’re made of.
[![][back-to-top]](#readme-top)
🔗 Links
More Products
- ☁️ Yunti - A lowcode platform.
- 🍭 Yunti UI - An open-source UI component library for building AIGC web apps.
[![][back-to-top]](#readme-top)
📝 License
Copyright © 2024 YuntiJS.
This project is MIT licensed.