news 2026/7/14 23:21:12

脚本工具 批量md转html

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
脚本工具 批量md转html

md转html,便于打包进APP

就算以后安卓不兼容,APP不能用,自己做个离线网页也能用一辈子

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Termux 批量 md → 手机竖屏 html """ import os import pathlib import markdown from datetime import datetime # 1. 待遍历的 md 目录 SRC_DIR = "/storage/emulated/0/Android/LLS_2025/Xmind/测试/Linux内核文章" # 2. 输出 html 的根目录 DST_DIR = "/storage/emulated/0/Android/LLS_2025/Xmind/测试/linux内核文章转换" # 3. 极简手机竖屏 CSS CSS = """<style> body{margin:0;padding:1em;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;line-height:1.6;font-size:15px;color:#222;background:#fff} h1,h2,h3,h4,h5,h6{margin-top:1.2em;margin-bottom:.6em;font-weight:600} pre{background:#f6f8fa;padding:.8em;border-radius:4px;overflow-x:auto} code{background:#f6f8fa;padding:.2em .4em;border-radius:3px;font-size:90%} blockquote{margin:0;padding-left:1em;border-left:4px solid #dfe2e5;color:#6a737d} img{max-width:100%;height:auto} table{border-collapse:collapse;width:100%} th,td{border:1px solid #ddd;padding:.4em} th{background:#f6f8fa} </style>""" def ensure_dir(p: pathlib.Path): p.mkdir(parents=True, exist_ok=True) def md_to_html(md_text: str) -> str: """md -> 完整 html 字符串""" md = markdown.Markdown(extensions=["extra", "codehilite", "toc"]) content = md.convert(md_text) title = md.Meta.get("title", [""])[0] if hasattr(md, "Meta") else "" if not title: # 取第一行#标题或文件名 title = content.splitlines()[0].replace("<h1>", "").replace("</h1>", "").strip() html = f"""<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>{title}</title> {CSS} </head> <body> {content} <hr> <small>Generated by 凉安 @ {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}</small> </body> </html>""" return html def main(): src_path = pathlib.Path(SRC_DIR).expanduser() dst_path = pathlib.Path(DST_DIR).expanduser() ensure_dir(dst_path) if not src_path.is_dir(): print("❌ 源目录不存在:", src_path) return md_files = list(src_path.rglob("*.md")) if not md_files: print("⚠️ 未找到任何 .md 文件") return for md_file in md_files: rel = md_file.relative_to(src_path).with_suffix(".html") out_file = dst_path / rel ensure_dir(out_file.parent) html = md_to_html(md_file.read_text(encoding="utf-8")) out_file.write_text(html, encoding="utf-8") print("✅", out_file) print(f"🎉 全部完成,共转换 {len(md_files)} 个文件 → {dst_path}") if __name__ == "__main__": main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 3:47:25

26、深入了解 Windows 系统管理工具

深入了解 Windows 系统管理工具 1. 工具概述 在 Windows 系统管理中,有一系列实用的工具可以帮助我们完成各种任务,如管理文件、获取安全标识符、收集系统信息、终止进程、查看进程信息以及了解用户登录情况等。下面将详细介绍这些工具的功能和使用方法。 2. PsFile 2.1 …

作者头像 李华
网站建设 2026/7/15 3:46:49

29、VMMap:强大的内存分析工具使用指南

VMMap:强大的内存分析工具使用指南 1. VMMap的启动与追踪 VMMap在启动时会将一个DLL注入到目标进程中,并拦截其虚拟内存API调用。它会捕获内存分配的类型、大小、内存保护以及分配时的调用栈信息。在64位Windows系统中,VMMap可以对x86和x64程序进行检测和追踪,并相应地启…

作者头像 李华
网站建设 2026/7/15 5:29:23

34、SigCheck工具使用指南:文件扫描、签名验证与安全分析

SigCheck工具使用指南:文件扫描、签名验证与安全分析 1. 证书列表参数说明 SigCheck提供了一系列用于列出证书的参数,具体如下: | 参数 | 描述 | | — | — | | -t | 列出指定计算机证书存储中的证书(默认是所有计算机存储) | | -tu | 与 -t 相同,但列出用户证书存…

作者头像 李华
网站建设 2026/7/15 4:40:22

AI时代你不拥抱它,就得不到它的爱,信不信由你

AI时代你不拥抱它&#xff0c;就得不到它的爱&#xff0c;信不信由你 凌晨三点&#xff0c;你还在与一段顽固的代码搏斗&#xff0c;而隔壁工位的老王&#xff0c;早已用AI生成完整模块&#xff0c;正悠然地刷着短视频——这&#xff0c;就是拥抱与否的残酷分野。 一、幻想与现…

作者头像 李华
网站建设 2026/7/15 4:37:34

【API 设计之道】09 版本演进策略:激进废弃与平滑过渡的艺术

大家好&#xff0c;我是Tony Bai。欢迎来到我们的专栏 《API 设计之道&#xff1a;从设计模式到 Gin 工程化实现》的第九讲。在前面的讲解中&#xff0c;我们已经构建了一个设计规范、传输高效、且具备防御能力的 API 系统。现在&#xff0c;假设这个系统已经上线运行了一年&am…

作者头像 李华