Skip to content

rill-js/svelte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rill
@rill/svelte
API stability Standard NPM version Downloads Gitter Chat

Universal Svelte rendering middleware for Rill. It is recommended to combine this middleware with @rill/page as seen below to facilitate full page isomorphic rendering with svelte.

Installation

npm install @rill/svelte

Example

import Rill from 'rill'
import page from '@rill/page'
import renderer from '@rill/svelte'
import HomeView from './home.html'

// Create a rill app.
const app = Rill()

// Setup the document template.
app.get(page
  .html({ lang: 'en' })
  .meta({ charset: 'utf8' })
  .title('My Svelte App')
  .meta({ name: 'author', content: 'Dylan Piercey' })
  .meta({ name: 'descripton', content: 'Universal JS is awesome' })
  .link({ rel: 'stylesheet', href: 'index.css' })
  .script({ src: 'index.js', async: true })
)

// Setup svelte middleware.
app.get(renderer())

// Render a Svelte template.
app.get('/home', ({ res, locals }) => {
  // Set locals passed in as data.
  locals.title = '@rill/svelte'
  // Set a svelte component as the body to render it.
  res.body = HomeView
})

Custom Render Target.

@rill/svelte adds the ability to change the svelte target element with an option. By default the document.body will be the target element.

// Use a query selector to set the root element.
app.use(renderer({ target: '#my-element' }))

Contributions

  • Use npm test to run tests.

Please feel free to create a PR!