2016-11-21 55 views
1

我想知道如何从Rakefile访问Nanoc变量(例如@items,@config等)。从Rakefile访问Nanoc变量

我有一个叫nanoc.yaml文件中有这样的数据:

products: 
    ce: 
    name: 'Community Edition' 
    ee: 
    name: 'Enterprise Edition' 

我希望能够访问这个在Rake文件,所以我有一个“单一来源”,可以可以从Nanoc网站内部进行访问,以及Rakefile可以下载一些文档。在Nanoc网站中,例如您可以使用@config[:products]访问它们,但不能在Rakefile中访问。

我需要include来自Nanoc的Rakefile文件吗?

回答

1

注意:此答案处理私人API!

您可以使用SiteLoader创建一个网站:

site = Nanoc::Int::SiteLoader.new.new_from_cwd 

该网站有一个配置:

site.config[:products][:ce][:name] 
# => Community Edition 

再次,这是一个私人API的一部分(暂且,至少),所以上面的代码可能会在未来的版本中崩溃。

+0

谢谢:)为避免使用私有API,我可能会使用一个替代答案,即使用YAML解析器来获取配置信息。 –