Skip to content

Commit

Permalink
chore: merge feature into master (#2080)
Browse files Browse the repository at this point in the history
* refactor: extract inline plugin templates as independent files (#1874)

* refactor: mv to tmpl

* refactor: more info

* refactor: to template

* docs: add customize page

* refactor: to contant

* chore: revert config

* chore: rm tmpl

* chore: dir path

* chore: clean up

* feat: split markdown meta loader (#1875)

* feat: split mdLoader type

* feat: split mdLoader

* chore: code optimize

* fix: use winPath

* chore: update getter

* refactor: extract runtime tpl (#1883)

* refactor: load text data from self in markdown loader (#1881)

* refactor: provider `useDemoData` which is given by `getDemoById` (#1876)

* chore: all pass to lazy

* chore: match route

* chore: meta demos

* chore: support getDemoById

* chore: split code

* chore: back of it

* chore: getDemoById

* chore: support demo sus

* chore: all demos

* chore: demo extract

* chore: clean up

* chore: clean up

* chore: rm fallback

* refactor: remove full demos from context (#1885)

* chore: rm demos

* chore: update lock file

* chore: rm texts (#1886)

* refactor: useRouteMeta & useTabMeta with getRouteMetaById (#1888)

* refactor: useRouteMeta & useTabMeta

* fix: route meta

* refactor: fix sidebar

* chore: code clean

* refactor: useRouteMeta fully use getRouteMetaById (#1889)

* fix: useRouteMeta fully use getRouteMetaById

* refactor: runtime get frontmatter directly

* refactor: use sync frontmatter

* refactor: better frontmatter code (#1892)

* refactor: better frontmatter code

* fix: render loop

* refactor: clean up meta (#1894)

* refactor: clean up meta

* chore: clean up

* feat: Make searchable again (#1898)

* chore: search data

* chore: fill content

* chore: fix loading

* chore: support loading state

* feat: merge chunk & optimize meta loading (#1906)

* feat: use new loader for search

* feat: search support tsx

* feat: split meta chunk

* feat: load meta on hover

* chore: code clena

* perf: loadSearchData on focus & show loading only once (#1915)

* fix: demo should export html file (#1931)

* fix: demo should export html file

* chore: code clean

* feat: support live demo (#1905)

* feat: support live code

* feat: split live plugin

* feat: enabled by live config

* feat: add error catcher

* docs: add docs

* docs: add docs

* feat: update single file logic

* docs: rm docs

* feat: put Live Components into theme-default slots

* feat: update regexp & fix enable logic

* feat: make LiveEditor derivate Editor

* feat: enhance live regexp (#1946)

* refactor: optimize async route meta solution (#1974)

* refactor: optimize async route meta solution

* refactor: simplify markdown loader rules

* refactor: correct async tab meta load logic

* refactor: page suspense add fallback

* feat: add default loading skeleton (#1512)

* feat: add global loading logic

# This is the 1st commit message:

feat: add global loading logic

# This is the commit message #2:

chore: update

# This is the commit message #3:

feat: add Loading Skeleton

# This is the commit message #4:

feat: update

# This is the commit message #5:

chore: update Loading

# This is the commit message #6:

chore: update pnpm-lock.yaml

# This is the commit message #7:

chore: fix lock file

# This is the commit message #8:

Revert "chore: fix lock file"

This reverts commit 73dee02.

# This is the commit message #9:

Revert "chore: update pnpm-lock.yaml"

This reverts commit 3f6f579.

# This is the commit message #10:

chore: fix lock file

# This is the commit message #11:

chore: update logic

# This is the commit message #12:

chore(deps): bump umi@4.0.54

# This is the commit message #13:

Revert "chore(deps): bump umi@4.0.54"

This reverts commit 011ecf9.

# This is the commit message #14:

fix: fix path error on windows platform

# This is the commit message #15:

chore(deps): bump umi@4.0.54

# This is the commit message #16:

chore: revert @umi/lint 4.0.54 => 4.0.53

Because there is breaking change

# This is the commit message #17:

chore(deps): upgrade umi@4.0.55

# This is the commit message #18:

chore: update type

# This is the commit message #19:

chore: update Loading

# This is the commit message #20:

refactor: site template ignore dist dir (#1518)

add /dist > .gitignore
# This is the commit message #21:

refactor: improve content padding when disable footer (#1517)

* chore(theme): improve the default theme style

* chore: update Content style

* chore: update
# This is the commit message #22:

refactor: make chunk name clean for theme routes (#1513)

fix: special links not working bug in markdown (#1524)

* fix: absolute links and schema links lost bug in markdown

* refactor: update relative link condition

* refactor: update relative link condition for data url

* Update src/loaders/markdown/transformer/rehypeLink.ts

* Update src/loaders/markdown/transformer/rehypeLink.ts

* refactor: new way to handle special links

fix: workaround for helmet lost in ssr since umi@4.0.54 (#1525)

* fix: helmet lost in ssr since umi@4.0.53

* refactor: patch helmet for version range

* style: update

fix: react types is missing in react template (#1526)

build: release 2.1.15

Revert "Merge branch 'master' into wuxh/feat-1463"

This reverts commit 6b344d9, reversing
changes made to bfef009.

* chore: update

* chore: update lock file

* docs: update dingtalk qrcode

* fix: conventional 2-level nav lost in localized routes (#1951)

* chore: bump @babel/traverse from 7.22.8 to 7.23.2 (#1947)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.8 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build: release 2.2.14

* docs: correct spelling of code sandbox

* fix: unexpected transformation of colon symbol (#1962)

Co-authored-by: liangjun.chen <liangjun.chen@yunqutech.com>

* chore: bump browserify-sign from 4.2.1 to 4.2.2 (#1954)

Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2.
- [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md)
- [Commits](browserify/browserify-sign@v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: browserify-sign
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: color select disappeared unexpectedly on simulator (#1976)

* fix: wrong search scroll position of 1-level heading in current page (#1978)

* fix: fixed the hash was cleared and did not scroll to the corresponding position

* feat: 调整搜索逻辑,如果目标链接是本页 & !hash,则滚动到顶部

* fix: api table does not respect ignore flag (#1981)

* build: release 2.2.15

* fix: handle unexpected oneof and allof for api metadata (#1982)

* refactor: cache dir config can control compile fs cache location (#1984)

* refactor: use async way to parse theme modules (#1983)

* build: release 2.2.16

* chore: revert change

* Revert "chore: revert change"

This reverts commit 6eeac57.

* chore: remove

* feat: add loadcomp logic

* chore: making the simple complicated is commonplace

* Revert "Revert "chore: revert change""

This reverts commit fee192f.

* chore: ?

* chore: clean code

* chore: update lock file

* chore: update

* chore: update style

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: PeachScript <scdzwyxst@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Optimistic-Chen <64662582+DBSDs@users.noreply.github.com>
Co-authored-by: liangjun.chen <liangjun.chen@yunqutech.com>
Co-authored-by: binyellow <571704908@qq.com>
Co-authored-by: 阿平 <xierenyuan@qq.com>

* refactor: optimize live demo feature in v2.3 (#1992)

* refactor: clean up compile-time logic

* feat: emit demo context in loader

* refactor: clean up runtime api and slots

* feat: add SourceCodeEditor slot

* feat: add useLiveDemo api

* refactor: rewrite live demo feature with useLiveDemo

* feat: live demo support iframe mode

* refactor: constants for browser runtime

* fix: multi-instance problem and styles of live demo feature (#2001)

* refactor: improve naming of useLiveDemo api

* refactor: restore live config temporarily

* fix: live demo error styles for compact demo

* fix: wrong npm dependency meta in runtime

* fix: multiple instance problem from demo context

* refactor: avoid breaking change for useRouteMeta api (#2002)

* refactor: avoid empty tabs from useRouteMeta

* refactor: version check include prerelease

* feat: live demo support custom tech stack (#2012)

* feat: live demo support custom tech stack

* feat: add live loading status for demo previewer

* feat: useLiveDemo support iframe demo (#2013)

* feat: useLiveDemo support iframe demo

* refactor: exclude demo entry file from context

* perf: skip outdated tasks for useLiveDemo

* fix: unexpected suspense from useRouteMeta (#2019)

* fix: unexpected suspense from useRouteMeta

* refactor: remove use from useRouteMeta

* feat: tech stack supports declare runtime plugin (#2020)

* fix: overflow for source code editor (#2014)

* fix: source code should wrap

* fix: code scroll

* chore: optimize

* chore: code opt

* chore: code clean

* fix: code editor scroll bar should be draggable (#2023)

* feat: support vue tech stack (#1922)

* feat: add vue tech stack support

* docs: techstack related

how to use vue and how to add techstack support plugin

* feat: add external api parser support

1. Add interfaces to allow dumi to integrate with an external api parser
2. Add dumi-vue-meta package, which can extract metadata from vue.
3.  Add  API tables support for dumi-plugin-vue

* docs: api table support related

* feat: add an option for changing tsconfig path

Add the `tsconfigPath` option in `parserOptions` to allow user to customize tsconfig

* refactor: give watcher creation rights to BaseAtomAssetsParser

* docs: Update README.md

* fix: type of function signature parameter needs to be string

* refactor: code structure adjustment

* fix: babel-plugin-iife type error

* chore: use umi prebundled babel dependencies

prebundle `@vue/babel-plugin-jsx`

* feat: add onBlockLoad method for IDumiTechStack

Provide a method for parsing custom files of frontend frameworks.

* refactor: replace `babel-plugin-iife` with` transformDemoCode`

* refactor: consolidate runtime related APIs into `IDumiTechStack`

remove `useTechStackRuntimeApi`

* feat: add createApiParser

* fix: createApiParser

* docs: techstack related

* refactor: add bundle-utils

* fix: support html2sketch

* fix: html comments FrontMatter

* feat: incorporate live demo into the techstack

* fix: iframe mode

* fix: issue introduced by @vue/babel-plugin-jsx

vuejs/babel-plugin-jsx#687

* refactor: new design of techstack runtime options

* fix: live demo loading

* feat: check vue version

* refactor: flatten options of preset-vue

* refactor: remove id

* docs: preset-vue and techstack

* refactor: remove id of IDemoData

* fix: demo error

* fix: shoud pass id to useRenderer

* fix: unexpected return type of useRouteMeta

* refactor: improve vue tech stack support (#2036)

* chore: update eslintignore

* refactor: merge bundler-utils to tech-stack-utils

* refactor: turn useRenderer to internal api

* refactor: clean type definitions

* refactor: export parser apis from tech-stack-utils

* refactor: remove useless demo data from loader

* build: clear build config for dumi-vue-meta

* test: update test case

* test: update case for parser

* fix: unnecessary trailing line break for read-only source code (#2033)

* fix: trim

* fix: 兼容LiveDemo情况

---------

Co-authored-by: Peach <scdzwyxst@gmail.com>

* fix: demo editor style and live re-render for mobile theme (#2025)

* fix: theme-mobile sorce code editor style

* feat: move Tooltip to slots

* refactor: make tooltip as internal component

* chore: clear diff for pnpm-lock.yaml

* fix: mobile live demo

---------

Co-authored-by: PeachScript <scdzwyxst@gmail.com>

* feat: add defineTechStack api (#2042)

* feat: add createTechStack api

* refactor: change to defineTechStack, restore built-in ReactTechStack

* refactor: remain consistent with the original interface

---------

Co-authored-by: Peach <scdzwyxst@gmail.com>

* feat: support code group container (#2059)

* feat: markdown support CodeGroup

feat: 基本实现

chore: update docs

chore: style

chore: update

chore: update demo

chore: update logic

feat: update logic

chore: update docs

chore: remove

chore: update

chore: clean diff

chore: update

feat: update logic

test: update test

Revert "test: update test"

This reverts commit 994414e.

test: add unit test

* chore: fix ts lint

* chore: update code-group style

* chore: update

* test: update unit test

* Update src/loaders/markdown/transformer/remarkContainer.ts

Co-authored-by: Peach <scdzwyxst@gmail.com>

* chore: update logic

* chore: remove ts type

* feat: updata tabs comp

* chore: unified naming

---------

Co-authored-by: Peach <scdzwyxst@gmail.com>

* docs: describe for vue tech stack (#2050)

* docs: vue related

* docs: update defineTechStack

* feat: improve api parser and json schema for vue (#2051)

* feat: add functional component/generic component support

* feat: add more typedoc/jsdoc tags

version control  and release related tags

* fix: expose outside props

* feat: add externalSymbolLinkMap support

* fix: readme

* fix: tests run on windows

* feat: add source reference for interface, type alias, type params

* fix: vue demo

* fix: dynamic git revision

* fix: tests on windows

* refactor: remove version

* feat: use dumi built-in function to generate source links

* fix: multi-instance bug and unhandled error for live demo feature (#2078)

* fix: external resolve and skip server render handle for liveDemo

* fix: 依赖不再使用绝对路径

* fix: delete external

* feat: optimize the error prompts and editing experience of vue demo  (#2065)

* feat: optimize the error prompts and editing experience of vue demo

* refactor: use preflight option

* refactor: optimize userRenderer

* docs: vue supplement explanation (#2079)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: 二货爱吃白萝卜 <smith3816@gmail.com>
Co-authored-by: MadCcc <1075746765@qq.com>
Co-authored-by: 红 <wxh1220@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Optimistic-Chen <64662582+DBSDs@users.noreply.github.com>
Co-authored-by: liangjun.chen <liangjun.chen@yunqutech.com>
Co-authored-by: binyellow <571704908@qq.com>
Co-authored-by: 阿平 <xierenyuan@qq.com>
Co-authored-by: eternal~fire <jeffwcx@icloud.com>
Co-authored-by: Zhou Bill <735051883@qq.com>
Co-authored-by: Jinbao1001 <nodewebli@gmail.com>
  • Loading branch information
12 people committed Apr 26, 2024
1 parent e3ce9b4 commit 6d1d053
Show file tree
Hide file tree
Showing 200 changed files with 52,927 additions and 4,410 deletions.
2 changes: 2 additions & 0 deletions .eslintignore
@@ -1,3 +1,5 @@
/dist
/compiled
/theme-default
/suites/*/compiled
/suites/preset-vue/lib
6 changes: 6 additions & 0 deletions .eslintrc.js
@@ -1,3 +1,9 @@
module.exports = {
extends: require.resolve('@umijs/lint/dist/config/eslint'),
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{ ignoreRestSiblings: true },
],
},
};
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -17,3 +17,4 @@
/target
/compiled/crates
.swc
/server
25 changes: 20 additions & 5 deletions assets-types/typings/atom/index.d.ts
@@ -1,4 +1,8 @@
import type { ObjectPropertySchema, PropertySchema } from './props';
import type {
FunctionArgSchema,
ObjectPropertySchema,
PropertySchema,
} from './props';

/**
* base atom asset
Expand Down Expand Up @@ -41,6 +45,20 @@ export interface AtomComponentAsset extends AtomBaseAsset {
* props definition of component
*/
propsConfig: ObjectPropertySchema;
/**
* slots definition of component
*/
slotsConfig?: ObjectPropertySchema;
/**
* events definition of component
*/
eventsConfig?: ObjectPropertySchema;
/**
* Whether it is methods and properties exposed by component instances,
* or common functional calls, such as Popup.open().
* Such imperative methods and properties should be classified under this configuration
*/
imperativeConfig?: ObjectPropertySchema;

/**
* available parent components of component
Expand Down Expand Up @@ -77,10 +95,7 @@ export interface AtomFunctionAsset extends AtomBaseAsset {
/**
* arguments of function
*/
arguments: {
key: string;
schema: PropertySchema;
}[];
arguments: FunctionArgSchema[];

/**
* return value of function
Expand Down
53 changes: 52 additions & 1 deletion assets-types/typings/atom/props/index.d.ts
@@ -1,6 +1,25 @@
import type { BuiltinTags } from './jsdoc';
import type { TypeMap } from './types';

export interface PropertySourceReference {
/**
* fileName of the source file
*/
fileName: string;
/**
* The one based number of the line that emitted the declaration
*/
line: number;
/**
* The index of the character that emitted the declaration
*/
character: number;
/**
* URL for displaying source file, usually the git repo file URL
*/
url?: string;
}

/**
* base props definition
*/
Expand All @@ -25,6 +44,10 @@ export interface BasePropertySchema<T extends keyof TypeMap = keyof TypeMap> {
* value type of prop
*/
type?: T;
/**
* the full name of the type
*/
className?: string;
/**
* const value of prop
*/
Expand All @@ -50,6 +73,10 @@ export interface BasePropertySchema<T extends keyof TypeMap = keyof TypeMap> {
* extra jsdoc tags
*/
tags?: BuiltinTags & Record<string, any>;
/**
* source of prop
*/
source?: PropertySourceReference[];
}

/**
Expand Down Expand Up @@ -115,13 +142,37 @@ export interface ObjectPropertySchema extends BasePropertySchema {
required?: string[];
}

export interface ReferencePropertySchema extends BasePropertySchema {
type: 'reference';
name: string;
typeParameters?: PropertySchema[];
externalUrl: string;
}

export interface FunctionArgSchema {
key: string;
schema: PropertySchema;
hasQuestionToken?: boolean;
}

export interface FunctionPropertySchema extends BasePropertySchema {
type: 'function';
signature: {
isAsync: boolean;
returnType: PropertySchema;
arguments: FunctionArgSchema[];
};
}

/**
* prop definition
*/
export type PropertySchema =
| BasePropertySchema
| ObjectPropertySchema
| ArrayPropertySchema
| FunctionPropertySchema
| StringPropertySchema
| NumberPropertySchema
| BooleanPropertySchema;
| BooleanPropertySchema
| ReferencePropertySchema;
4 changes: 4 additions & 0 deletions assets-types/typings/example.d.ts
Expand Up @@ -64,6 +64,10 @@ export interface ExampleBlockAsset extends ExampleBaseAsset {
value: string;
}
>;
/**
* Entry file name, you can find the relevant entry file content from `dependencies`
*/
entry?: string;
}

/**
Expand Down
2 changes: 2 additions & 0 deletions docs/config/index.md
Expand Up @@ -98,6 +98,8 @@ export default () => '我会被编译,展示为组件';

`resolveFilter` 配置项用于跳过指定原子资产的解析以提升性能。部分组件属性或函数签名存在多层嵌套,甚至是循环引用时,会导致解析结果巨大,此时可以通过该配置项跳过解析。

上述配置是默认 React 解析器的配置, dumi 也提供方法覆盖原有解析器,具体可查看[API Table 支持](../plugin/techstack.md#api-table-支持)

### autoAlias

- 类型:`boolean`
Expand Down
63 changes: 63 additions & 0 deletions docs/guide/markdown.md
Expand Up @@ -237,3 +237,66 @@ features:
</li>
</ul>
</Tree>

## CodeGroup <Badge>2.3.0+</Badge>

需要将多代码块合并成一个分组进行展示时,可以使用 CodeGroup 语法,例如:

```jsx
/**
* inline: true
*/
import SourceCode from 'dumi/theme/builtins/SourceCode';
const content = `
:::code-group
\`\`\`bash [npm]
npm install -D dumi
\`\`\`
\`\`\`bash [yarn]
yarn add -D dumi
\`\`\`
\`\`\`bash [pnpm]
pnpm add -D dumi
\`\`\`
\`\`\`ts [.dumirc.ts] {3}
import { defineConfig } from 'dumi';
export default defineConfig({
// ...
});
\`\`\`
:::
`.trim();

export default () => <SourceCode lang="markdown">{content}</SourceCode>;
```

将会被渲染为:

:::code-group

```bash [npm]
npm install -D dumi
```

```bash [yarn]
yarn add -D dumi
```

```bash [pnpm]
pnpm add -D dumi
```

```ts [.dumirc.ts] {3}
import { defineConfig } from 'dumi';

export default defineConfig({
// ...
});
```

:::

0 comments on commit 6d1d053

Please sign in to comment.