[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【完结】epub文档网页的修改(80元)

本帖最后由 lxh623 于 2025-1-2 19:11 编辑

http://www.bathome.net/thread-70019-1-1.html
是这个帖子的补充。

T12n0361--佛说无量清净平等觉经--後汉 支娄迦谶译
<!-- end of lg-row -->
<!-- end of lg -->没有替换到。
还有div标签残留。

T01n0081--分别善恶报应经--宋 天息灾译
<div class="lg-row" default-translate="no">
<div class="lg" default-translate="no">
<div class="lg-cell1" default-translate="no">
<div class="lg-cell" default-translate="no">这个有了变化,当初没有考虑到。可能是插件的升级。
上面end也没有替换。
设想的是div标签全部删除。麻烦在原来脚本升级,包括原来的修改。

链接: https://pan.baidu.com/s/1UkaEvEWzuaseBZ-MNUK7uw?pwd=9qfe 提取码: 9qfe

谢谢!

文件夹有翻译过,转换前的文件备份。

TOP

本帖最后由 flashercs 于 2025-1-10 22:28 编辑
  1. <#*,:
  2. @echo off
  3. cd /d "%~dp0"
  4. set "batchfile=%~f0"
  5. Powershell -ExecutionPolicy Bypass -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create([IO.File]::ReadAllText($env:batchfile,[Text.Encoding]::GetEncoding(0) )) )"
  6. pause
  7. exit /b
  8. #>
  9. # 修改xhtml颜色
  10. <#
  11. <div class="lg-cell1"> <p class="lg-cell1">
  12. <div class="lg-cell"> <p class="lg-cell">
  13. <div class="lg-cell2"> <p class="lg-cell2">
  14. <div class="lg-row">
  15. <div class="lg">
  16. <!-- end of lg-row -->
  17. <!-- end of lg -->
  18. <div class="calibre3">
  19. </div>
  20. <p class="lg-cell"><span class="text_" default-translate="no">直接替换为<p class="lg-cell">
  21. #>
  22. $re1 = [regex]'(?s)<div(?=[^>]* class="lg-row")[^>]*>(?<body>(?><!--.*?-->|(?<o><div[^>]*>)|(?<-o></div>)|.)*?)</div>(?(o)(?!))'
  23. $re2 = [regex]'(?s)<div(?=[^>]* class="lg")[^>]*>(?<body>(?><!--.*?-->|(?<o><div[^>]*>)|(?<-o></div>)|.)*?)</div>(?(o)(?!))'
  24. $re3 = [regex]'(?s)<div(?=[^>]* class="calibre3")[^>]*>(?<body>(?><!--.*?-->|(?<o><div[^>]*>)|(?<-o></div>)|.)*?)</div>(?(o)(?!))'
  25. $re4 = [regex]'<div(?=[^>]* class="lg-cell[^"]*")[^>]*>(<span(?>[^>]*)>)((?>[^<>]*))<span data-immersive-translate-translation-element-mark="1" lang="zh-CN"><br class="calibre3"/><span class="notranslate3" data-immersive-translate-translation-element-mark="1"><span class="notranslate4" data-immersive-translate-translation-element-mark="1">((?>[^<>]*))</span></span></span></span></div>'
  26. $re5 = [regex]'(?s)<div(?=[^>]* class="calibre3")(?=[^>]* id="body")[^>]*>(?>\s*)(<span(?>[^>]*)>)((?>[^<>]*))<span data-immersive-translate-translation-element-mark="1" lang="zh-CN"><br class="calibre3"/><span class="notranslate3" data-immersive-translate-translation-element-mark="1"><span class="notranslate4" data-immersive-translate-translation-element-mark="1">((?>[^<>]*))</span></span></span></span>(?<body>(?><!--.*?-->|(?<o><div[^>]*>)|(?<-o></div>)|.)*?)</div>(?(o)(?!))'
  27. $re6 = [regex]'<span data-immersive-translate-translation-element-mark="1" lang="zh-CN"><br class="calibre3"/><span class="notranslate3" data-immersive-translate-translation-element-mark="1"><span class="notranslate4" data-immersive-translate-translation-element-mark="1">((?>[^<>]*))</span></span></span></span></p>'
  28. $re7 = [regex]'<span data-immersive-translate-translation-element-mark="1" lang="zh-CN"><br class="calibre3"/><span class="notranslate3" data-immersive-translate-translation-element-mark="1"><span class="notranslate4" data-immersive-translate-translation-element-mark="1">((?>[^<>]*))</span></span></span></p>'
  29. $re8 = [regex]'(?s)(<p(?=[^>]* class="lg-cell")[^>]*>)(?<body>(?><!--.*?-->|(?<o><p[^>]*>)|(?<-o></p>)|<(?!/?p)[^>]*>|[^<>]+)*)(?(o)(?!))(</p>)'
  30. $evaluator1 = [System.Text.RegularExpressions.MatchEvaluator] {
  31.   param($m)
  32.   $m.Groups[1].Value + ($m.Groups['body'].Value -replace '<[^>]*>') + $m.Groups[2].Value
  33. }
  34. Get-ChildItem -Path '.\epub解包后\*' -Filter *.xhtml -Recurse | Where-Object { $_ -is [IO.FileInfo] -and $_.BaseName -match '\d+' } | ForEach-Object {
  35.   try {
  36.     $_ | Resolve-Path -Relative
  37.     $text = [IO.File]::ReadAllText($_.FullName)
  38.     # remove lg-cell
  39.     $text = $re4.Replace($text, @'
  40. <p class="lg-cell">${1}${2}</span></p>
  41. <p class="tras">${3}</p>
  42. '@)
  43.     # remove lg-row
  44.     $text = $re1.Replace($text, '${body}')
  45.     # remove lg
  46.     $text = $re2.Replace($text, '${body}')
  47.     # remove id="body" class="calibre3"
  48.     $text = $re5.Replace($text, @'
  49. <p class="juan">${1}${2}</span></p>
  50. <p class="tras">${3}</p>
  51. ${body}
  52. '@)
  53.     # remove calibre3
  54.     $text = $re3.Replace($text, '${body}')
  55.     $text = $re6.Replace($text, '</span></p><p class="tras">${1}</p>')
  56.     $text = $re7.Replace($text, '</p><p class="tras">${1}</p>')
  57.     $text = $text.Replace('<!-- end of lg-row -->', '').Replace('<!-- end of lg -->', '')
  58.     $text = $re8.Replace($text, $evaluator1)
  59.     [IO.File]::WriteAllText($_.FullName, $text)
  60.   } finally {
  61.    
  62.   }
  63.   trap {}
  64. }
  65. Get-ChildItem -Path '.\epub解包后\*' -Filter stylesheet.css -Recurse | Where-Object { $_ -is [IO.FileInfo] } | ForEach-Object {
  66.   try {
  67.     $_ | Resolve-Path -Relative
  68.     $text = [IO.File]::ReadAllText($_.FullName)
  69.     $text = $text -replace '\.(?>lg(-\w*)?)(?>\s*)\{[^}]*\}'
  70.     $text = @"
  71. $text
  72. .tras {
  73.   color: #008000;
  74.   display: block;
  75.   margin: 1em 0;
  76.   font-weight: bold;
  77. }
  78. .lg-cell {
  79.   color: #0000aa;
  80.   display: block;
  81.   margin: 1em 0
  82. }
  83.   .lg-cell1 {
  84.   color: #0000aa;
  85.   display: block;
  86.   margin: 1em 0
  87. }
  88. "@
  89.     [IO.File]::WriteAllText($_.FullName, $text)
  90.   } finally {
  91.    
  92.   }
  93.   trap {}
  94. }
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

请查收,感谢应助!

TOP

新发现一个问题。
能不能把<p class="lg-cell"><span class="text_" default-translate="no">直接替换为<p class="lg-cell">?
谢谢!

TOP

回复 5# lxh623


    已修改了
微信:flashercs
QQ:49908356

TOP

回复 6# flashercs


    谢谢!

TOP

返回列表