首页
留言
统计
Looking Glass
常用脚本
关于
Search
1
linux设置ipv4优先或者ipv6优先
4,141 阅读
2
甲骨文oracle开启MFA(多因素验证)即两步验证图文教程
3,337 阅读
3
甲骨文oracle找回二次验证的方法
3,129 阅读
4
关于甲骨文Oracle Cloud 免费值不值得做站?-摘自LOc,感谢网友@冲浪麦浪花郎
1,903 阅读
5
新四大金刚:Pacificrack(PR)、Racknerd(RN)、Virmach(VIR)和Cloudcone(CC)口碑对比
1,732 阅读
默认评测
VPS推荐
口碑历史
福利消息
美区VPS
欧洲VPS
亚洲VPS
其它VPS
独立服务器
商家风云
技术流
登录
/
注册
Search
标签搜索
美国vps
大厂出品
日本vps
绿云
Virmach
greencloudvps
v.ps
搬瓦工
香港vps
xTom
德国vps
荷兰vps
大盘鸡
Linode
新加坡vps
独服
甲骨文
Oracle
gia
DMIT
VPS值
累计撰写
328
篇文章
累计收到
18
条评论
首页
栏目
默认评测
VPS推荐
口碑历史
福利消息
美区VPS
欧洲VPS
亚洲VPS
其它VPS
独立服务器
商家风云
技术流
页面
留言
统计
Looking Glass
常用脚本
关于
搜索到
8
篇与
的结果
2024-12-18
基于Cloudflare Pro和 Snippets 的WAF防护规则
本文转载自nodeseek@IPLark 本文尝试分享一些基于Cloudflare Pro 以及 Snippets 的防护规则/配置/代码。在规则方面,尽可能做到精简。世界上不可能有两个一模一样的站点(就算内容、程序一样,流量也不可能完全一样),所以也不可能有适配所有网站的通用WAF规则。本文例子中的站点为虚构站点(f47fb81b34.com,该网站是使用了开源程序typecho搭建的个人博客,日流量2000 IP左右),以下规则是针对该站点的。注:以下内容仅供参考。1. 对搜索引擎等友好爬虫进行过白 后续的WAF规则会对爬虫进行拦截,在这些规则之前,我们需要对友好的爬虫进行过白。假设我们需要将搜索引擎以及指定IP(13.3.3.3)纳入白名单。点击安全性,选择WAF,创建规则。请注意,该规则需要放置在后续其他拦截规则之前。注:Google Search Console的抓取工具属于Google Inspection Tool,该工具在Cloudflare Radar(https://radar.cloudflare.com/traffic/verified-bots )的分类中为安全性。在极少数场景下,Cloudflare 可能对搜索引擎的判断有误,这会导致极少数情况下无法对搜索引擎自动过白,这时候我们需要手动将搜索引擎IP纳入ip list里。谷歌ip list可参考:https://developers.google.com/search/apis/ipranges/googlebot.json https://developers.google.com/search/apis/ipranges/user-triggered-fetchers.json https://developers.google.com/search/apis/ipranges/user-triggered-fetchers-google.json必应ip list可参考https://www.bing.com/toolbox/bingbot.jsonIPlist的创建方法如下:1)点击管理账户。2)点击配置。3)点击列表,创建一个新的iplist。4)将需要过白的ip或ip段导入。如图所示5)回到刚才的WAF规则,重新编辑whitelist规则。2. 屏蔽恶意bot以及异常的请求 创建一条新规则,放置在whitelist之后,命名为block,采取措施为阻止。表达式(not len(http.request.headers["accept-language"]) > 0) or (not starts_with(http.user_agent, "Mozilla/5.0")) or (http.user_agent contains "bot") or (ip.src.country in {"T1"}) or (http.user_agent contains "Bot") or (http.user_agent contains "http") or (http.user_agent contains "rawler") or (http.user_agent contains "pider")注:CF防火墙的UA匹配是区分大小写的,部分bot UA会包含bot而部分会包含Bot,所以需要区分开来,而少部分UA可能会包含crawler或Crawler,所以上述规则用rawler匹配两种情况。正常的浏览器访客的UA都是以Mozilla/5.0开头且accept-language必定不为空。部分扫描程序的ua会包含http,但不包含bot,用UA包含http可以匹配并封禁掉众多公开扫描程序。比如 Censys部分Botnet来源于Tor节点,可根据实际情况觉得是否禁止tor用户访问。Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)3. 对部分异常流量进行质询 假设网站大部分用户都来自中文用户,那么可以accept-language进行进一步判断,比如大部分中文访客的accept-language都包含zh,如果请求中accept-language不包含zh,那么有可能为异常流量。且大多访客的http版本为http2和http3,就此我们可以设置一条新规则challenge,放在block规则之下。注:启用该规则后,正常访客有可能(小概率事件)也被要求完成人机验证。此外,CF有三种类型的人机验证,分别是交互式质询、托管质询和JS质询,JS质询无需用户点击,由浏览器自动执行脚本并完成验证,交互式质询需要用户点击确认框,而托管质询介于两者之间,根据用户环境,由CF选择对用户实行JS还是交互式质询。4. 对部分疑似恶意的请求进行质询/阻止 该规则组匹配的内容较多,篇幅有限,就不一一说明了。表达式如下(http.user_agent contains "MSIE") or (not http.request.method in {"GET" "POST" "HEAD"}) or (http.request.full_uri contains "well-known") or (len(http.request.headers["via"]) > 0) or (http.user_agent contains "; +") or (http.request.uri.path contains "//") or (http.x_forwarded_for contains ".") or (len(http.request.headers["x-forwarded-host"]) > 0) or (len(http.request.headers["cdn-loop"]) > 0) or (len(http.request.headers["cf-ew-via"]) > 0) or (http.user_agent contains "\\x09") or (http.user_agent contains "Trident") or (http.user_agent contains "Headless") or (http.request.uri contains "--+") or (http.user_agent contains "{") or (http.user_agent contains "$") or (http.user_agent contains "<") or (http.user_agent contains "script") or (http.request.uri contains "\\x") or (any(http.request.headers["sec-fetch-site"][*] contains "cr") and any(http.request.headers["sec-fetch-mode"][*] contains "no"))此规则组误报率极低,视实际情况,选择质询或阻止。5. 配置超级自动程序攻击模式(Super Bot Fight) 点击安全性,选择自动程序。开启后,CF会对部分模拟浏览器的自动化请求进行拦截(大概率是基于tls指纹,屏蔽了curl、golang等常见的tls指纹)。对低级的自动化请求有一定效果,聊胜于无。Business及以上版本可以开启对 likely automated 的请求的识别和阻止。6. 开启托管规则集,并进行微调 编辑该规则,参考下图,对部分默认规则进行覆盖。7. 开启DDoS规则覆盖,微调默认规则 点击编辑规则,搜索impersonate,修改部分参数,如下图所示,然后保存。8. 调整安全级别、开启浏览器完整性检查 点击安全性,选择设置,将安全级别由默认值改为高,并开启浏览器完整性检查。注:该功能作用甚微。9. 关闭IPv6、Pseudo IPv4以及洋葱路由 注:可根据实际情况决定是否关闭。关闭IPv6需借助api。借助api关闭ipv6后,还需进一步在WAF规则里对::/0进行屏蔽。10. 开启速率限制 在WAF中开启速率限制,具体配置需视情况而定。11. 利用Snippets做一个简易的302 cookie验证 当我们请求path.net时,会发现网站会返回307状态码,且在响应头里有一个名为CRANE的cookie,正常浏览器访问会根据网站响应头,设置cookie,这样第二次访问的时浏览器就会携带cookie访问 path.net,而低级的自动化程序是无法自动获取并携带cookie去请求网站的,而这将会让程序陷入无尽的307循环,如下图所示。据此,我们可以利用Cloudflare的Snippets做一个类似的简易人机验证,我们将访客的IP、访客UA以及自定义key进行组合,然后sha256对组合进行加密,并通过响应头发送给访客,访客访问网站时需携带snippets发送的cookie进行请求,才能顺利访问网站。点击网站规则,选择Snippets,点击创建片段。代码如下(仅供参考,自行修改secretKey的值)export default { async fetch(request) { const clientIp = request.headers.get('cf-connecting-ip') || ""; const ua = request.headers.get('user-agent') || ""; const secretKey = "h*dUm|mdS^6=QB)y"; // 组合并生成哈希值 const signatureBase = `${clientIp}${ua}${secretKey}`; const encoder = new TextEncoder(); const data = encoder.encode(signatureBase); const hashBuffer = await crypto.subtle.digest('SHA-256', data); const hashArray = Array.from(new Uint8Array(hashBuffer)); const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); let cookies = request.headers.get('Cookie') || ""; // 检查是否包含特定的 Cookie if (cookies.includes(hashHex)) { // 如果已经包含,直接返回原始请求 return await fetch(request); } else { // 否则生成重定向响应 const newResponse = new Response(null, { status: 302, headers: { "Set-Cookie": `_test=${hashHex}; Path=/; HttpOnly`, "Location": request.url, } }); return newResponse; } }, };根据实际情况,匹配snippets生效规则。注:1.该snippets没有对搜索引擎进行过白,如果需要过白部分请求,需要做额外的处理。2.该snippets具有一定局限性,可以考虑纳入更多的请求参数,进一步完善snippets。3.该snippets对高阶的自动化请求无效。12. Snnippets拓展 例如可以利用snippets创建点击验证、验证码验证、hcaptcha验证等。一些示例(需用海外IP访问)点击验证https://iplark.com/playground/captcha/click图片验证码https://iplark.com/playground/captcha/imageHcaptchahttps://iplark.com/playground/captcha/hcaptchaHcaptchahttps://iplark.com/playground/captcha/hcaptchaimage首发于NodeSeek,本文转载。
2024年12月18日
63 阅读
0 评论
0 点赞
2024-12-18
甲骨文救砖ARM,无需重新挂载硬盘,netboot使用教程
本教程转(转LOC@千牛)前言: 前些天,出给了一个大兄弟日本的甲骨文,当时差点玩死,就是因为系统装好了,但是密码忘了还好大兄弟自己会技术,重新挂载硬盘,用另一个AMD去把ARM的给救回来了但是问题来了:如果没有AMD,怎么修复已经挂掉的甲骨文呢? 这就要用到这个神器了:netboot官网在 这里 。之前有过经验的都知道netboot只要有启动文件,就能去修复,但是问题是如何来那个efi启动文件步骤:新建一个shell 终端重启机器,一直按ESC键盘,然后进入Boot Manager / EFI Internal Shell执行命令,初始化网络dhcpFS0: ifconfig -s eth0 dhcp ifconfig -l eth0 ping 8.8.8.8`执行tftp拉取文件AMD机器tftp 146.56.117.218 amd.efi amd.efiARM机器tftp 146.56.117.218 arm.efi arm.efi使用拉取的efi文件修复、重装exit命令退出,然后进入Boot Maintenance Manager/Boot From File然后选择你下载的efi文件,进行重装我主要说一下关于tftp的源,我这里放了一个我自己的,但是不保证啥时候忘了就删了,所以放一个自己的docker有需要的自己直接用这个也能拉取了,对应改掉那个ip地址就行docker run -itd --name tftpd \ -p 69:69/udp \ -e PUID=1111 \ -e PGID=1112 \ --restart unless-stopped \ langren1353/netboot-shell-tftp后话: 最后附一个启动成功的图,剩下的自己摸索吧,基本上没啥问题了(据说AMD的好像不行,内存太小了启动不起来,ARM无问题):本次教程部分内容、思源来自这里 :
2024年12月18日
79 阅读
0 评论
0 点赞
2023-12-03
在CoudFlare上进行SaaS设置的教程
CloudFlare是一个非常不错的SaaS平台,它可以帮助用户免费使用CNAME接入域名解析。通过CloudFlare的DNS服务,用户可以快速地将自己的域名解析到具体的IP地址上,从而实现云上部署。一、准备工作 首先,假设我建站,用hostloc.com这个域名,DNS可以接入到dnspod(或者其他)其次,我需要一个便宜的域名,123456.xyz或者其他任意能接入CF的域名均可,一般选择比较便宜的就行了,甚至免费的,比如eu.org—————————————————————————————————接着,登录CF,正常接入123456.xyz这个域名(DNS接入CF官方)接入完成后点进123456.xyz的设置界面,侧栏找到“SSL/TLS”,点进去有个“custom-hostnames”,然后一路点,(第一次点开的话)需要你绑卡或者绑paypal支付方式绑定完事之后,启用SAAS二、具体设置 ————————————————————————————————第一步,在“custom-hostnames”页面,“Add Fallback Origin”添加回退源,就是要告诉CF你的源站(二级域名)前缀随便用啥都行,不影响,我这里就用mjj,也就是mjj.123456.xyz首先去“DNS”那里,添加一个A记录(或其他)指向你的源站,云朵开不开不影响,建议开着然后回到“custom-hostnames”的“Add Fallback Origin”,输入你刚刚指向源站的那个二级域名过1分钟左右,就显示Fallback Origin status: Active以上(第一步)需要操作的只有123456.xyz这个域名另补充一下,这个xyz域名只需在CloudFlare里操作,不需要在源站服务器的nginx/apache之类的服务绑定。不要混淆了。——————————————————————————————————————第二步,还是在“custom-hostnames”页面,有个很明显的大按钮“Add Custom Hostname”点开,输入建站的域名,假设是www.hostloc.com,其他不用改,tls1.0、txt验证添加后会提示你,让你设置2个txt记录,分别是域名所有权的和SSL证书的验证,这个没什么好说的,不会的话我也没办法了再设置一个cname记录到mjj.123456.xyz(前面设置回退源的那个二级域名)(另外如果有之前就A到CF的IP的记录也先暂停或者删掉)为什么要这样设置的,因为如果你A记录解析到自选IP,有时会过不了验证顺利的话,过几分钟就验证完了,有时会长一点验证完成后,cname记录mjj.123456.xyz是可以删掉的,这样不会暴露这个xyz域名,再就是因为相当部分MJJ搞这个目的是自选IP对吧,然后就放飞自我吧,直接A你的自选IP以上(第二步)需要操作的DNS只有hostloc.com这个域名————————————————————————————————————————结束
2023年12月03日
183 阅读
0 评论
0 点赞
2023-12-01
提高安全性VPS修改SSH端口及从密码改为密钥登录
一、修改端口Debian、Ubuntu等系统比较简单(1)输入下列命令nano /etc/ssh/sshd_config在修改端口之前,先添加一个端口,找到 Port 进行修改将Port 22 去掉#并添加新端口Port 10022修改之后,进行保存(2)重启systemctl restart sshd2.Centos稍微复杂点(1)输入下列命令nano /etc/ssh/sshd_config在修改端口之前,先添加一个端口,找到 Port 进行修改将Port 22 去掉#并添加新端口Port 10022修改之后,进行保存 (2) 向防火墙中添加修改的端口假设端口修改为12345,向防火墙中添加端口的命令为:firewall-cmd --zone=public --add-port=12345/tcp --permanentreaload 防火墙规则:firewall-cmd --reload查看端口是否添加成功: firewall-cmd --zone=public --query-port=17186/tcp注意: 这里的设置是在 CentOS 7 版本下的操作 , 低于 CentOS 7的版本不支持防火墙如果未启用,可通过下列命令打开:systemctl start firewalld查看防火墙状态:systemctl status firewalld(3)向SELinux中添加修改的SSH端口在向SELinux中添加端口之前需要先安装SELinux的管理工具 semanage (如果已经安装了就直接到下一步) :yum provides semanage在这里我们看到运行 semanage 需要先安装其依赖工具包 policycoreutils-python :yum install policycoreutils-python安装好之后,可以直接使用 semanage 命令: 查询当前 ssh 服务端口: semanage port -l | grep ssh向 SELinux 中添加 ssh 端口:semanage port -a -t ssh_port_t -p tcp 12345验证 ssh 端口是否添加成功:semanage port -l | grep ssh添加成功之后就可以重启 ssh 服务了:serivce sshd restart————————二、改用密钥登录 以Debian为例:1.首先打开xshell等工具创建密钥,如xshell->工具(T)->新建用户密钥生成向导(W)密钥类型: ECDSA 密钥长度选择 521 位->下一步再次下一步->名称可修改,这里默认 id_ecdsa_521 接着输入给密钥设的密码->下一步保存为文件,默认在..Xshell\Sessions文件夹中,文件名 id_ecdsa_521.pub2.上传以及测试 cd /root/.ssh/安装上传工具 apt-get install lrzsz上传 rz -be查看是否上传成功 ls authorized_keys id_ecdsa_521.pub如果没有authorized_keys 需要先创建touch authorized_keys && chmod 700 /root/.ssh/ && chmod 600 /root/.ssh/authorized_keys cat id_ecdsa_521.pub >> authorized_keys && chmod 600 authorized_keys如果碰到.ssh文件夹不存在ssh localhost -p 21755如果没改过端口 就是ssh localhost输入yes输入root密码如果提示密钥没在电脑上注册root目录下键入以下命令chmod 700 .ssh cd .ssh chmod 600 * service sshd restart断开ssh,重新连接,使用密钥登录3.禁止密码登录注意:验证了密钥能正常登陆之后,再执行以下步骤(避免无法远程连接服务器)这三条可以一起复制在xshell中执行sed -i 's/^#\?\(PubkeyAuthentication\s*\).*$/\1yes/' /etc/ssh/sshd_config; sed -i 's/^#\?\(PasswordAuthentication\s*\).*$/\1no/' /etc/ssh/sshd_config; sed -i 's/^#\?\(ChallengeResponseAuthentication\s*\).*$/\1no/' /etc/ssh/sshd_configRestart SSH servicesystemctl restart sshd如果禁止密码登录失效(常见于ubuntu)删除50-cloud-init.conf文件或者在50-cloud-init.conf配置文件中配置禁止密码登陆参数vim /etc/ssh/sshd_config.d/50-cloud-init.conf (1)修改为PasswordAuthentication noPubkeyAuthentication yes(2)保存退出 然后重启SSHsystemctl restart ssh完毕。
2023年12月01日
156 阅读
0 评论
0 点赞
2023-10-02
甲骨文oracle找回二次验证的方法
转自LOC官方认证的方法:因为更换手机丢失了二次验证。然后给客户沟通,获得了找到二次验证的办法,希望对你有用。1、登录到账号登陆界面,查看地址栏当中自己的IDCE地址(yourIDCS_Stripe_here)部分,并复制。https://idcs-yourIDCS_Stripe_here.identity.oraclecloud.com/比如“https://idcs-1228021fd2t34dca9981884078364f13.identity.oraclecloud.com/ui/v1/signin”2、然后将自己的IDCS地址(yourIDCS_Stripe_here)复制到下方连接相应的位置,并在浏览器中重新打开新的地址。https://idcs-yourIDCS_Stripe_here.identity.oraclecloud.com/ui/v1/myconsole?root=my-info&my-info=my_profile_security比如“https://idcs-1228021fd2t34dca9981884078364f13.identity.oraclecloud.com/ui/v1/myconsole?root=my-info&my-info=my_profile_security”3.在新的地址当中登录你的账号4.重新设置只验证设备
2023年10月02日
3,129 阅读
7 评论
3 点赞
2022-10-18
op 5O/online 3O C2350 安装Win10/win2012 教程
首先在面板上用救援模式启动,执行dd命令后退出,再以正常模式启动。dd win10 ltscwget -qO DebianNET.sh qiu.sh/dd && bash DebianNET.sh -dd "https://dl.lamp.sh/vhd/zh-cn_windows10_ltsc.xz"用户名: administrator密码: Teddysun.comWindows Server 2012 R2中文版:wget -O- --no-check-certificate https://down.xieyang.org/Windows/ISO/Win2012R2CN.gz |gunzip|dd of=/dev/sda用户名 :Administrator密码:Laiboke.com
2022年10月18日
127 阅读
0 评论
0 点赞
2022-06-01
free.fr免费空间搭建图床及小文件分享Jirafeau及利用Cloudflare进行反代设置
Jirafeau是更新到现在的一款简洁易用的临时在线PHP网盘程序,允许您“一键式文件共享”。它可以以一种简单的方式上传一个文件,并为其提供一个独特的链接。因此Jirafeau既可以作为图床也可以作为小文件分享。1、首先实现对空间的文件传输,最简单是上传一个PHP webshell 方法1:利用法国代理访问官方的ftp,地址:ftpperso.free.fr方法2:买个法国VPS自己做web ftp,也可用别人搭建好的,推荐一个:https://ftp.feixiang.eu.org/ 账户/密码:mjj/mjj(感谢LOC网友@feixiang)上传一个PHP webshell,推荐filebox.php,详见:https://github.com/or2me/Filebox 2、启动Free.fr支持php5.6 free.fr空间目前还不支持php7,所以所有php都要支持5.6及兼容的才行。在根目录新建一个文件 .htaccess ,然后把下面的代码粘贴进去。<IfDefine Free> php56 1 </IfDefine> ErrorDocument 404 /404.html3、上传Jirafeau 假设你的空间名为abc.free.fr,那么你的filebox访问地址为:http://abc.free.fr/filebox.php在https://gitlab.com/mojo42/Jirafeau上下载压缩包,zip结尾最好利用filebox上传文件到根目录,上传时选择解压缩。4.设置Jirafeau (1)手动新建一个sessions文件夹在根目录,记得给写入权限。(2)上传好的文件一般解压缩成文件夹Jirafeau-master。(3)访问http://abc.free.fr/Jirafeau-master/install.php进行安装。注意末尾带/,具体安装见Jirafeau主页。(4)访问http://abc.free.fr/Jirafeau-master/index.php即可实现访问了,分享图或者文件即可。5.CloudFlare Workers反代 (1)创建一个Workers,启动器选HTTP handler。编辑上面的Workers,复制下面代码,修改下域名,支持二级以上目录,比如http://abc.free.fr/Jirafeau-master/,但同样的必须以/结尾。addEventListener('fetch', event => { const request = event.request; const url = new URL(request.url); const response = fetch('http://abc.free.fr/Jirafeau-master/' + url.pathname + url.search, { method: request.method, headers: request.headers, body: request.body, }); event.respondWith(response);(2)添加域名,在域名里添加路由,假设你添加的域名为cba.xxx.xyz,解析A的IP可以随便填,例如1.2.3.4,然后在worker里添加:(3)注意在Scrape Shield 里面 关闭 Hotlink 保护(4)为防止免费空间因为滥用而被限制,设置下缓存。6、如果以上设置正确,搭建就完成了 访问http://abc.xxx.xyz即可看到Jirafeau。
2022年06月01日
421 阅读
0 评论
0 点赞
2022-05-29
推荐一个好用的开源的思维导图md笔记软件
特色使用方便:使用 Monaco 内核,专为 Markdown 优化,拥有和 VSCode 一样的编辑体验。功能强大:支持历史版本回溯;可在文档中嵌入小工具、可运行的代码块、表格、PlantUML 图形、Drawio 图形、宏替换等;支持接入 OpenAI 自动补全。兼容性强:数据保存为本地 Markdown 文件;拓展功能尽量用 Markdown 原有的语法实现。插件拓展:支持用户编写自己的插件来拓展编辑器的功能。支持加密:用来保存账号等隐私文件,文件可单独设置密码。注意事项为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,warning请务必仔细甄别文件内容是值得信任的warning。加密文件的加密解密操作均在前端完成,请务必牢记自己的密码。一旦密码丢失,就只能暴力破解了。特色功能以下功能具体使用可参考特色功能说明同步滚动: 编辑区和预览区同步滚动,预览区可独立滚动目录大纲: 预览区目录大纲快速跳转版本管理: 支持回溯文档历史版本文件加密: 以 .c.md 结尾的文件视为加密文件自动保存: 文件编辑后自动保存,未保存文件橙色标题栏提醒(加密文档不自动保存)编辑优化: 列表自动补全粘贴图片: 可快速粘贴剪切板里面的图片,可作为文件或 Base64 形式插入嵌入附件: 可以添加附件到文档,点击在系统中打开代码运行: 支持运行 JavaScript、PHP、nodejs、Python、bash 代码待办列表: 支持显示文档中的待办进度,点击可快速切换待办状态快速打开: 可使用快捷键打开文件切换面板,以便快捷打开文件,标记的文件,全文搜索文件内容内置终端: 支持在编辑器打开终端,快速切换当前工作目录公式解析: 支持输入 katex 公式代码样式风格: Markdown 使用 GitHub 风格样式和特性数据仓库: 可定义多个数据位置以便文档分类外链转换: 将外链或 BASE64 图片转换为本地图片HTML 解析: 可以直接在文档里面使用 HTML 代码,也可以使用快捷键粘贴复制 HTML 为 Markdowndocx 导出: 后端使用 pandoc 做转换器TOC 支持: 生成 TOC 在需要生成目录的地方写入 [toc]{type: "ol", level: [1,2,3]} 即可编辑表格单元格: 双击表格单元格即可快速编辑复制标题链接: 复制标题链接路径到剪切板,便于插入到其他文件嵌入小工具: 文档支持内嵌 HTML 小工具嵌入 PlantUML 图形: 在文档内内嵌 PlantUML 图形嵌入 drawio 图形: 在文档中内嵌 drawio 图形嵌入 ECharts 图形: 在文档中嵌入 Echarts 图形嵌入 Mermaid 图形: 在文档中嵌入 Mermaid 图形嵌入 Luckysheet 表格: 在文档中嵌入 Luckysheet 表格嵌套列表转脑图展示: 可将嵌套列表用脑图的方式展示元素属性书写: 可自定义元素的任意属性表格解析增强: 表格支持表格标题多行文本,列表等特性文档交叉链接跳转: 支持在文档中链接其他文档,互相跳转脚注功能: 支持在文档中书写脚注容器块: 支持类似 VuePress 默认主题的自定义容器宏替换: 支持内嵌 JavaScript 表达式动态替换文档内容图床: 支持 PicGo 图床OpenAI: 支持接入 OpenAI 自动补全自定义插件: 支持编写 JavaScript 插件拓展编辑器功能。插件放置在 主目录/plugins 中。链接: github主页 全平台下载页面 截图:
2022年05月29日
37 阅读
0 评论
0 点赞