Papercraft 2.16 버전에서는 여러 중요한 변경 사항이 도입되었습니다.
-
DOCTYPE 자동 포함: 이제
html태그 사용 시 기본적으로 DOCTYPE이 자동으로 포함되어 쿼크 모드를 방지합니다. -
콘텐츠 이스케이프 방지:
style및script태그의 콘텐츠는 더 이상 이스케이프되지 않아 인라인 CSS 및 JavaScript 작성이 더욱 용이해졌습니다. -
Markdown 처리 개선:
Papercraft.markdown_doc편의 메서드가 추가되어 Markdown 콘텐츠의 추가 처리를 위해Kramdown::Document인스턴스를 반환합니다. -
네임스페이스 컴포넌트 지원:
Foo::Bar('baz')와 같은 네임스페이스 컴포넌트 렌더링이 가능해져 템플릿 내에서 구조화된 코드 작성을 지원합니다.
새로운 Papercraft 웹사이트(papercraft.noteflakes.com)는 noteflakes.com과 동일하게 Syntropy 프레임워크를 사용하여 구축되었습니다. 모든 문서 페이지는 Markdown으로 작성되었으며, 웹사이트 자체 코드를 통해 Papercraft의 활용법을 명확히 보여줍니다.
Papercraft 웹사이트 구현 예시
-
기본 레이아웃:
export template를 사용하여 페이지 제목, 메타 정보, 스타일시트 링크 등을 포함하는 표준 HTML 구조를 정의합니다. 개발 모드에서 소스 코드 변경 시 자동으로 페이지를 새로고침하는 Syntropy 확장인auto_refresh_watch!지시어가 포함되어 있습니다. -
문서 레이아웃:
DefaultLayout.apply를 통해 기본 레이아웃을 확장하며, 페이지 콘텐츠(제목, 마크다운 렌더링 HTML)와 이전/다음 페이지 링크를 포함하는 내비게이션을 동적으로 구성합니다. 순수 Ruby 코드로 HTML 콘텐츠 흐름을 자연스럽게 제어하는 방식을 보여줍니다. -
랜딩 페이지:
Layout.apply를 활용하여 HTML과 Markdown 콘텐츠를 자유롭게 혼합합니다. CSS 클래스 대신 의미론적 태그 이름을 선호하여 템플릿 가독성과 생성된 HTML 크기를 최적화합니다.
컴포넌트화에 대한 논의에서는 Featurette 컴포넌트 예시를 통해 Papercraft에서 템플릿을 구성하고 재사용하는 용이성을 강조합니다. Papercraft는 상용구 코드 없이 순수 함수 형태로 작동하여 기존 프레임워크와의 통합이 매우 간편하며, 높은 성능을 제공합니다.