Jekyll编译中文文件名的网页的本地预览问题。

HyperGroups 发布于 2013/11/08 15:44
阅读 3K+
收藏 0

我是windows 8.1 x64, Ruby 2.0 X64, Jekyll 1.3.0


目前设置了一下,已经可以编译中文文件名了,上传到GitHub页面也能显示网页,也就是网址里可以包含中文,但是遇到一个问题是Jekyll的本地预览不能打开含中文的网页。

这个问题要如何解决呢?一个退而求其次的方案是总是使用英文的或拼音的markdown或html文件名。但是GitHub支持中文网址又让我有点希望,本地不能建站预览网址有中文的网址又不太爽。

另外,经测试,本地预览支持 2014-09-11-%E4%B8%AD 。。。这样就能打开了。

http://hypergroups.github.io/help/Jekyll's-Error-None-UTF-Characters-In-File-Name/

加载中
0
HyperGroups
HyperGroups

此问题由网友JaeI在我一博客的评论中解决了呀,感谢。过了一年才看到。

您好~ 我在搜尋時找到你這篇文章以及這篇(http://www.oschina.net/question/1396651_132154) 得知已經可以使用中文編譯...因而馬上改用新版本 Jekyll,受益良多! 

而這個本地無法預覽也很困擾我,今天暫時找到可以湊合用的方式,不知道你的狀況是不是也這樣:
在轉 Windows 系統編碼後的中文(或者說任何非ascii編碼的)路徑會找不到,但如果改轉成 UTF-8 就可以找到.......我不知道為什麼:(,所以我在 webrick 中的 httpservlet > filehandler.rb 加入兩個地方轉成 UTF-8 就可以本地預覽了。

1)
path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
> path.force_encoding("UTF-8") #加入編碼
if trailing_pathsep?(req.path_info)

2)
while base = path_info.first
break if base == "/"
> base.force_encoding("UTF-8") #加入編碼
break unless File.directory?(File.expand_path(res.filename + base))


然後改成這樣後有後遺症XD
如果"根目錄路徑"中有非ascii編碼的路徑會無法預覽,例如C:/非ascii編碼/_site,但我主要目的是想編譯並預覽中文標題及中文分類(_site下的中文資料夾),只要根目錄不要掛在中文路徑上就可以湊合

ps. 我的環境是Win7 64bit、Jekyll 1.4.3、Ruby 2.0.0p451


http://hypergroups.cn/Jekyll%E7%BC%96%E8%AF%91%E4%B8%AD%E6%96%87%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E4%B8%8D%E8%83%BD%E9%A2%84%E8%A7%88%E7%9A%84%E9%97%AE%E9%A2%98/

0
nicecoder
nicecoder
set LANG=de_DE.UTF-8
set LC_ALL=de_DE.UTF-8
jekyll server -w

而且显然jekyll的作者就没打算支持windows。中文同理。

不过文章标题可以用

title: 你的中文标题
这样来解决,文件名还是用英文的。

你可以参考我的blog:https://github.com/lichee/lichee.github.io/

blog.nicecoder.net

HyperGroups
HyperGroups
回复 @nicecoder : 恩,暂时凑合实现了,本地编译的文档和上传的文档不一样了。要多存储一个版本的博客网页了。。。
nicecoder
nicecoder
回复 @HyperGroups : 哪你就写个自动检测文件变动,然后改文件名编码的脚本呗。。
HyperGroups
HyperGroups
你知道可能实现添加一个文件夹_postUTF-8让JekyllServe时编译这个文件夹里的内容吗?上传到GitHub时使用_post文件夹。
HyperGroups
HyperGroups
你的博客里,网址是英文的,jekyll网址来自文件名。另外jekyll server -w 或 jekyll serve -w我会出错。
HyperGroups
HyperGroups
我主要想文件名使用中文,因为不想每次取个英文名。
0
fhwy
fhwy

我也遇到一样的问题,只要是链接中有中文,本次测试时候总是乱码,并且链接无法打开。 

不过传到guthub上就没有问题,不知道github的服务器是怎么配置使得能打开中文链接的

HyperGroups
HyperGroups
我现在暂时用本地预览使用英文名来解决的。
HyperGroups
HyperGroups
是用16进制的utf8处理的,本地会遇到gbk转化的问题。
0
sevk
HyperGroups
HyperGroups
并不是这个问题。
0
sevk
sevk
显然jekyll的作者就没打算支持windows 和 GBK, 必须把文件另存为 UTF-8 。
HyperGroups
HyperGroups
注意:此问题指的是文件名,而非文件内容的编码
0
v
vesicle
碰到同样问题,然后用apache服务器临时用着
返回顶部
顶部