当前位置: 首页 > news >正文

去掉 deplate(Viki) 生成的 html 文件行尾多余的空格。

在使用 deplate (Vim Wiki, Viki 的引擎)生成 html 页面时,它会把源文件中的换行替换为空格,这对英文文档是合适的,不过在处理中文文档时就会多出一个空格。我试过 jjgod 写的 zh-cn-autospace 模块,不知道为什么,它没有按手册中叙述地那样把“我 们”自动转换为“我们”。于是我阅读了一下 deplate 的源码(版本 0.7.3),发现只要在 elements.rb 中的 class Deplate::Element::Paragraph 内添加

def join_lines(accum)
if @deplate.options.keep_whitespace
return accum.join("\n")
else
return accum.join("")
end
end

就能搞定,它覆盖了基类的 join_lines() 成员函数,修改后的这个版本在连接两行时不会插入空格。这样就解决了我遇到的问题,虽然还不够完善(如果行尾是英文单词,需要手工添加一个空格),不过已经够用了。(环境:Windows XP + Cygwin + ruby 1.8.4 + deplate 0.7.3)

我其实更喜欢用 Win32 版的 deplate,就一个 .exe 文件,可以脱离 Cygwin 运行。虽然不能直接修改 elements.rb 的源码,但是利用 Ruby 语言提供的强大动态特性,还是很容易达到同样的目的,办法是修改 C:\Documents and Settings\USERNAME\deplate.rc\config.rb 文件(USERNAME 是你的 Windows 用户名),添加以下内容。

class Deplate::Element::Paragraph < Deplate::Element
def join_lines(accum)
if @deplate.options.keep_whitespace
return accum.join("\n")
else
return accum.join("")
end
end
end

相关文章:

  • react hooks useContext
  • 使用Flash Lite 制作手机主题
  • react hooks 规则以及自定义hooks的实现
  • react hooks reducer
  • react hooks 额外的钩子函数
  • 《程序员》杂志06年2月文章:Flash Lite挑战J2ME
  • CSDN Blog升级公告
  • koa文件上传2
  • 怎样成为一个Flash Lite Developer (开发篇)
  • Chat room help file
  • 小程序 - 使用async出现regeneratorRuntime is not defined错误 不能使用async 和await 的解决方案
  • react willReceiveProps 是深度比较 浅层拷贝 (虽然值变过来了 但是)还是会render 一次 immutable1
  • 怎样成为一个Flash Lite Developer (工具篇)
  • immutable与可变数据 不可变数据
  • 辞职:也要像个君子般离开
  • 【Linux系统编程】快速查找errno错误码信息
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CentOS从零开始部署Nodejs项目
  •  D - 粉碎叛乱F - 其他起义
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Python 基础起步 (十) 什么叫函数?
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Redis字符串类型内部编码剖析
  • vue 个人积累(使用工具,组件)
  • win10下安装mysql5.7
  • 闭包--闭包之tab栏切换(四)
  • 成为一名优秀的Developer的书单
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 翻译--Thinking in React
  • 让你的分享飞起来——极光推出社会化分享组件
  • 一些css基础学习笔记
  • 异常机制详解
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​用户画像从0到100的构建思路
  • (14)Hive调优——合并小文件
  • (C++17) optional的使用
  • (第二周)效能测试
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (规划)24届春招和25届暑假实习路线准备规划
  • (七)Java对象在Hibernate持久化层的状态
  • (转)ORM
  • *p++,*(p++),*++p,(*p)++区别?
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net core 控制台应用程序读取配置文件app.config
  • .net分布式压力测试工具(Beetle.DT)
  • .net与java建立WebService再互相调用
  • ??myeclipse+tomcat
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [ 第一章] JavaScript 简史
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [ajaxupload] - 上传文件同时附件参数值
  • [Angular 基础] - 数据绑定(databinding)
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [C# WPF] 如何给控件添加边框(Border)?