Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
krmax44 committed May 1, 2019
0 parents commit 13bb019
Show file tree
Hide file tree
Showing 37 changed files with 9,868 additions and 0 deletions.
40 changes: 40 additions & 0 deletions .gitignore
@@ -0,0 +1,40 @@
### Node

# Saber
.saber

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
dist/

# Dependency directories
node_modules/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test
64 changes: 64 additions & 0 deletions README.md
@@ -0,0 +1,64 @@
# Tailsaw: Saber Blog Starter Template

This is a starter template for creating a beautiful, customizable blog in Saber with minimal effort. It is based on the [Blog Template](https://github.com/tightenco/jigsaw-blog-template) for Jigsaw.

## Installation

_Coming soon..._

This starter template includes samples of common page types, and comes pre-configured with:

- A fully responsive theme
- [Tailwind CSS](https://tailwindcss.com/), a utility CSS framework that allows you to customize your design without touching a line of CSS
- Syntax highlighting using [Prism](https://prismjs.com)
- Progress bar and page transition
- A custom 404 page
- A component for accepting newsletter signups
- A sample contact form

Coming soon:

- A search bar which indexes your content automatically and requires zero configuration
- RSS feed and sitemap generator
- Config options

---

### Adding Content

You can write your content using a variety of file types. Your content is located in the `pages/_posts/` folder.

The top of each content page contains a YAML header that specifies how it should be rendered. The `title` attribute is used to dynamically generate HTML `title` and OpenGraph tags for each page. The `layout` attribute defines which parent layout this content file will render with (e.g. `post` will render with `theme/layouts/post.vue`).

```yaml
---
title: First Post
layout: post
date: 2019-04-29
author: Jane
categories:
- meta
slug: first-post
cover: /cover-1.png
featured: true
---

```

---

### Adding Assets

You can easily include assets in your posts, just by [linking to their relative location](https://saber.land/docs/images-fonts-and-files.html). Cover images need to be located in the `public` folder for now, until [frontmatter asset loading is implemented](https://github.com/egoist/saber/issues/80).

---

## Building Your Site

Now that you know how to customize your content, let’s build the site.

```bash
yarn build
```

Your built site is under `.saber/public/`.
25 changes: 25 additions & 0 deletions example/pages/_posts/cant-belive.md
@@ -0,0 +1,25 @@
---
title: Can't believe how much stuff gets posted here
layout: post
date: 2019-04-16
author: Bob
categories:
- loremipsum
slug: cant-belive
---

Reprehenderit fugiat tempor consequat nulla ea excepteur magna nulla id nisi ut ad.

Id ipsum elit consectetur ullamco voluptate eiusmod. Lorem minim consequat elit consequat.

Laboris occaecat sunt culpa ex excepteur incididunt qui nisi et aliqua incididunt. Minim ea voluptate magna ad dolore culpa sit incididunt qui proident irure laborum nostrud aliqua. Commodo duis mollit reprehenderit do fugiat id eu sunt sunt excepteur tempor. Voluptate cillum cillum sit laboris. Ut commodo anim mollit dolore cupidatat sunt. Reprehenderit cillum occaecat officia dolor aliqua in deserunt velit nulla mollit velit consequat laboris laboris. Nostrud adipisicing ipsum veniam occaecat anim exercitation veniam elit velit qui enim amet.

Adipisicing eiusmod eiusmod excepteur deserunt. Eu consectetur voluptate anim laborum labore ipsum adipisicing dolor cupidatat magna laborum minim dolor. Sint ipsum cupidatat incididunt consectetur cillum duis irure.

Culpa incididunt cillum mollit ea. Ipsum laborum labore tempor ut ad cupidatat incididunt amet sunt esse ex sint aute. Sit irure duis nulla culpa id cupidatat nostrud.

Consectetur nulla aliqua elit amet sunt. Culpa nulla labore cupidatat cillum ad in deserunt consequat ea. Elit in tempor dolore consectetur nostrud exercitation adipisicing eiusmod et elit anim quis. Esse veniam irure occaecat culpa dolor Lorem tempor voluptate mollit voluptate veniam.

Do fugiat cupidatat voluptate nulla enim aliquip laborum labore et ea elit velit laborum. Dolore amet quis excepteur et exercitation ex Lorem esse irure ut sint commodo. Veniam eu nulla ullamco adipisicing nisi commodo velit id enim Lorem consectetur labore labore incididunt. Aute ad ad enim qui fugiat esse fugiat minim dolor qui incididunt in consequat.

Aute officia consequat voluptate culpa nisi quis id labore velit aute excepteur sit veniam ea. Dolore labore eiusmod velit elit excepteur laborum. Sit consectetur proident ea ullamco et. Aute deserunt commodo voluptate excepteur non labore proident officia magna id labore Lorem est voluptate. Sint labore esse enim incididunt pariatur et ea.
22 changes: 22 additions & 0 deletions example/pages/_posts/even-more.md
@@ -0,0 +1,22 @@
---
title: Wow, so much content
layout: post
date: 2019-04-15
author: Bob
categories:
- loremipsum
slug: even-more
featured: true
---

Culpa quis dolore aliquip occaecat cupidatat et adipisicing.

In est consectetur tempor sunt laboris. Duis mollit et magna tempor deserunt consectetur consequat exercitation sit amet non.

Laborum ipsum reprehenderit proident occaecat excepteur non excepteur elit duis enim eu sint irure elit. Minim ut proident quis duis id sit minim labore culpa exercitation. Voluptate nulla pariatur ullamco reprehenderit et. Consequat deserunt minim ex et in et nostrud ad. Esse enim aliquip qui laborum esse elit mollit deserunt. Cillum enim dolor qui eiusmod consectetur magna proident ipsum. Proident laborum eiusmod velit reprehenderit anim do elit ipsum consectetur irure.

Adipisicing ex enim consectetur magna culpa ea et occaecat veniam laboris ea aute. Aliqua ad elit do reprehenderit dolore pariatur. Cillum elit quis sunt minim eu labore do et aliquip pariatur. Qui in tempor nisi proident esse. Labore anim consequat est tempor ea esse tempor nostrud aliqua consequat fugiat culpa esse ullamco. Laborum culpa culpa velit ea aute. Consequat veniam ex quis minim aliquip laborum aute et aute velit adipisicing et et.

Sit occaecat voluptate elit ipsum aliqua. Dolore consequat occaecat aliqua ut laborum quis exercitation laboris aute tempor minim aliquip. Fugiat consectetur ut voluptate excepteur.

Veniam aute eiusmod eu exercitation voluptate amet commodo cupidatat consectetur pariatur proident excepteur. Cillum voluptate amet magna incididunt elit ullamco anim ad esse nulla eiusmod amet. Veniam labore voluptate dolor tempor proident adipisicing esse mollit qui non magna aliqua dolor. Exercitation ullamco reprehenderit exercitation incididunt mollit tempor irure sit. Duis tempor aute ad id aute fugiat fugiat in cillum sint proident.
35 changes: 35 additions & 0 deletions example/pages/_posts/first-post.md
@@ -0,0 +1,35 @@
---
title: First Post
layout: post
date: 2019-04-29
author: Jane
categories:
- meta
slug: first-post
cover: /cover-1.png
featured: true
---

This is the first post!

> Nisi ullamco eu excepteur eu eu culpa enim elit veniam ut dolore ullamco aute.
>
> -- Surely someone
You can do all crazy things with Saber!

```js
console.log("woah!")
```

In fact, <button class="bg-blue hover:bg-blue-dark text-white font-bold py-2 px-4 rounded" @click="count++">{{ count }}</button> crazy things!

<script>
export default {
data() {
return {
count: 69
}
}
}
</script>
25 changes: 25 additions & 0 deletions example/pages/_posts/if-only.md
@@ -0,0 +1,25 @@
---
title: If only there was more content
layout: post
date: 2019-04-17
author: Bob
categories:
- loremipsum
slug: if-only
---

Elit pariatur sit ut ut occaecat Lorem deserunt ad laborum elit.

Enim consectetur dolor qui aliquip nostrud reprehenderit commodo laborum aute proident consequat velit cupidatat. Officia eiusmod cupidatat aliquip dolore culpa non aliqua laborum. Velit ut fugiat aliquip esse nostrud pariatur non. Aliqua eiusmod cupidatat exercitation ad fugiat anim eu. In ipsum cillum voluptate id sit qui adipisicing commodo sunt esse esse eiusmod qui culpa.

Duis nostrud ipsum excepteur qui reprehenderit qui nostrud dolor adipisicing adipisicing aliqua irure. Duis occaecat ullamco velit cillum amet tempor anim cupidatat anim incididunt. Commodo est eu enim duis nulla proident ullamco Lorem do. Minim ea et consectetur cupidatat eu est id. Ad nulla nisi culpa dolor exercitation consectetur velit. Exercitation laborum adipisicing ex culpa velit officia mollit elit nulla incididunt aute sunt ad do.

Occaecat commodo eu aliqua fugiat enim est dolore laborum sunt anim et. Lorem laborum reprehenderit reprehenderit ut. Ea id proident qui aliqua est officia qui exercitation et do sunt nisi. Fugiat reprehenderit laborum non est enim ad ullamco. Eu aliqua tempor ipsum et labore occaecat est tempor eiusmod magna ipsum incididunt non proident. Ullamco cupidatat minim aliquip excepteur elit enim voluptate.

Dolore cillum officia cupidatat nisi. Exercitation dolore cupidatat minim laboris duis cillum. Lorem ad magna est sint id amet.

Mollit ad dolore adipisicing dolor enim consectetur aute. Ea pariatur dolor amet magna fugiat minim dolor enim ipsum tempor. Veniam aliquip reprehenderit minim commodo. Quis reprehenderit Lorem eu labore eu deserunt labore quis enim velit minim. Ex velit incididunt sit anim pariatur ex irure aliqua magna reprehenderit veniam. Sint laboris laboris nulla ea ut ullamco officia aute esse eiusmod consectetur id aliqua. Consectetur dolor cupidatat velit fugiat irure incididunt ut aliquip ut aliquip nisi enim anim.

Lorem et aute consequat dolore in do enim aliquip non amet laboris laborum occaecat dolore. Minim ipsum irure voluptate consequat dolore officia. Ipsum quis tempor esse sit fugiat consequat et labore velit commodo qui labore enim duis. Elit reprehenderit sit eiusmod laborum nulla exercitation esse. Velit veniam magna tempor aliqua ullamco ipsum ullamco reprehenderit elit sunt mollit veniam eu. Culpa consectetur dolor do irure dolore culpa sunt adipisicing sint excepteur. Fugiat ea anim laborum officia voluptate velit et.

Ut reprehenderit ex pariatur eu mollit do minim officia fugiat ea do esse. Pariatur aliqua aute deserunt laborum laborum esse culpa proident. Mollit esse sint cillum reprehenderit exercitation culpa proident irure. Dolor non tempor ex nulla cupidatat. In adipisicing aliqua anim commodo nisi id occaecat exercitation dolore. Est ex officia occaecat dolor proident cupidatat excepteur reprehenderit cillum id.
25 changes: 25 additions & 0 deletions example/pages/_posts/let-there-be-more.md
@@ -0,0 +1,25 @@
---
title: Let there be more content!
layout: post
date: 2019-04-18
author: Bob
categories:
- loremipsum
slug: more-content
---

Ea et cillum culpa est laborum. Anim quis amet ea non voluptate proident cupidatat enim.

Nulla reprehenderit aute pariatur irure. Incididunt magna nostrud sint culpa enim pariatur consectetur tempor nostrud in labore eiusmod. Ea incididunt non mollit eiusmod. Non cillum deserunt laboris consectetur sit proident ad ipsum nostrud Lorem laborum enim. Fugiat culpa pariatur aliqua incididunt.

Lorem esse cillum proident cupidatat duis dolore eiusmod tempor sint. Qui nisi amet Lorem voluptate amet eiusmod ullamco non. Nulla ut voluptate voluptate exercitation consequat ullamco sunt ea aute qui sit non quis duis. Mollit excepteur exercitation qui ipsum reprehenderit irure culpa adipisicing ut aute. Officia id dolore ad nostrud voluptate consequat Lorem consectetur excepteur labore ipsum et voluptate.

Ipsum velit sit reprehenderit enim officia aliqua voluptate in culpa laboris sint voluptate irure. Laboris anim ut tempor velit est proident culpa proident anim est. Cupidatat consequat sint do ipsum minim excepteur amet proident.

Cupidatat occaecat ex deserunt laborum do sunt ad sunt nisi tempor irure anim dolore non. Ea dolor ad eiusmod aliquip. Tempor sint eiusmod consectetur occaecat et cupidatat excepteur anim amet nulla reprehenderit dolor. Qui eu commodo Lorem occaecat.

Nisi aliquip labore non consectetur eu est pariatur id incididunt cillum ipsum nisi aliqua. Officia veniam sunt ea anim ullamco cillum enim. Irure nulla do do nisi dolore aute velit irure. Non minim proident eiusmod cupidatat cillum quis exercitation amet est consequat culpa. Dolor irure qui excepteur ea laborum laboris et reprehenderit et. Nulla cupidatat qui consectetur nulla consectetur laboris magna anim esse dolore adipisicing. Labore aute adipisicing commodo in ex eu eu cillum nisi est laboris veniam laboris ut.

Magna proident et dolore cillum mollit qui amet aliqua irure labore consectetur aute sit. Nulla aute deserunt ullamco reprehenderit irure. Officia ad exercitation labore esse voluptate ea sit commodo. Excepteur elit sit elit mollit magna velit. Culpa ullamco labore dolor reprehenderit reprehenderit. Nisi et adipisicing magna id proident do id ut nostrud culpa consectetur sunt in amet.

Irure deserunt labore occaecat et in dolore Lorem velit esse eu nostrud. Elit dolor irure aliquip et cillum consectetur enim do. Incididunt eiusmod veniam est laboris anim enim qui sunt occaecat. Anim do consectetur qui minim irure sint nostrud adipisicing ex est. My latin really is on point!
37 changes: 37 additions & 0 deletions example/pages/_posts/second-post.md
@@ -0,0 +1,37 @@
---
title: Second Post
layout: post
date: 2019-04-30
author: John
categories:
- meta
- bar
slug: second-post
cover: /cover-2.png
---

This is the second post. Hope this is not getting too repetitive!

> Id ea nostrud enim proident officia anim aute.
>
> -- Surely someone
This is better than CoolMathGames:

<button class="bg-blue hover:bg-blue-dark text-white font-bold py-2 px-4 rounded" @click="a++">{{ a }}</button> + <button class="bg-blue hover:bg-blue-dark text-white font-bold py-2 px-4 rounded" @click="b++">{{ b }}</button> = {{ c }}

<script>
export default {
data() {
return {
a: 1,
b: 3
}
},
computed: {
c() {
return this.a + this.b
}
}
}
</script>
25 changes: 25 additions & 0 deletions example/pages/about.md
@@ -0,0 +1,25 @@
---
title: About
slug: about
layout: page
---

Eiusmod proident et Lorem commodo dolore proident reprehenderit eiusmod in fugiat fugiat officia laborum ea. Qui nisi sit quis sunt excepteur culpa occaecat et aute incididunt. Deserunt culpa ea ut et non ex id anim do cupidatat consequat do. Cillum veniam do voluptate culpa non aute eiusmod mollit ut sit.

Est voluptate cillum enim sint eiusmod dolore duis id mollit. Anim laboris adipisicing sunt anim ullamco non et minim cillum sunt voluptate exercitation pariatur quis. Irure adipisicing ea id aliquip eiusmod irure ad aliquip est. Ullamco mollit qui elit mollit mollit esse voluptate cillum amet ex ipsum ipsum magna excepteur. Ipsum ut minim consectetur officia minim non enim occaecat consectetur reprehenderit ad. Eiusmod eu elit ex duis reprehenderit culpa velit excepteur id cillum incididunt laboris ipsum et.

Minim velit irure esse fugiat incididunt pariatur sint est consequat adipisicing exercitation. Irure ut aute do sint id consectetur in deserunt tempor occaecat proident nisi reprehenderit. Irure est anim officia sit cillum sint labore reprehenderit reprehenderit. Velit sunt dolore consequat consectetur aliquip irure officia duis dolor dolor voluptate. Ex Lorem laboris consequat in velit voluptate esse do voluptate dolore et occaecat ullamco.

Enim occaecat ex id aliqua deserunt Lorem veniam ipsum esse in esse occaecat. Officia commodo ex ad esse Lorem cupidatat ullamco sint qui. Ullamco eu anim ullamco proident nulla veniam dolore eiusmod do qui excepteur sunt proident. Aliquip esse cillum qui aute mollit consequat. Est id cillum culpa quis culpa sit duis mollit reprehenderit occaecat dolor labore elit. Exercitation incididunt aute eiusmod nisi.

Dolor officia aliqua do reprehenderit. In duis pariatur eiusmod labore pariatur nisi. Incididunt ipsum amet occaecat amet id ad id. Velit magna voluptate anim qui ad et ea consectetur dolore nisi nulla.

Laboris laborum aute est excepteur sunt est in reprehenderit in ex ad. Et aliquip est quis elit sunt commodo non excepteur nostrud. Incididunt aliqua eiusmod aliqua commodo culpa.

Culpa ex tempor esse elit ut aliquip. Magna deserunt et reprehenderit aliquip quis. Et sint veniam occaecat dolor occaecat officia aliqua id do qui nostrud officia esse voluptate. Qui veniam anim labore nisi ut anim aliquip ullamco occaecat occaecat fugiat.

Non occaecat excepteur sit in et esse magna esse cillum cillum est anim exercitation. Esse pariatur esse nostrud proident incididunt duis ex tempor veniam dolor do sint Lorem. Commodo minim nisi voluptate sunt cupidatat incididunt sint nisi consequat ullamco laboris. Officia adipisicing Lorem pariatur laboris ut cupidatat. Velit deserunt anim non consequat velit anim cupidatat in. Adipisicing excepteur fugiat anim irure laboris consequat velit mollit fugiat elit. Est reprehenderit excepteur Lorem sunt qui tempor.

Quis officia ea exercitation non. Id sit officia et fugiat tempor cupidatat dolore esse eiusmod aliqua. Veniam id do Lorem anim pariatur incididunt aliqua. Aliquip magna dolore laboris proident commodo. Deserunt et irure ex dolor esse reprehenderit minim aute anim non dolor velit eiusmod exercitation. Voluptate aliquip dolor mollit aute nostrud duis non consectetur cillum non consectetur et.

Ad fugiat ea nulla occaecat occaecat ea mollit exercitation magna occaecat reprehenderit cillum dolore. Non eu ea nostrud incididunt pariatur ullamco tempor magna deserunt ex. Nostrud proident sit sit irure pariatur culpa culpa nostrud enim excepteur do Lorem aliqua. Adipisicing sunt dolor ut nisi nulla consequat labore ullamco fugiat adipisicing deserunt nostrud adipisicing. Consectetur dolor nisi ut esse nisi fugiat qui eiusmod reprehenderit.
5 changes: 5 additions & 0 deletions example/pages/blog.md
@@ -0,0 +1,5 @@
---
title: Blog
layout: category
injectAllPosts: true
---
72 changes: 72 additions & 0 deletions example/pages/contact.vue
@@ -0,0 +1,72 @@
<template>
<div class="mb-12">
<div class="flex flex-wrap mb-6 -mx-3">
<div class="w-full md:w-1/2 mb-6 md:mb-0 px-3">
<label
class="block mb-2 text-grey-darkest text-sm font-semibold"
for="contact-name"
>
Name
</label>

<input
type="text"
placeholder="Jane Doe"
name="name"
class="block w-full border shadow rounded-lg outline-none mb-2 p-4"
required
/>
</div>

<div class="w-full px-3 md:w-1/2">
<label
class="block text-grey-darkest text-sm font-semibold mb-2"
for="contact-email"
>
Email Address
</label>

<input
type="email"
placeholder="email@domain.com"
name="email"
class="block w-full border shadow rounded-lg outline-none mb-2 p-4"
required
/>
</div>
</div>

<div class="w-full mb-12">
<label
class="block text-grey-darkest text-sm font-semibold mb-2"
for="contact-message"
>
Message
</label>

<textarea
rows="4"
name="message"
class="block w-full border shadow rounded-lg outline-none appearance-none mb-2 px-4 py-6"
placeholder="A lovely message here."
required
></textarea>
</div>

<div class="flex justify-end w-full">
<input
type="submit"
value="Submit"
class="block bg-blue hover:bg-blue-dark text-white text-sm font-semibold tracking-wide uppercase shadow rounded-lg cursor-pointer px-6 py-3"
/>
</div>
</div>
</template>

<script>
export const attributes = {
layout: 'page'
}
export default {}
</script>

0 comments on commit 13bb019

Please sign in to comment.