45 行
1.4 KiB
Ruby
45 行
1.4 KiB
Ruby
namespace :help do
|
|
desc 'ヘルプ移行'
|
|
task migrate: :environment do
|
|
help_path = ENV.fetch('BTRC_HUB_HELP_PATH')
|
|
abort if help_path.blank?
|
|
|
|
# 現状物理削除はなぃはず
|
|
pages =
|
|
WikiPage
|
|
.joins(:tag_name)
|
|
.where(tag_names: { tag_id: nil })
|
|
.where.not("tag_names.name LIKE 'タググループ:%'")
|
|
|
|
pages.find_each do |page|
|
|
puts page.body
|
|
puts page.title
|
|
|
|
puts 'この identifier は何にする?'
|
|
identifier = $stdin.gets.chomp
|
|
Dir.mkdir "#{ help_path }/#{ identifier }"
|
|
Dir.mkdir "#{ help_path }/#{ identifier }/editions"
|
|
Dir.mkdir "#{ help_path }/#{ identifier }/editions/ja"
|
|
|
|
last_file_name = ''
|
|
WikiVersion.where(wiki_page_id: page.id).order(:version_no).each do |ver|
|
|
last_file_name, last_file_name_no = last_file_name.split('.')
|
|
|
|
file_name = ver.created_at.strftime('%Y-%m-%d')
|
|
if file_name == last_file_name
|
|
file_name += ".#{ (last_file_name_no || 1).to_i + 1 }"
|
|
end
|
|
|
|
File.write "#{ help_path }/#{ identifier }/editions/ja/#{ file_name }.mdx", ver.body
|
|
|
|
last_file_name = file_name
|
|
end
|
|
|
|
article_meta = { 'identifier' => identifier,
|
|
'canonical_language' => 'ja',
|
|
'languages' => { 'ja' => { 'current_edition' => last_file_name } } }
|
|
File.write "#{ help_path }/#{ identifier }/article.yml", article_meta.to_yaml
|
|
end
|
|
end
|
|
end
|