Browse Source

Added auto extend plugin and stubs

main
Lakshmi Vyasarajan 14 years ago
parent
commit
87d77bff09
26 changed files with 145 additions and 13 deletions
  1. +2
    -2
      hyde/layouts/doc/content/configuration.html
  2. +0
    -0
      hyde/layouts/doc/content/extend/index.html
  3. +0
    -0
      hyde/layouts/doc/content/extend/layouts.html
  4. +0
    -0
      hyde/layouts/doc/content/extend/plugins.html
  5. +0
    -0
      hyde/layouts/doc/content/extend/templates.html
  6. +10
    -10
      hyde/layouts/doc/content/overview.html
  7. +91
    -0
      hyde/layouts/doc/content/plugins/autoextend.html
  8. +0
    -0
      hyde/layouts/doc/content/plugins/folders.html
  9. +41
    -0
      hyde/layouts/doc/content/plugins/index.html
  10. +0
    -0
      hyde/layouts/doc/content/plugins/less.html
  11. +0
    -0
      hyde/layouts/doc/content/plugins/metadata.html
  12. +0
    -0
      hyde/layouts/doc/content/plugins/sorter.html
  13. +0
    -0
      hyde/layouts/doc/content/plugins/texty.html
  14. +0
    -0
      hyde/layouts/doc/content/server.html
  15. +0
    -0
      hyde/layouts/doc/content/switch/hyde-0.5.html
  16. +0
    -0
      hyde/layouts/doc/content/switch/index.html
  17. +0
    -0
      hyde/layouts/doc/content/switch/jekyll.html
  18. +0
    -0
      hyde/layouts/doc/content/switch/wordpress.html
  19. +0
    -0
      hyde/layouts/doc/content/templates/context.html
  20. +0
    -0
      hyde/layouts/doc/content/templates/index.html
  21. +0
    -0
      hyde/layouts/doc/content/templates/jinja2.html
  22. +0
    -0
      hyde/layouts/doc/content/templates/markrefer.html
  23. +0
    -0
      hyde/layouts/doc/content/templates/snippets.html
  24. +0
    -0
      hyde/layouts/doc/content/templates/text.html
  25. +0
    -0
      hyde/layouts/doc/content/templates/traversing.html
  26. +1
    -1
      hyde/layouts/doc/layout/root.j2

+ 2
- 2
hyde/layouts/doc/content/configuration.html View File

@@ -155,8 +155,8 @@ markdown:
will use the [def_list][], [tables][] and [headerid][] extensions in python markdown.


[commandline]: [[commandline.html]]
[plugins]: [[plugins.html]]
[commandline]: [[commandline]]
[plugins]: [[plugins]]
[pymarkdown]: http://www.freewisdom.org/projects/python-markdown/Available_Extensions
[hydedocpages]: https://github.com/hydepy/hyde/blob/master/hyde/layouts/doc/pages.yaml
[def_list]: http://www.freewisdom.org/projects/python-markdown/Definition_Lists


+ 0
- 0
hyde/layouts/doc/content/extend/index.html View File


+ 0
- 0
hyde/layouts/doc/content/extend/layouts.html View File


+ 0
- 0
hyde/layouts/doc/content/extend/plugins.html View File


+ 0
- 0
hyde/layouts/doc/content/extend/templates.html View File


+ 10
- 10
hyde/layouts/doc/content/overview.html View File

@@ -96,15 +96,15 @@ Hyde is [socially coded][hydepy]. Feel free to [fork][forking].
[Jekyll]: http://jekyllrb.com
[evil twin]: http://ringce.com/blog/2009/introducing_hyde
[Jinja2]: http://jinja.pocoo.org/
[object model]: [[template.html/#variables]]
[object model]: [[template/#variables]]
[hydepy]: https://github.com/hydepy/hyde
[install]: [[install.html]]
[metadata]: [[plugins/metadata.html]]
[plugins]: [[plugins.html]]
[install]: [[install]]
[metadata]: [[plugins/metadata]]
[plugins]: [[plugins]]
[python]: http://python.org
[server]: [[server.html]]
[sorter]: [[plugins/sorter.html]]
[static cons]: [[static.html/#cons]]
[static pros]: [static.html/#pros]]
[forking]: [[contribute.html]]
[commandline]: [[commandline.html]]
[server]: [[server]]
[sorter]: [[plugins/sorter]]
[static cons]: [[static/#cons]]
[static pros]: [static/#pros]]
[forking]: [[contribute]]
[commandline]: [[commandline]]

+ 91
- 0
hyde/layouts/doc/content/plugins/autoextend.html View File

@@ -0,0 +1,91 @@
===
title: Auto Extend Plugin
subtitle: type less, think more
created: 2011-01-28 17:19:03
===
{% extends "doc.j2" %}

===doc===

§§ blurb

Hyde is built with the goal of separating content from presentation as
much as possible without losing the power of template inheritance. It is
a hard balancing act and auto extend is one big step on the wire.

§§ /blurb

## Extend

The auto extend plugin relies on the metadata plugin for its configuration.
You can specify an `extends` property in your metadata to let the plugin
know the base template for that page. The plugin will automatically emit an
`{%raw%}{% extends %}{%endraw%}` statement in the output.

The following two configurations are equivalent.

~~~~~jinja~~~~
{% raw %}
{% extends "base.html" %}
<!-- hello.html -->
{% block content %}
Hello World!
{% endblock %}
{% endraw %}
~~~~~~~~~~~~~~~

~~~~~jinja~~~~
{% raw %}
===
extends: base.html
===
<!-- hello.html -->
{% block content %}
Hello World!
{% endblock %}
{% endraw %}
~~~~~~~~~~~~~~~

## Default blocks

It gets even better. The auto extend plugin also allows you to specify
the default block so that you can take out another wrapping curly brace.

The following snippet is equivalent to the above ones:


~~~~~jinja~~~~
===
extends: base.html
default_block: content
===
<!-- hello.html -->
Hello World!
~~~~~~~~~~~~~~~

As you can see, this makes the page _layout free_.


## Inheritance

In combination with metadata inheritance, this plugin can completely
eliminate redundancy on many sites.

Given the following configuration, the output would be same as what
is generated by any of the above snippets.

~~~yaml~~~
site_name: Hello World #site.yaml
meta:
extends: base.html
default_block: content
~~~~~~~~~

~~~jinja~~~
<!-- hello.html -->
Hello World
~~~~~~~~~~~

Just Content!

===/doc===

+ 0
- 0
hyde/layouts/doc/content/plugins/folders.html View File


+ 41
- 0
hyde/layouts/doc/content/plugins/index.html View File

@@ -0,0 +1,41 @@
===
title: Plugins
subtitle: extra shots for your awesome espresso
created: 2011-01-28 16:18:06
===

§§ blurb

Hyde is built with a nuclear engine that is stripped down but powerful.
Even core features like `metadata` are added as plugins to keep the engine
bloat free.

Hyde's plugin architecture is event driven; plugins get notified during the
course of the generation to allow them to alter/guide the generation process.

If you are interested in creating plugins for hyde, you can read the
[developer documentation][devdocs].

§§ /blurb

## Configuration

Hyde's plugins get loaded if they are listed in the plugins section of
[configuration][]. Plugins also accept additional parameters in their
respective sections. For example, `MyAwesomePlugin` will get parameters
from `myawesome` section in the configuration file.

# In the box

Hyde is shipped with the following plugins:

* Autoextend
* Metadata
* Sorter
* Less CSS
* Text Replacement Plugins
- Blockdown
- Mark and Refer
- Textlinks
- Syntext
* Folder flattener

+ 0
- 0
hyde/layouts/doc/content/plugins/less.html View File


+ 0
- 0
hyde/layouts/doc/content/plugins/metadata.html View File


+ 0
- 0
hyde/layouts/doc/content/plugins/sorter.html View File


+ 0
- 0
hyde/layouts/doc/content/plugins/texty.html View File


+ 0
- 0
hyde/layouts/doc/content/server.html View File


+ 0
- 0
hyde/layouts/doc/content/switch/hyde-0.5.html View File


+ 0
- 0
hyde/layouts/doc/content/switch/index.html View File


+ 0
- 0
hyde/layouts/doc/content/switch/jekyll.html View File


+ 0
- 0
hyde/layouts/doc/content/switch/wordpress.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/context.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/index.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/jinja2.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/markrefer.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/snippets.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/text.html View File


+ 0
- 0
hyde/layouts/doc/content/templates/traversing.html View File


+ 1
- 1
hyde/layouts/doc/layout/root.j2 View File

@@ -23,7 +23,7 @@
compatibility mode is within the first 1K bytes
code.google.com/p/chromium/issues/detail?id=23003 -->

<title>{% block title %}{{ resource.meta.title }}{% endblock %}</title>
<title>{% block title %}{{ resource.meta.title }} / Hyde Docs{% endblock %}</title>
<meta name="description" content="{{ resource.meta.description }}">
<meta name="author" content="{{ resource.meta.author }}">



Loading…
Cancel
Save