跳到主要内容

39 篇博文 含有标签「随笔」

查看所有标签

感觉 docker 版本不支持 supervisor 和 add-ons 功能怪怪的。也没啥特别好玩的地方,同时也不自持触发,米家本身设置的事件。而且这样子安全问题感觉也增加了,没太大必要折腾,可以关注下跟新日志,等功能完善了再玩。

home-assistant docker 安装

版本区别

  • home-assistant/docker-compose.yml
version: '3'
services:
homeassistant:
container_name: home-assistant
image: ghcr.io/home-assistant/home-assistant:latest
volumes:
- ./config:/config # 持久化配置文件,请替换为实际路径
- /etc/localtime:/etc/localtime:ro # 同步主机时区
environment:
- TZ=Asia/Shanghai # 设置时区,根据需要修改
ports:
- "8123:8123" # 映射端口
restart: unless-stopped
network_mode: host # 使用主机网络模式

ha_xiaomi_home 插件安装

Download and copy custom_components/xiaomi_home folder to config/custom_components folder in your Home Assistant.

wget -e http_proxy=http://localhost:9999 -e https_proxy=http://localhost:9999 https://github.com/XiaoMi/ha_xiaomi_home/archive/refs/heads/main.zip

# 解压 ZIP 文件
unzip main.zip

# 将插件文件夹移动到 custom_components 目录
sudo cp -r ha_xiaomi_home-main/custom_components ./config/

# 清理下载的文件
sudo rm -rf ha_xiaomi_home-main main.zip

# 递归设置 custom_components 目录的权限
# sudo chown -R homeassistant:homeassistant custom_components/xiaomi_home

# 使用 systemd 管理的 Home Assistant
sudo docker compose restart

ha 里安装 node-red 插件

取消 小米授权

  • 访问 小米云服务
    • 绑定授权
    • Xiaomi Home (Home Assistant Integration)
    • 取消授权
随笔阅读需 2 分钟

小米运动数据导出

  • 参考
  • 我的 - 设置 - 账号与安全 - 注销账号 - 导出数据

图表体重

  • gpt 语句
现在有一个 filepath = './BODY_1711700416591.csv'  数据如下 

time weight height
2016-02-25 12:51:09+0000 62 null
2016-02-25 12:53:18+0000 64.5 null

怎么用图标查看 weight 的变化


import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 读取CSV文件
filepath = './BODY_1711700416591.csv'
data = pd.read_csv(filepath)
weight_filter = 50
start_time = "2014-01-01"
end_time = "2025-01-01"

# 将时间列转换为日期时间格式
data['time'] = pd.to_datetime(data['time'])

# 根据时间范围过滤数据
df = data[(data['time'] >= start_time) & (data['time'] <= end_time) & (data['weight'] > weight_filter)]

# 提取"weight"列的数据
weights = df["weight"]

# 设置图表大小
plt.figure(figsize=(12, 6)) # 宽度为12英寸,高度为6英寸
# plt.figure(figsize=(30, 20)) # 宽度为12英寸,高度为6英寸

# # 绘制柱状图,设置线条宽度为最细
# plt.bar(df['time'], weights, linewidth=0.5)

# 绘制折线图
plt.plot(df['time'], weights, marker='o', linestyle='-', linewidth=1)

# # 添加数据标注
# for i, weight in enumerate(weights):
# plt.annotate(weight, (df['time'].iloc[i], weight), ha='center', va='bottom')

# 设置横坐标刻度间隔为3个月
# plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=3))

# 设置纵坐标刻度间隔为5.0
plt.yticks([i for i in range(50, 100, 5)])


# 设置图表标题和标签
plt.xlabel('Time')
plt.ylabel('Weight')
plt.title('Weight Variation')
plt.xticks(rotation=45)
plt.grid(True)

# 设置Weight坐标轴范围
plt.ylim(55, 90)

# 自动调整子图布局,尽可能放大图表
plt.tight_layout()

# 显示图表
plt.show()
plt.savefig('weight_variation.png')

体重


随笔阅读需 2 分钟

自己喜欢啥,总要一遍一遍和朋友介绍,感觉比较麻烦,这样汇总一下,方便朋友一次性安利。

ps. 每个工具其实在 B 站都有视屏科普,大佬们也可以上 B 站看看。

硬件

键盘: Anne pro 2

  • 全键自定义
  • tap key: 支持轻触方向键
  • magic key: CaspLk 也可以自定义设置为 FN 键
  • 键盘宏
  • 自定义 rgb
  • type-C 充电
  • USB + 蓝牙双模
  • 四蓝牙连接
  • 带电量显示:Fn2 + 8

缺点是没有静音版本,选了红轴默认不按到底,勉勉强强声音不大。
有个注意点是,当线连接电脑,没关掉蓝牙的话,默认还是蓝牙输入输出,线支持充电。


鼠标:罗技 M590

静音,用电久,自定义鼠标滚轮左右方向,双蓝牙,多设备支持 Logitech Flow,缺点是不好看。

鼠标:罗技 M720

同上款,自定义按键更多,据说有二三十个。缺点是不静音。


软件

ps. 本人是全 windows 开发。

伪 Linux 系统

wsl2 支持 docker 了,Terminus 配上个炫酷的半透明界面,oh my zsh 自带各种插件好用的哼,一套下来,windows 变 Linux,并且 pycharm 支持基于 wsl 开发,巴适得很。

关于 sz rz 传输 我这里有个 解决方案

Terminus 需要准备一下

wsl2 默认 root 用户

  • ubuntu config --default-user root

一个 windows 路径转换脚本,建议放到用户执行目录上,复制的 windows 路劲快速转换为 Linux。

#!/usr/bin/env python
# encoding: utf-8
# Created by zza on 2021/6/9 14:23
import re

from prompt_toolkit.clipboard import pyperclip

def convert_path():
path = pyperclip.pyperclip.paste() # r'/mnt/d/Programs/ActivityWatch'
wsl_result = re.match(r"(^[A-Z]:)\\(.*)", path)
if wsl_result:
_disk_symbol = wsl_result[1][:-1].lower()
wsl_path = f'\\mnt\\{_disk_symbol}\\{wsl_result[2]}'.replace('\\', '/')
pyperclip.pyperclip.copy(wsl_path)
print(wsl_path)
return wsl_path
elif re.match(r"^/mnt/([a-z])/(.*)", path):
win_result = re.match(r"^/mnt/([a-z])/(.*)", path)
tail = win_result[2].replace("/", "\\")
win_path = f'{win_result[1].upper()}:\\{tail}'
pyperclip.pyperclip.copy(win_path)
print(win_path)
return win_path
else:
print(f'nothing to do with {path}')
return

if __name__ == '__main__':
pyperclip.pyperclip.copy('D:\\Programs\\ActivityWatch')
convert_path()
print(pyperclip.pyperclip.paste())

  • 输入一下命令切换剪贴板里的路径,还是很舒服的。

  • 之前用的 cmder 感觉还行,但是和 terminus 相比,界面就丑了很多。


办公套件 to do list + outlook

待办不管是上班还是平时都用得上。
[[outlook 支持将邮件自动转入待办]]。

顺便说一下,outlook 的日历管理也很香。

手机日历上选择 Exchange 导入方式导入日历,就手机端和电脑端同步了。


分屏利器 PowerToys

这个每个 帖子 都讲烂了,自己看把。

顺便说说 windows 虚拟桌面(部分小伙伴不知道)

windows + ctrl + d 创建桌面
windows + ctrl + f4 删除桌面
windows + ctrl +方向键 快速移动

好了恭喜你拥有了无数个虚拟桌面。可以给桌面命名,把摸鱼桌面,学习桌面,工作桌面,看板桌面分开。

番茄时钟

google play 搜索 Tea Time

  • 支持多个定时器同时启动
  • 自定义是闹钟还是震动
  • 安卓桌面组件,快速启动,支持自定义外观。


随笔阅读需 3 分钟

买了个二手 mini 主机,刷成 ubunu 在家里当服务器用。

服务器配置

  • 天虹迷你主机
    • 电脑型号 - X64 兼容笔记本电脑(扫描时间:2022 年 11 月 15 日)
    • 操作系统 - Windows 10 专业版 64 位 (4.09.000904)
    • 处理器 - AMDA6-Series A6-1450 四核
    • 主板 - U14G-M ( AMD PCI standard host CPU bridge )
    • 内存 - 8 GB(极匠 DDR3L1600MHz)
    • 主硬盘 - 极匠 GJN128G(128GB/固态硬盘)
    • 显卡 - AMD Radeon HD 8250/8280G(512 MB/AMD)
    • 显示器 - NTP2401NT24GMB18()(52 英寸)
    • 声卡 - 瑞 ALC662 @AMD High Definition Audio Controller
    • 网卡 - 博通 BCM430N 80211n Network Adapter

小服务器

  • 需求
    • docker
    • 旁路由
    • 移动硬盘共享
  • 优先
    • 声音小
    • 耗电小
  • 测量耗电量
    • 小米智能插座

需要调查

  • 网口理速度
    • ethtool enp2s0
      • 1000baseT/Full 理论支持千兆网
  • 硬盘直接插 和 usb3.0 插入的差别
    • usb3.0 5 GPS 625 MB/s
    • SATA2 3Gbps 375MB/s -> 300MB/s
    • SATA3 6Gbps 750MB/s -> 600MB/s
  • 网口 与 usb3.0 or usb2.0 转网口的速率区别
    • USB3.0 传输速率达 USB 2.0 十倍,USB 2.0 的速率为 480 Mbps,而 USB 3.0 则可达到 4.8 Gbps。
    • 自带网口速度差不多 1000 MB/s
  • 网速测试
    • 内网测速 iperf3
      • 2.24 GBytes
      • 321 Mbits/sec
    • 一键测速 speedtest-cli
      • Download: 30.12 Mbit/s
      • Upload: 16.61 Mbit/s

U 盘启动器下载

  • 微 pe
    • 不能装 Linux
  • linux 下载 - ubuntu-22.04.1-live-server-amd64.iso
  • Universal-USB-Installer-2.0.0.8.exe

ubuntu 联 wifi

network:
version: 2
renderer: NetworkManager
wifis:
wlan0:
dhcp4: true
access-points:
"holypangci_5G":
password: "111111111"
dhcp6: true

功耗

  • 用的小米智能插座
  • 刚开机 啥也不跑 0.1 kWh
  • 当前功率 10w
  • 月功率 0.27 kWH

挂载硬盘

  • 挂载硬盘

  • nas docker 参考

  • 开机检测 在开机的时候 检测到移动硬盘 自动挂载

    • sudo lsblk
    • sudo fdisk -l
    • sudo mount -t auto /dev/sda2 /mnt/data
  • systemctl restart smbd.service

  • [[clash]]

    network:
version: 2
renderer: networkd
ethernets:
enp2s0:
dhcp4: true
optional: true

docker

  • 摸鱼工具使用 docker run -it --rm svenstaro/genact

  • docker 安装

$ sudo vim /etc/docker/daemon.json

{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ghcr.io",
"https://mirror.baidubce.com"
]
}

通过正在运行的 docker pod 获取 docker-compose.yaml

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose <container-name-or-id>
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose epic_bartik
sudo docker stop $(sudo docker ps -aq)

samba

硬盘读写测试

参考

  • ssd 读写
zza@zza-server:smb_tmp % time dd if=/dev/zero of=./testReadOrWrite bs=8k count=100000
记录了100000+0 的读入
记录了100000+0 的写出
819200000字节(819 MB,781 MiB)已复制,5.94344 s,138 MB/s
dd if=/dev/zero of=./testReadOrWrite bs=8k count=100000 0.16s user 4.67s system 80% cpu 6.003 total
zza@zza-server:smb_tmp % time dd if=./testReadOrWrite of=/dev/null bs=8k count=100000
记录了100000+0 的读入
记录了100000+0 的写出
819200000字节(819 MB,781 MiB)已复制,0.852206 s,961 MB/s
dd if=./testReadOrWrite of=/dev/null bs=8k count=100000 0.06s user 0.79s system 99% cpu 0.857 total
zza@zza-server:smb_tmp % time dd if=./testReadOrWrite of=./testReadAndWrite bs=8k count=100000
记录了100000+0 的读入
记录了100000+0 的写出
819200000字节(819 MB,781 MiB)已复制,6.46195 s,127 MB/s
dd if=./testReadOrWrite of=./testReadAndWrite bs=8k count=100000 0.13s user 5.27s system 83% cpu 6.507 total
  • 机械硬盘读写
zza@zza-server:tmp % time dd if=/dev/zero of=./testReadOrWrite bs=8k count=100000
记录了100000+0 的读入
记录了100000+0 的写出
819200000字节(819 MB,781 MiB)已复制,42.5608 s,19.2 MB/s
dd if=/dev/zero of=./testReadOrWrite bs=8k count=100000 0.28s user 7.69s system 18% cpu 42.591 total
zza@zza-server:tmp % time dd if=./testReadOrWrite of=/dev/null bs=8k count=100000
记录了100000+0 的读入
记录了100000+0 的写出
819200000字节(819 MB,781 MiB)已复制,0.835777 s,980 MB/s
dd if=./testReadOrWrite of=/dev/null bs=8k count=100000 0.08s user 0.76s system 99% cpu 0.840 total
zza@zza-server:tmp % time dd if=./testReadOrWrite of=./testReadAndWrite bs=8k count=100000
记录了100000+0 的读入
记录了100000+0 的写出
819200000字节(819 MB,781 MiB)已复制,42.0116 s,19.5 MB/s
dd if=./testReadOrWrite of=./testReadAndWrite bs=8k count=100000 0.29s user 8.90s system 21% cpu 42.039 total
随笔阅读需 4 分钟

  • [[服务器]]

  • 参考

  • 笔记本直接看这个人

    • 夏蒙乾
    • 但是最近(2023-02-09)还是不推荐买,能增加内存、ssd 的机型要么过于贵、要么其他方面不行。
    • [[笔记本挑选 2024-06-25]]
    • [[主装机配置清单]]

CPU 选择


总体配置

  • CPU+主板 B660M-PLUS + i7-12700F ¥3109

    • B660M-PLUS ¥1060
    • i7-12700F ¥2130
    • cpu 65 w
  • 散热 利民 PA120 ¥169

    • 光太亮了,不能直视。
  • 内存 骇客神条 16g x 2 = ¥1099.00

    • DDR4 会便宜很多,主板就得换一个(也会便宜很多)
  • 固态 宏碁 GM7000 1T 649

  • 电源 酷冷 GX850 ¥594

    • 后期如果要上 3090 还得是千瓦电源
  • 机箱 先马(SAMA)颜之神 钛灰色 ¥226

  • 风扇 利民 12 厘米风扇 3 个,安装在尾部和顶部 ¥53

    • 声音大
  • 显卡 3070 卡诺基 ¥2199

    • 购买日的前两天涨价了 200 块,卡诺基在翻新卡里算口碑不错的。
  • 总价 7449


功率

最简单粗暴的电源计算办法,把 CPU 和 GPU 的功耗加起来再加上 100W,可以粗略算出配置的整体功耗。】

电源 850w + 100w + 65w (cpu)

固态

空盘测试数据

AS SSD Benchmark

AS SSD Benchmark 2.0.7316.34247
------------------------------
Name: Fanxiang S690 2TB
Firmware: SN07443
Controller: stornvme
Offset: 16384 K - OK
Size: 1863.01 GB
Date: 2023/2/13 11:18:00
------------------------------
Sequential:
------------------------------
Read: 4215.19 MB/s
Write: 3722.04 MB/s
------------------------------
4K:
------------------------------
Read: 79.78 MB/s
Write: 222.97 MB/s
------------------------------
4K-64Threads:
------------------------------
Read: 2091.47 MB/s
Write: 1283.86 MB/s
------------------------------
Access Times:
------------------------------
Read: 0.016 ms
Write: 0.060 ms
------------------------------
Score:
------------------------------
Read: 2593
Write: 1879
Total: 5783
------------------------------

CrystalDiskMark

------------------------------------------------------------------------------
CrystalDiskMark 8.0.1 x64 (C) 2007-2021 hiyohiyo
Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

[Read]
SEQ 1MiB (Q= 8, T= 1): 4858.861 MB/s [ 4633.8 IOPS] < 1509.94 us>
SEQ 1MiB (Q= 1, T= 1): 4486.361 MB/s [ 4278.5 IOPS] < 233.60 us>
RND 4KiB (Q= 32, T= 1): 883.414 MB/s [ 215677.2 IOPS] < 143.61 us>
RND 4KiB (Q= 1, T= 1): 79.243 MB/s [ 19346.4 IOPS] < 51.61 us>

[Write]
SEQ 1MiB (Q= 8, T= 1): 4467.455 MB/s [ 4260.5 IOPS] < 1849.33 us>
SEQ 1MiB (Q= 1, T= 1): 4459.696 MB/s [ 4253.1 IOPS] < 234.96 us>
RND 4KiB (Q= 32, T= 1): 423.689 MB/s [ 103439.7 IOPS] < 304.18 us>
RND 4KiB (Q= 1, T= 1): 257.067 MB/s [ 62760.5 IOPS] < 15.85 us>

Profile: Default
Test: 1 GiB (x5) [E: 0% (0/1863GiB)]
Mode: [Admin]
Time: Measure 5 sec / Interval 5 sec
Date: 2023/02/13 11:28:35
OS: Windows 10 Professional [10.0 Build 22621] (x64)

写入 1T+ 数据后

AS SSD Benchmark 2

AS SSD Benchmark 2.0.7316.34247
------------------------------
Name: Fanxiang S690 2TB
Firmware: SN07443
Controller: stornvme
Offset: 16384 K - OK
Size: 1863.01 GB
Date: 2023/2/14 11:04:19
------------------------------
Sequential:
------------------------------
Read: 4150.81 MB/s
Write: 4084.55 MB/s
------------------------------
4K:
------------------------------
Read: 63.06 MB/s
Write: 204.81 MB/s
------------------------------
4K-64Threads:
------------------------------
Read: 2089.18 MB/s
Write: 1283.93 MB/s
------------------------------
Access Times:
------------------------------
Read: 0.087 ms
Write: 0.071 ms
------------------------------
Score:
------------------------------
Read: 2567
Write: 1897
Total: 5776
------------------------------

CrystalDiskMark 2

------------------------------------------------------------------------------
CrystalDiskMark 8.0.1 x64 (C) 2007-2021 hiyohiyo
Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

[Read]
SEQ 1MiB (Q= 8, T= 1): 4828.908 MB/s [ 4605.2 IOPS] < 1728.61 us>
SEQ 1MiB (Q= 1, T= 1): 4506.055 MB/s [ 4297.3 IOPS] < 232.57 us>
RND 4KiB (Q= 32, T= 1): 808.553 MB/s [ 197400.6 IOPS] < 156.88 us>
RND 4KiB (Q= 1, T= 1): 71.322 MB/s [ 17412.6 IOPS] < 57.27 us>

[Write]
SEQ 1MiB (Q= 8, T= 1): 4393.255 MB/s [ 4189.7 IOPS] < 1906.56 us>
SEQ 1MiB (Q= 1, T= 1): 4383.751 MB/s [ 4180.7 IOPS] < 239.06 us>
RND 4KiB (Q= 32, T= 1): 405.718 MB/s [ 99052.2 IOPS] < 322.86 us>
RND 4KiB (Q= 1, T= 1): 247.658 MB/s [ 60463.4 IOPS] < 16.43 us>

Profile: Default
Test: 1 GiB (x5) [E: 66% (1226/1863GiB)]
Mode: [Admin]
Time: Measure 5 sec / Interval 5 sec
Date: 2023/02/14 11:09:57
OS: Windows 10 Professional [10.0 Build 22621] (x64)

随笔阅读需 4 分钟

Microsoft-to-do and Calendar synchronization problem

I use Microsoft-to-do to make a daily plan, but sometimes, I need to check-up if there is free time to give a session or something else. I need my Microsoft-to-do plan will show in Outlook.com's Calendar. Make a better way to me view my schedule.

我使用 Microsoft to do 来制定每日计划,但有时,我需要检查是否有空闲时间进行会议或其他活动。我需要我的 Microsoft 待办计划将显示在 Outlook.com 的日历。给我一个更好的方法来查看我的时间表。

I use Power Automate to make a action for create event when I made item at Microsoft-to-do. However, we need to write the reminder time when creating the to-do item.

在我创建一个待办时,Power Automate 会收到通知,并创建一个日历事件。 但是,我们需要在创建待办时,同时写上提醒时间。

English Step

First click Power Automate website and login with your Microsoft-account.

  • My flows - New flow - Automated cloud flow
    • give the flow a name. eg to-do Calendar sync
    • the triggers use when a task is add - Outlook Tasks
    • click create.
  • Choses the folder where you will create tasks
  • click New step
  • search Condition - Control
    • Reminder | is not equal to | (empty)
  • If yes
    • search Create event (V3) - Outlook.com
      • Calendar id - your Calendar name
      • Subject - Subject (with a check sign box)
      • Start time - Reminder Date-Time (with a check sign box)
      • End time - Reminder Date-Time (with a check sign box)
    • click Add action (if you need email notice)
    • search Send an email(V2) - Outlook.com
      • To - your email
      • Subject - Auto create by To-Do : Subject(with a check sign box)
      • Body
        • The context is decide by you.
  • If no
    • do nothing
  • Save

中文步骤

使用 outlook 邮箱账号登录 Power Automate

  • 我的流 - 新流 - 自动化云端流
    • 随便起个名字
    • 搜索触发器 在添加任务时 - Outlook Tasks
    • 点击创捷
  • 选择你会创建提醒任务的文件夹
  • 点击新步骤
  • 搜索 条件 - 控件
    • 提醒时间 | 不等于 | (放着不写)
  • 如果是
    • 搜索 创建事件 (V3) - Outlook.com
      • 日历 id - 你使用的日历的名字
      • 主题 - 主题 (有个打钩的框的)
      • 开始时间- 提醒日期(有个打钩的框的)
      • 结束时间 -提醒日期(有个打钩的框的)
    • 点击添加操作
    • 搜索 发送电子邮件 (V2) - Outlook.com
      • 到 - 填自己的邮箱
      • 主题 - 自动创建事件 : 主题(有个打钩的框的)
      • 正文
        • 随便写啦
  • 如果不是
    • 不动
  • 保存

Finish

Ok,now,when you create a to-do item with Reminder-date-time,it will be syncing in a few minutes. And send an email to you

好了,现在当你创建一个待办事项,并且有提醒时间的时候,他将会在一段时间内同步到日历上。并在完成后发送一份邮件到你填写的邮箱里。

随笔阅读需 3 分钟

  • 此处用 pull request 自动转入待办做一个创建待办事项的案例。
  • 在 outlook 邮件中,右键标记邮件可以将邮件自动转入微软的待办清单中。

pull request 自动转入待办

  • 登录 power automate

  • 右侧栏点击创建。

    • 自动化云端流。

  • 流名称随意写 例如 pr to todolist
  • 触发器 搜索 outlook 选择 如果有新邮件到达 (V2)
    • 注意是 outlook.com v2 版本,不要选择 office 365 outlook 版本。

  • 文件夹根据自己需求选择,我这里选择收件箱

  • 点击显示高级选项。

    • 主题筛选器处,根据需求,输入 pull request
    • 也可以自定义收件人或者其他属性。
  • 点击 新步骤 搜索 标记电子邮件

    • 同样选择 Outlook.com 版本。

  • 消息 ID 点击后选择 消息 ID

  • 点击保存。

✌️好了可以用了另外一个邮箱写一封标题包含 pull request 的邮件,测试一下🎇。


自定义待办事项

  • 点击 新步骤 搜索 Outlook task

  • 点击 操作 选择 创建任务 (V2)

  • 输入以下下内容。

  • 点击保存。 可以测试。
随笔阅读需 2 分钟

  • 找一个更好的网页笔记插件
  • 结论: pagenote + python 脚本整合进笔记系统中。

pagenote

  • 优点
    • 标记方便
  • 缺点
    • 不支持批量导出
    • 格式也不符合markdown规范
#!/usr/bin/env python
# encoding: utf-8
# @Time : 2021/12/24 11:57:31
# @author : zza
# @Email : z740713651@outlook.com
# @File : pagenote_convert.py

import re

from prompt_toolkit.clipboard import pyperclip


def main(header_level: int = 2):
txt_data = pyperclip.pyperclip.paste()
print(re.sub("\n[^(> \* )]", "\n- ", txt_data))
notes = txt_data.split("> * ")
txt_data = "---\n\n".join(notes)
# 移除尾部连接
if "open in [pagenote.cn]" in txt_data:
txt_data, _ = txt_data.split("open in [pagenote.cn]")
# 首部标题改为一级
if header_level == 2:
txt_data = txt_data.replace("## [", "# [")
# 首行空行
txt_data = txt_data.replace("\n", "\n\n", 1)

# 末行加上分隔符
txt_data = txt_data + "---\n"
pyperclip.pyperclip.copy(txt_data)
print(txt_data)


if __name__ == "__main__":
main()

简悦

  • 优点
    • 支持导出 支持划重点
    • 支持备注
    • 能整个网页保存
  • 缺点
    • 写备注不太方便
    • 写了笔记的网页没有汇总
    • 需要进入阅读模式才能写笔记
    • 格式也不符合markdown规范
随笔阅读需 1 分钟

  • [[笔记系统]] - markdown to anki
    • mdanki
      • js 写的
      • 导入方便
      • markdown header 识别有问题
    • ankdown
      • python3
      • 使用报错
    • markdown-anki-decks
      • python3
      • 单个文件单个数据库 可以通过命令放入同一组
      • 推荐

markdown-anki-decks 使用指南

  • anki 批量导入插件
  • anki 同步插件
  • 在打开 anki 软件的情况下,输入以下命令,导入 markdown 文件作为抽认卡
    • mdankideck .\note\docs\anki E:\anki --sync --prefix "md::" --delete
    • E:\anki 文件夹作为 anki 文件数据的存放地,删除不影响 anki 使用。
    • --sync 表示自动同步到 anki 软件上 需要 anki 软件打开。
    • --delete 智能删除笔记上已丢失的条目。
    • --prefix "md::"表示在 anki 上用一个名为 md 的库存储,旗下包含多个字库。

cat .\note\docs\anki\tmp.md

# 文章标题

## 二级标题 1 (抽认卡 A 的提示语句)

文章内容 A(抽认卡显示内容 A)

此处若改动文章内容 A,则 anki 中会删除抽认卡 A 并重新导入新的抽认卡 A。

## 二级标题 2 (抽认卡 B 的提示语句)

文章内容 A(抽认卡显示内容 B)

随笔阅读需 2 分钟