上次说想要一个共享翻译的 github,其实本来我是想别人牵头做。。。。结果大家都变成鼓励我自己搞,最后想想干脆自己弄了个。 花了一些时间把 Rails Guides 东西抠出来,加上了一些中文支持和翻译占坑的规则,因为看到挺多人比较喜欢 markdown 也加上了 markdown 的语法支持(发现 markdown 语法确实没有 textile 强大)。等过两天我想我会找一个域名部署上去的,如果喜欢的话可以开始 fork 并翻译了。等到翻译差不多了看看能不能合到 ruby-china 里面。 考虑到可能会有其他人一起管理这个账号,我新建了一个 github 账号来管理这个项目。 https://github.com/ruby-china/rails-guides
另外在做 markdown 语法支持的时候遇到一点问题,折腾挺久也没有什么好办法。
一个是 textile 可以 用这样的语法来生成一个标题 id
h1(#id). An HTML first-level heading
然后通过这个 id 自动生成一个标题导航。
然后 markdown 就没有这样的功能,
想要自己写一个处理能让 markdown 有这样的功能,结果试了几种方法都不太满意(bluecloth 的扩展性也是烂的要死)。不知道有没有什么好办法~
还有一个问题可能比较二吧,实在正则匹配的时候出现的,折腾了我一个晚上。
就是考虑到大家可能有一些文本带特殊字符,想用 ++ 号来帮助大家过滤掉其中的特殊字符(markdown 就都为特殊字符加上 "\" ,textile 直接加上一个标签).
markdown 的部分实现起来我本来是这么做的:
@body.gsub!(/\+(.*?)\+/) do |m|
m.gsub /[.!()?#
\_*]/ , '\\\&'
end
`
结果居然发现所有特殊字符都被替换成了“\&”!!
虽然用其他方法解决了,还是挺想不通的,特地来请教一下。
很简单,只要在 source/documents_CN.yaml 中找到或者加入你想翻译的文章的资料,加入 work_in_progress = true 之后 push 过来就代表你成功的占到了一个坑,你可以开始慢慢的翻译自己的文章了。 怎样做呢 我学 rails 翻译了一部分 应该 能够用上 想拿出来
例如你想要翻译这一篇
- name: Rails Database Migrations url: migrations.html description: This guide covers how you can use Active Record migrations to alter your database in a structured and organized manner.
你就改成 - name: Rails Database Migrations #换成中文 url: migrations.html #写你对应的文件名把后缀换成 html work_in_progress: true contributor: your_github_acount description: 描述
就可以了
https://github.com/ruby-china/rails-guides/blob/master/source/documents_CN.yaml 修改这个文件,这个文件对应的是首页的链接
name: Rails 初上手指南 url: getting_started.html work_in_progress: true contributor: jhjguxin description: Everything you need to know to install Rails and create your first application.
然后就可以了。翻译完把 source/CN/getting_started.textile 换成你的中文翻译 push 过来就可以。
@tassandar 后悔了 一些 html 或者 erb 代码 应该用 <pre></pre>
包装 建议 楼主改一下
使用 <html>
或者 <erb>
包装效果都不怎么好 我开始的时候 是直接 参照 原有的 textile 文件 做的 结果 做完发现 效果真的好差 建议更改 但是 pull 麻烦楼主啦
你那里面很多文件里的 erb 代码 我觉得都该改成
#1 楼 @tassandar 有很多实现是可能配置成给 header 加 ID 的。也可以手动在 header 前面或者后面直接插入段 html(a, span 什么的,div 什么的),把 id 加到这个插入的 tag 上
#14 楼 @tassandar redcarpet 2.0+
require 'redcarpet'
rndr = Redcarpet::Render::HTML.new with_toc_data: true markdown = Redcarpet::Markdown.new rndr, autolink: true
markdown.render <<MD header ------
works MD
# => # #
works
加了一个 wiki。 对了,究竟是在这里贡献呢: https://github.com/ruby-china/rails-guides 还是这里: https://github.com/RubyChinaTranslation/Rails-Guides-China