Webpage html export pro

1. 新增功能

插件设置所有功能都实现了i18n国际化

1.1. 代码块复制、换行、折叠/展开 语言标识

# A Simple Command-Line Todo List Manager
# Demonstrates core Python concepts: functions, lists, loops, input handling, error handling

def display_todos(todos: list) -> None:
    """Display all todo items with their indices"""
    if not todos:
        print("\nYour todo list is empty!")
        return
    
    print("\n=== Your Todo List ===")
    for idx, todo in enumerate(todos, 1):
        print(f"{idx}. {todo}")
    print("======================\n")

def add_todo(todos: list) -> None:
    """Add a new todo item to the list"""
    todo = input("Enter the new todo item: ").strip()
    if todo:
        todos.append(todo)
        print(f"'{todo}' has been added to your list!")
    else:
        print("Error: Todo item cannot be empty!")

def delete_todo(todos: list) -> None:
    """Delete a todo item by its index"""
    display_todos(todos)
    if not todos:
        return
    
    try:
        index = int(input("Enter the number of the todo to delete: ")) - 1
        if 0 <= index < len(todos):
            deleted = todos.pop(index)
            print(f"'{deleted}' has been removed from your list!")
        else:
            print("Error: Invalid todo number!")
    except ValueError:
        print("Error: Please enter a valid number!")

def main() -> None:
    """Main function to run the todo list manager"""
    todos = []
    print("Welcome to the Todo List Manager!")
    
    while True:
        print("\nMenu:")
        print("1. View all todos")
        print("2. Add a new todo")
        print("3. Delete a todo")
        print("4. Exit")
        
        choice = input("Enter your choice (1-4): ").strip()
        
        if choice == "1":
            display_todos(todos)
        elif choice == "2":
            add_todo(todos)
        elif choice == "3":
            delete_todo(todos)
        elif choice == "4":
            print("Thank you for using the Todo List Manager! Goodbye!")
            break
        else:
            print("Error: Please enter a valid choice (1-4)!")

if __name__ == "__main__":
    main()

1.2. 代码块行高亮功能

注:仅在导出后的网页的代码块中才会有背景高亮效果,如想要在obsidian中也实现此效果,请安装此ob插件
GitHub - Ryanu9/obsidian-highlight-line
fd57a9a0b4ed98b014925bf10c6fe632_md5.gif
使用 >>>>空格 即可高亮本行

>>>> Print("这是一行高亮代码")
print("这是没有高亮的代码")

高亮背景颜色可以在 插件设置->代码块->代码行高亮中自定义调节

1.3. 图片缩放

支持点击图片,然后滚动缩放
fbe0e984c6acaaae7bc03650fd6358ec_md5.png

1.4. 长截图优化

针对长截图会自动折叠
a3264e1aa36be9f446ef680172cce571_md5.png

1.5. 笔记属性显示

在文章标题下方会显示笔记的yaml属性
可在插件设置中调节是否默认展开
ade2bab9eae45f9546ac2a9a2335f1c8_md5.gif

1.6. 大纲滚动高亮

大纲标题支持跟随滚动高亮
大纲默认折叠1级标题(可在插件设置中进行调整)
bc17ecb627c5671207400bc06100f7fa_md5.gif

1.7. 文件夹笔记数量统计

1ce9b3ab8e8cc8a8ae0550f1383bcbb5_md5.png

1.8. 支持附件下载

这是一个测试附件

hello.txt

1.9. 支持脚注

这是一个脚注[1]

1.10. giscus评论区支持

giscus
b9a849428085b4869dc3c020cc1214bc_md5.png
请复制这里的js代码,填写到插件设置中(会自动解析)
c14c865512294dab9541ecfbc065f674_md5.png

1.11. 文章加密功能

7bdfa4967237dcfc8e375e4b0a7ecc62_md5.png

  • 插件设置中开启此功能后,对于带有 locked:true 的笔记,将会上锁,
  • 为笔记添加 password 属性,可以单独设置此笔记的密码,如果没有设置,则为默认密码
locked: true
password: "123456"

fbe7d2a265a0870edff4fa4c6cf73aee_md5.png
测试(加密页面) <-使用密码 123456 解锁

1.12. 版权信息、底部链接

底部增加版权信息和底部链接可以在插件中设置
667fe048f1bb467a900311345541a955_md5.png

1.13. 顶部导航栏

插件设置中可以开启顶部导航栏,并设置你想要的内容和链接
这个可以用于充当 友链、更新日志、个人介绍 等等地方(只需要把对应笔记的相对路径填入即可)
88e97d85b0044eb2f6b062e06e2ab6cc_md5.png

1.14. 模态搜索框(半成品)

使用 ctrl+k 即可对全文进行检索,按下 tab 可以查看搜索内容的上下文摘要
a1666a11337b0d560bb2eb1b62574a46_md5.png

1.15. 笔记创建、更新时间显示

9d7b4ef56a5965acab01207d754052a8_md5.png

1.16. Vercel Insights

如果你使用 vercel 部署此博客,那么您可以在插件设置中开启此功能
6bb51ceaa84ee8336c62d06d7c87279e_md5.png
如何使用vercel部署博客,自己百度or谷歌

1.17. 导出配置保存功能

您可以保存多个你的导出配置,并可以自由更新、增加、删除您的导出配置
19dddf47cd7630dddf48718cae2a0d24_md5.png

1.18. 其他各种小细节优化

东西太多,无法一一列举,

最后祝大家2026,新年快乐!


  1. 2026,新年快乐↩︎