如何在Jekyll中将csv文件的文件夹转换为json文件

时间:2019-02-07 04:15:15

标签: jekyll

作为Jekyll工作流程的一部分,是否可以将csv文件的文件夹转换为json?我目前使用python脚本执行此操作,但想完全在Jekyll内执行操作

3 个答案:

答案 0 :(得分:0)

您可以在构建过程中调用python脚本,但是您必须制作一个很小的插件。这也假设您不使用github页面,因为它们不喜欢插件。

  1. 在您的网站根目录中建立一个_plugins目录。
  2. 在该目录中,创建csv_to_json.rb
  3. 在该ruby文件中,使用以下代码调用您的python脚本:
# The following line tells jekyll to run everything between 'do' and 'end'
# when it finishes writing the site to disk:
Jekyll::Hooks.register :site, :post_write do |_site|

  # Backticks are one way to call shell commands from ruby: 
  `python your_script_here.py` # replace with the correct filename
end

这是未经测试的代码。相关文档herehere

有很多方法可以做到这一点,但是我认为这是最简单的方法。

答案 1 :(得分:0)

您可以:

1-将您的csv存储在_data / foldername中(例如:_data / members),请参见:Jekyll's data files

2-使用concat filter

将所有数据放入新数组中
{% comment %} ### Create an empty array{% endcomment %}
{% assign all-members = "" | split: "" %}
{% for part in site.data.members %}
  {% assign all-members = all-members | concat: part[1] %}
{% endfor %}

3-使用jsonify过滤器输出数据:{{ all-members | jsonify }}

一个一体的members.json文件看起来像:

---
layout: null
---
{% assign all-members = "" | split: "" %}
{%- for part in site.data.members %}
{% assign all-members = all-members | concat: part[1] %}
{% endfor -%}
{{ all-members | jsonify }}

答案 2 :(得分:0)

谢谢你们俩。我走了插件之路,因为这是最简单的方法,我可能会在某个时候开发另一个插件,以便我也最好学习如何制作一个插件。