2013-10-06 3 views
0

Octopress에서 Jekyll:Post 클래스를 확장하여 게시물의 전체 파일 경로 (예 : ~/projects/site/source/_posts/2012-01-01-something.markdown)를 얻으려고합니다.Jekyll/Octopress에서 전체 경로 가져 오기

module Jekyll 
    class Post 
     alias_method :original_to_liquid, :to_liquid 
     def to_liquid 
      # test if this function is actually called 
      puts "hello" 
      original_to_liquid.deep_merge({ 
       'full_path' => File.join(@base,@name) 
      }) 
     end 
    end 
end 

나는 full_path.rb으로이 파일의 이름을 지정하고 plugins 폴더에 넣어. 이상하게도 hello 메시지가 나타나지 않아서 내 to_liquid 함수가 호출되지 않습니다.

은 더욱 이상한, 나는 또한 to_liquid 방법 class Post의 정의 Octopress와 함께 제공된 date.rb을 발견, 그래서 나는 거기에 full_path => File.join(@base,@name) 줄을 추가하고 작동! 나는 너무 혼란 스럽다.

이 그래서 제 질문은, 왜 내 to_liquid 방법이 를 호출되지 않았다입니까?

UPDATE

1.2.1에 0.12.0에서 지킬를 업그레이드 한 후, 그것은 마술

+0

은 무엇 당신이 찾고있는 것은 질문에 이미있는 (내가 당신을 오해하는 경우, 어쩌면 containing_dir 당신이 찾고있는 방법입니다) [마크 다운 포스트의 전체 경로를 얻는 방법 (HTTP ://stackoverflow.com/questions/38406314/is-there-a-way-to-get-the-full-path-of-the-markdown-post-in-jekyll?s=2|1.2782) – SACn

답변

1

당신은 Post#permalinkdocumentation 한 번 봐 걸릴 수 있습니다 ...... 작동합니다. 새로운 플러그인을 만들지 않고도 원하는대로 할 수 있습니다.

+0

'permalink' (예 :'/ 2012/01/01/something/index.html')은 내가 원하는 것이 아닙니다. Linux에서 게시물 파일의 전체 경로가 필요합니다. 또한'containing_dir'에 대해서는'source'와'dir'을 전달할 필요가 없습니다. Post의'@base'와'@name'에 접근 할 수 있다면 완벽 할 것입니다. 그것이 바로 제가 원하는 것입니다. –

+0

사실 저는 포스트 파일의 git 히스토리를 보여주는 Liquid'Tag'를 쓰고 있습니다. 'render'에서 나는 post의 liquid hash만을 얻을 수 있기 때문에 post의 데이터 해시에서 전체 경로를 병합하고 싶습니다. –

+0

가장 귀찮은 것은, 내 자신의'to_liquid' 메소드는 전혀 효과가 없다는 것입니다. 나는 단지 그것을 얻지 않는다. ... –