| @@ -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 | |||||