2010-05-28 4 views
0

지킬에서 페이지의 URL을 얻을 수있는 방법이 있습니까? 페이지까지 나는 다음과 같은 계층 구조에 about.htmldownload.html 같은 비 후 섬유 파일을 의미 :jekyll - 자동으로 github 페이지에 내용 추가

root 
| 
+- _includes 
| 
+- _layouts 
| 
+- _posts 
| 
+- _config.yml 
| 
+- index.textile 
| 
+- about.textile 
| 
`- download.textile 

나는 같은 것을 할 싶습니다 그들이 가지고 있기 때문에

<h1><a href="{{ page.url }}">{{ page.title }}</a></h1> 

이 게시물 작동 그들의 URL은 the post's to_liquid method에 포함되어 있습니다. 반면에 페이지는 그와 같은 것을 포함하지 않는 것 같습니다 - 필요한 속성을 가지고 있습니다 (또는 그래서 it seems), 그들은 to_liquid에 내 보내지 않습니다; 그래서 그것을 재정의하고 싶습니다. 이것을 할 수있는 방법이 있습니까?

나는 jekyll_extensions을 찾았지만 내 대상 환경 (github 페이지)에서 작동하는지 모르겠습니다.

가능한 경우 모든 yaml 머리글에 url 매개 변수를 포함하지 않아야합니다.

고맙습니다.

답변

1

그것은 보이는 등, 난 그냥 여기 to_liquid을 수정 한

module Jekyll 
    class Page 
    def to_liquid 
     self.data.deep_merge({ 
     "url" => File.join(@dir, self.url), 
     "content" => self.content, 
     "dir" => self.dir, 
     "name" => self.name, 
     "ext" => self.ext, 
     "basename" => self.basename 
     }) 
    end 
    end 
end 

, 그러나 나는 또한 많은 방법을 추가 할 수 :

그냥 _plugins 디렉토리에이 파일 (page.rb)를 추가 page.rb의 to_liquid 이제 "URL"데이터에게 당신의 필요 ...

https://github.com/mojombo/jekyll/blob/master/lib/jekyll/page.rb

+0

예. 나는 그것을 반영하기 위해 위키를 직접 수정했다. 감사! – kikito

3

나는 대답이 '아니오'라고 생각합니다. 여기에 글로벌 page 항목에서 무엇에 the Jekyll wiki있어 :

게시물에 대한

이는 YAML 서문에있는 데이터 (예 : URL 및 날짜 등) 계산 된 데이터의 조합입니다. 일반 페이지의 경우 YAML Front Matter입니다. 로컬 당신을 위해 그것을 할 지킬의 엔진을 다시 구성 할 수있다하더라도

, 나는 (그들이 당신보다는 바닐라 지킬를 사용하기 때문에) 당신이 Github에서 자신의 페이지에 그 일을 할 수있는 방법을 모르겠어요.

+0

빌어 먹을를 지원하지 않습니다처럼. 나는 그렇게 제한하지 않았 으면 좋겠다. 고마워, 난 그냥 YAML을 사용하거나 (예 : 0000-01-01) 가짜 날짜로 게시물을 만듭니다. – kikito

+0

하나의 옵션은 로컬 시스템에서 지킬 _site/파일을 생성하는 것입니다 (Jekyll을 많이 수정할 수 있습니다. 원하는대로 - 플러그인 포함). 이 모든 것이 당신의 마스터 지점입니다. 그런 다음 Grancher (http://timeless.judofyr.net/grancher)를 사용하여 _sites /를 gh-pages 브랜치에 복사하고 간단한 "rake publish"명령으로 커밋하고 푸시합니다. –

3

이제 새로운 플러그인 시스템을 통해 jekyll 클래스를 monkeypatch 할 수 있습니다!

관련 문제