@alsotang 你们说的是这个 Bug? http://cirw.in/blog/hash-injection
我年前看到的。
当时还有另一个 Bug:http://cirw.in/blog/node-unicode
我就测试过 RubyChina 把它主页搞挂过。
PlainSite 大法好,退 Jekyll 保平安,A Truly Hackable SSG!:https://ruby-china.org/topics/22876
已修,Thanks
哪的代码需要格式化?rb 代码我记得都重新格式化过了,可能 erb 代码我忘了重新格式化了。
那个错误不是 PlainSite 的,那是因为在 bash 中就这样
echo "Hello,wolrd!This is the title"
你要换成单引号才 OK:
echo 'Hello,wolrd!This is the title'
要 tag?其实 DIY 起来很简单!在 post 中 front matter header 中写
---
tags: [Ruby,Rails,PlainSite]
---
然后给每种 tag 都生成一个列表页面?routes.rb
:
tagMap=Hash.new
($site.data['**'] ).each do |post|
post.tags.each do |tag|
tagMap[tag]=tagMap[tag] || []
tagMap[tag].push post
end
end
tagMap.each do |tag,posts|
# 来个分页吧
posts=PlainSite::Data::PostList.new posts,$site
$site.route(
url_patten: '/tag/#{tag}',
data: posts / 10 , # 高亮补丁/
template: 'your-tag-list-tpl.html'
)
end
然后your-tag-list-tpl.html
可以照抄list.html
。
只要会 Ruby,DIY 就是这么简单!(好坑爹,不过也正是因为我偷懒,所以我才把它设计的尽量灵活啊 ^O^)
PS:@lgn1st 下面的语法高亮不对,不知道有没有办法 FIX:
$site.data / '**'
# 这里被当成正则表达式了可能
我用 PlainSite 是直接写 HTML。如果只是生成 p、em、a、blockquote 这类标签,写 HTML 也没什么压力。如果要自定义格式,Markdown 又不够用,比如表格,还得上 HTML。而且,若我要在超连接中插图片和加粗文字,那格式写起来一点没 HTML 好。
——好吧,只是因为我以前是画网页的写 HTML 写多了。
不过有时我是用 WYSIWYG 编辑器将文章大体写好,再手动转换成 HTML 稍调格式发布。
#11 楼 @xfstart07 我看了感觉它的 Dynamic Pages 思路跟我的有些相似,但我用 routes.rb
一个 raw 文件解决了 Dynamic Pages、sitemap、local data、Pretty URLs 等多个问题,而且我发现它好像没有类似 PlainSite 提供的直接用类似 SQL 的 DSL 读取数据的接口。
#9 楼 @small_fish__ 想用哪个随你挑:https://staticsitegenerators.net/
总共三百多个静态站点生成器!
#5 楼 @small_fish__ 我是因为不想 hack Jekyll 的代码所以自己写了,估计别人也跟我一样不喜欢去 hack 已有的东西都纷纷自己造轮子
#2 楼 @moliliang 这个跑在托管服务器上还真比较麻烦,因为允许执行任意代码
如果gem install plain_site
不成功的话请告知我(Windows 需要安装 DevKit),因为我好不容易跨墙 gem push 上去,然后就没法再安装下来了,总是 timeout,这边墙太高了。(可以换 https://ruby.taobao.org/ 试试)
还有好像 gem 不解决 ruby headers 的问题,你需要安装好 ruby-dev(或 ruby-devel 什么的)。
如果是自己 build,我不知道 bundle 和 bundler 有什么区别,自从我敲错了哪个
bundle(r) build
bundle(r) install
就有一个幽灵 plainsite 命令被安装进去却运行不起来也删不掉