diff --git a/demo/index.js b/demo/index.js index 7f701a8..616ede5 100644 --- a/demo/index.js +++ b/demo/index.js @@ -47,6 +47,13 @@ This is a info tips --- git:[@github/justice2001/halo-plugin-vditor] + +--- + +drive:baidu +name: 网站资源集合 +link: https://www.baidu.com/ +password: abcde ` render() }) diff --git a/src/icons/drive/ali.png b/src/icons/drive/ali.png new file mode 100644 index 0000000..347b648 Binary files /dev/null and b/src/icons/drive/ali.png differ diff --git a/src/icons/drive/baidu.svg b/src/icons/drive/baidu.svg new file mode 100644 index 0000000..cc97f5b --- /dev/null +++ b/src/icons/drive/baidu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/less/constant.less b/src/less/constant.less index 392a2e1..896d63e 100644 --- a/src/less/constant.less +++ b/src/less/constant.less @@ -1 +1,15 @@ @border-radius: 3px; +@secondary: #818181; +@secondary-light: #F4F4F4; +// Warning +@warn-color: #FF8C00; +@warn-bg-color: #FFFAED; +// DANGER +@danger-color: #C31919; +@danger-bg-color: #FFEDED; +// Success +@success-color: #05B800; +@success-bg: #F2FFED; +// Info +@info-color: #3478CD; +@info-bg: #F1F7FF; diff --git a/src/less/drive.less b/src/less/drive.less new file mode 100644 index 0000000..98753da --- /dev/null +++ b/src/less/drive.less @@ -0,0 +1,44 @@ +@import "constant"; + +.drive { + border: 1px solid @secondary-light; + border-radius: @border-radius; + padding: 10px; + display: flex; + align-items: center; + justify-content: space-between; + user-select: none; + + .drive-info { + display: flex; + flex-direction: column; + gap: 5px; + + .platform { + display: flex; + align-items: center; + + .drive-icon { + width: 30px; + } + + span { + font-size: 16px; + margin-left: 5px; + color: @info-color; + } + } + } + + .download-info { + display: flex; + flex-direction: column; + align-items: center; + + .drive-password { + color: @secondary; + font-size: 12px; + margin-top: 5px; + } + } +} diff --git a/src/less/render.less b/src/less/render.less index 99fc3d9..2bc17bf 100644 --- a/src/less/render.less +++ b/src/less/render.less @@ -17,3 +17,18 @@ margin: 20px 15px; } +.btn { + background-color: @info-color; + color: #ffffff; + padding: 5px 8px; + text-align: center; + border-radius: @border-radius; + font-size: 14px; + min-width: 80px; + text-decoration: none; +} + +.error { + text-align: center; + color: @danger-color; +} diff --git a/src/less/tips.less b/src/less/tips.less index f8daa64..403c4c5 100644 --- a/src/less/tips.less +++ b/src/less/tips.less @@ -1,18 +1,6 @@ @import "constant"; @border-width: 6px; @border-type: solid; -// Warning -@warn-color: #FF8C00; -@warn-bg-color: #FFFAED; -// DANGER -@danger-color: #C31919; -@danger-bg-color: #FFEDED; -// Success -@success-color: #05B800; -@success-bg: #F2FFED; -// Info -@info-color: #3478CD; -@info-bg: #F1F7FF; .tips { position: relative; diff --git a/src/provider/drive-provider.ts b/src/provider/drive-provider.ts new file mode 100644 index 0000000..b8597a5 --- /dev/null +++ b/src/provider/drive-provider.ts @@ -0,0 +1,74 @@ +import {IOptions, Provider} from "./provider"; +import "../less/drive.less" +import {RENDER_CLASS} from "../constant"; + +const PLATFORM_LIST: {[key: string]: Platform } = { + "baidu": { + icon: "/icons/drive/baidu.svg", + name: "百度网盘" + }, + "ali": { + icon: "/icons/drive/ali.png", + name: "阿里云盘" + } +} + +export class DriveProvider implements Provider { + check(type: string): boolean { + return type.startsWith("drive") + } + + process(type: string, content: string, options: IOptions): string { + // Parse Content + const driveInfo = this.parseContent(type, content); + if (driveInfo instanceof Object) { + let html = `