| @@ -0,0 +1,34 @@ | |||
| --- | |||
| extends: base.j2 | |||
| title_ending: "| About" | |||
| default_block: content | |||
| --- | |||
| About | |||
| ===== | |||
| This beginner's tutorial was created by [Merlin Rebrović][0] for the | |||
| [Hyde project][1]. It is included in Hyde as a layout named _starter_. | |||
| If you have a [default Hyde installation][2], all you have to do is | |||
| write: | |||
| hyde -s folder_name create -l starter | |||
| To check for the newest version, to download it separately or to report | |||
| a bug, please visit Hyde Starter Kit's [GitHub page][3]. | |||
| Attributions | |||
| ------------ | |||
| The [photo][4] used for part of the background. | |||
| {# You can use Jinja tags in Markdown content also; they get processed | |||
| before the content gets to the Markdown filter. | |||
| #} | |||
| [0]: {{ author.url }} | |||
| [1]: {{ project.url }} | |||
| [2]: {{ project.install }} | |||
| [3]: {{ layout.url }} | |||
| [4]: http://www.flickr.com/photos/batintherain/5613841957/ | |||
| @@ -0,0 +1,21 @@ | |||
| {# Use base.j2 template as a base and only provide values for placeholders | |||
| in this file. | |||
| #} | |||
| {% extends "base.j2" %} | |||
| {# Markdown main content block. #} | |||
| {% block content %} | |||
| What is this all about | |||
| ====================== | |||
| Starter Kit introduces you to Hyde's many options and possibilities. | |||
| Finding your way for the first time can be a bit confusing, so this | |||
| template tries to ease your way in by exposing only core features and | |||
| technologies step by step. Those are: | |||
| * basic Hyde site structure | |||
| * configuration file | |||
| * Jinja templates | |||
| * Markdown | |||
| * basic metadata and plugins | |||
| {% endblock %} | |||
| @@ -0,0 +1,144 @@ | |||
| * { | |||
| margin: 0; | |||
| padding: 0; | |||
| } | |||
| html, body { | |||
| color: #fafafa; | |||
| background-color: black; | |||
| } | |||
| body { | |||
| margin: 0 auto; | |||
| width: 980px; | |||
| min-height: 700px; | |||
| background: url('../img/background.jpg') top left no-repeat; | |||
| font-size: 14px; | |||
| position: relative; | |||
| font-size: 62.5%; | |||
| font-family: Tahoma, sans-serif; | |||
| } | |||
| a { | |||
| color: #f1ee00; | |||
| } | |||
| a:hover, a:focus { | |||
| text-decoration: none; | |||
| } | |||
| p, ul { | |||
| margin-bottom: 1.6em; | |||
| } | |||
| ul { | |||
| margin-left: 2em; | |||
| } | |||
| header { | |||
| position: absolute; | |||
| top: 120px; | |||
| right: 120px; | |||
| font-family: Anton, Tahoma, sans-serif; | |||
| text-transform: uppercase; | |||
| font-weight: none; | |||
| } | |||
| header h1 { | |||
| font-size: 50px; | |||
| font-weight: normal; | |||
| text-shadow: -1px 2px 1px black; | |||
| } | |||
| header h1 span { | |||
| color: #f1ee00; | |||
| } | |||
| header h2 { | |||
| font-size: 28px; | |||
| font-weight: normal; | |||
| letter-spacing: 11px; | |||
| text-shadow: -1px 2px 1px black; | |||
| } | |||
| nav { | |||
| position: absolute; | |||
| top: 340px; | |||
| right: 120px; | |||
| width: 200px; | |||
| text-align: right; | |||
| font-family: Anton, Tahoma, sans-serif; | |||
| } | |||
| nav a, | |||
| nav a:visited { | |||
| text-decoration: none; | |||
| color: #fafafa; | |||
| text-transform: uppercase; | |||
| font-size: 2.8em; | |||
| } | |||
| nav a.selected { | |||
| color: #888; | |||
| } | |||
| nav a:hover { | |||
| color: #f1ee00; | |||
| } | |||
| nav ul li { | |||
| list-style-type: none; | |||
| } | |||
| aside { | |||
| position: absolute; | |||
| top: 550px; | |||
| right: 120px; | |||
| width: 140px; | |||
| text-align: right; | |||
| font-size: 1em; | |||
| } | |||
| nav, aside { | |||
| /* to line up with the header */ | |||
| padding-right: 5px; | |||
| } | |||
| #content { | |||
| font-size: 1.4em; | |||
| line-height: 1.6em; | |||
| position: absolute; | |||
| top: 350px; | |||
| left: 180px; | |||
| width: 410px; | |||
| padding-bottom: 100px; | |||
| } | |||
| #content h1 { | |||
| font-weight: normal; | |||
| font-size: 2em; | |||
| font-family: Anton, Tahoma, sans-serif; | |||
| text-transform: uppercase; | |||
| margin-bottom: 0.8em; | |||
| } | |||
| #content h2 { | |||
| font-weight: bold; | |||
| font-size: 1.2em; | |||
| font-family: Tahoma, sans-serif; | |||
| margin-bottom: 1.33em; | |||
| } | |||
| #content code { | |||
| display: block; | |||
| font-family: 'DejaVu Sans Mono', 'Liberation Mono', 'Courier New'; | |||
| font-size: 1.2em; | |||
| background-color: #222; | |||
| padding: 5px 10px; | |||
| margin-bottom: 1.33em; | |||
| border-top: 1px solid #444; | |||
| border-right: 1px solid #333; | |||
| border-bottom: 1px solid #222; | |||
| border-left: 1px solid #111; | |||
| } | |||
| @@ -0,0 +1,73 @@ | |||
| --- | |||
| extends: base.j2 | |||
| title_ending: "| What next" | |||
| --- | |||
| {# In-file metadata. Supplements data from the site's configuration file | |||
| and node (folder) level data in "meta.yaml" files. | |||
| Use the AutoExtendPlugin to extend templates from metadata. In this | |||
| case the metadata and "extends" statement has to be on the top of the | |||
| file. | |||
| #} | |||
| {% block content %} | |||
| There and back again | |||
| ==================== | |||
| This template was created to look at its code. So you should spend about | |||
| 5% of your time looking at the web from the outside and the other 95% | |||
| tinkering with things under the hood. | |||
| The template is not perfect nor does it contain the best practices. It | |||
| is not even consistent. It is designed to help you with the learning | |||
| process. If you follow the steps below, you'll get a pretty good picture of | |||
| how things work. Every step adds some new features and builds upon the | |||
| previous one. | |||
| 1. Site structure and configuration file | |||
| ---------------------------------------- | |||
| The site is made of two folders and a [Hyde configuration][hyde_config] | |||
| file. The folders are _content_ and _layout_. | |||
| _content_ contains all your page content, blog articles, pictures and | |||
| resources like CSS and JavaScript. Everything that is unique is here. | |||
| _layout_ contains templates and macros. Everything that you'll want to | |||
| reuse is here. | |||
| 2. Jinja2 template | |||
| ------------------ | |||
| _base.j2_ is a very short and simple Jinja2 template. This way you can | |||
| concentrate on some of the basic features. Notice meta and context | |||
| variables invocation inside curly braces, dynamic media path generation | |||
| and running all content through the Markdown filter. | |||
| _macros.j2_ contains a macro for generating the main menu. | |||
| For more information or to try something new, visit the extensive [Jinja2 | |||
| documentation][jinja2_docs]. | |||
| 3. Content | |||
| ---------- | |||
| Look at the three files in this order: _index.html_, _what-next.html_ | |||
| and _about.html_. | |||
| _Index_ extends the base layout in the classic Jinja way and fills the | |||
| content block with some simple Markdown data. | |||
| _What next_ goes a step furher. It introduces the in-file metadata that | |||
| plugins will use to extend and fill the layout. It also uses some new | |||
| Markdown features. | |||
| _About_ has a _default_block_ metadata and mixes Markdown content with | |||
| Jinja templates. | |||
| [hyde_config]: http://hyde.github.com/config.html "Hyde configuration" | |||
| [jinja2_docs]: http://jinja.pocoo.org/docs/templates/ "Jinja2 documentation" | |||
| {% endblock %} | |||
| @@ -0,0 +1,42 @@ | |||
| <!doctype html> | |||
| <html lang="en"> | |||
| <head> | |||
| <link href="http://fonts.googleapis.com/css?family=Anton" rel="stylesheet" type="text/css"> | |||
| <title>Hyde Starter Kit {{ resource.meta.title_ending }}</title> | |||
| <meta charset="utf-8" /> | |||
| <link rel="stylesheet" href="{{ media_url('css/style.css') }}"> | |||
| <!--[if lt IE 9]> | |||
| <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"> | |||
| </script> | |||
| <![endif]--> | |||
| </head> | |||
| <body> | |||
| <header> | |||
| <hgroup> | |||
| <h1><span>Hyde</span> Starter Kit</h1> | |||
| <h2>Know your tool</h2> | |||
| </hgroup> | |||
| </header> | |||
| <nav> | |||
| {# Move main menu rendering away from the base layout. This | |||
| way it can be used to generate the list many times, in | |||
| a footer, etc. | |||
| #} | |||
| {% from "macros.j2" import render_main_menu with context %} | |||
| {{ render_main_menu() }} | |||
| </nav> | |||
| <article id="content"> | |||
| {# Main content block. Notice it has to pass through the | |||
| Markdown filter to generate HTML. If a block in content | |||
| pages contains only markup, you can omit the filter. | |||
| #} | |||
| {% filter markdown -%} | |||
| {% block content %}{% endblock %} | |||
| {%- endfilter %} | |||
| </article> | |||
| <aside> | |||
| <p>Created by <a href="{{ author.url}}">{{ author.name}}</a> | |||
| for <a href="{{ project.url }}">{{ project.name }}</a></p> | |||
| </aside> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,7 @@ | |||
| {% macro render_main_menu() -%} | |||
| <ul> | |||
| {% for menu_item in menu -%} | |||
| <li><a {% if menu_item.url == resource.url %}class="selected"{% endif %} href="{{ menu_item.url }}">{{ menu_item.title }}</a></li> | |||
| {%- endfor %} | |||
| </ul> | |||
| {%- endmacro %} | |||
| @@ -0,0 +1,27 @@ | |||
| mode: learning | |||
| media_root: media | |||
| media_url: media # will use relative path, prepend "/" for absolute path | |||
| template: hyde.ext.templates.jinja.Jinja2Template | |||
| plugins: | |||
| - hyde.ext.plugins.meta.MetaPlugin | |||
| - hyde.ext.plugins.auto_extend.AutoExtendPlugin | |||
| - hyde.ext.plugins.syntext.SyntextPlugin | |||
| context: | |||
| data: | |||
| author: | |||
| name: Merlin Rebrović | |||
| url: "http://merlin.rebrovic.net" | |||
| layout: | |||
| name: Hyde Starter Kit | |||
| url: "https://github.com/merlinrebrovic/hyde-starter-kit" | |||
| project: | |||
| name: Hyde | |||
| url: "http://hyde.github.com" | |||
| install: "http://hyde.github.com/install.html" | |||
| menu: | |||
| - title: Home | |||
| url: index.html | |||
| - title: What next | |||
| url: what-next.html | |||
| - title: About | |||
| url: about.html | |||