Browse Source

Added installation and commandline docs

main
Lakshmi Vyasarajan 14 years ago
parent
commit
3f23991497
15 changed files with 815 additions and 66 deletions
  1. +197
    -0
      docs/commandline.html
  2. +103
    -0
      docs/install.html
  3. +103
    -0
      docs/installation.html
  4. +55
    -22
      docs/media/css/site.css
  5. +32
    -13
      docs/overview.html
  6. +1
    -1
      hyde/ext/plugins/syntext.py
  7. +173
    -0
      hyde/layouts/doc/content/commandline.html
  8. +54
    -0
      hyde/layouts/doc/content/install.html
  9. +1
    -1
      hyde/layouts/doc/content/media/css/inc/colors.less
  10. +1
    -1
      hyde/layouts/doc/content/media/css/inc/layout.less
  11. +16
    -0
      hyde/layouts/doc/content/media/css/inc/text.less
  12. +26
    -10
      hyde/layouts/doc/content/media/css/site.less
  13. +48
    -17
      hyde/layouts/doc/content/overview.html
  14. +4
    -0
      hyde/layouts/doc/layout/doc.j2
  15. +1
    -1
      hyde/layouts/doc/layout/root.j2

+ 197
- 0
docs/commandline.html View File

@@ -0,0 +1,197 @@
<!doctype html>
<!-- https://github.com/paulirish/html5-boilerplate/blob/master/index.html -->
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">

<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<!-- encoding must be specified within the first 512 bytes
www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset -->

<!-- meta element for compatibility mode needs to be before
all elements except title & meta
msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx -->
<!-- Chrome Frame is only invoked if meta element for
compatibility mode is within the first 1K bytes
code.google.com/p/chromium/issues/detail?id=23003 -->

<title>Command Line</title>
<meta name="description" content="Awesome documentation for hyde - a python static website generator
">
<meta name="author" content="Lakshmi Vyasarajan">

<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Place favicon.ico & apple-touch-icon.png
in the root of your domain and delete these references -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<script type="text/javascript" src="http://use.typekit.com/hyw1bsz.js"></script>
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
<link rel="stylesheet" href="/media/css/site.css">
<!-- All JavaScript at the bottom, except for Modernizr which
enables HTML5 elements & feature detects -->
<script src="/media/js/libs/modernizr-1.6.min.js"></script>
</head>
<body id="commandline">
<div id="container">
<div id="main" role="main">
<header class="banner clearfix">
<img src="/media/img/hyde-logo-128.png">
<h1>hyde 1.0</h1>
<h3>static hotness</h3> </header>
<article>
<hgroup>
<h1 class="title">Command Line</h1>
<h3 class="subtitle">working with hyde</h3>
</hgroup>
<p>The hyde command line supports three&nbsp;subcommands:</p>
<ol>
<li>create - Initializes a new site at a given&nbsp;path</li>
<li>gen - Generates the website to a configured deploy&nbsp;folder</li>
<li>serve - Starts a local http server that regenerates based on the requested&nbsp;file</li>
</ol>
<h2 id="the_create_command">The create&nbsp;command</h2>
<p>Creates a new hyde&nbsp;website.</p>
<div class="code"><div class="highlight"><pre>hyde create<br />&nbsp;<br />hyde <span class="o">[</span>-s &lt;/site/path&gt;<span class="o">]</span> <span class="o">[</span>-v<span class="o">]</span> create <span class="o">[</span>-l &lt;layout&gt;<span class="o">]</span> <span class="o">[</span>-f<span class="o">]</span> <span class="o">[</span>-h<span class="o">]</span><br /></pre></div><br /></div>

<ul>
<li>
<p><code>-s SITEPATH, --sitepath SITEPATH</code></p>
<p>Where the site must be created. If this path is not empty then the <code>-f</code>
option must be specified to overwrite the&nbsp;site.</p>
<p><em>Optional</em> - defaults to current working&nbsp;directory.</p>
</li>
<li>
<p><code>-f, --force</code></p>
<p>Specifying this option will overwrite files and folders at the given
site&nbsp;path.</p>
<p><em>Optional</em> - If the target directory is not empty, hyde will throw an
exception unless this is&nbsp;specified.</p>
</li>
<li>
<p><code>-l LAYOUT, --layout LAYOUT</code></p>
<p>The name of the layout to use for creating the initial site. Hyde currently
has three layouts: <code>basic</code>, <code>test</code> and <code>doc</code>.</p>
<p>While basic and test are really barebones, doc is the one that generates
this documentation and is completely usable. Hyde will get more layouts
as over&nbsp;time.</p>
<p>Hyde tries to locate the specified layout in the following&nbsp;folders:</p>
<ol>
<li>In <code>layouts</code> folder under the path specified by the <code>HYDE_DATA</code>
environment&nbsp;variable</li>
<li>In <code>layouts</code> folder under&nbsp;hyde</li>
</ol>
<p><em>Optional</em> - defaults to <code>basic</code></p>
</li>
<li>
<p><code>-v, --verbose</code></p>
<p>Logs detailed messages to the&nbsp;console.</p>
<p><em>Optional</em> - shows only essential messages if this option is&nbsp;omitted.</p>
</li>
<li>
<p><code>-h</code></p>
<p>Displays the help text for the <code>create</code> command.</p>
</li>
</ul>
<p>Assuming the <code>HYDE_DATA</code> environment variable is empty and the folder
<code>~/test</code> is empty, the following command will create a new hyde site
at <code>~/test</code> with the contents of <code>layouts/doc</code> folder:</p>
<div class="code"><div class="highlight"><pre>hyde -s ~/test create -l doc<br /></pre></div><br /></div>

<h2 id="the_generate_command">The generate&nbsp;command</h2>
<p>Generates the given&nbsp;website.</p>
<div class="code"><div class="highlight"><pre>hyde gen<br />&nbsp;<br />hyde <span class="o">[</span>-s &lt;/site/path&gt;<span class="o">]</span> <span class="o">[</span>-v<span class="o">]</span> gen <span class="o">[</span>-d &lt;/deploy/path&gt;<span class="o">]</span> <span class="o">[</span>-c &lt;config/path&gt;<span class="o">]</span> <span class="o">[</span>-h<span class="o">]</span><br /></pre></div><br /></div>

<ul>
<li>
<p><code>-s SITEPATH, --sitepath SITEPATH</code></p>
<p>The path to the site to be&nbsp;generated.</p>
<p><em>Optional</em> - defaults to current working&nbsp;directory.</p>
</li>
<li>
<p><code>-d DEPLOY_PATH, --deploy-path DEPLOY_PATH</code></p>
<p>Location where the site should be generated. This option overrides any
setting specified in the hyde [configuration][]. The path is assumed to
be relative to the site path unless a preceding path separator is&nbsp;found.</p>
<p><em>Optional</em> - Uses what is specified in the config file. The default option
in the configuration file is: <code>deploy</code> folder under the current site&nbsp;path.</p>
</li>
<li>
<p><code>-c CONFIG, --config-path CONFIG</code></p>
<p>This is used for specifying an alternate configuration file to use for
generating the site. This is useful if you have two different configurations
for you production versus development&nbsp;websites.</p>
<p>The path is assumed to be relative to the site path unless a preceding path
separator is&nbsp;found.</p>
<p><em>Optional</em> - defaults to <code>site.yaml</code></p>
</li>
<li>
<p><code>-v, --verbose</code></p>
<p>Logs detailed messages to the&nbsp;console.</p>
<p><em>Optional</em> - shows only essential messages if this option is&nbsp;omitted.</p>
</li>
<li>
<p><code>-h</code></p>
<p>Displays the help text for the <code>gen</code> command.</p>
</li>
</ul>
<p>The following command will use <code>production.yaml</code> as the configuration file and
generate the website at <code>~/test</code> to <code>~/production_site</code> directory.</p>
<div class="code"><div class="highlight"><pre><span class="nb">cd</span> ~/test<br />hyde gen -c production.yaml -d ~/production_site<br /></pre></div><br /></div>

<h2 id="the_serve_command">The serve&nbsp;command</h2>
<p>Starts the built in web server that also regenerates based on the request if there are&nbsp;changes.</p>
<div class="code"><div class="highlight"><pre>hyde serve<br />&nbsp;<br />hyde <span class="o">[</span>-s &lt;/site/path&gt;<span class="o">]</span> <span class="o">[</span>-v<span class="o">]</span> gen <span class="o">[</span>-d &lt;/deploy/path&gt;<span class="o">]</span> <span class="o">[</span>-c &lt;config/path&gt;<span class="o">]</span> <span class="o">[</span>-h<span class="o">]</span><br /></pre></div><br /></div>

<ul>
<li><code>-s SITEPATH, --sitepath SITEPATH</code>
<code>-d DEPLOY_PATH, --deploy-path DEPLOY_PATH</code>
<code>-c CONFIG, --config-path CONFIG</code></li>
</ul>
<p>Since the <code>serve</code> command auto generates if there is a need, it needs the same
parameters as the <code>gen</code> command. The above parameters serve the same purpose here
as in the <code>gen</code> command.</p>
<ul>
<li><code>-a ADDRESS, --address ADDRESS</code></li>
</ul>
<p>The address to serve the&nbsp;website.</p>
<p><em>Optional</em> - defaults to <code>localhost</code></p>
<ul>
<li><code>-p PORT, --port</code></li>
</ul>
<p>The port to serve the&nbsp;website.</p>
<p><em>Optional</em> - default to <code>8080</code></p>
<ul>
<li><code>-h</code></li>
</ul>
<p>Displays the help text for the <code>serve</code> command.</p>
<p>The following command will serve the website at <code>http://localhost:8181</code></p>
<div class="code"><div class="highlight"><pre><span class="nb">cd</span> ~/test<br />hyde serve -p 8181<br /></pre></div><br /></div>

<p></article>
<aside>
</aside></p> </div>
<footer>
</footer>
</div> <!--! end of #container -->
<!-- Javascript at the bottom for fast page loading -->
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="/media/js/libs/jquery-1.4.4.min.js"%3E%3C/script%3E'))</script>
</body>
</html>

+ 103
- 0
docs/install.html View File

@@ -0,0 +1,103 @@
<!doctype html>
<!-- https://github.com/paulirish/html5-boilerplate/blob/master/index.html -->
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">

<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<!-- encoding must be specified within the first 512 bytes
www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset -->

<!-- meta element for compatibility mode needs to be before
all elements except title & meta
msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx -->
<!-- Chrome Frame is only invoked if meta element for
compatibility mode is within the first 1K bytes
code.google.com/p/chromium/issues/detail?id=23003 -->

<title>Installation</title>
<meta name="description" content="Awesome documentation for hyde - a python static website generator
">
<meta name="author" content="Lakshmi Vyasarajan">

<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Place favicon.ico & apple-touch-icon.png
in the root of your domain and delete these references -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<script type="text/javascript" src="http://use.typekit.com/hyw1bsz.js"></script>
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
<link rel="stylesheet" href="/media/css/site.css">
<!-- All JavaScript at the bottom, except for Modernizr which
enables HTML5 elements & feature detects -->
<script src="/media/js/libs/modernizr-1.6.min.js"></script>
</head>
<body id="install">
<div id="container">
<div id="main" role="main">
<header class="banner clearfix">
<img src="/media/img/hyde-logo-128.png">
<h1>hyde 1.0</h1>
<h3>static hotness</h3> </header>
<article>
<hgroup>
<h1 class="title">Installation</h1>
<h3 class="subtitle">PIPing hot hyde</h3>
</hgroup>
<p>Installing hyde is as simple as running the following&nbsp;command:</p>
<div class="code"><div class="highlight"><pre>pip install -e https://github.com/hydepy/hyde#egg<span class="o">=</span>hyde<br /></pre></div><br /></div>

<p>However, based on your choice and use of plugins you may need to install
additional packages. The requirements for each plugin is outlined in the
corresponding <a href="/plugins">plugin documentation</a>.</p>
<h2 id="essential_requirements">Essential&nbsp;Requirements</h2>
<p>While your mileage may vary, I consider the following to be essential for
generating a static website with hyde. These are a part of the requirements
file and the above command will download and install them as part of&nbsp;hyde.</p>
<p>It is also recommended that you use <a href="http://mathematism.com/2009/07/30/presentation-pip-and-virtualenv/">virtualenv</a> to separate the hyde
environment from other python projects. Note that installing hyde using
pip would install all of the below. However, if you&#8217;d like finer grained
control over the packages, you can install these&nbsp;individually:</p>
<ol>
<li><code>argparse</code>: argparse is required if you are on python&nbsp;2.6.</li>
<li><code>commando</code>: commando is a wrapper on top of argparse to give better syntax and
support for multi-command&nbsp;applications.</li>
<li><code>Jinja2</code>: While hyde will support many more template languages in the future,
currently, Jinja2 is wholly supported and&nbsp;recommended.</li>
<li><code>Markdown</code>: While there are plans to add support for other markups (textile,
restructured text, asciidoc etc..,), markdown is the one thats currently
completely&nbsp;supported.</li>
<li><code>Pyyaml</code>: Much of hyde&#8217;s [configuration] is done using&nbsp;yaml.</li>
<li><code>Typogrify</code>: Typogrify automatically fixes and enhances the typographical
accuracy of your content. While this is not a technical requirement for
hyde, it is absolutely essential to create good looking&nbsp;content.</li>
</ol>
<div class="code"><div class="highlight"><pre>pip install argparse<br />pip install commando<br />pip install jinja2<br />pip install markdown<br />pip install pyyaml<br />pip install -e https://github.com/hydepy/typogrify#egg<span class="o">=</span>typogrify<br /></pre></div><br /></div>

<p></article>
<aside>
</aside></p> </div>
<footer>
</footer>
</div> <!--! end of #container -->
<!-- Javascript at the bottom for fast page loading -->
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="/media/js/libs/jquery-1.4.4.min.js"%3E%3C/script%3E'))</script>
</body>
</html>

+ 103
- 0
docs/installation.html View File

@@ -0,0 +1,103 @@
<!doctype html>
<!-- https://github.com/paulirish/html5-boilerplate/blob/master/index.html -->
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">

<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<!-- encoding must be specified within the first 512 bytes
www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset -->

<!-- meta element for compatibility mode needs to be before
all elements except title & meta
msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx -->
<!-- Chrome Frame is only invoked if meta element for
compatibility mode is within the first 1K bytes
code.google.com/p/chromium/issues/detail?id=23003 -->

<title>Installation</title>
<meta name="description" content="Awesome documentation for hyde - a python static website generator
">
<meta name="author" content="Lakshmi Vyasarajan">

<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Place favicon.ico & apple-touch-icon.png
in the root of your domain and delete these references -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<script type="text/javascript" src="http://use.typekit.com/hyw1bsz.js"></script>
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
<link rel="stylesheet" href="/media/css/site.css">
<!-- All JavaScript at the bottom, except for Modernizr which
enables HTML5 elements & feature detects -->
<script src="/media/js/libs/modernizr-1.6.min.js"></script>
</head>
<body id="installation">
<div id="container">
<div id="main" role="main">
<header class="banner clearfix">
<img src="/media/img/hyde-logo-128.png">
<h1>hyde 1.0</h1>
<h3>static hotness</h3> </header>
<article>
<hgroup>
<h1 class="title">Installation</h1>
<h3 class="subtitle">PIPing hot hyde</h3>
</hgroup>
<p>Installing hyde is as simple as running the following&nbsp;command:</p>
<div class="code"><div class="highlight"><pre>pip install -e https://github.com/hydepy/hyde#egg<span class="o">=</span>hyde<br /></pre></div><br /></div>

<p>However, based on your choice and use of plugins you may need to install
additional packages. The requirements for each plugin is outlined in the
corresponding <a href="/plugins">plugin documentation</a>.</p>
<h2 id="essential_requirements">Essential&nbsp;Requirements</h2>
<p>While your mileage may vary, I consider the following to be essential for
generating a static website with hyde. These are a part of the requirements
file and the above command will download and install them as part of&nbsp;hyde.</p>
<p>It is also recommended that you use <a href="http://mathematism.com/2009/07/30/presentation-pip-and-virtualenv/">virtualenv</a> to separate the hyde
environment from other python projects. Note that installing hyde using
pip would install all of the below. However, if you&#8217;d like finer grained
control over the packages, you can install these&nbsp;individually:</p>
<ol>
<li><code>argparse</code>: argparse is required if you are on python&nbsp;2.6.</li>
<li><code>commando</code>: commando is a wrapper on top of argparse to give better syntax and
support for multi-command&nbsp;applications.</li>
<li><code>Jinja2</code>: While hyde will support many more template languages in the future,
currently, Jinja2 is wholly supported and&nbsp;recommended.</li>
<li><code>Markdown</code>: While there are plans to add support for other markups (textile,
restructured text, asciidoc etc..,), markdown is the one thats currently
completely&nbsp;supported.</li>
<li><code>Pyyaml</code>: Much of hyde&#8217;s [configuration] is done using&nbsp;yaml.</li>
<li><code>Typogrify</code>: Typogrify automatically fixes and enhances the typographical
accuracy of your content. While this is not a technical requirement for
hyde, it is absolutely essential to create good looking&nbsp;content.</li>
</ol>
<div class="code"><div class="highlight"><pre>pip install argparse<br />pip install commando<br />pip install jinja2<br />pip install markdown<br />pip install pyyaml<br />pip install -e https://github.com/hydepy/typogrify#egg<span class="o">=</span>typogrify<br /></pre></div><br /></div>

<p></article>
<aside>
</aside></p> </div>
<footer>
</footer>
</div> <!--! end of #container -->
<!-- Javascript at the bottom for fast page loading -->
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="/media/js/libs/jquery-1.4.4.min.js"%3E%3C/script%3E'))</script>
</body>
</html>

+ 55
- 22
docs/media/css/site.css View File

@@ -296,17 +296,17 @@ button {
a {
color: #497c55;
text-decoration: none;
text-shadow: 0px 1px 0px #ededed;
text-shadow: 0px 1px 0px #fefdfd;
}
a:hover {
color: #cd3b16;
text-decoration: underline;
text-shadow: 0px 1px -1px #ededed;
text-shadow: 0px 1px -1px #fefdfd;
}
body {
font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", Helvetica, Arial, sans-serif;
color: #132016;
background-color: #ededed;
background-color: #fefdfd;
}
.subheading {
font-family: "anivers-1", "anivers-2", Helvetica, Arial, sans-serif;
@@ -320,13 +320,13 @@ body {
#container {
width: 972px;
margin: 0 auto 96px;
background-color: #ededed;
background-color: #fefdfd;
}
#main {
margin: 12px;
}
article {
width: 600.7416563658837px;
width: 612px;
}
h1,
h2,
@@ -349,14 +349,29 @@ li ul, li ol {
padding-bottom: 0;
}
.heading {
color: #c5c5c5;
text-shadow: -1px -1px 0px #939393, 1px 1px 0px #ffffff;
color: #d6d5d5;
text-shadow: -1px -1px 0px #a4a3a3, 1px 1px 0px #ffffff;
}
body {
font-size: 20px;
line-height: 24px;
font-weight: normal;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "anivers-1", "anivers-2", Helvetica, Arial, sans-serif;
}
code, .highlight pre {
font-family: menlo, monaco, courier;
}
code {
color: rgba(0, 0, 0, 0.5);
font-size: 80%;
}
.amp {
font-family: Baskerville, Palatino, "Book Antiqua", serif;
line-height: 75%;
@@ -369,12 +384,12 @@ body {
Also: hot pink. */
::-moz-selection {
background: #497c55;
color: #ededed;
color: #fefdfd;
text-shadow: none;
}
::selection {
background: #497c55;
color: #ededed;
color: #fefdfd;
text-shadow: none;
}
/* j.mp/webkit-tap-highlight-color */
@@ -387,7 +402,7 @@ a:link {
.button:visited {
background: #497c55;
padding: 5px 10px 6px;
color: #ededed;
color: #fefdfd;
text-decoration: none;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
@@ -430,9 +445,9 @@ a:link {
padding: 0 0 24px 0;
}
h2 {
font-size: 36px;
font-size: 24px;
color: #453f19;
line-height: 48px;
line-height: 24px;
}
header.banner {
width: 100%;
@@ -445,20 +460,26 @@ header.banner img {
float: left;
}
header.banner h1 {
color: #c5c5c5;
text-shadow: -1px -1px 0px #939393, 1px 1px 0px #ffffff;
color: #d6d5d5;
text-shadow: -1px -1px 0px #a4a3a3, 1px 1px 0px #ffffff;
float: left;
margin-left: 48px;
margin-left: 46px;
font-size: 96px;
line-height: 144px;
line-height: 152px;
margin-bottom: 0;
}
header.banner h3 {
color: #453f19;
font-family: "anivers-1", "anivers-2", Helvetica, Arial, sans-serif;
font-size: 24px;
font-weight: normal;
color: #010202;
color: rgba(0, 0, 0, 0.5);
position: absolute;
bottom: 14px;
left: 284px;
bottom: 12px;
font-size: 24px;
left: 266px;
margin: 0;
text-shadow: -1px -1px 0px #a4a3a3, 1px 1px 0px #ffffff;
}
article {
padding: 48px;
@@ -467,12 +488,24 @@ article {
-o-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
article h1.title {
color: #497c55;
font-size: 36px;
margin-bottom: 6px;
}
article h3.subtitle {
color: #453f19;
font-size: 18px;
font-weight: normal;
padding-left: 6px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
margin-bottom: 21px;
}
.highlight pre {
font-size: 12px;
font-family: menlo, monaco, courier;
font-size: 11px;
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
-o-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
padding: 12px;
padding: 18px 12px;
}

+ 32
- 13
docs/overview.html View File

@@ -49,34 +49,53 @@
<div id="main" role="main">
<header class="banner clearfix">
<img src="/media/img/hyde-logo-128.png">
<h1>Hyde</h1>
<h1>hyde 1.0</h1>
<h3>static hotness</h3> </header>
<article>
<hgroup>
<h1 class="title">Overview</h1>
<h3 class="subtitle">hyde in a nutshell</h3>
</hgroup>
<p>Hyde is a static website generator written in python. While Hyde took
life as <a href="http://jekyllrb.com">awesome Jekyll</a>&#8216;s <a href="http://ringce.com/blog/2009/introducing_hyde">evil twin</a>, it has since been
completely consumed by <a href="http://python.org">the dark side</a> to have an identity of its&nbsp;own.</p>
life as <a href="http://jekyllrb.com">awesome Jekyll</a>&apos;s <a href="http://ringce.com/blog/2009/introducing_hyde">evil twin</a>, it has since been
completely consumed by <a href="http://python.org">the dark side</a> and has an <a href="http://groups.google.com/group/hyde-dev/web/hyde-1-0">identity of its own</a>.</p>
<p>Hyde desires to fulfill the lofty goal of removing the
<a href="/static/#cons">pain points</a> involved in creating and maintaining
<a href="/static/#pros">static websites</a>.</p>
<a href="/static.html/#cons">pain points</a> involved in creating and maintaining
<a href="[static.html/#pros]]">static websites</a>.</p>
<h2 id="spotlight">Spotlight</h2>
<ul>
<li>Support for powerful template languages like <a href="http://jinja.pocoo.org/">Jinja2</a> complemented
with custom tags and&nbsp;filters.</li>
<li><a href="/template/variables">Rich object model</a> and
<a href="/plugins/metadata">overridable hierarchical metadata</a> thats available for use in&nbsp;templates.</li>
<li>Configurable <a href="/plugins/sorter">sorting, filtering and grouping</a>&nbsp;support.</li>
<li>Extensible <a href="/plugins">plugin architecture</a> with Text preprocessing and html
<li>Rich <a href="/template.html/#variables">object model</a> and
overridable hierarchical <a href="/plugins/metadata.html">metadata</a> thats available for use in&nbsp;templates.</li>
<li>Configurable <a href="/plugins/sorter.html">sorting, filtering and grouping</a>&nbsp;support.</li>
<li>Extensible <a href="/plugins.html">plugin architecture</a> with Text preprocessing and html
postprocessing support for complex content&nbsp;transformations.</li>
<li>Instant preview using built-in <a href="/server">webserver</a> that regenerates content
<li>Instant preview using built-in <a href="/server.html">webserver</a> that regenerates content
if&nbsp;needed.</li>
</ul>
<h2 id="source">Source</h2>
<p>Hyde is <a href="https://github.com/hydepy/hyde">socially coded</a>. Feel free to <a href="/contribute">fork</a>.</p>
<h2 id="install">Install</h2>
<p>There will be a package soon on pypi, but this works for&nbsp;now:</p>
<div class="code"><div class="highlight"><pre>pip install -e https://github.com/hydepy/hyde#egg<span class="o">=</span>hyde<br /></pre></div><br /></div>

<p>You can find more detailed documentation in the <a href="/install">installation section</a>.</p>
<p>You can find more detailed documentation in the <a href="/install.html">installation section</a>.</p>
<h2 id="run">Run</h2>
<p>After installation is successful, creating <span class="amp">&amp;</span> generating your website is
extremely&nbsp;simple.</p>
<p>To create a new hyde&nbsp;website:</p>
<div class="code"><div class="highlight"><pre>hyde -s /path/to/your site create<br /></pre></div><br /></div>

<p>To generate the&nbsp;website:</p>
<div class="code"><div class="highlight"><pre><span class="nb">cd</span> /path/to/your/site<br />hyde gen<br /></pre></div><br /></div>

<p>To run the built in webserver that autogenerates if&nbsp;needed:</p>
<div class="code"><div class="highlight"><pre>hyde serve<br /></pre></div><br /></div>

<p>You can access the website now at <code>http://localhost:8080</code></p>
<p>For all the supported options, read <a href="/commandline.html">command line documentation</a>
or run <code>hyde --h</code>.</p>
<h2 id="source">Source</h2>
<p>Hyde is <a href="https://github.com/hydepy/hyde">socially coded</a>. Feel free to <a href="/contribute.html">fork</a>.</p>
<h2 id="project_roadmap">Project&nbsp;Roadmap</h2>
<ol>
<li>Support for Django and Mako<ul>


+ 1
- 1
hyde/ext/plugins/syntext.py View File

@@ -24,7 +24,7 @@ class SyntextPlugin(TextyPlugin):
"""
The default pattern for block open text.
"""
return '^~~~+\s*([A-Za-z0-9_\-\.]+)\s*~*\s*$'
return '^\s*~~~+\s*([A-Za-z0-9_\-\.]+)\s*~*\s*$'

@property
def default_close_pattern(self):


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

@@ -0,0 +1,173 @@
===
title: Command Line
subtitle: working with hyde
created: 2011-01-27 11:02:43
===

§§ blurb

The hyde command line supports three subcommands:

1. create - Initializes a new site at a given path
2. gen - Generates the website to a configured deploy folder
3. serve - Starts a local http server that regenerates based on the requested file

§§ /blurb

## The create command

Creates a new hyde website.

~~~sh~~~
hyde create

hyde [-s </site/path>] [-v] create [-l <layout>] [-f] [-h]
~~~~~~~~

* `-s SITEPATH, --sitepath SITEPATH`

Where the site must be created. If this path is not empty then the `-f`
option must be specified to overwrite the site.

*Optional* - defaults to current working directory.

* `-f, --force`

Specifying this option will overwrite files and folders at the given
site path.

*Optional* - If the target directory is not empty, hyde will throw an
exception unless this is specified.

* `-l LAYOUT, --layout LAYOUT`

The name of the layout to use for creating the initial site. Hyde currently
has three layouts: `basic`, `test` and `doc`.

While basic and test are really barebones, doc is the one that generates
this documentation and is completely usable. Hyde will get more layouts
as over time.

Hyde tries to locate the specified layout in the following folders:

1. In `layouts` folder under the path specified by the `HYDE_DATA`
environment variable
2. In `layouts` folder under hyde

*Optional* - defaults to `basic`

* `-v, --verbose`

Logs detailed messages to the console.

*Optional* - shows only essential messages if this option is omitted.

* `-h`

Displays the help text for the `create` command.

Assuming the `HYDE_DATA` environment variable is empty and the folder
`~/test` is empty, the following command will create a new hyde site
at `~/test` with the contents of `layouts/doc` folder:

~~~sh~~~
hyde -s ~/test create -l doc
~~~~~~~~

## The generate command

Generates the given website.

~~~sh~~~
hyde gen

hyde [-s </site/path>] [-v] gen [-d </deploy/path>] [-c <config/path>] [-h]
~~~~~~~~

* `-s SITEPATH, --sitepath SITEPATH`

The path to the site to be generated.

*Optional* - defaults to current working directory.

* `-d DEPLOY_PATH, --deploy-path DEPLOY_PATH`

Location where the site should be generated. This option overrides any
setting specified in the hyde [configuration][]. The path is assumed to
be relative to the site path unless a preceding path separator is found.

*Optional* - Uses what is specified in the config file. The default option
in the configuration file is: `deploy` folder under the current site path.


* `-c CONFIG, --config-path CONFIG`

This is used for specifying an alternate configuration file to use for
generating the site. This is useful if you have two different configurations
for you production versus development websites.

The path is assumed to be relative to the site path unless a preceding path
separator is found.

*Optional* - defaults to `site.yaml`

* `-v, --verbose`

Logs detailed messages to the console.

*Optional* - shows only essential messages if this option is omitted.

* `-h`

Displays the help text for the `gen` command.

The following command will use `production.yaml` as the configuration file and
generate the website at `~/test` to `~/production_site` directory.

~~~sh~~~
cd ~/test
hyde gen -c production.yaml -d ~/production_site
~~~~~~~~

## The serve command

Starts the built in web server that also regenerates based on the request if there are
changes.

~~~sh~~~
hyde serve

hyde [-s </site/path>] [-v] gen [-d </deploy/path>] [-c <config/path>] [-h]
~~~~~~~~

* `-s SITEPATH, --sitepath SITEPATH`
`-d DEPLOY_PATH, --deploy-path DEPLOY_PATH`
`-c CONFIG, --config-path CONFIG`

Since the `serve` command auto generates if there is a need, it needs the same
parameters as the `gen` command. The above parameters serve the same purpose here
as in the `gen` command.

* `-a ADDRESS, --address ADDRESS`

The address to serve the website.

*Optional* - defaults to `localhost`

* `-p PORT, --port`

The port to serve the website.

*Optional* - default to `8080`

* `-h`

Displays the help text for the `serve` command.

The following command will serve the website at `http://localhost:8181`

~~~sh~~~
cd ~/test
hyde serve -p 8181
~~~~~~~~


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

@@ -0,0 +1,54 @@
===
title: Installation
subtitle: PIPing hot hyde
created: 2011-01-26 23:17:44
===

§§ blurb

Installing hyde is as simple as running the following command:

~~~sh~~~
pip install -e https://github.com/hydepy/hyde#egg=hyde
~~~~~~~~

However, based on your choice and use of plugins you may need to install
additional packages. The requirements for each plugin is outlined in the
corresponding [plugin documentation][plugins].

§§ /blurb

## Essential Requirements

While your mileage may vary, I consider the following to be essential for
generating a static website with hyde. These are a part of the requirements
file and the above command will download and install them as part of hyde.

It is also recommended that you use [virtualenv][] to separate the hyde
environment from other python projects. Note that installing hyde using
pip would install all of the below. However, if you'd like finer grained
control over the packages, you can install these individually:

1. `argparse`: argparse is required if you are on python 2.6.
2. `commando`: commando is a wrapper on top of argparse to give better syntax and
support for multi-command applications.
3. `Jinja2`: While hyde will support many more template languages in the future,
currently, Jinja2 is wholly supported and recommended.
4. `Markdown`: While there are plans to add support for other markups (textile,
restructured text, asciidoc etc..,), markdown is the one thats currently
completely supported.
5. `Pyyaml`: Much of hyde's [configuration] is done using yaml.
6. `Typogrify`: Typogrify automatically fixes and enhances the typographical
accuracy of your content. While this is not a technical requirement for
hyde, it is absolutely essential to create good looking content.
~~~sh~~~
pip install argparse
pip install commando
pip install jinja2
pip install markdown
pip install pyyaml
pip install -e https://github.com/hydepy/typogrify#egg=typogrify
~~~~~~~~

[plugins]: [[plugins]]
[virtualenv]: http://mathematism.com/2009/07/30/presentation-pip-and-virtualenv/

+ 1
- 1
hyde/layouts/doc/content/media/css/inc/colors.less View File

@@ -7,4 +7,4 @@
@shade: #453F19;
@glowing: #CD3B16;
@light: #d4ffe3;
@clear: #ededed;
@clear: #fefdfd;

+ 1
- 1
hyde/layouts/doc/content/media/css/inc/layout.less View File

@@ -13,7 +13,7 @@ body{
}

article{
width: @totalwidth / 1.618;
width: @column * 10 + @gutter * 11;
}

h1, h2, h3, h4, h5, h6, p{


+ 16
- 0
hyde/layouts/doc/content/media/css/inc/text.less View File

@@ -3,6 +3,8 @@
@text-font: "ff-meta-web-pro-1","ff-meta-web-pro-2", Helvetica, Arial, sans-serif;
@caps-font: "anivers-1","anivers-2", Helvetica, Arial, sans-serif;



.heading{
color: @clear - 40;
text-shadow: -1px -1px 0px @clear - 90, 1px 1px 0px @clear + 90;
@@ -14,6 +16,20 @@ body{
font-weight: normal;
}

h1, h2, h3, h4, h5, h6{
font-family: @heading-font;
}

code,
.highlight pre{
font-family: menlo, monaco, courier;
}

code{
color: @qdark;
font-size: 80%;
}

.amp {
font-family: Baskerville, Palatino, "Book Antiqua", serif;
line-height: 75%;


+ 26
- 10
hyde/layouts/doc/content/media/css/site.less View File

@@ -9,9 +9,9 @@
@import 'inc/controls';

h2 {
font-size: @gutter * 3;
font-size: @gutter * 2;
color: @shade;
line-height: @gutter * 4;
line-height: @gutter * 2;
}

header.banner {
@@ -25,17 +25,20 @@ header.banner {
h1 {
.heading;
float: left;
margin-left: @column;
margin-left: @column - 2;
font-size: @column * 2;
line-height: @column * 3;
line-height: @column * 3 + 8;
margin-bottom: 0;
}
h3 {
color: @shade;
.subheading;
color: @qdark;
position: absolute;
bottom: @gutter + 2;
left: @column * 6 - 4;
bottom: @gutter;
font-size: @gutter * 2;
left: @gutter * 22 + 2;
margin:0;
text-shadow: -1px -1px 0px @clear - 90, 1px 1px 0px @clear + 90;
}
margin-bottom: @column;
}
@@ -43,12 +46,25 @@ header.banner {
article {
padding: @column;
.boxshadow(0, 1px, 3px, @qdark);

h1.title {
color: @dark;
font-size: @gutter * 3;
margin-bottom: @gutter / 2;
}
h3.subtitle{
color: @shade;
font-size: @gutter * 1.5;
font-weight: normal;
padding-left: 6px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
margin-bottom: @gutter * 2 - 3;
}
}

.highlight pre{
font-size: @gutter;
font-family: menlo, monaco, courier;
font-size: @gutter - 1;
.boxshadow(0, 1px, 3px, @qdark);
padding: @gutter;
padding: @gutter * 1.5 @gutter;
}


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

@@ -6,8 +6,8 @@ created: 2011-01-25 21:31:03

§§ blurb
Hyde is a static website generator written in python. While Hyde took
life as [awesome Jekyll][Jekyll]'s [evil twin][], it has since been
completely consumed by [the dark side][python] to have an identity of its own.
life as [awesome Jekyll][Jekyll]&apos;s [evil twin][], it has since been
completely consumed by [the dark side][python] and has an [identity of its own][hydeid].

Hyde desires to fulfill the lofty goal of removing the
[pain points][static cons] involved in creating and maintaining
@@ -18,8 +18,8 @@ Hyde desires to fulfill the lofty goal of removing the

* Support for powerful template languages like [Jinja2][] complemented
with custom tags and filters.
* [Rich object model][hyde objects] and
[overridable hierarchical metadata][metadata] thats available for use in
* Rich [object model][] and
overridable hierarchical [metadata][] thats available for use in
templates.
* Configurable [sorting, filtering and grouping][sorter] support.
* Extensible [plugin architecture][plugins] with Text preprocessing and html
@@ -27,10 +27,6 @@ Hyde desires to fulfill the lofty goal of removing the
* Instant preview using built-in [webserver][server] that regenerates content
if needed.

## Source

Hyde is [socially coded][hydepy]. Feel free to [fork][forking].

## Install

There will be a package soon on pypi, but this works for now:
@@ -43,6 +39,39 @@ pip install -e https://github.com/hydepy/hyde#egg=hyde

You can find more detailed documentation in the [installation section][install].

## Run

After installation is successful, creating & generating your website is
extremely simple.

To create a new hyde website:

~~~sh~~~
hyde -s /path/to/your site create
~~~~~~~~

To generate the website:

~~~sh~~~
cd /path/to/your/site
hyde gen
~~~~~~~~

To run the built in webserver that autogenerates if needed:

~~~sh~~~
hyde serve
~~~~~~~~

You can access the website now at `http://localhost:8080`

For all the supported options, read [command line documentation][commandline]
or run `hyde --h`.

## Source

Hyde is [socially coded][hydepy]. Feel free to [fork][forking].

## Project Roadmap

1. Support for Django and Mako
@@ -63,17 +92,19 @@ You can find more detailed documentation in the [installation section][install].
5. Feed / Listing generation
6. Translation

[hydeid]: http://groups.google.com/group/hyde-dev/web/hyde-1-0
[Jekyll]: http://jekyllrb.com
[evil twin]: http://ringce.com/blog/2009/introducing_hyde
[Jinja2]: http://jinja.pocoo.org/
[hyde objects]: [[/template/variables]]
[object model]: [[template.html/#variables]]
[hydepy]: https://github.com/hydepy/hyde
[install]: [[/install]]
[metadata]: [[/plugins/metadata]]
[plugins]: [[/plugins]]
[install]: [[install.html]]
[metadata]: [[plugins/metadata.html]]
[plugins]: [[plugins.html]]
[python]: http://python.org
[server]: [[/server]]
[sorter]: [[plugins/sorter]]
[static cons]: [[/static/#cons]]
[static pros]: [[/static/#pros]]
[forking]: [[/contribute]]
[server]: [[server.html]]
[sorter]: [[plugins/sorter.html]]
[static cons]: [[static.html/#cons]]
[static pros]: [static.html/#pros]]
[forking]: [[contribute.html]]
[commandline]: [[commandline.html]]

+ 4
- 0
hyde/layouts/doc/layout/doc.j2 View File

@@ -1,6 +1,10 @@
{% extends "root.j2" %}
{% block main -%}
<article>
<hgroup>
<h1 class="title">{{ resource.meta.title }}</h1>
<h3 class="subtitle">{{ resource.meta.subtitle }}</h3>
</hgroup>
{% filter markdown|typogrify -%}
{% block doc -%}
{%- endblock %}


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

@@ -61,7 +61,7 @@
<header class="banner clearfix">
{% block header -%}
<img src="{{ media_url('img/hyde-logo-128.png') }}">
<h1>Hyde</h1>
<h1>hyde 1.0</h1>
<h3>static hotness</h3>
{%- endblock %}
</header>


Loading…
Cancel
Save