2017-04-10 3 views
0

이미지에서 다양한 속성을 추출하기 위해 mini_exiftool을 실행하는 이미지 목록이 있습니다 (EXIF & IPTC). LiquidTag를 성공적으로 만들었습니다. 경로EXIF ​​ 속성을 받아 들여 원하는 문자열로 반환합니다.지킬 - 액체에서 플러그인 개체에 액세스

그러나 mini_exiftool은 입니다. 현재 이미지 당 여러 번 태그를 삽입합니다. 나는 이미지 당 한 번 실행하고 모든 데이터 (배열? 객체?)를 변수에 저장하려고합니다. 작은 면책 조항 -이 문제를 이해하려고 애쓰는 것을 제외하고는 루비를 거의 알지 못합니다.

{% exif path, title %} 
{% exif path, lens %} 

이 플러그인, 추측 및 코드의 뒤죽박죽 온라인으로 발견된다 :

이 내가 플러그인을 사용하는 방법 당신이 플러그인을 설명하는 방법에서

require 'mini_exiftool' 

module Jekyll 
    class Exif < Liquid::Tag 
    def initialize(tag_name, params, token) 
     super 
     args = params.split(",").map(&:strip) 
     @filename = args[0] 
     @property = args[1] 
    end 
    def lookup(context, name) 
     lookup = context 
     name.split(".").each { |value| lookup = lookup[value] } 
     lookup 
    end 
    def render(context) 
     path = lookup(context, @filename) 
     exif = MiniExiftool.new(path) 
     return exif[@property] 
    end 
    end 
end 

Liquid::Template.register_tag('exif', Jekyll::Exif) 

답변

1

을, 나는 말할 것 그것은 당신이 원하는 것을 해냅니다. 플러그인은 (사진?)에서 특정 속성을 반환하고 문자열로 반환합니다.

하지만 한 번만 사용하고 다른 곳에 저장하면 소리가납니다. 이 경우 조금 다른 것으로 생각하는 것이 좋습니다. 부동산 읽기가 느리다면 Esp.

실행하기 전에 모든 이미지를 기반으로 필요한 데이터를 생성하는 데 발전기를 사용할 수 있습니다.

class Generator < Jekyll::Generator 
    def generate(site) 

     site.data['news-en'] = Array.new 
     # Do something with exif and push a value object: 
     site.data['news-en'].push(p) 

데이터는 사이트 데이터 객체에서 다음 볼 수 있습니다 : 발전기에 대한 세부 사항은 : I 정렬 언어에 대한이 같은 http://jekyllrb.com/docs/plugins/#generators

당신은 유사한 접근 방식을 가질 수있다. 여기

{% for post in site.data['news-en'] %}

참조하십시오 데이터 파일 문서 : 그것은처럼 액세스 할 수 있습니다 http://jekyllrb.com/docs/datafiles/

그러나, 당신이 정말로 일반에 다른 텍스트 게시물 많은 사진을 모든 시간을 추가하지만, 업데이트하지 않는 경우 일정에 따라 Jekyll을 벗어나 Gulp/Grunt 또는 유사한 도구를 사용하여 데이터 파일을 생성 할 수도 있습니다.

귀하의 질문에 잘못이 있었는지 알려 주시면 적절하게 답변을 업데이트하겠습니다.

+0

응답 해 주셔서 감사합니다. 나는 발전기를 읽을 것이고, 그것은 내 문제를 해결할 것 같아요. 나는 나의 질문을 업데이트했다, 그것은 약간의 불명확 함이었다, 당신은 대부분의 계정에 맞춰 짐작했다. ;-) – Henrik

+0

Henrik을 듣고서 기뻐. Jekyll에 대한 관심이 더 깊다면, 나는 뻔뻔한 자기 홍보를하고 현재 작업하고있는 책 프로젝트에 대한 링크를 제공합니다 (시간이있을 때 :-)) : https://www.jekyll.io – Christian

+0

이미 쉘 스크립트를 사용하여 파일을 처리 했으므로 exiftool에 추가 호출을 추가하여 JSON 데이터 파일로 출력 할 수있었습니다. 지킬 런타임에서 데이터가 필요했다면 발전기를 사용했을 것입니다. 이제 모든 데이터와 오버 헤드가 없습니다. 건배! – Henrik