🔧 经验交流
轻文本文件格式转换 Everything全文检索 | 天语手机去广告 | 豆包沟通记录 | 链接窗口属性录
轻文本文件格式转换
轻文本文件格式定义
首先我们对轻文本文件进行定义。这里说的清文本通常是指在AI中进行交流的文本文件,典型的就是Markdown文件和HTML文件。但是呢,它们的输出通常是版式文件形式,即PDF,所以可能会有之间的相互转换关系问题。
件格式转换通常分为两大类。第一类是工作过程流式文件的转换,比如HTML和和Markdown之间的文件转换。
另外一种是流式文件向版式文件的转换,即固化出最终成果的输出。
其实还有一种大家很热门的,就是把PDF转成文本文件或Word文件或怎么样。我这个不太感兴趣,因为我认为版式文件就是不能动的!你用的只不过是其中的素材而已。所以把版式文件格式再转换成流式文件的非常美观的格式,不是我所需要的。
需求
进入正题,我通常现在使用Markdown写文本,会转成HTML放到我的个人网站,这是我第一个需求。另外有必要的时候,还需要把这里的Markdown文件或者是HTML文件转成PDF给别人使用。因此形成了我在这个三种文件之间的格式转换的需求。
其实三种文件转换的工具很多,通常Markdown的文件转成HTML和PDF都有。我也测试过不少的东西,但是总是不是那么特别理想。
要么还需要准备很多个插件,要不然还需要这样那样,还有些中文识别、字乱码等等之类。也包括我常用的微软的Edge浏览器,它输出的时候呢,汉字形态不可复制也是我不喜欢的。
经过和豆包交流,最终我定为用Pandoc来解决。单一的各种文件之间的转换,像MD to PDF、MD to HTML、MD和HTML互转等,都很容易实现。我感觉它比较麻烦,因此我提出了一个需求。建立一个文件夹是Input,一个文件夹Output,执行程序另说。写一个批处理文件,将input的任何文件,当然了,也就是HTML和MD转到输出上去。命令呢相当于是星点星,输入的是星点星,输出呢是星点PDF、星点HTML和星点MD。
经过一番折腾,很快就实现了。为了提升输出质量,我在PDF这个格式上增加了页眉和页脚的页码调用。
同理,word文件也可以按照这个策略进行转换。
目录结构和准备
我的目录结构如图。
C:\pandoc> │ pandoc.exe │ wkhtmltoimage.exe │ wkhtmltopdf.exe ├─input ├─output └─templates footer.html header.html template.html
Pandoc目录放在C盘的根部下,主程序exe文件在pandic下,也包括一些辅助的exe文件。Pandoc下面设了三个子目录,input、output、templates。
Input用于放置源文件,主要是MD格式后缀和HTML后缀文件。Output是转换后存放输出文件的位置。Templates文件夹主要是放HTML的模板使用,也包括页眉和页脚的那个格式文件。
具体操作
首先按照AI给我提供的信息,去下载Pandoc和其他两个准备资料(wkhtmltoimage和wkhtmltopdf)。随后逐个测试单个文件的转换功能。单一文件转换很容易很快,一下就过去了。就是PDF转换,虽然很容易过,但是我的要求是带页眉、带页脚,页脚的号码是自动产生的,等等之类。这个费了一番功夫。
准备工作都做完了,最后的工作是写bat收尾。不论怎么讲,bat收尾还是花了点时间,因为它会联动很多东西,一会修改它,还要修改一些其他的辅助文件。
测试使用效果
最后进行全面测试,在Input文件夹里面放了MD文件若干,HTML文件若干。然后执行BAT文件,Output文件夹产生三类后缀的文件,分别是MD、HTML和PDF,文件名与原始名一样。PDF的页眉页脚支持是在两个html文件里面进行修改,也包括它的页边距之类的,是通过BAT文件进行修改。
其实我这里最兴奋的是input里边的星点星文件,到output里边也是原来的文件名和新后缀!
技术成果固化
最终的技术成果固化包括三个bat文件,一个是实现“*.md” to “*.html”,一个是实现“*.html” to “*.md” ,第三个是实现“*.*” to “pdf”,最后一个是实现“*.*” to “*.*”(任何对任何的输出三种格式)。
如下成果的案例是任何对任何的输出三种格式的批处理,路径是建立在我的如下文件目录结构基础上上,文件支持转换PDF的CSS格式、页眉和页脚,在这里就不陈述了。bat文件仅供参考。本人不对操作过程产生的任何其它风险负责。
工作路径:
C:\pandoc> │ pandoc.exe │ wkhtmltoimage.exe │ wkhtmltopdf.exe │ ├─input │ output.html │ test.html │ ├─output │ output.pdf │ test.md └─templates footer.html header.html template.html
bat内容:
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: ========== 配置区【所有参数在这里统一修改】 ==========
set "PANDOC=C:\pandoc\pandoc.exe" :: pandoc程序路径
set "WKHTML=C:\pandoc\wkhtmltopdf.exe" :: wkhtmltopdf程序路径
set "TEMPLATE=file:C:\pandoc\templates\template.html" :: pandoc转换HTML正文模板
set "HEADER_HTML=C:\pandoc\templates\header.html" :: PDF页眉HTML文件
set "FOOTER_HTML=C:\pandoc\templates\footer.html" :: PDF页脚HTML文件
set "INPUT_DIR=C:\pandoc\input" :: 待转换源文件目录
set "OUT_ROOT=C:\pandoc\output" :: 转换输出目录
:: PDF页面边距,上下左右预留页眉页脚空间
set "MARGIN_TOP=25mm" :: 页面上边距(给页眉预留空间)
set "MARGIN_BOTTOM=25mm" :: 页面下边距(给页脚预留空间)
set "MARGIN_LEFT=25mm" :: 页面左边距
set "MARGIN_RIGHT=25mm" :: 页面右边距
:: 页眉页脚位置控制参数
set "HEADER_SPACING=3" :: 页眉与正文之间的间距(mm),数值变大,页眉远离正文
set "FOOTER_SPACING=8" :: 页脚与正文之间的间距(mm),数值变大,页脚远离正文
:: ======================================================
if not exist "%OUT_ROOT%" mkdir "%OUT_ROOT%" :: 如果输出目录不存在,则创建文件夹
echo ==============================================
echo Pandoc批量转换工具【header+footer双外部HTML模式】
echo 输入目录:%INPUT_DIR%
echo 输出目录:%OUT_ROOT%
echo PDF页边距:上%MARGIN_TOP% 下%MARGIN_BOTTOM% 左%MARGIN_LEFT% 右%MARGIN_RIGHT%
echo 页眉文件:%HEADER_HTML%
echo 页脚文件:%FOOTER_HTML%
echo 页眉间距:%HEADER_SPACING% mm
echo 页脚间距:%FOOTER_SPACING% mm
echo ==============================================
echo.
:: 循环遍历input目录下全部文件
for %%i in ("%INPUT_DIR%\*.*") do (
set "FILE=%%~fi"
set "NAME=%%~ni"
set "EXT=%%~xi"
echo 处理文件:%%~nxi
if /i "!EXT!"==".md" (
:: MD -> HTML:Markdown转HTML,使用template模板
"%PANDOC%" "!FILE!" --template="!TEMPLATE!" -o "%OUT_ROOT%\!NAME!.html"
if !errorlevel! equ 0 (
echo ✅ md->html 成功
) else (
echo ❌ md->html 失败
)
:: MD -> PDF:先调用pandoc生成临时HTML,再用wkhtmltopdf转为PDF
set "TMP_HTML=%OUT_ROOT%\!NAME!_tmp.html"
"%PANDOC%" "!FILE!" --template="!TEMPLATE!" -o "!TMP_HTML!"
if !errorlevel! equ 0 (
echo 开始wkhtmltopdf转换PDF
"%WKHTML%" --encoding utf-8 --page-size A4 --enable-javascript --enable-local-file-access --load-error-handling ignore --margin-top 25mm --margin-bottom 25mm --margin-left 25mm --margin-right 25mm --header-html "!HEADER_HTML!" --header-spacing !HEADER_SPACING! --footer-html "!FOOTER_HTML!" --footer-spacing !FOOTER_SPACING! "!TMP_HTML!" "%OUT_ROOT%\!NAME!.pdf"
if !errorlevel! equ 0 (
echo ✅ md->pdf 成功
) else (
echo ❌ md->pdf 失败
)
) else (
echo ⚠️ 跳过PDF生成:临时HTML构建失败
)
if exist "!TMP_HTML!" del "!TMP_HTML!" :: 删除临时HTML文件
) else if /i "!EXT!"==".html" (
:: HTML -> MD:HTML反向转回Markdown
"%PANDOC%" "!FILE!" -f html -t markdown -o "%OUT_ROOT%\!NAME!.md"
if !errorlevel! equ 0 (
echo ✅ html->md 成功
) else (
echo ❌ html->md 失败
)
copy "!FILE!" "%OUT_ROOT%\!NAME!.html" >nul :: 将原HTML原样复制到输出目录
:: HTML -> PDF:直接把HTML转PDF
echo 开始wkhtmltopdf转换PDF
"%WKHTML%" --encoding utf-8 --page-size A4 --enable-javascript --enable-local-file-access --load-error-handling ignore --margin-top 25mm --margin-bottom 25mm --margin-left 25mm --margin-right 25mm --header-html "!HEADER_HTML!" --header-spacing !HEADER_SPACING! --footer-html "!FOOTER_HTML!" --footer-spacing !FOOTER_SPACING! "!FILE!" "%OUT_ROOT%\!NAME!.pdf"
if !errorlevel! equ 0 (
echo ✅ html->pdf 成功
) else (
echo ❌ html->pdf 失败
)
) else (
echo ⏭️ 跳过不识别后缀:!EXT!
)
echo.
)
echo ==============================================
echo 全部任务执行完毕
echo 输出文件目录:%OUT_ROOT%
echo ==============================================
pause
图片格式转webp
与轻文本格式转换相同思路,实现jpg和png转换成webp图片格式,便于轻量化使用。转换氛围两种,一种是有损转换,一种是无损转换。不展开。
要转换的文件放在input目录,运行bat转换后的文件放在了output。
同理,视频文件也可以按照这个策略进行转换便于浏览器使用,甚至输出webm格式。
目录格式
C:\ffmpeg> ├─bin | ffmpeg.exe | ffplay.exe | fprobe.exe ├─doc ├─input ├─output └─presets
无损代码
@echo off
chcp 65001 >nul
set "BASE=C:\ffmpeg"
set "SRC=%BASE%\input"
set "DST=%BASE%\output"
set "FFMPEG=%BASE%\bin\ffmpeg.exe"
:: 无损模式下 -quality 参数失效,注释保留仅作对照参考
set "QUALITY=85"
if not exist "%DST%" mkdir "%DST%"
echo.
echo === JPG/PNG ^> WebP 【无损】批量转换 (FFmpeg libwebp) ===
echo FFMPEG: %FFMPEG%
echo 源目录: %SRC%
echo 输出目录: %DST%
echo 模式: LOSSLESS 无损WebP(保留PNG透明通道,画质无损失,文件更大)
echo.
if not exist "%FFMPEG%" (
echo 【错误】找不到 ffmpeg.exe
pause
exit /b
)
set "count=0"
set "skip=0"
for %%f in ("%SRC%\*.jpg" "%SRC%\*.png") do (
if not exist "%DST%\%%~nf.webp" (
echo 正在转换: %%~nxf
:: ===================== 修改点 =====================
:: -lossless 1 开启libwebp无损编码
:: 无损模式不要写 -quality,该参数在lossless下无效
"%FFMPEG%" -i "%%f" -c:v libwebp -lossless 1 "%DST%\%%~nf.webp"
:: ==================================================
set /a count+=1
) else (
echo 跳过已存在: %%~nf.webp
set /a skip+=1
)
)
echo.
echo ======================================
echo 本次完成: %count% 个文件
echo 跳过已有: %skip% 个文件
echo ======================================
pause
有损代码(85%精度)
@echo off
chcp 65001 >nul
set "BASE=C:\ffmpeg"
set "SRC=%BASE%\input"
set "DST=%BASE%\output"
set "FFMPEG=%BASE%\bin\ffmpeg.exe"
set "QUALITY=85"
if not exist "%DST%" mkdir "%DST%"
echo.
echo === JPG/PNG ^> WebP 批量转换 (FFmpeg libwebp) ===
echo FFMPEG: %FFMPEG%
echo 源目录: %SRC%
echo 输出目录: %DST%
echo 质量: %QUALITY%
echo.
if not exist "%FFMPEG%" (
echo 【错误】找不到 ffmpeg.exe
pause
exit /b
)
set "count=0"
set "skip=0"
for %%f in ("%SRC%\*.jpg" "%SRC%\*.png") do (
if not exist "%DST%\%%~nf.webp" (
echo 正在转换: %%~nxf
"%FFMPEG%" -i "%%f" -c:v libwebp -quality %QUALITY% "%DST%\%%~nf.webp"
set /a count+=1
) else (
echo 跳过已存在: %%~nf.webp
set /a skip+=1
)
)
echo.
echo ======================================
echo 本次完成: %count% 个文件
echo 跳过已有: %skip% 个文件
echo ======================================
pause
Everything 全文检索
📌 开启内容索引
- 菜单栏 工具 → 选项
- 左侧选择 索引 → 内容
- 勾选 启用内容索引
- 设置:
- 仅包含文件夹: 添加常用文档目录(如 D:\文档)
- 仅包含文件类型:
*.txt;*.docx;*.pdf;*.md;*.py
- 点击确定,等待索引完成
📌 搜索语法
| 需求 | 输入示例 | 说明 |
|---|---|---|
| 搜包含某词的文件 | content:"项目预算" | 英文双引号包裹短语 |
| 限定文件类型 | .pdf content:"合同条款" | 只在 PDF 中搜 |
| 同时匹配文件名+内容 | 报告 content:"2024Q3" | 文件名含"报告"且内容含"2024Q3" |
| 多条件 AND | content:验收 content:标准 | 内容同时含这两个词 |
| 排除某词 | content:机器学习 !content:深度学习 | 含前者不含后者 |
天语手机去广告
📌 核心思路
- ADB 调试 → 冻结/删除系统应用
- 替换桌面(微软桌面 + 酷安)
- 关闭应用商店推送
📌 开启 ADB 调试(天语 i13)
- 打开 设置
- 滑到底部 → 关于手机(或"我的设备")
- 找到 版本号 → 连续点击 7 次
- 返回设置 → 系统 或 更多设置 → 开发者选项
- 打开 USB 调试
📌 ADB 操作命令
📌 关闭系统广告(手动设置)
- 桌面设置: 长按空白处 → 关闭"热门推荐、猜你喜欢"
- 系统广告总开关: 设置 → 搜索"广告" → 关闭"个性化广告"
- 安全设置: 设置 → 安全 → 关闭"应用推荐"
- 应用商店: 我的 → 设置 → 关闭"推荐通知、个性化推荐"
- 通知管理: 设置 → 通知 → 显示系统应用 → 关闭"精品推荐、热门推荐"
- 重启手机
豆包沟通记录
下面是天语i13 专用、一步步照做即可的关闭“热门推荐/系统广告”教程(适配它的原生安卓系统):
一、桌面热门推荐、文件夹猜你喜欢
- 长按桌面空白处 → 桌面设置
- 关闭:热门推荐、智能推荐、猜你喜欢、负一屏(有就关)
- 打开任意文件夹 → 点右上角设置 → 关闭猜你喜欢
二、系统广告总开关(最重要)
-
设置 → 搜索框输入:广告
-
进入广告与隐私
-
全部关闭:
- 个性化广告
- 个性化推荐
- 广告跟踪/设备标识
-
返回 → 搜索系统广告 → 关闭系统工具广告(如出现)
三、安全里的应用推荐(必关)
- 设置 → 安全 → 更多安全设置
- 关闭:应用推荐/安装推荐
四、应用商店推荐
- 打开应用商店 → 我的 → 设置
- 关闭:推荐通知、热门应用、活动提醒、个性化推荐
五、通知栏里的“热门推荐/精品推荐”
- 设置 → 通知与状态栏 → 应用通知管理
- 右上角点“显示系统应用”
- 找到并关闭:
- 精品推荐、热门推荐、系统服务、智能服务、资讯推送
- 每个都点进去 → 关闭允许通知
六、文件管理、浏览器推荐
- 文件管理 → 设置 → 关闭内容推荐/热门资讯
- 浏览器 → 设置 → 关闭首页推荐/热门内容
七、最后一步
重启手机。
做完这7步,天语i13 的“热门推荐、弹窗、资讯广告”基本就干净了。
链接窗口属性
target 值 作用范围 _self 在当前 iframe 内加载(你原来的问题根源) _parent 在父级 frame 加载(跳出一层) _top 在最顶层窗口加载(跳出所有嵌套) _blank 在新标签页打开