LoginSignup
1

More than 5 years have passed since last update.

Rmdファイルのyamlフロントマターの内容を取得

Last updated at Posted at 2017-04-24

タイトルのとおりです。

結論から言うと,rmarkdown::yaml_front_matter関数で取得できます。

面倒なので,以下の記事にあるyamlフロントマターを持ったファイル(yaml_front_matter_list.Rmd)があるとします(ファイルの内容は文末に記載):

R Markdownのhtml_documentで指定できるyamlヘッダ項目について - Qiita

これを上記の関数に通します:

yfm <- rmarkdown::yaml_front_matter("yaml_front_matter_list.Rmd")
str(yfm)
## List of 9
##  $ title       : chr "タイトル"
##  $ subtitle    : chr "サブタイトル"
##  $ title-prefix: chr "タイトルプリフィックス"
##  $ pagetitle   : chr "ページタイトル"
##  $ author      : chr "オーサー"
##  $ author-meta : chr "オーサーメタ"
##  $ date        : chr "2017/01/17"
##  $ abstract    : chr "このドキュメントのアブストラクト。"
##  $ output      :List of 1
##   ..$ html_document:List of 25
##   .. ..$ toc               : logi FALSE
##   .. ..$ toc_depth         : int 2
##   .. ..$ toc_float         : logi FALSE
##   .. ..$ number_sections   : logi FALSE
##   .. ..$ fig_width         : int 7
##   .. ..$ fig_height        : int 5
##   .. ..$ fig_retina        : int 2
##   .. ..$ fig_caption       : logi TRUE
##   .. ..$ dev               : chr "png"
##   .. ..$ df_print          : chr "default"
##   .. ..$ code_folding      : chr "show"
##   .. ..$ code_download     : logi FALSE
##   .. ..$ highlight         : chr "default"
##   .. ..$ mathjax           : chr "default"
##   .. ..$ smart             : logi TRUE
##   .. ..$ theme             : chr "default"
##   .. ..$ css               : NULL
##   .. ..$ templete          : chr "default"
##   .. ..$ include           :List of 3
##   .. .. ..$ :List of 1
##   .. .. .. ..$ in_header: NULL
##   .. .. ..$ :List of 1
##   .. .. .. ..$ before_body: NULL
##   .. .. ..$ :List of 1
##   .. .. .. ..$ after_body: NULL
##   .. ..$ extra_dependencies: NULL
##   .. ..$ lib_dir           : NULL
##   .. ..$ md_extentions     : NULL
##   .. ..$ pandoc_args       : NULL
##   .. ..$ keep_md           : logi FALSE
##   .. ..$ self_contained    : logi TRUE

こんな感じです。利用場面としては,自作テンプレなどでしょう。

Enjoy!

読み込ませたRmdファイル:

---
title: "タイトル" #ページのタイトルで,h1要素としてbodyに入ります
subtitle: "サブタイトル" #ページのサブタイトルで,h1.titleのすぐ下にh2として入ります
title-prefix: "タイトルプリフィックス" #ウィンドウ上部枠に出てくるページ名タイトルの前に入ってきます
pagetitle: "ページタイトル"  #ウィンドウ上部枠に出てくるページ名タイトルです
author: "オーサー"  #著者で,複数名の時は'c("kosaki", "chitoge")'とすればOK
author-meta: "オーサーメタ"  #head要素のmeta情報に書き込まれます
date: "2017/01/17"  #日付です。決め打ちでもいいですし,rのコードでやる方法も
abstract: "このドキュメントのアブストラクト。" #本文のすぐ上にアブストラクトとして差し込まれます
output:
  html_document:
    # tocまわり
    toc: FALSE  #toc(table of contents)を自動生成するかどうか。論理値。
    toc_depth: 2  #tocで拾う見出しレベルを指定。数値。
    toc_float: FALSE  #tocをページ冒頭ではなくサイドメニューとして浮かせて表示させるかどうか
    number_sections: FALSE  #見出しに通し番号をつけるかどうか
    # figまわり
    fig_width: 7  #図の大きさ。確かインチ
    fig_height: 5 #図の高さ。確かインチ
    fig_retina: 2 #retinaディスプレイに対応させていくかどうか
    fig_caption: TRUE #図にキャプションを付与していくかどうか
    dev: "png"  #グラフィックデバイスを指定。この場合png形式。
    # dfの処理
    df_print: "default" #data.frameを表示させる際,kableとかtiblleとかpagedを指定。
    # codeまわり
    code_folding: "show" #デフォ値はc("none", "show", "hide") #デフォルトでRコード部分を表示させるかどうか。
    code_download: FALSE  #Rmdソースコードをhtmlに埋め込んでDLできるようにするかどうか。論理値。
    highlight: "default"  #シンタックスハイライトのテーマを指定。
    # mathjax
    mathjax: "default"  #mathjaxをどう含めるか。
    # テーマ・書式まわり
    smart: TRUE #出力のタイポグラフィを変換するかどうか。ハイフンをem-dashesにするかなど。論理値。
    theme: "default"  #htmlのテーマを指定。NULLだとテーマ無し(プレーンなhtml)になる。
    css: NULL #カスタムなcssを指定。
    # ドキュメントまわり
    templete: "default" #(Pandoc用)htmlテンプレートを指定。
    include:  #ドキュメントにhtmlを差し込むかどうか。
      - in_header: NULL #<head>内に差し込む内容。htmlファイルを指定。通常はメタデータやjsコードなど
      - before_body: NULL #<body>の一番最初に差し込む内容。htmlファイルを指定。通常はheader的な要素など
      - after_body: NULL  #<body>の一番最後に差し込む内容。htmlファイルを指定。通常はfooter的な要素など
    # 拡張関連
    extra_dependencies: NULL  #新たに追加したいような要素や,拡張要素を指定。
    lib_dir: NULL #jqueryとか依存するHTMLライブラリをコピーするディレクトリを指定。デフォは(ファイル名)_filesってディレクトリへ。
    # 出力制御関連
    md_extentions: NULL #Pandoc Markdown拡張で追加するand/or削除する要素を指定
    pandoc_args: NULL #Pandocに送る引数を指定。
    keep_md: FALSE  #.mdファイルを残すかどうかを指定。論理値
    self_contained: TRUE  #jsやcss,画像データなどをbase64でhtmlファイルに埋め込み,単一ファイルにするかどうかを指定。論理値
---

ほげほげ。

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
1