2017-11-09 11 views
2

私はいくつかのデータを保持するYAMLファイルを持っており、クライアント側で処理する必要があります。JekyllでYAMLファイルを提供するにはどうすればよいですか?

--- 

some: content 

... 

ジキルは序として扱われ、ページが、その後はコンテンツがありませんことを全体YAMLのコンテンツになり序、ですべてを処理します。

YAMLヘッダーを持っていても、ファイルを静的に扱うようにジキルに指示する方法はありますか?

は、私も自分の_config.ymlで序のデフォルトを設定し、excludekeep_filesのさまざまな組み合わせを試してみましたが、何も実際に作業していません。

私の回避策は今、コンテンツの前に追加のフロントマターブロックを追加することです:

  • :YAMLファイルがが闊歩定義である

    --- 
    layout: null 
    --- 
    --- 
    
    some: content 
    
    ... 
    

    と、この余分なブロックを追加します両方定義をローカルでテスト/生成することを複雑にする

  • ファイルがgithub経由でダウンロードされた場合、混乱を招く。

理想的には、私はファイルを変更せずに保存し、何とかジキルにそれを残すよう教えています。

答えて

2

Jekyllに、プラグインなしでフロントファイルのファイルを処理しないように指示する方法はありません。

シンプルな解決方法は、サイト全体が生成された直後に、Jekyll hook'sを使用して、生成された未処理のファイルを生成したサイトにコピーすることです。 _plugins/copyfile.rbを追加するたとえば

、:最終サイトassetsディレクトリにフロントと_unprocessed/about.md問題をコピーする

Jekyll::Hooks.register :site, :post_write do |site| 
    src = "_unprocessed/about.md" 
    dest = "_site/assets" 
    puts "Copying #{src} to #{dest}" 
    FileUtils.cp(src, dest) 
end 

_unprocessedはアンダースコアで始まり、結果のサイトには存在しません。

サイト構築:それは関連している可能性があるとして、ここで

/tmp/s⟫jekyll b 
Configuration file: /tmp/s/_config.yml 
      Source: /tmp/s 
     Destination: /tmp/s/_site 
Incremental build: disabled. Enable with --incremental 
     Generating... 
Copying _unprocessed/about.md to _site/assets 
        done in 0.884 seconds. 
Auto-regeneration: disabled. Use --watch to enable. 


/tmp/s⟫ tree _site/ 
_site/ 
├── 404.html 
├── assets 
│   ├── about.md 
│   └── main.css 
├── feed.xml 
├── index.html 
└── jekyll 
    └── update 
     └── 2017 
      └── 11 
       └── 09 
        └── welcome-to-jekyll.html 

6 directories, 6 files 
関連する問題