私は現在、レスキュー画像にCloudinaryを使用するのに役立つJekyll用のプラグインを開発しようとしています。現在のソースはin my Github repoです。それがうまくいくと、後でそれを宝石にします。Jekyllプラグインの "priority"フラグはどのように動作するはずですか?
このプラグインは、2つの特徴を有する:
{% cloudinary [preset] path/to/img.jpg [attr="value"] %}
- ようoptionnalyこの液体タグに画像のための標準的な値引き/ Kramdown構文の変換を自動化するコンバータをCloudinary画像を定義するために液体タグ:
![alt text](path/to/img.jpg){:caption="caption text"}
は{% cloudinary path/to/img.jpg alt="alt text" caption="caption text" %}
となります
現在、両方の機能は意図したとおりに機能しますが、「連鎖」していません。 MarkdownでLiquidタグを使用すると評価されます。標準のMarkdownイメージを置くと、それは{% cloudinary … %}
Liquidタグに変換されますが、このタグは評価されません。
私は2つの機能が正しい順序で実行されないと思われるので、Liquidタグが評価される前にコンバータが実行されていることを確認します。
しかし、私はまだpriority flagの使い方を理解していませんでした。
私はthe priority :normal
line in my pluginのコメントを解除し、bundle exec jekyll serve
を実行した場合、私はこのエラーを取得する:
$ bundle exec jekyll serve
Configuration file: /Users/nhoizey/Dropbox/Personnel/Devs/nicolas-hoizey.com/_config.yml
jekyll 3.1.6 | Error: undefined method `priority' for Jekyll::CloudinaryTag:Class
Did you mean? print
任意のアイデア?
EDIT(7月11日):
私は今のプラグインにに分割しています。
Converterは、自分のサイトの_plugins
フォルダ内に残っている:https://github.com/nhoizey/nicolas-hoizey.com/blob/52c92a38410e133890eea6044a033cb20344b971/_plugins/cloudinaryfy.rb#L26
ジキルは、この「優先」フラグで文句はありません。
リキッドタグは今jekyll-cloudinary
という名前の真の自律プラグインの逸品です:https://nhoizey.github.io/jekyll-cloudinary/
私はこのプラグインで「優先」フラグをつけた場合、私はまだエラーを取得:
$ bundle exec jekyll serve bundler: failed to load command: jekyll (/usr/local/bin/jekyll)
Bundler::GemRequireError: There was an error while trying to load the gem 'jekyll-cloudinary'.
Gem Load Error is: undefined method `priority' for Jekyll::Cloudinary::CloudinaryTag:Class
Did you mean? print
Backtrace for gem load error is:
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-cloudinary-1.2.2/lib/jekyll/cloudinary.rb:5:in `<class:CloudinaryTag>'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-cloudinary-1.2.2/lib/jekyll/cloudinary.rb:4:in `<module:Cloudinary>'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-cloudinary-1.2.2/lib/jekyll/cloudinary.rb:2:in `<module:Jekyll>'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-cloudinary-1.2.2/lib/jekyll/cloudinary.rb:1:in `<top (required)>'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-cloudinary-1.2.2/lib/jekyll-cloudinary.rb:1:in `require'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-cloudinary-1.2.2/lib/jekyll-cloudinary.rb:1:in `<top (required)>'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:86:in `require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:86:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `each'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `block in require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `each'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:102:in `require'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-3.1.6/lib/jekyll/plugin_manager.rb:34:in `require_from_bundler'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-3.1.6/bin/jekyll:9:in `<top (required)>'
/usr/local/bin/jekyll:22:in `load'
/usr/local/bin/jekyll:22:in `<top (required)>'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli/exec.rb:24:in `run'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli.rb:304:in `exec'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli.rb:11:in `start'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundle:27:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundle:19:in `<top (required)>'
/usr/local/bin/bundle:22:in `load'
/usr/local/bin/bundle:22:in `<main>'
Bundler Error Backtrace:
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:89:in `rescue in block (2 levels) in require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:85:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `each'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:81:in `block in require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `each'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:70:in `require'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:102:in `require'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-3.1.6/lib/jekyll/plugin_manager.rb:34:in `require_from_bundler'
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-3.1.6/bin/jekyll:9:in `<top (required)>'
/usr/local/bin/jekyll:22:in `load'
/usr/local/bin/jekyll:22:in `<top (required)>'
なぜそれがありますあるプラグインでは動作しますが、他のプラグインでは動作しませんか?
cloudinarify
コンバータープラグインがjekyll-cloudinary
液体タグが解釈される前に実行されていることを確認するにはどうすればよいですか?
おかげで詳細な回答のためにたくさん。私の 'Liquid :: Tag'は「競合しない」ことを知ったので、**私の' Jekyll:Converter'の後に**動作させる方法はありますか?私が必要とする順序を説明しようとすると、通常のMarkdown画像構文 - ( 'Jekyll :: Converter') - >液体タグ構文 - (' Liquid :: Tag') - > HTML。私は彼らが現在他の順番で実行されているのか、それとも並行して実行されているのかはわかりません...私自身のコンバータの最後に自分自身でKramdownコンバータを呼び出さなければなりませんか?私はこれを見つけました:http://stackoverflow.com/questions/19169849/how-to-get-markdown-processed-content-in-jekyll-tag-plugin/35799486#35799486 –
@NicolasHoizey液体は常に最初に動くので、あなたのタグ**あなたがレイアウトにタグを置かない限り、文書が変換される前に**実行されるべきです。プロセスは 'Jekyll :: Rendered#run'にあります:[液体はドキュメント上](https://github.com/jekyll/jekyll/blob/4b5126dda7f1e00d2701404b4f1ec2d155f40857/lib/jekyll/renderer.rb#L62)、[doc ](https://github.com/jekyll/jekyll/blob/4b5126dda7f1e00d2701404b4f1ec2d155f40857/lib/jekyll/renderer.rb#L66)、[液体のみでレイアウトを実行する](https://github.com/jekyll) /jekyll/blob/4b5126dda7f1e00d2701404b4f1ec2d155f40857/lib/jekyll/renderer.rb#L71)。 – parkr
私はLiquidタグインタプリタを私のConverterで直接呼び出すようにしようと思います。私はこれらがジキルのドキュメンテーションを強化できると思う。 –