超级文本编辑器-脚本
本文最后更新于 113 天前,其中的信息可能已经有所发展或是发生改变。

可以编写脚本对内容进行处理

类型定义

declare const content: string = '';
declare const func = {
    axios: any,
    message: {
        loading(text: string): void,
        send(text: string, type: 'success' | 'info' | 'warning' | 'error'): void,
    },
    util: {
        array: {
            contains(arr: any[], keyword: any): boolean,
            map<T extends Record<string, any>, K, A extends keyof T>(arr: T[], attrName: A, merge?: (item1: T, item2: T) => T): Map<K, T>
        },
        browser: {
            download(data: string | ArrayBuffer | Blob, fileName: string, mineType: string): void,
            downloadByUrl(url: string, fileName?: string): void,
            generateUUID():  string,
            sleep(timestamp: number): Promise<void>,
        }
    }
}

content

编辑器的内容

func

内置方法

axios

使用此方法,需要将脚本设置为异步模式,并且使用await关键字

axios库,可以执行http请求,比如

// GET请求
const rsp = await func.axios.get('https://blog.esion.xyz');
// POST请求,并附带请求体
const rsp = await func.axios.post('https://blog.esion.xyz', {
    a: 'a'
});
// 执行一个请求
const rsp = await func.axios.request({
    url: 'https://blog.esion.xyz',
    method: 'POST',
    data: {a: 'a'},
    params: {a: 'a'},
    headers: {
        'Content-Type': 'application/json'
    }
})

返回的rsp是个axios的响应对象,其中rsp.data是实际的响应体

更多的使用方法请参考:http://www.axios-js.com

message

消息类方法

loading

修改当前loading的内容

在每次执行脚本时,都会有loading加载框

func.message.loading('正在执行脚本')

send

send(text: string, type: 'success' | 'info' | 'warning' | 'error')

发送一个消息,会在插件中上方显示一个消息

func.message.send('成功了', 'success');

util

一些常用的方法

array

数组相关的方法

  • contains

contains(arr: Array, keyword: any): boolean;

判断第一个数组中是否包含第二个元素,返回boolean值

func.util.array.contains(['a', 'b'], 'a');
  • map

将一个数组根据其中一个属性变为map

const arr = [{
    id: 1,
    name: 'a'
}, {
    id: 2,
    name: 'b'
}]
const map = func.util.array.map(arr, 'id');
// a = {id: 1,name: 'a'}
const a = map.get(1);

browser

浏览器的一些方法

  • download

将一段文本进行下载

func.util.browser.download('测试文本', '测试.txt')
  • downloadByUrl

将一个url进行下载

func.util.browser.downloadByUrl('https://blog.esion.xyz', 'index.html')
  • generateUUID

生成一个uuid

const uuid = func.util.browser.generateUUID()
  • sleep

此API需要开启异步,并使用await关键字

对脚本进行休眠

// 休眠一秒钟
await func.util.browser.sleep(1000);

常用脚本示例

行去重

return Array.from(new Set(content.split("\n"))).join("\n");

加序号

return content.split('\n').map((v, i) => `${i+1}. ${v}`).join('\n');

去除多余回车

const lines = content.split("\n");
const items = [];
let item = [];
for (let line of lines){
    line = line.replace('\r', '');
    if (line.trim() === '') {
        items.push(item);
        item = [];
    }else {
        item.push(line);
    }
}
if(item.length >0) {
    items.push(item);
}
return items.map(item => item.join(''))
.filter(e => e.trim() !== '').join('\n\n');
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇