vapor-docs/2.0/docs/leaf/package.md

85 lines
2.2 KiB
Markdown

# Using Leaf
This section outlines how to import the Leaf package both with or without a Vapor project.
## Example Folder Structure
```
Hello
├── Config
│   ├── app.json
│   ├── crypto.json
│   ├── droplet.json
│   ├── fluent.json
│   └── server.json
├── Package.pins
├── Package.swift
├── Public
├── README.md
├── Resources
│   ├── Views
│   │   │   └── hello.leaf
├── Public
│   ├── images (images resources)
│   ├── styles (css resources)
├── Sources
│   ├── App
│   │   ├── Config+Setup.swift
│   │   ├── Controllers
│   │   │   └── PostController.swift
│   │   ├── Droplet+Setup.swift
│   │   ├── Models
│   │   │   └── Post.swift
│   │   └── Routes.swift
│   └── Run
│   └── main.swift
├── Tests
│   ├── AppTests
│   │   ├── PostControllerTests.swift
│   │   ├── RouteTests.swift
│   │   └── Utilities.swift
│   └── LinuxMain.swift
├── circle.yml
└── license
```
## With Vapor
The easiest way to use Leaf with Vapor is to include the Leaf provider.
```swift
import PackageDescription
let package = Package(
name: "Project",
dependencies: [
.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 2),
.Package(url: "https://github.com/vapor/leaf-provider.git", majorVersion: 1)
],
exclude: [ ... ]
)
```
The Leaf provider package adds Leaf to your project and adds some additional, Vapor-specific conveniences like `drop.stem()`.
Use `import LeafProvider`.
## Just Leaf
At the core of the Leaf provider is a fast, pure Swift templating engine. You can use it with any of your Swift packages or server-side Swift applications.
```swift
import PackageDescription
let package = Package(
name: "Project",
dependencies: [
...
.Package(url: "https://github.com/vapor/leaf.git", majorVersion: 2)
],
exclude: [ ... ]
)
```
Use `import Leaf` to access the `Leaf.Stem` class.