我正在尝试格式化用于Epub转换的700多页书的PHP代码部分。如果我在代码行的末尾使用软返回,它们就会被吃掉。如果我使用硬返回(使每一行成为一个段落),我要么在行之间得到太多空间,要么在代码段之前和之后都不够。如果我在代码部分之前和之后添加一个空行,它就会被吃掉。
书中有数千行代码。有没有办法在不手动编辑html文件的情况下处理这个问题?
答案 0 :(得分:0)
这些代码部分是否有一些常见的格式,比如用PHP标签包装?
如果它们是PHP标签,您可以使用它,它将使用:
包装每个标签集function fixPHPcode($matches)
{
return '<p class="php_code">' . $matches[0] . '</p>';
}
$data = preg_replace_callback('/<\?php(.|\s)+?\?>/i', 'fixPHPcode', $data);
答案 1 :(得分:0)
我确实尝试了一些相当复杂的正则表达式转换,但我发现了一种实际上工作得很好的简单方法。
秘诀是基于Word的“HTML Preformatted”样式创建样式,或者如果您没有该样式,则基于Normal的样式指定Arial Unicode MS或Courier New作为字体,没有校对,左对齐。
缩进空格并在每行末尾使用软返回(shift-enter)。
Calibre将生成可接受的Epub和Mobi版本。 Courier是代码的垃圾字体,但至少它是等宽的,因此缩进将排列,人们习惯将其视为代码字体。