diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2e1ba3c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,77 @@ +## changelog + +## 0.6.0 + +已支持编辑模式使用Iframe! + +修复选中条件。 + + +## 0.5.1 + +修复右侧选中不能取消选中问题。 + +## 0.5.0 + +修复control组件宽度不够问题。 + +移除antd自定义icon,容器底部icon可配置。 + +## 0.4.2 + +修复animate错误初始值。 + +修改markline样式。 + +全局设置增加容器高度。 +## 0.4.1 + +去除lib自动导入样式。 + +## 0.4.0 + +去除runtime导出,所有属性从config中获取。 + +## 0.3.1 + +1、由uuid更换为nanoid。 + +2、control组件增加标尺控制。 + +## 0.3.0 + +1、增加标尺,ContainerWrapper需要传递config才可使用。 + +2、修改容器最小拖动667。修复画布缩放下拖拽时与鼠标距离不一致。 + +3、innerContainerDragUp需要传递config。 + +## 0.2.0 + +commander的传递进行修改,可以获得config了,commander不再从index中导出 ,需要使用时从config中获取。增加左侧类名,方便自定义。 + +## 0.1.10 + +修改eslint依赖推荐 + + +## 0.1.9 + +增加全局body设置 + +## 0.1.8 + +增加弹窗设置,移除modalContainer + +## 0.1.7 + +修改预览特殊条件显示,删除console +## 0.1.6 + +调整初始缩放,画布初始比例,增加回正画布功能。 +## 0.1.5 + +删除未作按钮,增加fixed配置 +## 0.1.4 + +基础功能 diff --git a/package.json b/package.json index d39a29b..494231f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "start:doc":"lerna exec npm run start --scope=dooringx-doc", "build": "lerna exec npm run build --scope=dooringx-lib", "deploy": "lerna exec npm run deploy --scope=dooringx-doc", - "pub": "node ./script/publish.js" + "pub": "node ./script/publish.js", + "changelog": "node ./script/changelog.js" }, "private": true, "devDependencies": { diff --git a/packages/dooringx-doc/src/api/1.1.md b/packages/dooringx-doc/src/api/1.1.md new file mode 100644 index 0000000..7c02deb --- /dev/null +++ b/packages/dooringx-doc/src/api/1.1.md @@ -0,0 +1,9 @@ +--- +title: 待定 +sTitle: API +order: 1 +--- + +## 待定 + + diff --git a/packages/dooringx-doc/src/api/dd.md b/packages/dooringx-doc/src/api/dd.md deleted file mode 100644 index bbc6734..0000000 --- a/packages/dooringx-doc/src/api/dd.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: xcxzc -sTitle: vc -order: 4 ---- - -## dsas - -saff -sa -d -ad -sa -d -fsad diff --git a/packages/dooringx-doc/src/changelog/1.1.md b/packages/dooringx-doc/src/changelog/1.1.md index b308a3b..6302f0e 100644 --- a/packages/dooringx-doc/src/changelog/1.1.md +++ b/packages/dooringx-doc/src/changelog/1.1.md @@ -1,8 +1,11 @@ + --- title: CHANGELOG order: 1 --- +## changelog + ## 0.6.0 已支持编辑模式使用Iframe! @@ -13,6 +16,7 @@ order: 1 ## 0.5.1 修复右侧选中不能取消选中问题。 + ## 0.5.0 修复control组件宽度不够问题。 @@ -26,7 +30,6 @@ order: 1 修改markline样式。 全局设置增加容器高度。 - ## 0.4.1 去除lib自动导入样式。 @@ -77,4 +80,4 @@ commander的传递进行修改,可以获得config了,commander不再从index 删除未作按钮,增加fixed配置 ## 0.1.4 -基础功能 \ No newline at end of file +基础功能 diff --git a/packages/dooringx-doc/src/docs/1.3.md b/packages/dooringx-doc/src/docs/1.3.md index 53b1655..89a2db4 100644 --- a/packages/dooringx-doc/src/docs/1.3.md +++ b/packages/dooringx-doc/src/docs/1.3.md @@ -12,4 +12,249 @@ order: 3 npm i dooringx-lib ``` +dooringx-lib在编辑时提供两种容器,可以根据需要选择使用。 + +一种是普通容器,一种是iframe容器,这2种容器在某些实现上略有不同。 + +使用普通容器即在编辑时为普通的div并非iframe,而使用iframe则编辑时看见的为iframe内容。在预览时,使用preview组件,preview可以放到任何容器,包括去使用iframe查看。 + +普通容器使用参考demo: + +```js +import { + RightConfig, + Container, + useStoreState, + innerContainerDragUp, + LeftConfig, + ContainerWrapper, + Control, +} from 'dooringx-lib'; +import { useContext } from 'react'; +import { configContext } from '@/layouts'; +import { useCallback } from 'react'; +import { PREVIEWSTATE } from '@/constant'; + +export const HeaderHeight = '40px'; + +export default function IndexPage() { + const config = useContext(configContext); + + const everyFn = () => {}; + + const subscribeFn = useCallback(() => { + localStorage.setItem(PREVIEWSTATE, JSON.stringify(config.getStore().getData())); + }, [config]); + + const [state] = useStoreState(config, subscribeFn, everyFn); + + return ( +
+
+ head + + +
+
+
+ +
+ + + <> + + + + +
+ +
+
+
+ ); +} +``` + + +iframe容器使用参考demo: + + +index.tsx +```js +import { + RightConfig, + useStoreState, + innerContainerDragUp, + LeftConfig, + IframeContainerWrapper, + Control, + useIframeHook, + IframeTarget, +} from 'dooringx-lib'; +import { useContext } from 'react'; +import { configContext } from '@/layouts'; +import { useCallback } from 'react'; +import { PREVIEWSTATE } from '@/constant'; + +export const HeaderHeight = '40px'; + +export default function IndexPage() { + const config = useContext(configContext); + + const subscribeFn = useCallback(() => { + localStorage.setItem(PREVIEWSTATE, JSON.stringify(config.getStore().getData())); + }, [config]); + + const [state] = useStoreState(config, subscribeFn); + useIframeHook(`${location.origin}/container`, config); + + return ( +
+
+ head + + +
+
+
+ +
+ + + } + > + + +
+ +
+
+
+ ); +} +``` + +container 路由: + +```js +import { configContext } from '@/layouts'; +import { useContext } from 'react'; +import { IframeContainer } from 'dooringx-lib'; + +function ContainerPage() { + const config = useContext(configContext); + return ( +
+ +
+ ); +} + +export default ContainerPage; +``` + + + +预览时preview套iframe: + +```html +
+ +
+``` +preview路由: + +```js +import { PREVIEWSTATE } from '@/constant'; +import { Preview, UserConfig } from 'dooringx-lib'; +import plugin from '../../plugin'; + +const config = new UserConfig(plugin); + +function PreviewPage() { + const data = localStorage.getItem(PREVIEWSTATE); + if (data) { + try { + const json = JSON.parse(data); + config.resetData([json]); + } catch { + console.log('err'); + } + } + return ( +
+ +
+ ); +} + +export default PreviewPage; +``` + 有关 api 部分请参考 api diff --git a/packages/dooringx-doc/src/lib/Header/index.svelte b/packages/dooringx-doc/src/lib/Header/index.svelte index b2cf1fb..dffdf82 100644 --- a/packages/dooringx-doc/src/lib/Header/index.svelte +++ b/packages/dooringx-doc/src/lib/Header/index.svelte @@ -3,7 +3,7 @@ import { base } from '$app/paths'; import Button from '../Button/index.svelte'; import Switch from '../Switch/index.svelte'; - import logo from './svelte-logo.svg'; + import logo from './logo.svg'; import { getContext } from 'svelte'; import type { Writable } from 'svelte/store'; const lang = getContext>('lang'); @@ -37,7 +37,7 @@
- +
+ dooringX图标@1x + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/dooringx-doc/src/lib/Header/svelte-logo.svg b/packages/dooringx-doc/src/lib/Header/svelte-logo.svg deleted file mode 100644 index 49492a8..0000000 --- a/packages/dooringx-doc/src/lib/Header/svelte-logo.svg +++ /dev/null @@ -1 +0,0 @@ -svelte-logo \ No newline at end of file diff --git a/packages/dooringx-doc/static/favicon.png b/packages/dooringx-doc/static/favicon.png index 825b9e6..0c0b8fb 100644 Binary files a/packages/dooringx-doc/static/favicon.png and b/packages/dooringx-doc/static/favicon.png differ diff --git a/packages/dooringx-example/src/pages/iframeTest.tsx b/packages/dooringx-example/src/pages/iframeTest.tsx index 14085ec..7e674ad 100644 --- a/packages/dooringx-example/src/pages/iframeTest.tsx +++ b/packages/dooringx-example/src/pages/iframeTest.tsx @@ -2,13 +2,12 @@ * @Author: yehuozhili * @Date: 2021-07-17 10:12:11 * @LastEditors: yehuozhili - * @LastEditTime: 2021-07-20 16:16:33 + * @LastEditTime: 2021-07-20 17:08:37 * @FilePath: \dooringx\packages\dooringx-example\src\pages\iframeTest.tsx */ import { RightConfig, - Container, useStoreState, innerContainerDragUp, LeftConfig, @@ -27,13 +26,11 @@ export const HeaderHeight = '40px'; export default function IndexPage() { const config = useContext(configContext); - const everyFn = () => {}; - const subscribeFn = useCallback(() => { localStorage.setItem(PREVIEWSTATE, JSON.stringify(config.getStore().getData())); }, [config]); - const [state] = useStoreState(config, subscribeFn, everyFn); + const [state] = useStoreState(config, subscribeFn); useIframeHook(`${location.origin}/container`, config); return ( diff --git a/script/changelog.js b/script/changelog.js new file mode 100644 index 0000000..7461cbe --- /dev/null +++ b/script/changelog.js @@ -0,0 +1,34 @@ +/* + * @Author: yehuozhili + * @Date: 2021-07-20 17:38:03 + * @LastEditors: yehuozhili + * @LastEditTime: 2021-07-20 19:23:46 + * @FilePath: \dooringx\script\changelog.js + */ + +const fs = require('fs-extra'); +const path = require('path'); +const changelog = path.resolve(process.cwd(), 'CHANGELOG.md'); +const doclog = path.resolve( + process.cwd(), + 'packages', + 'dooringx-doc', + 'src', + 'changelog', + '1.1.md' +); +const isExist = fs.existsSync(doclog); +if (isExist) { + fs.removeSync(doclog); +} + +const prepend = ` +--- +title: CHANGELOG +order: 1 +--- + +`; + +const data = prepend + fs.readFileSync(changelog).toString(); +fs.writeFileSync(doclog, data);