Papercraft

Introduction

Overview

Getting Started

Community

Basic Usage

Writing Templates

Rendering Templates

HTML Elements

Built-in Methods

Template Composition

Component Templates

Working with Layouts

Advanced Usage

Deferred Rendering

Extending Papercraft

Papercraft Internals

How Papercraft Works

Extending Papercraft

Papercraft can be extended by defining custom method calls that are accessible from any template. This is done with Papercraft.extension:

Papercraft.extension(
  youtube_player: ->(ref, width: 560, height: 315) {
    iframe(
      width:, height:,
      src: "https://www.youtube-nocookie.com/embed/#{ref}"
    )
  },
  ulist: ->(list) {
    ul {
      list.each { li { render_yield it } }
    }
  }
)

# usage:
->(youtube_video_refs) {
  ulist(youtube_video_refs) {
    youtube_player(it)
  }
}