LoginSignup
6
4

More than 5 years have passed since last update.

Qiita::Team から Export した JSON データを 個別の Markdown File に変換し、保存します #qiita

Posted at

Qiita::Team から Export した JSON データを 個別の Markdown File に変換し、保存します #qiita

概要

Qiita::Team から Export した JSON データを 個別の Markdown File に変換し、保存します

JSON Layout

{
  "id":some_id,
  "uuid":"sim_uuid",
  "user":{
    "id":some_id,
    "url_name":"name",
    "profile_image_url":"url"
  },
  "title":"title",
  "created_at":"2014-11-07 18:29:28 +0900","updated_at":"2014-11-07 22:29:28 +0900",
  "created_at_in_words":"7日",
  "updated_at_in_words":"7日",
  "tags":[
    {
      "name":"ruby",
      "url_name":"ruby",
      "icon_url":"icons/medium/missing.png",
      "versions":[]
    }
   ],
  "stock_count":0,
  "comment_count":0,
  "url":"some_url",
  "created_at_as_seconds":9999999999,
  "lgtm_count":0,
  "private":false,
  "coediting":false,
  "raw_body":"raw body",
  "body":"body",
  "stock_users":[],
  "comments":[]
}

変換ルール

  • Export した JSON のファイル名は qiita_export
  • 変換した Markdown ファイルは markdowns フォルダを作成し、その中に保存する
  • JSON の id をファイル名にする
  • JSON の raw_body をファイル内容にする

Convert Script

require 'json'

output_dir = 'markdowns'
json = File.read('./qiita_export')
entries = JSON.parse(json)

Dir.mkdir(output_dir) unless Dir.exist?(output_dir)
entries.each do |entry|
  filename = entry['id']
  body = entry['raw_body']
  File.open("#{output_dir}/#{filename}.md", 'w:utf-8') { |file|file.puts body }
end

結果確認

  • tree で出力ファイルの確認
$ tree
.
┣ markdowns
┃ ┣ 154900.md
┃ ┣ 154901.md
┃ ┣ 154902.md
┃ ┣ 154903.md
┃ ┣ 154904.md
┃ ┣ 155005.md
┃ ┣ 155027.md
┃ ┣ 155035.md
┃ ┣ 155094.md
┃ ┣ 155831.md
┃ ┣ 155935.md
┃ ┣ 156101.md
┃ ┣ 157242.md
┃ ┣ 157323.md
┃ ┣ 158294.md
┃ ┣ 158361.md
┃ ┣ 158455.md
┃ ┣ 158484.md
┃ ┣ 160590.md
┃ ┣ 167317.md
┃ ┣ 169084.md
┃ ┣ 169093.md
┃ ┣ 169100.md
┃ ┣ 169102.md
┃ ┣ 169106.md
┃ ┣ 169108.md
┃ ┣ 169110.md
┃ ┣ 169122.md
┃ ┣ 169983.md
┃ ┣ 169994.md
┃ ┣ 169996.md
┃ ┣ 170988.md
┃ ┣ 171011.md
┃ ┣ 171266.md
┃ ┗ 172613.md
┣ qiita_export
┗ qiita_json_to_markdown.rb
  • 1ファイル抜粋で出力ファイル内容の確認 ※下記は Qiita::Team が用意しているページ
# プロジェクトページとは

**流れていってほしくない情報を、アクセスしやすい場所に常に掲載しておける** ページです。
トップページのサイドバーに常に表示されています。

<a href="https://qiita-image-store.s3.amazonaws.com/1/123/bc32deab-a6b4-62fa-37fc-a3117a96e569.png"><img src="https://qiita-image-store.s3.amazonaws.com/1/123/bc32deab-a6b4-62fa-37fc-a3117a96e569.png" width="500"></a>
*ヘッダメニュー「さがす」からもアクセスできます*

# どんなプロジェクトをつくればいいの?

開発プロジェクトの概要など **全員に知っておいてほしい情報** を掲載するのに向いています。
トップページで見えるので、 **新しく入ってきたメンバーにも重要な情報が分かりやすく** なります。

### 例1. 開発プロジェクトのまとめ

<a href="https://qiita-image-store.s3.amazonaws.com/1/123/ee02de2c-ff09-aa2e-2e59-96e80fb9f166.gif" targe="_blank"><img src="https://qiita-image-store.s3.amazonaws.com/1/123/ee02de2c-ff09-aa2e-2e59-96e80fb9f166.gif" width="300" /></a>

### 例2. Qiita:Teamの使い方マニュアル
少し普通の使い方とは違いますが、導入初期にはオススメの使い方です。

<a href="https://qiita-image-store.s3.amazonaws.com/1/123/3f3bc32f-98d5-754e-bf75-6cba9271c11d.png" target="_blank">
<img src="https://qiita-image-store.s3.amazonaws.com/1/123/52a180e4-cae4-db8e-c1d5-dea68e4e3e9f.jpeg" width="300"></a>
*[情報発信する文化の根付かせ方がすごい!- 株式会社リクルートジョブズさま Qiita:Teamインタビュー](http://blog.qiita.com/post/95441393299/recruit-jobs-interview#initial-projects) より引用*

# プロジェクトページを見てみる

これまでのチュートリアルの内容をまとめたサンプルプロジェクトが作成済みです。
<a href="/">トップページに戻って</a>**Qiita:Team普及プロジェクト** 」を確認してみましょう。

<a href="/"><img src="https://qiita-image-store.s3.amazonaws.com/1/123/bc32deab-a6b4-62fa-37fc-a3117a96e569.png" width="500"></a>
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4