1
0
Fork 0
mirror of https://github.com/Oreolek/raconteur.git synced 2024-05-17 00:08:16 +03:00

Set up site

This commit is contained in:
Bruno Dias 2015-04-13 06:32:17 -03:00
parent bcc1696ebb
commit 2f9f0cade2
24 changed files with 989 additions and 483 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
_site
.sass-cache

2
Gemfile Normal file
View file

@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'github-pages'

126
Gemfile.lock Normal file
View file

@ -0,0 +1,126 @@
GEM
remote: https://rubygems.org/
specs:
RedCloth (4.2.9)
activesupport (4.2.1)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
blankslate (2.1.2.4)
celluloid (0.16.0)
timers (~> 4.0.0)
classifier-reborn (2.0.3)
fast-stemmer (~> 1.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.9.1.1)
colorator (0.1)
execjs (2.5.2)
fast-stemmer (1.0.2)
ffi (1.9.8)
gemoji (2.1.0)
github-pages (34)
RedCloth (= 4.2.9)
github-pages-health-check (~> 0.2)
jekyll (= 2.4.0)
jekyll-coffeescript (= 1.0.1)
jekyll-mentions (= 0.2.1)
jekyll-redirect-from (= 0.6.2)
jekyll-sass-converter (= 1.2.0)
jekyll-sitemap (= 0.8.1)
jemoji (= 0.4.0)
kramdown (= 1.5.0)
liquid (= 2.6.1)
maruku (= 0.7.0)
mercenary (~> 0.3)
pygments.rb (= 0.6.1)
rdiscount (= 2.1.7)
redcarpet (= 3.1.2)
terminal-table (~> 1.4)
github-pages-health-check (0.2.2)
net-dns (~> 0.6)
public_suffix (~> 1.4)
hitimes (1.2.2)
html-pipeline (1.9.0)
activesupport (>= 2)
nokogiri (~> 1.4)
i18n (0.7.0)
jekyll (2.4.0)
classifier-reborn (~> 2.0)
colorator (~> 0.1)
jekyll-coffeescript (~> 1.0)
jekyll-gist (~> 1.0)
jekyll-paginate (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 2.6.1)
mercenary (~> 0.3.3)
pygments.rb (~> 0.6.0)
redcarpet (~> 3.1)
safe_yaml (~> 1.0)
toml (~> 0.1.0)
jekyll-coffeescript (1.0.1)
coffee-script (~> 2.2)
jekyll-gist (1.2.1)
jekyll-mentions (0.2.1)
html-pipeline (~> 1.9.0)
jekyll (~> 2.0)
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.6.2)
jekyll (~> 2.0)
jekyll-sass-converter (1.2.0)
sass (~> 3.2)
jekyll-sitemap (0.8.1)
jekyll-watch (1.2.1)
listen (~> 2.7)
jemoji (0.4.0)
gemoji (~> 2.0)
html-pipeline (~> 1.9)
jekyll (~> 2.0)
json (1.8.2)
kramdown (1.5.0)
liquid (2.6.1)
listen (2.10.0)
celluloid (~> 0.16.0)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
maruku (0.7.0)
mercenary (0.3.5)
mini_portile (0.6.2)
minitest (5.5.1)
net-dns (0.8.0)
nokogiri (1.6.6.2)
mini_portile (~> 0.6.0)
parslet (1.5.0)
blankslate (~> 2.0)
posix-spawn (0.3.11)
public_suffix (1.5.1)
pygments.rb (0.6.1)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.2.0)
rb-fsevent (0.9.4)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
rdiscount (2.1.7)
redcarpet (3.1.2)
safe_yaml (1.0.4)
sass (3.4.13)
terminal-table (1.4.5)
thread_safe (0.3.5)
timers (4.0.1)
hitimes
toml (0.1.2)
parslet (~> 1.5.0)
tzinfo (1.2.2)
thread_safe (~> 0.1)
yajl-ruby (1.2.1)
PLATFORMS
ruby
DEPENDENCIES
github-pages

11
_config.yml Normal file
View file

@ -0,0 +1,11 @@
# Site settings
title: Raconteur
description: > # this means to ignore newlines until "baseurl:"
Raconteur is a library of tools that makes developing hypertext interactive
fiction with Undum easy and perhaps even fun.
baseurl: "" # the subpath of your site, e.g. /blog/
url: "http://sequitur.github.io/raconteur/"
github_username: sequitur
# Build settings
markdown: kramdown

3
_includes/footer.html Normal file
View file

@ -0,0 +1,3 @@
<footer class="site-footer">
</footer>

12
_includes/head.html Normal file
View file

@ -0,0 +1,12 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
<meta name="description" content="{{ site.description }}">
<link href='//fonts.googleapis.com/css?family=Raleway:400,300,600' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
</head>

15
_includes/header.html Normal file
View file

@ -0,0 +1,15 @@
<header class="site-header">
<div class="container header">
<div class="row">
<div class="twelve columns">
<h1 class="site-title"><a href="{{ site.baseurl }}/">{{ site.title }}</a></h1>
</div>
</div>
</div>
</header>

11
_layouts/default.html Normal file
View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
{% include head.html %}
<body>
{% include header.html %}
<div class="container">
{{ content }}
</div class="container">
{% include footer.html %}
</body>
</html>

8
_layouts/noheader.html Normal file
View file

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
{% include head.html %}
<body>
{{ content }}
{% include footer.html %}
</body>
</html>

14
_layouts/page.html Normal file
View file

@ -0,0 +1,14 @@
---
layout: default
---
<div class="post">
<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
</header>
<article class="post-content">
{{ content }}
</article>
</div>

15
_layouts/post.html Normal file
View file

@ -0,0 +1,15 @@
---
layout: default
---
<div class="post">
<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
<p class="post-meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
</header>
<article class="post-content">
{{ content }}
</article>
</div>

View file

@ -0,0 +1,6 @@
---
layout: post
title: Announcing Raconteur
---
(Watch this space)

58
_sass/_styles.scss Normal file
View file

@ -0,0 +1,58 @@
/* Definitions */
$brand_background: #E24D00;
.site-title {
text-align: center;
}
.top {
padding-bottom: 2rem;
margin-bottom: 2rem;
h5 {
text-align: center;
}
}
.bright {
padding-top: 2rem;
background: $brand_background;
h1, h2, h3, h4, h5, h6, p {
color: white;
}
a {
color: white;
border-bottom: 1px solid white;
}
}
.intro {
font-size: 2rem;
}
h1, h2, h3, h4, h5 {
a {
text-decoration: none;
}
}
.highlight {
margin: none;
padding: none;
}
pre:first-child {
margin-top: 0;
}
.post-meta {
padding-top: 2rem;
padding-bottom: 2rem;
}

View file

@ -0,0 +1,66 @@
/**
* Syntax highlighting styles
*/
.highlight {
background: #fff;
.c { color: #998; font-style: italic } // Comment
.err { color: #a61717; background-color: #e3d2d2 } // Error
.k { font-weight: bold } // Keyword
.o { font-weight: bold } // Operator
.cm { color: #998; font-style: italic } // Comment.Multiline
.cp { color: #999; font-weight: bold } // Comment.Preproc
.c1 { color: #998; font-style: italic } // Comment.Single
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
.gd { color: #000; background-color: #fdd } // Generic.Deleted
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
.ge { font-style: italic } // Generic.Emph
.gr { color: #a00 } // Generic.Error
.gh { color: #999 } // Generic.Heading
.gi { color: #000; background-color: #dfd } // Generic.Inserted
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
.go { color: #888 } // Generic.Output
.gp { color: #555 } // Generic.Prompt
.gs { font-weight: bold } // Generic.Strong
.gu { color: #aaa } // Generic.Subheading
.gt { color: #a00 } // Generic.Traceback
.kc { font-weight: bold } // Keyword.Constant
.kd { font-weight: bold } // Keyword.Declaration
.kp { font-weight: bold } // Keyword.Pseudo
.kr { font-weight: bold } // Keyword.Reserved
.kt { color: #458; font-weight: bold } // Keyword.Type
.m { color: #099 } // Literal.Number
.s { color: #d14 } // Literal.String
.na { color: #008080 } // Name.Attribute
.nb { color: #0086B3 } // Name.Builtin
.nc { color: #458; font-weight: bold } // Name.Class
.no { color: #008080 } // Name.Constant
.ni { color: #800080 } // Name.Entity
.ne { color: #900; font-weight: bold } // Name.Exception
.nf { color: #900; font-weight: bold } // Name.Function
.nn { color: #555 } // Name.Namespace
.nt { color: #000080 } // Name.Tag
.nv { color: #008080 } // Name.Variable
.ow { font-weight: bold } // Operator.Word
.w { color: #bbb } // Text.Whitespace
.mf { color: #099 } // Literal.Number.Float
.mh { color: #099 } // Literal.Number.Hex
.mi { color: #099 } // Literal.Number.Integer
.mo { color: #099 } // Literal.Number.Oct
.sb { color: #d14 } // Literal.String.Backtick
.sc { color: #d14 } // Literal.String.Char
.sd { color: #d14 } // Literal.String.Doc
.s2 { color: #d14 } // Literal.String.Double
.se { color: #d14 } // Literal.String.Escape
.sh { color: #d14 } // Literal.String.Heredoc
.si { color: #d14 } // Literal.String.Interpol
.sx { color: #d14 } // Literal.String.Other
.sr { color: #009926 } // Literal.String.Regex
.s1 { color: #d14 } // Literal.String.Single
.ss { color: #990073 } // Literal.String.Symbol
.bp { color: #999 } // Name.Builtin.Pseudo
.vc { color: #008080 } // Name.Variable.Class
.vg { color: #008080 } // Name.Variable.Global
.vi { color: #008080 } // Name.Variable.Instance
.il { color: #099 } // Literal.Number.Integer.Long
}

11
about.md Normal file
View file

@ -0,0 +1,11 @@
---
layout: page
title: About
permalink: /about/
---
This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/)
You can find the source code for the Jekyll new theme at: [github.com/jglovier/jekyll-new](https://github.com/jglovier/jekyll-new)
You can find the source code for Jekyll at [github.com/jekyll/jekyll](https://github.com/jekyll/jekyll)

8
css/main.scss Normal file
View file

@ -0,0 +1,8 @@
---
# Only the main Sass file needs front matter (the dashes are enough)
---
@charset "utf-8";
@import "normalize.css";
@import "skeleton.css";
@import "styles", "syntax-highlighting";

View file

@ -209,6 +209,7 @@ figure {
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
@ -354,7 +355,9 @@ input[type="number"]::-webkit-outer-spin-button {
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */ /* 2 */
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
@ -421,4 +424,4 @@ table {
td,
th {
padding: 0;
}
}

418
css/skeleton.css vendored Normal file
View file

@ -0,0 +1,418 @@
/*
* Skeleton V2.0.4
* Copyright 2014, Dave Gamache
* www.getskeleton.com
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
* 12/29/2014
*/
/* Table of contents
- Grid
- Base Styles
- Typography
- Links
- Buttons
- Forms
- Lists
- Code
- Tables
- Spacing
- Utilities
- Clearing
- Media Queries
*/
/* Grid
*/
.container {
position: relative;
width: 100%;
max-width: 960px;
margin: 0 auto;
padding: 0 20px;
box-sizing: border-box; }
.column,
.columns {
width: 100%;
float: left;
box-sizing: border-box; }
/* For devices larger than 400px */
@media (min-width: 400px) {
.container {
width: 85%;
padding: 0; }
}
/* For devices larger than 550px */
@media (min-width: 550px) {
.container {
width: 80%; }
.column,
.columns {
margin-left: 4%; }
.column:first-child,
.columns:first-child {
margin-left: 0; }
.one.column,
.one.columns { width: 4.66666666667%; }
.two.columns { width: 13.3333333333%; }
.three.columns { width: 22%; }
.four.columns { width: 30.6666666667%; }
.five.columns { width: 39.3333333333%; }
.six.columns { width: 48%; }
.seven.columns { width: 56.6666666667%; }
.eight.columns { width: 65.3333333333%; }
.nine.columns { width: 74.0%; }
.ten.columns { width: 82.6666666667%; }
.eleven.columns { width: 91.3333333333%; }
.twelve.columns { width: 100%; margin-left: 0; }
.one-third.column { width: 30.6666666667%; }
.two-thirds.column { width: 65.3333333333%; }
.one-half.column { width: 48%; }
/* Offsets */
.offset-by-one.column,
.offset-by-one.columns { margin-left: 8.66666666667%; }
.offset-by-two.column,
.offset-by-two.columns { margin-left: 17.3333333333%; }
.offset-by-three.column,
.offset-by-three.columns { margin-left: 26%; }
.offset-by-four.column,
.offset-by-four.columns { margin-left: 34.6666666667%; }
.offset-by-five.column,
.offset-by-five.columns { margin-left: 43.3333333333%; }
.offset-by-six.column,
.offset-by-six.columns { margin-left: 52%; }
.offset-by-seven.column,
.offset-by-seven.columns { margin-left: 60.6666666667%; }
.offset-by-eight.column,
.offset-by-eight.columns { margin-left: 69.3333333333%; }
.offset-by-nine.column,
.offset-by-nine.columns { margin-left: 78.0%; }
.offset-by-ten.column,
.offset-by-ten.columns { margin-left: 86.6666666667%; }
.offset-by-eleven.column,
.offset-by-eleven.columns { margin-left: 95.3333333333%; }
.offset-by-one-third.column,
.offset-by-one-third.columns { margin-left: 34.6666666667%; }
.offset-by-two-thirds.column,
.offset-by-two-thirds.columns { margin-left: 69.3333333333%; }
.offset-by-one-half.column,
.offset-by-one-half.columns { margin-left: 52%; }
}
/* Base Styles
*/
/* NOTE
html is set to 62.5% so that all the REM measurements throughout Skeleton
are based on 10px sizing. So basically 1.5rem = 15px :) */
html {
font-size: 62.5%; }
body {
font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */
line-height: 1.6;
font-weight: 400;
font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #222; }
/* Typography
*/
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 2rem;
font-weight: 300; }
h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;}
h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; }
h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; }
h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; }
h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; }
h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; }
/* Larger than phablet */
@media (min-width: 550px) {
h1 { font-size: 5.0rem; }
h2 { font-size: 4.2rem; }
h3 { font-size: 3.6rem; }
h4 { font-size: 3.0rem; }
h5 { font-size: 2.4rem; }
h6 { font-size: 1.5rem; }
}
p {
margin-top: 0; }
/* Links
*/
a {
color: #1EAEDB; }
a:hover {
color: #0FA0CE; }
/* Buttons
*/
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
display: inline-block;
height: 38px;
padding: 0 30px;
color: #555;
text-align: center;
font-size: 11px;
font-weight: 600;
line-height: 38px;
letter-spacing: .1rem;
text-transform: uppercase;
text-decoration: none;
white-space: nowrap;
background-color: transparent;
border-radius: 4px;
border: 1px solid #bbb;
cursor: pointer;
box-sizing: border-box; }
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
color: #333;
border-color: #888;
outline: 0; }
.button.button-primary,
button.button-primary,
input[type="submit"].button-primary,
input[type="reset"].button-primary,
input[type="button"].button-primary {
color: #FFF;
background-color: #33C3F0;
border-color: #33C3F0; }
.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
color: #FFF;
background-color: #1EAEDB;
border-color: #1EAEDB; }
/* Forms
*/
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
height: 38px;
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
background-color: #fff;
border: 1px solid #D1D1D1;
border-radius: 4px;
box-shadow: none;
box-sizing: border-box; }
/* Removes awkward default styles on some inputs for iOS */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; }
textarea {
min-height: 65px;
padding-top: 6px;
padding-bottom: 6px; }
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
border: 1px solid #33C3F0;
outline: 0; }
label,
legend {
display: block;
margin-bottom: .5rem;
font-weight: 600; }
fieldset {
padding: 0;
border-width: 0; }
input[type="checkbox"],
input[type="radio"] {
display: inline; }
label > .label-body {
display: inline-block;
margin-left: .5rem;
font-weight: normal; }
/* Lists
*/
ul {
list-style: circle inside; }
ol {
list-style: decimal inside; }
ol, ul {
padding-left: 0;
margin-top: 0; }
ul ul,
ul ol,
ol ol,
ol ul {
margin: 1.5rem 0 1.5rem 3rem;
font-size: 90%; }
li {
margin-bottom: 1rem; }
/* Code
*/
code {
padding: .2rem .5rem;
margin: 0 .2rem;
font-size: 90%;
white-space: nowrap;
background: #F1F1F1;
border: 1px solid #E1E1E1;
border-radius: 4px; }
pre > code {
display: block;
padding: 1rem 1.5rem;
white-space: pre; }
/* Tables
*/
th,
td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #E1E1E1; }
th:first-child,
td:first-child {
padding-left: 0; }
th:last-child,
td:last-child {
padding-right: 0; }
/* Spacing
*/
button,
.button {
margin-bottom: 1rem; }
input,
textarea,
select,
fieldset {
margin-bottom: 1.5rem; }
pre,
blockquote,
dl,
figure,
table,
p,
ul,
ol,
form {
margin-bottom: 2.5rem; }
/* Utilities
*/
.u-full-width {
width: 100%;
box-sizing: border-box; }
.u-max-full-width {
max-width: 100%;
box-sizing: border-box; }
.u-pull-right {
float: right; }
.u-pull-left {
float: left; }
/* Misc
*/
hr {
margin-top: 3rem;
margin-bottom: 3.5rem;
border-width: 0;
border-top: 1px solid #E1E1E1; }
/* Clearing
*/
/* Self Clearing Goodness */
.container:after,
.row:after,
.u-cf {
content: "";
display: table;
clear: both; }
/* Media Queries
*/
/*
Note: The best way to structure the use of media queries is to create the queries
near the relevant code. For example, if you wanted to change the styles for buttons
on small devices, paste the mobile query code up in the buttons section and style it
there.
*/
/* Larger than mobile */
@media (min-width: 400px) {}
/* Larger than phablet (also point when grid becomes active) */
@media (min-width: 550px) {}
/* Larger than tablet */
@media (min-width: 750px) {}
/* Larger than desktop */
@media (min-width: 1000px) {}
/* Larger than Desktop HD */
@media (min-width: 1200px) {}

30
feed.xml Normal file
View file

@ -0,0 +1,30 @@
---
layout: null
---
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ site.title | xml_escape }}</title>
<description>{{ site.description | xml_escape }}</description>
<link>{{ site.url }}{{ site.baseurl }}/</link>
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml" />
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
<generator>Jekyll v{{ jekyll.version }}</generator>
{% for post in site.posts limit:10 %}
<item>
<title>{{ post.title | xml_escape }}</title>
<description>{{ post.content | xml_escape }}</description>
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
{% for tag in post.tags %}
<category>{{ tag | xml_escape }}</category>
{% endfor %}
{% for cat in post.categories %}
<category>{{ cat | xml_escape }}</category>
{% endfor %}
</item>
{% endfor %}
</channel>
</rss>

View file

@ -1,125 +1,137 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<title>Raconteur by sequitur</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="stylesheets/normalize.css" media="screen">
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/github-light.css" media="screen">
</head>
<body>
<section class="page-header">
<h1 class="project-name">Raconteur</h1>
<h2 class="project-tagline">A friendlier way to write Undum hypertext fiction</h2>
<a href="https://github.com/sequitur/raconteur" class="btn">View on GitHub</a>
<a href="https://github.com/sequitur/raconteur/zipball/master" class="btn">Download .zip</a>
<a href="https://github.com/sequitur/raconteur/tarball/master" class="btn">Download .tar.gz</a>
</section>
---
layout: noheader
---
<section class="main-content">
<h1>
<a id="raconteur" class="anchor" href="#raconteur" aria-hidden="true"><span class="octicon octicon-link"></span></a>Raconteur</h1>
<div class="section top bright">
<div class="container">
<div class="row">
<div class="four columns">
<h5><a href="news.html">News</a></h5>
</div>
<div class="four columns">
<h5><a href="http://github.com/sequitur/raconteur">View Raconteur on Github</a></h5>
</div>
<div class="four columns">
<h5><a href="http://github.com/sequitur/raconteur-scaffold">Get the scaffold</a></h5>
</div>
</div>
</div>
</div>
<p>Raconteur is a wrapper library for Undum, a system for writing hypertext
interactive fiction. Raconteur that to provide a more programmer-friendly
API as well as a bundle of commonly-needed functionality, for novices and
expert users alike.</p>
<div class="section">
<div class="container">
<div class="row">
<div class="six columns intro">
<h3>
Raconteur dramatically speeds up writing interactive fiction with
<a href="http://undum.com">Undum</a>.
</h4>
<p>
Undum is perhaps the most versatile system for writing hypertext
interactive fiction. Unfortunately, it's also the hardest to use.
Raconteur aims to change that. It's designed so that you only need
to care about the complexity that you're going to use, when you're
going to use it.
</p>
</div>
<div class="six columns codeexample">
{% highlight coffeescript %}
situation 'west-of-house',
content: """
You are standing in an open field west of a white house,
with a boarded up front door.
"""
{% endhighlight %}
</div>
</div>
<div class="row">
<div class="six columns intro">
<h2>Batteries Included</h2>
<p>
The Raconteur scaffold comes with everything you need to get started,
configured out of the box to use a build system, CSS preprocessor, and
bundler. Don't worry too much if you don't know what any of those are:
I promise they're helpful.
</p>
</div>
<div class="six columns intro">
<h2>Adaptive Text</h2>
<p>
Raconteur is built with adaptive text generation in mind. Defining
snippets of text that vary whenever the player sees them is easy.
Raconteur takes inspiration from Inform 7 and other IF development
systems.
</p>
<p>As much as possible, it treats code that produces text and
text interchangeably. Raconteur lets you rewrite passages to include
dynamic text very easily, so that you can spend more time rewriting
your prose and less time refactoring your code.
</p>
<p>Raconteur is still in active development towards its 1.0 release.</p>
</div>
</div>
<h2>
<a id="implemented-features" class="anchor" href="#implemented-features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Implemented Features</h2>
<ul>
<li>DSL-like syntax for defining situations.</li>
<li>A powerful situation prototype that bundles a lot of commonly-used
functionality.</li>
<li>Shorthand for defining common hypertext interactions such as text
replacement or insertion, similar to popular Twine extensions.</li>
<li>Most properties of situations can be either functions or strings,
making it easy to turn a simple situation into a complex one.</li>
<li>An interface that is specifically designed to be used with ECMAScript 6 via
Babel, or CoffeeScript.</li>
<li>Markdown, rather than raw HTML, as the format for most text content using
markdown-it.</li>
<li>A tool bundle of iterators that makes it easy to define adaptive text
snippets.</li>
<li>Based on CommonJS principles (Using undum-commonjs), allowing all game code
to be bundled using Browserify.</li>
</ul>
<h2>
<a id="planned-features" class="anchor" href="#planned-features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Planned Features</h2>
<ul>
<li>An advanced game template that sets up a complete development environment
for authors: A build system (gulp), CSS preprocessing (Less), and dependency
management (Browserify + npm).</li>
<li>A complete code refactoring of Undum and Raconteur itself with testability
in mind, allowing the use of testing frameworks with Undum stories.</li>
</ul>
<h2>
<a id="code-examples" class="anchor" href="#code-examples" aria-hidden="true"><span class="octicon octicon-link"></span></a>Code examples</h2>
<p>Those examples all use CoffeeScript.</p>
<p>Defining a simple situation in Raconteur:</p>
<div class="highlight highlight-coffeescript"><pre>situation <span class="pl-s"><span class="pl-pds">'</span>raconteur_example<span class="pl-pds">'</span></span>,
<span class="pl-v"><span class="pl-v">content:</span></span> <span class="pl-s"><span class="pl-pds">"""</span></span>
<span class="pl-s"> This is an example of a situation using Raconteur's API. It supports</span>
<span class="pl-s"> Markdown in text, so the content of a simple situation can just be</span>
<span class="pl-s"> written out without explicit HTML.</span>
<span class="pl-s"> <span class="pl-pds">"""</span></span></pre></div>
<p>Using text snippets:</p>
<div class="highlight highlight-coffeescript"><pre>
situation <span class="pl-s"><span class="pl-pds">'</span>variations<span class="pl-pds">'</span></span>,
<span class="pl-en">content</span><span class="pl-k">:</span><span class="pl-smi"> <span class="pl-smi">(character, system)</span></span> <span class="pl-k"><span class="pl-k">-&gt;</span></span>
<span class="pl-c"># content can be either a function or a simple string, transparently</span>
<span class="pl-v"><span class="pl-v">color <span class="pl-k">=</span></span></span> oneOf([<span class="pl-s"><span class="pl-pds">'</span>bright purple<span class="pl-pds">'</span></span>, <span class="pl-s"><span class="pl-pds">'</span>sickly green<span class="pl-pds">'</span></span>, <span class="pl-s"><span class="pl-pds">'</span>brilliant white<span class="pl-pds">'</span></span>])
.randomly(system) <span class="pl-c"># We pass the system object so that random results</span>
<span class="pl-c"># will always be the same across different runs of</span>
<span class="pl-c"># the same saved game.</span>
<span class="pl-s"><span class="pl-pds">"""</span></span>
<span class="pl-s"> # Reflecting Pool</span>
<span class="pl-s"></span>
<span class="pl-s"> You find yourself in an underground, flooded cave. Light shimmers on</span>
<span class="pl-s"> the walls, <span class="pl-s1"><span class="pl-pse">#{</span>color<span class="pl-pse">}</span></span>.</span>
<span class="pl-s"> <span class="pl-pds">"""</span></span></pre></div>
<h2>
<a id="contributors" class="anchor" href="#contributors" aria-hidden="true"><span class="octicon octicon-link"></span></a>Contributors</h2>
<p>Undum was created by Ian Millington. Raconteur was written by Bruno Dias.</p>
<h2>
<a id="license" class="anchor" href="#license" aria-hidden="true"><span class="octicon octicon-link"></span></a>License</h2>
<p>In short: You can use, modify, or redistribute Raconteur and Undum, for any
purpose, as long as this license document is kept with copies of it. See
LICENSE for legalese.</p>
<p>Undum is copyright (c) 2009-2015 I D Millington, and released under the MIT
license.</p>
<p>Raconteur itself is copyright (c) 2015 Bruno Dias, and released under the
same MIT license.</p>
<footer class="site-footer">
<span class="site-footer-owner"><a href="https://github.com/sequitur/raconteur">Raconteur</a> is maintained by <a href="https://github.com/sequitur">sequitur</a>.</span>
<span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a> using the <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a> by <a href="https://twitter.com/jasonlong">Jason Long</a>.</span>
</footer>
</section>
</body>
</html>
<div class="row">
<div class="six columns codeexample">
{% highlight coffeescript %}
situation 'reflecting-pool',
content: (character, system) -> """
Looking into the pool, you find yourself feeling
#{character.sandbox.mood}. It glows with a strange
#{this.color} light.
""",
light: oneOf('blue', 'red', 'green').randomly()
{% endhighlight %}
</div>
<div class="six columns intro">
<h2>Modular</h2>
<p>
Raconteur is made out of modules, each implementing its own set of
functionality. You only need to use the ones you want.
</p>
</div>
</div>
</div>
</div>
<div class="section bright">
<div class="container">
<div class="row">
<div class="twelve columns">
<h2>Programmer-friendly</h2>
<p>
Raconteur is built using standard web development tools, instead of a
specialist toolchain. It's familiar for people who know front-end web
development; and those who don't will still benefit from working
with a robust, proven toolchain.
</p>
</div>
</div>
<div class="row">
<div class="four columns">
<h3>npm</h3>
<p>
The Node package manager makes it easy to install Raconteur and its
dependencies.
</p>
</div>
<div class="four columns">
<h3>Gulp</h3>
<p>
Raconteur is designed to be used with a powerful build system that
automates bundling your game and lets you see changes as you make
them right on the browser.
</p>
</div>
<div class="four columns">
<h3>Browserify</h3>
<p>
Raconteur is made up of independent modules &ndash; Browserify bundles
all of those modules, along with your game, into a single file, while
keeping the code separate and modular. You can treat Raconteur as a
true library, the guts of which you never have to look into.
</p>
</div>
</div>
</div>
</div>

36
news.html Normal file
View file

@ -0,0 +1,36 @@
---
layout: default
---
<div class="section posts">
<div class="container">
<div class="row">
<div class="twelve columns">
<h1 class="page-heading">News</h1>
</div>
</div>
<div class="row">
{% for post in site.posts %}
<div class="two columns">
<p class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</p>
</div>
<div class="ten columns">
<h2>
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
</h2>
{{post.excerpt | markdownify}}
</div>
{% endfor %}
</div>
<div class="row">
<div class="twelve columns">
<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
</div>
</div>
</div>
</div>

View file

@ -1 +0,0 @@
{"name":"Raconteur","tagline":"A friendlier way to write Undum hypertext fiction","body":"# Raconteur\r\n\r\nRaconteur is a wrapper library for Undum, a system for writing hypertext\r\ninteractive fiction. Raconteur that to provide a more programmer-friendly\r\nAPI as well as a bundle of commonly-needed functionality, for novices and\r\nexpert users alike.\r\n\r\nRaconteur is still in active development towards its 1.0 release.\r\n\r\n## Implemented Features\r\n\r\n- DSL-like syntax for defining situations.\r\n- A powerful situation prototype that bundles a lot of commonly-used\r\n functionality.\r\n- Shorthand for defining common hypertext interactions such as text\r\n replacement or insertion, similar to popular Twine extensions.\r\n- Most properties of situations can be either functions or strings,\r\n making it easy to turn a simple situation into a complex one.\r\n- An interface that is specifically designed to be used with ECMAScript 6 via\r\n Babel, or CoffeeScript.\r\n- Markdown, rather than raw HTML, as the format for most text content using\r\n markdown-it.\r\n- A tool bundle of iterators that makes it easy to define adaptive text\r\n snippets.\r\n- Based on CommonJS principles (Using undum-commonjs), allowing all game code\r\n to be bundled using Browserify.\r\n\r\n## Planned Features\r\n\r\n- An advanced game template that sets up a complete development environment\r\n for authors: A build system (gulp), CSS preprocessing (Less), and dependency\r\n management (Browserify + npm).\r\n- A complete code refactoring of Undum and Raconteur itself with testability\r\n in mind, allowing the use of testing frameworks with Undum stories.\r\n\r\n## Code examples\r\n\r\nThose examples all use CoffeeScript.\r\n\r\nDefining a simple situation in Raconteur:\r\n\r\n```coffeescript\r\nsituation 'raconteur_example',\r\n content: \"\"\"\r\n This is an example of a situation using Raconteur's API. It supports\r\n Markdown in text, so the content of a simple situation can just be\r\n written out without explicit HTML.\r\n \"\"\"\r\n```\r\n\r\nUsing text snippets:\r\n\r\n```coffeescript\r\n\r\nsituation 'variations',\r\n content: (character, system) ->\r\n # content can be either a function or a simple string, transparently\r\n color = oneOf(['bright purple', 'sickly green', 'brilliant white'])\r\n .randomly(system) # We pass the system object so that random results\r\n # will always be the same across different runs of\r\n # the same saved game.\r\n\r\n \"\"\"\r\n # Reflecting Pool\r\n \r\n You find yourself in an underground, flooded cave. Light shimmers on\r\n the walls, #{color}.\r\n \"\"\"\r\n```\r\n\r\n## Contributors\r\n\r\nUndum was created by Ian Millington. Raconteur was written by Bruno Dias.\r\n\r\n## License\r\n\r\nIn short: You can use, modify, or redistribute Raconteur and Undum, for any\r\npurpose, as long as this license document is kept with copies of it. See\r\nLICENSE for legalese.\r\n\r\nUndum is copyright (c) 2009-2015 I D Millington, and released under the MIT\r\nlicense.\r\n\r\nRaconteur itself is copyright (c) 2015 Bruno Dias, and released under the\r\nsame MIT license.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}

View file

@ -1,115 +0,0 @@
/*
Copyright 2014 GitHub Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
.pl-c /* comment */ {
color: #969896;
}
.pl-c1 /* constant, markup.raw, meta.diff.header, meta.module-reference, meta.property-name, support, support.constant, support.variable, variable.other.constant */,
.pl-s .pl-v /* string variable */ {
color: #0086b3;
}
.pl-e /* entity */,
.pl-en /* entity.name */ {
color: #795da3;
}
.pl-s .pl-s1 /* string source */,
.pl-smi /* storage.modifier.import, storage.modifier.package, storage.type.java, variable.other, variable.parameter.function */ {
color: #333;
}
.pl-ent /* entity.name.tag */ {
color: #63a35c;
}
.pl-k /* keyword, storage, storage.type */ {
color: #a71d5d;
}
.pl-pds /* punctuation.definition.string, string.regexp.character-class */,
.pl-s /* string */,
.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
.pl-sr /* string.regexp */,
.pl-sr .pl-cce /* string.regexp constant.character.escape */,
.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */,
.pl-sr .pl-sre /* string.regexp source.ruby.embedded */ {
color: #183691;
}
.pl-v /* variable */ {
color: #ed6a43;
}
.pl-id /* invalid.deprecated */ {
color: #b52a1d;
}
.pl-ii /* invalid.illegal */ {
background-color: #b52a1d;
color: #f8f8f8;
}
.pl-sr .pl-cce /* string.regexp constant.character.escape */ {
color: #63a35c;
font-weight: bold;
}
.pl-ml /* markup.list */ {
color: #693a17;
}
.pl-mh /* markup.heading */,
.pl-mh .pl-en /* markup.heading entity.name */,
.pl-ms /* meta.separator */ {
color: #1d3e81;
font-weight: bold;
}
.pl-mq /* markup.quote */ {
color: #008080;
}
.pl-mi /* markup.italic */ {
color: #333;
font-style: italic;
}
.pl-mb /* markup.bold */ {
color: #333;
font-weight: bold;
}
.pl-md /* markup.deleted, meta.diff.header.from-file */ {
background-color: #ffecec;
color: #bd2c00;
}
.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ {
background-color: #eaffea;
color: #55a532;
}
.pl-mdr /* meta.diff.range */ {
color: #795da3;
font-weight: bold;
}
.pl-mo /* meta.output */ {
color: #1d3e81;
}

View file

@ -1,245 +0,0 @@
* {
box-sizing: border-box; }
body {
padding: 0;
margin: 0;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 1.5;
color: #606c71; }
a {
color: #1e6bb8;
text-decoration: none; }
a:hover {
text-decoration: underline; }
.btn {
display: inline-block;
margin-bottom: 1rem;
color: rgba(255, 255, 255, 0.7);
background-color: rgba(255, 255, 255, 0.08);
border-color: rgba(255, 255, 255, 0.2);
border-style: solid;
border-width: 1px;
border-radius: 0.3rem;
transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
.btn + .btn {
margin-left: 1rem; }
.btn:hover {
color: rgba(255, 255, 255, 0.8);
text-decoration: none;
background-color: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.3); }
@media screen and (min-width: 64em) {
.btn {
padding: 0.75rem 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) {
.btn {
padding: 0.6rem 0.9rem;
font-size: 0.9rem; } }
@media screen and (max-width: 42em) {
.btn {
display: block;
width: 100%;
padding: 0.75rem;
font-size: 0.9rem; }
.btn + .btn {
margin-top: 1rem;
margin-left: 0; } }
.page-header {
color: #fff;
text-align: center;
background-color: #159957;
background-image: linear-gradient(120deg, #155799, #159957); }
@media screen and (min-width: 64em) {
.page-header {
padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) {
.page-header {
padding: 3rem 4rem; } }
@media screen and (max-width: 42em) {
.page-header {
padding: 2rem 1rem; } }
.project-name {
margin-top: 0;
margin-bottom: 0.1rem; }
@media screen and (min-width: 64em) {
.project-name {
font-size: 3.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) {
.project-name {
font-size: 2.25rem; } }
@media screen and (max-width: 42em) {
.project-name {
font-size: 1.75rem; } }
.project-tagline {
margin-bottom: 2rem;
font-weight: normal;
opacity: 0.7; }
@media screen and (min-width: 64em) {
.project-tagline {
font-size: 1.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) {
.project-tagline {
font-size: 1.15rem; } }
@media screen and (max-width: 42em) {
.project-tagline {
font-size: 1rem; } }
.main-content :first-child {
margin-top: 0; }
.main-content img {
max-width: 100%; }
.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 {
margin-top: 2rem;
margin-bottom: 1rem;
font-weight: normal;
color: #159957; }
.main-content p {
margin-bottom: 1em; }
.main-content code {
padding: 2px 4px;
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 0.9rem;
color: #383e41;
background-color: #f3f6fa;
border-radius: 0.3rem; }
.main-content pre {
padding: 0.8rem;
margin-top: 0;
margin-bottom: 1rem;
font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace;
color: #567482;
word-wrap: normal;
background-color: #f3f6fa;
border: solid 1px #dce6f0;
border-radius: 0.3rem; }
.main-content pre > code {
padding: 0;
margin: 0;
font-size: 0.9rem;
color: #567482;
word-break: normal;
white-space: pre;
background: transparent;
border: 0; }
.main-content .highlight {
margin-bottom: 1rem; }
.main-content .highlight pre {
margin-bottom: 0;
word-break: normal; }
.main-content .highlight pre, .main-content pre {
padding: 0.8rem;
overflow: auto;
font-size: 0.9rem;
line-height: 1.45;
border-radius: 0.3rem; }
.main-content pre code, .main-content pre tt {
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0; }
.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after {
content: normal; }
.main-content ul, .main-content ol {
margin-top: 0; }
.main-content blockquote {
padding: 0 1rem;
margin-left: 0;
color: #819198;
border-left: 0.3rem solid #dce6f0; }
.main-content blockquote > :first-child {
margin-top: 0; }
.main-content blockquote > :last-child {
margin-bottom: 0; }
.main-content table {
display: block;
width: 100%;
overflow: auto;
word-break: normal;
word-break: keep-all; }
.main-content table th {
font-weight: bold; }
.main-content table th, .main-content table td {
padding: 0.5rem 1rem;
border: 1px solid #e9ebec; }
.main-content dl {
padding: 0; }
.main-content dl dt {
padding: 0;
margin-top: 1rem;
font-size: 1rem;
font-weight: bold; }
.main-content dl dd {
padding: 0;
margin-bottom: 1rem; }
.main-content hr {
height: 2px;
padding: 0;
margin: 1rem 0;
background-color: #eff0f1;
border: 0; }
@media screen and (min-width: 64em) {
.main-content {
max-width: 64rem;
padding: 2rem 6rem;
margin: 0 auto;
font-size: 1.1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) {
.main-content {
padding: 2rem 4rem;
font-size: 1.1rem; } }
@media screen and (max-width: 42em) {
.main-content {
padding: 2rem 1rem;
font-size: 1rem; } }
.site-footer {
padding-top: 2rem;
margin-top: 2rem;
border-top: solid 1px #eff0f1; }
.site-footer-owner {
display: block;
font-weight: bold; }
.site-footer-credits {
color: #819198; }
@media screen and (min-width: 64em) {
.site-footer {
font-size: 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) {
.site-footer {
font-size: 1rem; } }
@media screen and (max-width: 42em) {
.site-footer {
font-size: 0.9rem; } }