ds-markdown 0.1.7 → 0.1.9-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -108
- package/dist/cjs/index.d.ts +1515 -0
- package/dist/cjs/index.js +25 -145
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/plugins/index.d.ts +6 -1
- package/dist/cjs/plugins/index.js +4 -0
- package/dist/cjs/plugins/index.js.map +1 -1
- package/dist/esm/index.d.ts +1515 -0
- package/dist/esm/index.js +26 -146
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/plugins/index.d.ts +6 -1
- package/dist/esm/plugins/index.js +3 -1
- package/dist/esm/plugins/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -481,6 +481,7 @@ import DsMarkdown, { MarkdownCMD } from 'ds-markdown';
|
|
|
481
481
|
| `onTypedChar` | `(data: ITypedChar) => void` | 每字符打字后的回调 | - |
|
|
482
482
|
| `disableTyping` | `boolean` | 禁用打字动画效果 | `false` |
|
|
483
483
|
| `autoStartTyping` | `boolean` | 是否自动开始打字动画,设为 false 时需手动触发,不支持动态修改 | `true` |
|
|
484
|
+
| `codeBlock` | `IMarkdownCode` | 代码块配置 | `{headerActions: true}` |
|
|
484
485
|
|
|
485
486
|
> 注意: 如果当在打字中 `disableTyping`从 `true` 变为 `false`,则在下一个打字触发时,会把剩下的所有字一次性显示
|
|
486
487
|
|
|
@@ -722,6 +723,81 @@ const customPlugin = createBuildInPlugin({
|
|
|
722
723
|
|
|
723
724
|
高频推荐`requestAnimationFrame`,低频推荐 `setTimeout`
|
|
724
725
|
|
|
726
|
+
## 多语言配置
|
|
727
|
+
|
|
728
|
+
ConfigProvider 是 ds-markdown 提供的多语言配置组件,用于管理应用中的国际化文本。
|
|
729
|
+
|
|
730
|
+
### 基本用法
|
|
731
|
+
|
|
732
|
+
```tsx
|
|
733
|
+
import React from 'react';
|
|
734
|
+
import { ConfigProvider } from 'ds-markdown';
|
|
735
|
+
import zhCN from 'ds-markdown/i18n/zh';
|
|
736
|
+
|
|
737
|
+
const App: React.FC = () => {
|
|
738
|
+
return (
|
|
739
|
+
<ConfigProvider locale={zhCN}>
|
|
740
|
+
<YourApp />
|
|
741
|
+
</ConfigProvider>
|
|
742
|
+
);
|
|
743
|
+
};
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
### 可用的语言包
|
|
747
|
+
|
|
748
|
+
#### 中文 (zhCN)
|
|
749
|
+
|
|
750
|
+
```tsx
|
|
751
|
+
import zhCN from 'ds-markdown/i18n/zh';
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
#### 英文 (enUS)
|
|
755
|
+
|
|
756
|
+
```tsx
|
|
757
|
+
import enUS from 'ds-markdown/i18n/en';
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
### 在组件中使用语言包
|
|
761
|
+
|
|
762
|
+
使用 `locale` 属性来切换自己想要的语言包,例如切换到英文
|
|
763
|
+
|
|
764
|
+
```tsx
|
|
765
|
+
import React from 'react';
|
|
766
|
+
import DsMarkdown from 'ds-markdown';
|
|
767
|
+
import { ConfigProvider } from 'ds-markdown';
|
|
768
|
+
import en from 'ds-markdown/i18n/en';
|
|
769
|
+
|
|
770
|
+
const MyComponent: React.FC = () => {
|
|
771
|
+
return (
|
|
772
|
+
<ConfigProvider locale={en}>
|
|
773
|
+
<DsMarkdown {...props} />
|
|
774
|
+
</ConfigProvider>
|
|
775
|
+
);
|
|
776
|
+
};
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
### 语言包结构
|
|
780
|
+
|
|
781
|
+
当前支持的语言包包含以下字段:
|
|
782
|
+
|
|
783
|
+
```typescript
|
|
784
|
+
interface Locale {
|
|
785
|
+
codeBlock: {
|
|
786
|
+
copy: string;
|
|
787
|
+
copied: string;
|
|
788
|
+
download: string;
|
|
789
|
+
};
|
|
790
|
+
[key: string]: string;
|
|
791
|
+
}
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
### 注意事项
|
|
795
|
+
|
|
796
|
+
1. `ConfigProvider` 必须包裹在使用 `useLocale` 的组件外层
|
|
797
|
+
2. 语言包对象会被缓存,避免不必要的重新渲染
|
|
798
|
+
3. 支持扩展自定义的语言包字段
|
|
799
|
+
4. 如果没有提供 `ConfigProvider`,会使用默认的中文语言包
|
|
800
|
+
|
|
725
801
|
---
|
|
726
802
|
|
|
727
803
|
## 💡 实战示例
|
|
@@ -956,111 +1032,3 @@ import { MarkdownCMDRef } from 'ds-markdown';
|
|
|
956
1032
|
const ref = useRef<MarkdownCMDRef>(null);
|
|
957
1033
|
// 完整的 TypeScript 类型提示
|
|
958
1034
|
```
|
|
959
|
-
|
|
960
|
-
## 多语言配置
|
|
961
|
-
|
|
962
|
-
ConfigProvider 是 ds-markdown 提供的多语言配置组件,用于管理应用中的国际化文本。
|
|
963
|
-
|
|
964
|
-
### 基本用法
|
|
965
|
-
|
|
966
|
-
```tsx
|
|
967
|
-
import React from 'react';
|
|
968
|
-
import { ConfigProvider } from 'ds-markdown';
|
|
969
|
-
import zhCN from 'ds-markdown/i18n/zh';
|
|
970
|
-
|
|
971
|
-
const App: React.FC = () => {
|
|
972
|
-
return (
|
|
973
|
-
<ConfigProvider locale={zhCN}>
|
|
974
|
-
<YourApp />
|
|
975
|
-
</ConfigProvider>
|
|
976
|
-
);
|
|
977
|
-
};
|
|
978
|
-
```
|
|
979
|
-
|
|
980
|
-
### 可用的语言包
|
|
981
|
-
|
|
982
|
-
#### 中文 (zhCN)
|
|
983
|
-
|
|
984
|
-
```tsx
|
|
985
|
-
import zhCN from 'ds-markdown/i18n/zh';
|
|
986
|
-
```
|
|
987
|
-
|
|
988
|
-
#### 英文 (enUS)
|
|
989
|
-
|
|
990
|
-
```tsx
|
|
991
|
-
import enUS from 'ds-markdown/i18n/en';
|
|
992
|
-
```
|
|
993
|
-
|
|
994
|
-
### 在组件中使用语言包
|
|
995
|
-
|
|
996
|
-
使用 `useLocale` hook 来获取当前的语言包:
|
|
997
|
-
|
|
998
|
-
```tsx
|
|
999
|
-
import React from 'react';
|
|
1000
|
-
import { useLocale } from 'ds-markdown';
|
|
1001
|
-
|
|
1002
|
-
const MyComponent: React.FC = () => {
|
|
1003
|
-
const locale = useLocale();
|
|
1004
|
-
|
|
1005
|
-
return (
|
|
1006
|
-
<div>
|
|
1007
|
-
<button>{locale.codeBlock.copy}</button>
|
|
1008
|
-
<span>{locale.codeBlock.copied}</span>
|
|
1009
|
-
<button>{locale.codeBlock.download}</button>
|
|
1010
|
-
</div>
|
|
1011
|
-
);
|
|
1012
|
-
};
|
|
1013
|
-
```
|
|
1014
|
-
|
|
1015
|
-
### 语言包结构
|
|
1016
|
-
|
|
1017
|
-
当前支持的语言包包含以下字段:
|
|
1018
|
-
|
|
1019
|
-
```typescript
|
|
1020
|
-
interface Locale {
|
|
1021
|
-
codeBlock: {
|
|
1022
|
-
copy: string;
|
|
1023
|
-
copied: string;
|
|
1024
|
-
download: string;
|
|
1025
|
-
};
|
|
1026
|
-
[key: string]: string;
|
|
1027
|
-
}
|
|
1028
|
-
```
|
|
1029
|
-
|
|
1030
|
-
### 完整示例
|
|
1031
|
-
|
|
1032
|
-
```tsx
|
|
1033
|
-
import React from 'react';
|
|
1034
|
-
import { ConfigProvider, useLocale } from 'ds-markdown';
|
|
1035
|
-
import zhCN from 'ds-markdown/i18n/zh';
|
|
1036
|
-
|
|
1037
|
-
const ExampleComponent: React.FC = () => {
|
|
1038
|
-
const locale = useLocale();
|
|
1039
|
-
|
|
1040
|
-
return (
|
|
1041
|
-
<div>
|
|
1042
|
-
<h2>多语言示例</h2>
|
|
1043
|
-
<p>复制按钮: {locale.codeBlock.copy}</p>
|
|
1044
|
-
<p>已复制提示: {locale.codeBlock.copied}</p>
|
|
1045
|
-
<p>下载按钮: {locale.codeBlock.download}</p>
|
|
1046
|
-
</div>
|
|
1047
|
-
);
|
|
1048
|
-
};
|
|
1049
|
-
|
|
1050
|
-
const App: React.FC = () => {
|
|
1051
|
-
return (
|
|
1052
|
-
<ConfigProvider locale={zhCN}>
|
|
1053
|
-
<ExampleComponent />
|
|
1054
|
-
</ConfigProvider>
|
|
1055
|
-
);
|
|
1056
|
-
};
|
|
1057
|
-
|
|
1058
|
-
export default App;
|
|
1059
|
-
```
|
|
1060
|
-
|
|
1061
|
-
### 注意事项
|
|
1062
|
-
|
|
1063
|
-
1. `ConfigProvider` 必须包裹在使用 `useLocale` 的组件外层
|
|
1064
|
-
2. 语言包对象会被缓存,避免不必要的重新渲染
|
|
1065
|
-
3. 支持扩展自定义的语言包字段
|
|
1066
|
-
4. 如果没有提供 `ConfigProvider`,会使用默认的中文语言包
|