From 87d77bff091d60456c8d40b0c39d31d60f1191ac Mon Sep 17 00:00:00 2001 From: Lakshmi Vyasarajan Date: Fri, 28 Jan 2011 17:58:16 +0530 Subject: [PATCH] Added auto extend plugin and stubs --- hyde/layouts/doc/content/configuration.html | 4 +- hyde/layouts/doc/content/extend/index.html | 0 hyde/layouts/doc/content/extend/layouts.html | 0 hyde/layouts/doc/content/extend/plugins.html | 0 .../layouts/doc/content/extend/templates.html | 0 hyde/layouts/doc/content/overview.html | 20 ++-- .../doc/content/plugins/autoextend.html | 91 +++++++++++++++++++ hyde/layouts/doc/content/plugins/folders.html | 0 hyde/layouts/doc/content/plugins/index.html | 41 +++++++++ hyde/layouts/doc/content/plugins/less.html | 0 .../layouts/doc/content/plugins/metadata.html | 0 hyde/layouts/doc/content/plugins/sorter.html | 0 hyde/layouts/doc/content/plugins/texty.html | 0 hyde/layouts/doc/content/server.html | 0 hyde/layouts/doc/content/switch/hyde-0.5.html | 0 hyde/layouts/doc/content/switch/index.html | 0 hyde/layouts/doc/content/switch/jekyll.html | 0 .../layouts/doc/content/switch/wordpress.html | 0 .../doc/content/templates/context.html | 0 hyde/layouts/doc/content/templates/index.html | 0 .../layouts/doc/content/templates/jinja2.html | 0 .../doc/content/templates/markrefer.html | 0 .../doc/content/templates/snippets.html | 0 hyde/layouts/doc/content/templates/text.html | 0 .../doc/content/templates/traversing.html | 0 hyde/layouts/doc/layout/root.j2 | 2 +- 26 files changed, 145 insertions(+), 13 deletions(-) create mode 100644 hyde/layouts/doc/content/extend/index.html create mode 100644 hyde/layouts/doc/content/extend/layouts.html create mode 100644 hyde/layouts/doc/content/extend/plugins.html create mode 100644 hyde/layouts/doc/content/extend/templates.html create mode 100644 hyde/layouts/doc/content/plugins/autoextend.html create mode 100644 hyde/layouts/doc/content/plugins/folders.html create mode 100644 hyde/layouts/doc/content/plugins/index.html create mode 100644 hyde/layouts/doc/content/plugins/less.html create mode 100644 hyde/layouts/doc/content/plugins/metadata.html create mode 100644 hyde/layouts/doc/content/plugins/sorter.html create mode 100644 hyde/layouts/doc/content/plugins/texty.html create mode 100644 hyde/layouts/doc/content/server.html create mode 100644 hyde/layouts/doc/content/switch/hyde-0.5.html create mode 100644 hyde/layouts/doc/content/switch/index.html create mode 100644 hyde/layouts/doc/content/switch/jekyll.html create mode 100644 hyde/layouts/doc/content/switch/wordpress.html create mode 100644 hyde/layouts/doc/content/templates/context.html create mode 100644 hyde/layouts/doc/content/templates/index.html create mode 100644 hyde/layouts/doc/content/templates/jinja2.html create mode 100644 hyde/layouts/doc/content/templates/markrefer.html create mode 100644 hyde/layouts/doc/content/templates/snippets.html create mode 100644 hyde/layouts/doc/content/templates/text.html create mode 100644 hyde/layouts/doc/content/templates/traversing.html diff --git a/hyde/layouts/doc/content/configuration.html b/hyde/layouts/doc/content/configuration.html index 0ba67d8..b02fead 100644 --- a/hyde/layouts/doc/content/configuration.html +++ b/hyde/layouts/doc/content/configuration.html @@ -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 diff --git a/hyde/layouts/doc/content/extend/index.html b/hyde/layouts/doc/content/extend/index.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/extend/layouts.html b/hyde/layouts/doc/content/extend/layouts.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/extend/plugins.html b/hyde/layouts/doc/content/extend/plugins.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/extend/templates.html b/hyde/layouts/doc/content/extend/templates.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/overview.html b/hyde/layouts/doc/content/overview.html index 62a3909..f1a42dc 100644 --- a/hyde/layouts/doc/content/overview.html +++ b/hyde/layouts/doc/content/overview.html @@ -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]] \ No newline at end of file +[server]: [[server]] +[sorter]: [[plugins/sorter]] +[static cons]: [[static/#cons]] +[static pros]: [static/#pros]] +[forking]: [[contribute]] +[commandline]: [[commandline]] \ No newline at end of file diff --git a/hyde/layouts/doc/content/plugins/autoextend.html b/hyde/layouts/doc/content/plugins/autoextend.html new file mode 100644 index 0000000..2236e38 --- /dev/null +++ b/hyde/layouts/doc/content/plugins/autoextend.html @@ -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" %} + +{% block content %} +Hello World! +{% endblock %} +{% endraw %} +~~~~~~~~~~~~~~~ + +~~~~~jinja~~~~ +{% raw %} +=== +extends: base.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 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 World +~~~~~~~~~~~ + +Just Content! + +===/doc=== \ No newline at end of file diff --git a/hyde/layouts/doc/content/plugins/folders.html b/hyde/layouts/doc/content/plugins/folders.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/plugins/index.html b/hyde/layouts/doc/content/plugins/index.html new file mode 100644 index 0000000..176860d --- /dev/null +++ b/hyde/layouts/doc/content/plugins/index.html @@ -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 \ No newline at end of file diff --git a/hyde/layouts/doc/content/plugins/less.html b/hyde/layouts/doc/content/plugins/less.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/plugins/metadata.html b/hyde/layouts/doc/content/plugins/metadata.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/plugins/sorter.html b/hyde/layouts/doc/content/plugins/sorter.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/plugins/texty.html b/hyde/layouts/doc/content/plugins/texty.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/server.html b/hyde/layouts/doc/content/server.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/switch/hyde-0.5.html b/hyde/layouts/doc/content/switch/hyde-0.5.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/switch/index.html b/hyde/layouts/doc/content/switch/index.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/switch/jekyll.html b/hyde/layouts/doc/content/switch/jekyll.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/switch/wordpress.html b/hyde/layouts/doc/content/switch/wordpress.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/context.html b/hyde/layouts/doc/content/templates/context.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/index.html b/hyde/layouts/doc/content/templates/index.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/jinja2.html b/hyde/layouts/doc/content/templates/jinja2.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/markrefer.html b/hyde/layouts/doc/content/templates/markrefer.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/snippets.html b/hyde/layouts/doc/content/templates/snippets.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/text.html b/hyde/layouts/doc/content/templates/text.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/content/templates/traversing.html b/hyde/layouts/doc/content/templates/traversing.html new file mode 100644 index 0000000..e69de29 diff --git a/hyde/layouts/doc/layout/root.j2 b/hyde/layouts/doc/layout/root.j2 index 63ef6e9..1d2c5c1 100644 --- a/hyde/layouts/doc/layout/root.j2 +++ b/hyde/layouts/doc/layout/root.j2 @@ -23,7 +23,7 @@ compatibility mode is within the first 1K bytes code.google.com/p/chromium/issues/detail?id=23003 --> - {% block title %}{{ resource.meta.title }}{% endblock %} + {% block title %}{{ resource.meta.title }} / Hyde Docs{% endblock %}