使用Pelican时,pelicanconf和publishconf之间有什么区别

lbo*_*gav 8 python github-pages pelican

我使用了pelican-quickstart来创建一个静态网站,它带有一个默认的pelicanconf和publishconf.我在publishconf中有一个GOOGLE_ANALYTICS变量,但是当我在Github Pages中发布我的静态页面时,使用这个片段:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ GOOGLE_ANALYTICS }}']);
_gaq.push(['_trackPageview']);

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +   '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Run Code Online (Sandbox Code Playgroud)

,_ setAccount变为空字符串.

我应该将GOOGLE_ANALYTICS从publishconf移到pelicanconf吗?他们之间有什么区别?

Jus*_*yer 17

至于谁在首位岔鹈鹕设置文件的人,我建议的操作的两种主要模式的思考:(即地方发展和生产部署pelicanconf.pypublishconf.py分别).

移动GOOGLE_ANALYTICSpublishconf.pypelicanconf.py不推荐.在本地开发时,Google Analytics和Disqus等设置被故意排除在pelicanconf.py设计之外.在本地测试中包括这些设置可能会产生不利影响:不准确的站点统计信息,虚假评论线程和其他意外的副作用.

当您需要发布您的网站时,您当然希望包含这些设置.这样做的方法是确保publishconf.py在发布时引用您的引用:

pelican content -s publishconf.py
Run Code Online (Sandbox Code Playgroud)

如果您正在使用"包装" pelican命令的Fabric或Make自动化框架,则可以使用:

fab publish
Run Code Online (Sandbox Code Playgroud)

... 要么 ...

make publish
Run Code Online (Sandbox Code Playgroud)

我建议您仔细了解如何发布站点,确保分别在本地开发和生产部署期间使用相应的设置文件.