将YAML(或类似文件)转换或导入到Google电子表格(或CSV)

将YAML(或类似文件)转换或导入到Google电子表格(或CSV),csv,yaml,Csv,Yaml,我正在尝试将YAML格式的内容转换为Google电子表格。我对如何完成我想做的事情持开放态度 项目 常见问题解答内容 我所需的可交付成果 一个谷歌电子表格,其中一列是问题,下一列是答案 我的问题 我需要以指定的格式交付内容。这太愚蠢了。我知道这很愚蠢,所以我们不要在这里讨论 我不打算将文本的段落写入电子表格。我讨厌那样 我更喜欢在纯文本编辑器中使用标记(或类似标记)编写文本。(对于以前的可交付成果,我已经能够使用带有拼凑脚本的降价处理器来处理他们的一些其他问题…) 以下是我想使用的格式(并且已经

我正在尝试将YAML格式的内容转换为Google电子表格。我对如何完成我想做的事情持开放态度

项目

常见问题解答内容

我所需的可交付成果

一个谷歌电子表格,其中一列是问题,下一列是答案

我的问题

我需要以指定的格式交付内容。这太愚蠢了。我知道这很愚蠢,所以我们不要在这里讨论

我不打算将文本的段落写入电子表格。我讨厌那样

我更喜欢在纯文本编辑器中使用标记(或类似标记)编写文本。(对于以前的可交付成果,我已经能够使用带有拼凑脚本的降价处理器来处理他们的一些其他问题…)

以下是我想使用的格式(并且已经使用过):

我的想法是通过某种YAML到CSV的转换器来运行它,但我找不到任何似乎有效的方法。(是的,我在谷歌上搜索过。不,显示的东西似乎都不起作用。)

理想溶液

一个工具或诸如此类的组合,可以让我写一个小脚本,这样我就可以一步从这个脚本到GoogleDrive电子表格

正常解决方案

我不介意输出是一个csv文件还是一个html表,我需要做一些复制和粘贴之类的事情。我也可以使用稍微不同的标记格式

值得注意

问题和答案都是英语内容,使用所有标准标点符号

尝试失败

我试着写的第一件事就是把它当作pandoc的pipe_tables格式的表,但我讨厌它

我还尝试了yaml到csv的转换,但是如果yaml键有空格,就会出错

最后,我尝试运行sed命令将冒号和新行转换为管道(或其他内容),以便使用pandoc生成html表。这一切都不管用,我最终替换了所有的“r”字,这真是太愚蠢了

为什么不直接复制粘贴?(或--手动输入dang电子表格)

我有很多事情要做

如果我能拼凑出一个脚本或一堆工具,让我从一个终端命令转换和上传,这会让我的想法变得更好

tl;dr


我需要用尽可能少的步骤将纯文本键值对格式转换为Google电子表格的两列。

我用ruby脚本解决了90%的问题

require 'yaml'
require 'rubypants'

filename = ARGV[0]

yml = YAML.load_file("./#{filename}.yml")

open("#{filename}.html", 'w') do |f|
  f << "<table>"
  yml.each do |q, a|
    q = RubyPants.new(q).to_html
    a = RubyPants.new(a).to_html
    f << "<tr><td>#{q}</td><td>#{a}</td></tr>"
  end
  f << "</table>"
end
需要“yaml”
需要“rubypants”
filename=ARGV[0]
yml=YAML.load_文件(“./#{filename}.yml”)
打开(#{filename}.html,'w')do|f|

你有没有试过写一个脚本来解析yaml?我的编码技能很差,所以我需要一些指导来指导从哪里开始。一个好的开始是。从项目列表中,你可以选择你最熟悉的语言,然后用谷歌搜索用该语言解析YAML的例子。。。我沿着这条路径开始,让Ruby读取我的yaml文件。但是google drive ruby gem的文档对我来说是完全无法理解的。我不知道如何把这些废话放到一个两列的表格里。这似乎没那么难……你能发布你到目前为止的代码吗?
require 'yaml'
require 'rubypants'

filename = ARGV[0]

yml = YAML.load_file("./#{filename}.yml")

open("#{filename}.html", 'w') do |f|
  f << "<table>"
  yml.each do |q, a|
    q = RubyPants.new(q).to_html
    a = RubyPants.new(a).to_html
    f << "<tr><td>#{q}</td><td>#{a}</td></tr>"
  end
  f << "</table>"
end
require 'yaml'
require 'rubypants'

filename = ARGV[0]


yml = YAML.load_file("./#{filename}.yml")

open("#{filename}.html", 'w') do |f|
  f << "
    <!DOCTYPE html>
    <html>
    <head>
    <style>
    body {margin: 20px; font-family: Menlo, Consolas, Arial; color: white; background-color: #222222; }
    table {border-collapse: collapse;}
      table, td, th { border: 1px solid green; }
      td {vertical-align: top; min-width: 500px; padding: 20px; font-size: 24px; line-height: 32px;}
      .question { color: #dddddd;}
    .answer { color: #efefef;}
    h1 { color: #cccccc; }
    </style></head><body><h1> #{filename}.html </h1><table>"
  yml.each do |q, a|
    q = RubyPants.new(q).to_html
    a = RubyPants.new(a).to_html
    f << "<tr><td class='question'>#{q}</td><td class='answer'>#{a}</td></tr>"
  end
  f << "</table></body></html>"
end

system("open", "#{filename}.html")