@@ -15,3 +15,4 @@ build | |||||
PYSMELLTAGS | PYSMELLTAGS | ||||
.noseids | .noseids | ||||
*.tar.gz | *.tar.gz | ||||
.hyde_deps |
@@ -118,10 +118,11 @@ class FS(object): | |||||
""" | """ | ||||
Gets the fragment of the current path starting at root. | Gets the fragment of the current path starting at root. | ||||
""" | """ | ||||
if self == root: | |||||
if self.path == root: | |||||
return '' | return '' | ||||
ancestors = self.ancestors(stop=root) | |||||
return functools.reduce(lambda f, p: Folder(p.name).child(f), | return functools.reduce(lambda f, p: Folder(p.name).child(f), | ||||
self.ancestors(stop=root), | |||||
ancestors, | |||||
self.name) | self.name) | ||||
def get_mirror(self, target_root, source_root=None): | def get_mirror(self, target_root, source_root=None): | ||||
@@ -7,6 +7,7 @@ from hyde.fs import File, Folder | |||||
from hyde.model import Context, Dependents | from hyde.model import Context, Dependents | ||||
from hyde.plugin import Plugin | from hyde.plugin import Plugin | ||||
from hyde.template import Template | from hyde.template import Template | ||||
from hyde.site import Node, Resource | |||||
from contextlib import contextmanager | from contextlib import contextmanager | ||||
@@ -197,6 +198,18 @@ class Generator(object): | |||||
node = self.site.content.node_from_path(node_path) | node = self.site.content.node_from_path(node_path) | ||||
self.generate_node(node, incremental) | self.generate_node(node, incremental) | ||||
@contextmanager | |||||
def events_for(self, obj): | |||||
if not self.generated_once: | |||||
self.events.begin_site() | |||||
if isinstance(obj, Resource): | |||||
self.events.begin_node(obj.node) | |||||
yield | |||||
if not self.generated_once: | |||||
if isinstance(obj, Resource): | |||||
self.events.node_complete(obj.node) | |||||
self.events.site_complete() | |||||
def generate_node(self, node=None, incremental=False): | def generate_node(self, node=None, incremental=False): | ||||
""" | """ | ||||
Generates the given node. If node is invalid, empty or | Generates the given node. If node is invalid, empty or | ||||
@@ -210,7 +223,8 @@ class Generator(object): | |||||
self.load_site_if_needed() | self.load_site_if_needed() | ||||
try: | try: | ||||
self.__generate_node__(node, incremental) | |||||
with self.events_for(node): | |||||
self.__generate_node__(node, incremental) | |||||
self.finalize() | self.finalize() | ||||
except HydeException: | except HydeException: | ||||
self.generate_all() | self.generate_all() | ||||
@@ -245,8 +259,8 @@ class Generator(object): | |||||
self.load_site_if_needed() | self.load_site_if_needed() | ||||
try: | try: | ||||
self.__generate_resource__(resource, incremental) | |||||
self.finalize() | |||||
with self.events_for(resource): | |||||
self.__generate_resource__(resource, incremental) | |||||
except HydeException: | except HydeException: | ||||
self.generate_all() | self.generate_all() | ||||
@@ -0,0 +1 @@ | |||||
Basic template for hyde. |
@@ -0,0 +1,139 @@ | |||||
--- | |||||
title: An Angry Post | |||||
description: > | |||||
Temper. Temper. Temper. | |||||
created: !!timestamp '2011-01-01 10:00:00' | |||||
tags: | |||||
- angry | |||||
- thougts | |||||
--- | |||||
--- mark image | |||||
![Airport]([[!!images/airport.png]]) | |||||
--- endmark | |||||
--- mark excerpt | |||||
To complete the character-study of Mr. Worple, he was a man of extremely | |||||
uncertain temper, and his general tendency was to think that Corky was a poor | |||||
chump and that whatever step he took in any direction on his own account, was | |||||
just another proof of his innate idiocy. I should imagine Jeeves feels very | |||||
much the same about me. | |||||
--- endmark | |||||
So when Corky trickled into my apartment one afternoon, shooing a girl in | |||||
front of him, and said, "Bertie, I want you to meet my fiancée, Miss Singer," | |||||
the aspect of the matter which hit me first was precisely the one which he had | |||||
come to consult me about. The very first words I spoke were, "Corky, how about | |||||
your uncle?" | |||||
The poor chap gave one of those mirthless laughs. He was looking anxious and | |||||
worried, like a man who has done the murder all right but can't think what the | |||||
deuce to do with the body. | |||||
"We're so scared, Mr. Wooster," said the girl. "We were hoping that you might | |||||
suggest a way of breaking it to him." | |||||
Muriel Singer was one of those very quiet, appealing girls who have a way of | |||||
looking at you with their big eyes as if they thought you were the greatest | |||||
thing on earth and wondered that you hadn't got on to it yet yourself. She sat | |||||
there in a sort of shrinking way, looking at me as if she were saying to | |||||
herself, "Oh, I do hope this great strong man isn't going to hurt me." She | |||||
gave a fellow a protective kind of feeling, made him want to stroke her hand | |||||
and say, "There, there, little one!" or words to that effect. She made me feel | |||||
that there was nothing I wouldn't do for her. She was rather like one of those | |||||
innocent-tasting American drinks which creep imperceptibly into your system so | |||||
that, before you know what you're doing, you're starting out to reform the | |||||
world by force if necessary and pausing on your way to tell the large man in | |||||
the corner that, if he looks at you like that, you will knock his head off. | |||||
What I mean is, she made me feel alert and dashing, like a jolly old | |||||
knight-errant or something of that kind. I felt that I was with her in this | |||||
thing to the limit. | |||||
"I don't see why your uncle shouldn't be most awfully bucked," I said to | |||||
Corky. "He will think Miss Singer the ideal wife for you." | |||||
Corky declined to cheer up. | |||||
"You don't know him. Even if he did like Muriel he wouldn't admit it. That's | |||||
the sort of pig-headed guy he is. It would be a matter of principle with him | |||||
to kick. All he would consider would be that I had gone and taken an important | |||||
step without asking his advice, and he would raise Cain automatically. He's | |||||
always done it." | |||||
I strained the old bean to meet this emergency. | |||||
"You want to work it so that he makes Miss Singer's acquaintance without | |||||
knowing that you know her. Then you come along——" | |||||
"But how can I work it that way?" | |||||
I saw his point. That was the catch. | |||||
"There's only one thing to do," I said. | |||||
"What's that?" | |||||
"Leave it to Jeeves." | |||||
And I rang the bell. | |||||
"Sir?" said Jeeves, kind of manifesting himself. One of the rummy things about | |||||
Jeeves is that, unless you watch like a hawk, you very seldom see him come | |||||
into a room. He's like one of those weird chappies in India who dissolve | |||||
themselves into thin air and nip through space in a sort of disembodied way | |||||
and assemble the parts again just where they want them. I've got a cousin | |||||
who's what they call a Theosophist, and he says he's often nearly worked the | |||||
thing himself, but couldn't quite bring it off, probably owing to having fed | |||||
in his boyhood on the flesh of animals slain in anger and pie. | |||||
The moment I saw the man standing there, registering respectful attention, a | |||||
weight seemed to roll off my mind. I felt like a lost child who spots his | |||||
father in the offing. There was something about him that gave me confidence. | |||||
Jeeves is a tallish man, with one of those dark, shrewd faces. His eye gleams | |||||
with the light of pure intelligence. | |||||
"Jeeves, we want your advice." | |||||
"Very good, sir." | |||||
I boiled down Corky's painful case into a few well-chosen words. | |||||
"So you see what it amount to, Jeeves. We want you to suggest some way by | |||||
which Mr. Worple can make Miss Singer's acquaintance without getting on to the | |||||
fact that Mr. Corcoran already knows her. Understand?" | |||||
"Perfectly, sir." | |||||
"Well, try to think of something." | |||||
"I have thought of something already, sir." | |||||
"You have!" | |||||
"The scheme I would suggest cannot fail of success, but it has what may seem | |||||
to you a drawback, sir, in that it requires a certain financial outlay." | |||||
"He means," I translated to Corky, "that he has got a pippin of an idea, but | |||||
it's going to cost a bit." | |||||
Naturally the poor chap's face dropped, for this seemed to dish the whole | |||||
thing. But I was still under the influence of the girl's melting gaze, and I | |||||
saw that this was where I started in as a knight-errant. | |||||
"You can count on me for all that sort of thing, Corky," I said. "Only too | |||||
glad. Carry on, Jeeves." | |||||
"I would suggest, sir, that Mr. Corcoran take advantage of Mr. Worple's | |||||
attachment to ornithology." | |||||
"How on earth did you know that he was fond of birds?" | |||||
[My Man Jeeves by PG Wodehouse][MMJ] | |||||
[MMJ]: http://www.gutenberg.org/cache/epub/8164/pg8164.html |
@@ -0,0 +1,150 @@ | |||||
--- | |||||
title: A Happy Post | |||||
description: > | |||||
Smile. Laugh. | |||||
created: !!timestamp '2011-02-01 10:00:00' | |||||
tags: | |||||
- happy | |||||
- thougts | |||||
--- | |||||
--- mark image | |||||
![Airport]([[!!images/airport.png]]) | |||||
--- endmark | |||||
--- mark excerpt | |||||
Lady Malvern was a hearty, happy, healthy, overpowering sort of dashed female, | |||||
not so very tall but making up for it by measuring about six feet from the | |||||
O.P. to the Prompt Side. | |||||
--- endmark | |||||
She fitted into my biggest arm-chair as if it had | |||||
been built round her by someone who knew they were wearing arm-chairs tight | |||||
about the hips that season. She had bright, bulging eyes and a lot of yellow | |||||
hair, and when she spoke she showed about fifty-seven front teeth. She was one | |||||
of those women who kind of numb a fellow's faculties. She made me feel as if I | |||||
were ten years old and had been brought into the drawing-room in my Sunday | |||||
clothes to say how-d'you-do. Altogether by no means the sort of thing a | |||||
chappie would wish to find in his sitting-room before breakfast. | |||||
Motty, the son, was about twenty-three, tall and thin and meek-looking. He had | |||||
the same yellow hair as his mother, but he wore it plastered down and parted | |||||
in the middle. His eyes bulged, too, but they weren't bright. They were a dull | |||||
grey with pink rims. His chin gave up the struggle about half-way down, and he | |||||
didn't appear to have any eyelashes. A mild, furtive, sheepish sort of | |||||
blighter, in short. | |||||
"Awfully glad to see you," I said. "So you've popped over, eh? Making a long | |||||
stay in America?" | |||||
"About a month. Your aunt gave me your address and told me to be sure and call | |||||
on you." | |||||
I was glad to hear this, as it showed that Aunt Agatha was beginning to come | |||||
round a bit. There had been some unpleasantness a year before, when she had | |||||
sent me over to New York to disentangle my Cousin Gussie from the clutches of | |||||
a girl on the music-hall stage. When I tell you that by the time I had | |||||
finished my operations, Gussie had not only married the girl but had gone on | |||||
the stage himself, and was doing well, you'll understand that Aunt Agatha was | |||||
upset to no small extent. I simply hadn't dared go back and face her, and it | |||||
was a relief to find that time had healed the wound and all that sort of thing | |||||
enough to make her tell her pals to look me up. What I mean is, much as I | |||||
liked America, I didn't want to have England barred to me for the rest of my | |||||
natural; and, believe me, England is a jolly sight too small for anyone to | |||||
live in with Aunt Agatha, if she's really on the warpath. So I braced on | |||||
hearing these kind words and smiled genially on the assemblage. | |||||
"Your aunt said that you would do anything that was in your power to be of | |||||
assistance to us." | |||||
"Rather? Oh, rather! Absolutely!" | |||||
"Thank you so much. I want you to put dear Motty up for a little while." | |||||
I didn't get this for a moment. | |||||
"Put him up? For my clubs?" | |||||
"No, no! Darling Motty is essentially a home bird. Aren't you, Motty darling?" | |||||
Motty, who was sucking the knob of his stick, uncorked himself. | |||||
"Yes, mother," he said, and corked himself up again. | |||||
"I should not like him to belong to clubs. I mean put him up here. Have him to | |||||
live with you while I am away." | |||||
These frightful words trickled out of her like honey. The woman simply didn't | |||||
seem to understand the ghastly nature of her proposal. I gave Motty the swift | |||||
east-to-west. He was sitting with his mouth nuzzling the stick, blinking at | |||||
the wall. The thought of having this planted on me for an indefinite period | |||||
appalled me. Absolutely appalled me, don't you know. I was just starting to | |||||
say that the shot wasn't on the board at any price, and that the first sign | |||||
Motty gave of trying to nestle into my little home I would yell for the | |||||
police, when she went on, rolling placidly over me, as it were. | |||||
There was something about this woman that sapped a chappie's will-power. | |||||
"I am leaving New York by the midday train, as I have to pay a visit to | |||||
Sing-Sing prison. I am extremely interested in prison conditions in America. | |||||
After that I work my way gradually across to the coast, visiting the points of | |||||
interest on the journey. You see, Mr. Wooster, I am in America principally on | |||||
business. No doubt you read my book, India and the Indians? My publishers are | |||||
anxious for me to write a companion volume on the United States. I shall not | |||||
be able to spend more than a month in the country, as I have to get back for | |||||
the season, but a month should be ample. I was less than a month in India, and | |||||
my dear friend Sir Roger Cremorne wrote his America from Within after a stay | |||||
of only two weeks. I should love to take dear Motty with me, but the poor boy | |||||
gets so sick when he travels by train. I shall have to pick him up on my | |||||
return." | |||||
From where I sat I could see Jeeves in the dining-room, laying the | |||||
breakfast-table. I wished I could have had a minute with him alone. I felt | |||||
certain that he would have been able to think of some way of putting a stop to | |||||
this woman. | |||||
"It will be such a relief to know that Motty is safe with you, Mr. Wooster. I | |||||
know what the temptations of a great city are. Hitherto dear Motty has been | |||||
sheltered from them. He has lived quietly with me in the country. I know that | |||||
you will look after him carefully, Mr. Wooster. He will give very little | |||||
trouble." She talked about the poor blighter as if he wasn't there. Not that | |||||
Motty seemed to mind. He had stopped chewing his walking-stick and was sitting | |||||
there with his mouth open. "He is a vegetarian and a teetotaller and is | |||||
devoted to reading. Give him a nice book and he will be quite contented." She | |||||
got up. "Thank you so much, Mr. Wooster! I don't know what I should have done | |||||
without your help. Come, Motty! We have just time to see a few of the sights | |||||
before my train goes. But I shall have to rely on you for most of my | |||||
information about New York, darling. Be sure to keep your eyes open and take | |||||
notes of your impressions! It will be such a help. Good-bye, Mr. Wooster. I | |||||
will send Motty back early in the afternoon." | |||||
They went out, and I howled for Jeeves. | |||||
"Jeeves! What about it?" | |||||
"Sir?" | |||||
"What's to be done? You heard it all, didn't you? You were in the dining-room | |||||
most of the time. That pill is coming to stay here." | |||||
"Pill, sir?" | |||||
"The excrescence." | |||||
"I beg your pardon, sir?" | |||||
I looked at Jeeves sharply. This sort of thing wasn't like him. It was as if | |||||
he were deliberately trying to give me the pip. Then I understood. The man was | |||||
really upset about that tie. He was trying to get his own back. | |||||
"Lord Pershore will be staying here from to-night, Jeeves," I said coldly. | |||||
"Very good, sir. Breakfast is ready, sir." | |||||
[My Man Jeeves by PG Wodehouse][MMJ] | |||||
[MMJ]: http://www.gutenberg.org/cache/epub/8164/pg8164.html |
@@ -0,0 +1,7 @@ | |||||
--- | |||||
title: The Basic blog | |||||
extends: listing.j2 | |||||
default_block: test | |||||
listable: false | |||||
--- | |||||
A |
@@ -0,0 +1,3 @@ | |||||
extends: blog.j2 | |||||
default_block: post | |||||
listable: true |
@@ -0,0 +1,93 @@ | |||||
--- | |||||
title: A Sad Post | |||||
description: > | |||||
Something sad happened. | |||||
created: !!timestamp '2010-12-01 10:00:00' | |||||
tags: | |||||
- sad | |||||
- thougts | |||||
--- | |||||
--- mark image | |||||
![A Dark Image]([[!!images/dark.png]]) | |||||
--- endmark | |||||
--- mark excerpt | |||||
I went and dressed sadly. It will show you pretty well how pipped I was when I | |||||
tell you that I near as a toucher put on a white tie with a dinner-jacket. I | |||||
sallied out for a bit of food more to pass the time than because I wanted it. | |||||
It seemed brutal to be wading into the bill of fare with poor old Bicky headed | |||||
for the breadline. | |||||
--- endmark | |||||
When I got back old Chiswick had gone to bed, but Bicky was there, hunched up | |||||
in an arm-chair, brooding pretty tensely, with a cigarette hanging out of the | |||||
corner of his mouth and a more or less glassy stare in his eyes. He had the | |||||
aspect of one who had been soaked with what the newspaper chappies call "some | |||||
blunt instrument." | |||||
"This is a bit thick, old thing—what!" I said. | |||||
He picked up his glass and drained it feverishly, overlooking the fact that it | |||||
hadn't anything in it. | |||||
"I'm done, Bertie!" he said. | |||||
He had another go at the glass. It didn't seem to do him any good. | |||||
"If only this had happened a week later, Bertie! My next month's money was due | |||||
to roll in on Saturday. I could have worked a wheeze I've been reading about | |||||
in the magazine advertisements. It seems that you can make a dashed amount of | |||||
money if you can only collect a few dollars and start a chicken-farm. Jolly | |||||
sound scheme, Bertie! Say you buy a hen—call it one hen for the sake of | |||||
argument. It lays an egg every day of the week. You sell the eggs seven for | |||||
twenty-five cents. Keep of hen costs nothing. Profit practically twenty-five | |||||
cents on every seven eggs. Or look at it another way: Suppose you have a dozen | |||||
eggs. Each of the hens has a dozen chickens. The chickens grow up and have | |||||
more chickens. Why, in no time you'd have the place covered knee-deep in hens, | |||||
all laying eggs, at twenty-five cents for every seven. You'd make a fortune. | |||||
Jolly life, too, keeping hens!" He had begun to get quite worked up at the | |||||
thought of it, but he slopped back in his chair at this juncture with a good | |||||
deal of gloom. "But, of course, it's no good," he said, "because I haven't the | |||||
cash." | |||||
"You've only to say the word, you know, Bicky, old top." | |||||
"Thanks awfully, Bertie, but I'm not going to sponge on you." | |||||
That's always the way in this world. The chappies you'd like to lend money to | |||||
won't let you, whereas the chappies you don't want to lend it to will do | |||||
everything except actually stand you on your head and lift the specie out of | |||||
your pockets. As a lad who has always rolled tolerably free in the right | |||||
stuff, I've had lots of experience of the second class. Many's the time, back | |||||
in London, I've hurried along Piccadilly and felt the hot breath of the | |||||
toucher on the back of my neck and heard his sharp, excited yapping as he | |||||
closed in on me. I've simply spent my life scattering largesse to blighters I | |||||
didn't care a hang for; yet here was I now, dripping doubloons and pieces of | |||||
eight and longing to hand them over, and Bicky, poor fish, absolutely on his | |||||
uppers, not taking any at any price. | |||||
"Well, there's only one hope, then." | |||||
"What's that?" | |||||
"Jeeves." | |||||
"Sir?" | |||||
There was Jeeves, standing behind me, full of zeal. In this matter of | |||||
shimmering into rooms the chappie is rummy to a degree. You're sitting in the | |||||
old armchair, thinking of this and that, and then suddenly you look up, and | |||||
there he is. He moves from point to point with as little uproar as a jelly | |||||
fish. The thing startled poor old Bicky considerably. He rose from his seat | |||||
like a rocketing pheasant. I'm used to Jeeves now, but often in the days when | |||||
he first came to me I've bitten my tongue freely on finding him unexpectedly | |||||
in my midst. | |||||
[My Man Jeeves by PG Wodehouse][MMJ] | |||||
[MMJ]: http://www.gutenberg.org/cache/epub/8164/pg8164.html |
@@ -0,0 +1,6 @@ | |||||
--- | |||||
title: BASIC - A hyde website | |||||
description: Home page for the BASIC hyde template | |||||
--- | |||||
Ha Ha |
@@ -0,0 +1,191 @@ | |||||
* { | |||||
vertical-align: baseline; | |||||
font-weight: inherit; | |||||
font-family: inherit; | |||||
font-style: inherit; | |||||
text-decoration:inherit; | |||||
font-size: 100%; | |||||
padding: 0; | |||||
border: 0; | |||||
margin: 0; | |||||
} | |||||
table { | |||||
border-collapse: collapse; | |||||
} | |||||
:focus { | |||||
outline: 0; | |||||
} | |||||
::-moz-focus-inner { | |||||
border: 0; | |||||
} | |||||
/* clearfix */ | |||||
.clear:after { | |||||
content: "."; | |||||
display: block; | |||||
clear: both; | |||||
visibility: hidden; | |||||
line-height: 0; | |||||
height: 0; | |||||
} | |||||
.clear { | |||||
display: block; | |||||
} | |||||
* html .clear { | |||||
height: 1%; | |||||
} | |||||
a { | |||||
color: black; | |||||
text-decoration: underline; | |||||
} | |||||
a:hover{ | |||||
color: red; | |||||
} | |||||
body{ | |||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |||||
background-color: #efefef; | |||||
padding: 0; | |||||
margin: 0; | |||||
text-shadow: 0px 2px 0px #efefef; | |||||
} | |||||
#container{ | |||||
background-color: #eaeaea; | |||||
width: 640px; | |||||
margin: 0 auto; | |||||
padding: 12px; | |||||
-moz-box-shadow: 0px 4px 12px #ccc; /* FF3.5+ */ | |||||
-webkit-box-shadow: 0px 4px 12px #ccc; /* Saf3.0+, Chrome */ | |||||
box-shadow: 0px 4px 12px #ccc; /* Opera 10.5, IE 9.0 */ | |||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=12px, OffY=12px, Color='#ccc'); /* IE6,IE7 */ | |||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=12px, OffY=12px, Color='#ccc')"; /* IE8 */ | |||||
} | |||||
.banner{ | |||||
border-bottom: 12px solid #ccc; | |||||
padding: 0 12px; | |||||
} | |||||
.banner h1{ | |||||
font-weight: 100; | |||||
font-size: 32px; | |||||
line-height: 48px; | |||||
} | |||||
.banner h3{ | |||||
color: #666; | |||||
font-weight: normal; | |||||
font-size: 16px; | |||||
line-height: 24px; | |||||
margin-bottom: 12px; | |||||
} | |||||
h1.title{ | |||||
font-size: 24px; | |||||
line-height: 36px; | |||||
border-bottom: 1px solid #ccc; | |||||
} | |||||
section.content{ | |||||
padding: 12px; | |||||
} | |||||
/* listing */ | |||||
.listing{ | |||||
margin-top: 24px; | |||||
} | |||||
.listing img{ | |||||
width: 120px; | |||||
height: 120px; | |||||
} | |||||
.listing li{ | |||||
background-color: #ededed; | |||||
list-style-type: none; | |||||
float: left; | |||||
width: 272px; | |||||
margin-right: 24px; | |||||
margin-bottom: 24px; | |||||
padding: 12px; | |||||
-moz-box-shadow: 0px 4px 12px #ccc; /* FF3.5+ */ | |||||
-webkit-box-shadow: 0px 4px 12px #ccc; /* Saf3.0+, Chrome */ | |||||
box-shadow: 0px 4px 12px #ccc; /* Opera 10.5, IE 9.0 */ | |||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=12px, OffY=12px, Color='#ccc'); /* IE6,IE7 */ | |||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=12px, OffY=12px, Color='#ccc')"; /* IE8 */ | |||||
} | |||||
.listing li:nth-child(2){ | |||||
margin-right: 0; | |||||
} | |||||
.listing li:nth-child(3){ | |||||
clear: left; | |||||
} | |||||
.listing li p{ | |||||
font-size: 10px; | |||||
line-height: 12px; | |||||
margin-bottom: 12px; | |||||
} | |||||
.listing h3{ | |||||
border-bottom: 1px solid #ccc; | |||||
font-size: 12px; | |||||
line-height: 18px; | |||||
margin-bottom: 6px; | |||||
} | |||||
.listing time{ | |||||
display:block; | |||||
border-top: 1px solid #ccc; | |||||
padding-top: 4px; | |||||
font-size: 10px; | |||||
} | |||||
/* Content */ | |||||
article.post h1{ | |||||
margin-bottom: 24px; | |||||
} | |||||
article.post p{ | |||||
font-size: 12px; | |||||
line-height: 24px; | |||||
margin: 6px 0; | |||||
} | |||||
article.post img{ | |||||
display: block; | |||||
margin-bottom: 24px; | |||||
} | |||||
h1 a, h2 a, h3 a{ | |||||
text-decoration: none; | |||||
} | |||||
a.backlink:before{ | |||||
content: '\2190'; | |||||
} | |||||
a.backlink{ | |||||
text-decoration: none; | |||||
text-shadow: 0px 2px 0px #fff; | |||||
} |
@@ -0,0 +1,59 @@ | |||||
.c, .cm { color: #998; font-style: italic } /* Comments */ | |||||
.err { color: #a61717; background-color: #e3d2d2 } /* Error */ | |||||
.k { font-weight: bold } /* Keyword */ | |||||
.o { font-weight: bold } /* Operator */ | |||||
.cp { color: #999; font-weight: bold } /* Comment.Preproc */ | |||||
.c1 { color: #998; font-style: italic } /* Comment.Single */ | |||||
.cs { color: #999; font-weight: bold; font-style: italic } /* Comment.Special */ | |||||
.gd { color: #000; background-color: #ffdddd } /* Generic.Deleted */ | |||||
.gd .x { color: #000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ | |||||
.ge { font-style: italic } /* Generic.Emph */ | |||||
.gr { color: #a00 } /* Generic.Error */ | |||||
.gh { color: #999 } /* Generic.Heading */ | |||||
.gi { color: #000; background-color: #ddffdd } /* Generic.Inserted */ | |||||
.gi .x { color: #000; background-color: #aaffaa } /* Generic.Inserted.Specific */ | |||||
.go { color: #888 } /* Generic.Output */ | |||||
.gp { color: #555 } /* Generic.Prompt */ | |||||
.gs { font-weight: bold } /* Generic.Strong */ | |||||
.gu { color: #aaaaaa } /* Generic.Subheading */ | |||||
.gt { color: #a00 } /* Generic.Traceback */ | |||||
.kc { font-weight: bold } /* Keyword.Constant */ | |||||
.kd { font-weight: bold } /* Keyword.Declaration */ | |||||
.kp { font-weight: bold } /* Keyword.Pseudo */ | |||||
.kr { font-weight: bold } /* Keyword.Reserved */ | |||||
.kt { color: #445588; font-weight: bold } /* Keyword.Type */ | |||||
.m { color: #099 } /* Literal.Number */ | |||||
.s { color: #d14 } /* Literal.String */ | |||||
.na { color: #008080 } /* Name.Attribute */ | |||||
.nb { color: #0086B3 } /* Name.Builtin */ | |||||
.nc { color: #445588; font-weight: bold } /* Name.Class */ | |||||
.no { color: #008080 } /* Name.Constant */ | |||||
.ni { color: #800080 } /* Name.Entity */ | |||||
.ne { color: #900; font-weight: bold } /* Name.Exception */ | |||||
.nf { color: #900; font-weight: bold } /* Name.Function */ | |||||
.nn { color: #555 } /* Name.Namespace */ | |||||
.nt { color: #000080 } /* Name.Tag */ | |||||
.nv { color: #008080 } /* Name.Variable */ | |||||
.ow { font-weight: bold } /* Operator.Word */ | |||||
.w { color: #bbb } /* Text.Whitespace */ | |||||
.mf { color: #099 } /* Literal.Number.Float */ | |||||
.mh { color: #099 } /* Literal.Number.Hex */ | |||||
.mi { color: #099 } /* Literal.Number.Integer */ | |||||
.mo { color: #099 } /* Literal.Number.Oct */ | |||||
.sb { color: #d14 } /* Literal.String.Backtick */ | |||||
.sc { color: #d14 } /* Literal.String.Char */ | |||||
.sd { color: #d14 } /* Literal.String.Doc */ | |||||
.s2 { color: #d14 } /* Literal.String.Double */ | |||||
.se { color: #d14 } /* Literal.String.Escape */ | |||||
.sh { color: #d14 } /* Literal.String.Heredoc */ | |||||
.si { color: #d14 } /* Literal.String.Interpol */ | |||||
.sx { color: #d14 } /* Literal.String.Other */ | |||||
.sr { color: #009926 } /* Literal.String.Regex */ | |||||
.s1 { color: #d14 } /* Literal.String.Single */ | |||||
.ss { color: #990073 } /* Literal.String.Symbol */ | |||||
.bp { color: #999 } /* Name.Builtin.Pseudo */ | |||||
.vc { color: #008080 } /* Name.Variable.Class */ | |||||
.vg { color: #008080 } /* Name.Variable.Global */ | |||||
.vi { color: #008080 } /* Name.Variable.Instance */ | |||||
.il { color: #099 } /* Literal.Number.Integer.Long */ | |||||
@@ -0,0 +1 @@ | |||||
uses_template: false |
@@ -0,0 +1 @@ | |||||
extends: false |
@@ -1,13 +1,3 @@ | |||||
author: Lakshmi Vyasarajan | author: Lakshmi Vyasarajan | ||||
description: A basic layout for hyde. Based on html5 boilerplate | description: A basic layout for hyde. Based on html5 boilerplate | ||||
website: http://hydehub.org/hyde/templates/basic | |||||
template: jinja2 (2.6) | |||||
version: 0.1 | |||||
dependencies: | |||||
scripts: | |||||
- jquery (1.4) | |||||
- dd_belatedpng | |||||
extensions: | |||||
- media | |||||
widgets: | |||||
- analytics | |||||
version: 0.1 |
@@ -1,8 +1,8 @@ | |||||
{% if site.in_production_mode %} | |||||
{% if site.config.mode == "production" %} | |||||
<!-- asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet | <!-- asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet | ||||
change the UA-XXXXX-X to be your site's ID --> | change the UA-XXXXX-X to be your site's ID --> | ||||
<script> | <script> | ||||
var _gaq = [['_setAccount', '{{site.meta.GAID}}'], ['_trackPageview']]; | |||||
var _gaq = [['_setAccount', '{{ resource.meta.analytics.id }}'], ['_trackPageview']]; | |||||
(function(d, t) { | (function(d, t) { | ||||
var g = d.createElement(t), | var g = d.createElement(t), | ||||
s = d.getElementsByTagName(t)[0]; | s = d.getElementsByTagName(t)[0]; |
@@ -1,102 +0,0 @@ | |||||
{% extends "root.html" %} | |||||
{% block all %} | |||||
<!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> | |||||
{% block starthead %}{% endblock starthead %} | |||||
<meta charset="{{resource.meta.charset|default('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="{{page.meta.compatibility|default('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>{% block title %}{{resource.meta.title}}{% endblock %}</title> | |||||
<meta name="description" content="{{resource.meta.description}}"> | |||||
<meta name="author" content="{{resource.meta.author}}"> | |||||
<!-- Mobile viewport optimized: j.mp/bplateviewport --> | |||||
<meta name="viewport" content="{{page.meta.viewport|default('width=device-width, initial-scale=1.0')}}"> | |||||
{% block favicons %} | |||||
<!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references --> | |||||
<link rel="shortcut icon" href="{{ media_url('/favicon.ico') }}"> | |||||
<link rel="apple-touch-icon" href="{{ media_url('/apple-touch-icon.png') }}"> | |||||
{% endblock favicons %} | |||||
{% block css %} | |||||
<!-- CSS : implied media="all" --> | |||||
<link rel="stylesheet" href="{{ media_url('css/site.css') }}"> | |||||
<!-- Uncomment if you are specifically targeting less enabled mobile browsers | |||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=2"> --> | |||||
{% endblock css %} | |||||
{% block headjs %} | |||||
<!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects --> | |||||
<script src="{{ media_url('js/libs/modernizr-1.6.min.js') }}"></script> | |||||
{% endblock headjs %} | |||||
{% block endhead %}{% endblock endhead %} | |||||
</head> | |||||
<body id="{{resource.id if resource.id else resource.name_without_extension}}"> | |||||
{% block content %} | |||||
<div id="container"> | |||||
{% block container %} | |||||
<header> | |||||
{% block header %}{% endblock header %} | |||||
</header> | |||||
<div id="main" role="main"> | |||||
{% block main %}{% endblock main %} | |||||
</div> | |||||
<footer> | |||||
{% block footer %}{% endblock %} | |||||
</footer> | |||||
{% endblock container%} | |||||
</div> <!--! end of #container --> | |||||
{% endblock content%} | |||||
{% block js %} | |||||
<!-- Javascript at the bottom for fast page loading --> | |||||
{% block jquery %} | |||||
<!-- 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_url('js/libs/jquery-1.4.4.js') }}"%3E%3C/script%3E'))</script> | |||||
{% endblock jquery %} | |||||
{% block scripts %} | |||||
<!-- scripts concatenated and minified via ant build script--> | |||||
<script src="{{ media_url('js/plugins.js') }}"></script> | |||||
<script src="{{ media_url('js/script.js') }}"></script> | |||||
<!-- end concatenated and minified scripts--> | |||||
{% endblock scripts %} | |||||
{% block pngfix %} | |||||
<!--[if lt IE 7 ]> | |||||
<script> | |||||
// More information on tackling transparent PNGs for IE goo.gl/mZiyb | |||||
//fix any <img> or .png_bg background-images | |||||
$.getScript("{{ media_url('js/libs/dd_belatedpng.js') }}",function(){ DD_belatedPNG.fix('img, .png_bg'); }); | |||||
</script> | |||||
<![endif]--> | |||||
{% endblock pngfix %} | |||||
{% block debug %} | |||||
{% include "devmode.html" %} | |||||
{% endblock debug %} | |||||
{%block analytics %} | |||||
{% include "analytics.html" %} | |||||
{% endblock analytics %} | |||||
{% endblock js %} | |||||
</body> | |||||
</html> | |||||
{% endblock all %} |
@@ -0,0 +1,96 @@ | |||||
<!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> | |||||
{% block starthead %}{% endblock starthead %} | |||||
<meta charset="{{ resource.meta.charset }}"> | |||||
<!-- 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="{{ resource.meta.compatibility }}"> | |||||
<!-- 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>{% block title %}{{ resource.meta.title }}{% endblock %}</title> | |||||
<meta name="description" content="{{ resource.meta.description }}"> | |||||
<meta name="author" content="{{ resource.meta.author }}"> | |||||
<!-- Mobile viewport optimized: j.mp/bplateviewport --> | |||||
<meta name="viewport" content="{{ resource.meta.viewport }}"> | |||||
{% block favicons %} | |||||
<!-- Place favicon.ico & apple-touch-icon.png | |||||
in the root of your domain and delete these references --> | |||||
<link rel="shortcut icon" href="{{ media_url('/favicon.ico') }}"> | |||||
<link rel="apple-touch-icon" href="{{ media_url('/apple-touch-icon.png') }}"> | |||||
{% endblock favicons %} | |||||
{% block css %} | |||||
<link rel="stylesheet" href="{{ media_url('css/site.css') }}"> | |||||
<link rel="stylesheet" href="{{ media_url('css/syntax.css') }}"> | |||||
{% endblock css %} | |||||
{% block headjs %} | |||||
<!-- All JavaScript at the bottom, except for Modernizr which | |||||
enables HTML5 elements & feature detects --> | |||||
<script src="{{ media_url('js/libs/modernizr-1.7.min.js') }}"></script> | |||||
{% endblock headjs %} | |||||
{% block endhead %}{% endblock endhead %} | |||||
</head> | |||||
<body id="{{ resource.meta.id if resource.meta.id else resource.slug }}"> | |||||
{% block content %} | |||||
<div id="container"> | |||||
{% block container %} | |||||
<div id="main" role="main"> | |||||
<header class="banner clearfix"> | |||||
{% block header -%} | |||||
<h1>BASIC</h1> | |||||
<h3>A hyde website</h3> | |||||
{%- endblock %} | |||||
</header> | |||||
<section class="content"> | |||||
{% block main %} | |||||
{% endblock main %} | |||||
</section> | |||||
</div> | |||||
<footer> | |||||
</footer> | |||||
{% endblock container %} | |||||
</div> <!--! end of #container --> | |||||
{% endblock content%} | |||||
{% block js %} | |||||
<!-- Javascript at the bottom for fast page loading --> | |||||
{% block jquery %} | |||||
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary --> | |||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script> | |||||
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script> | |||||
{% endblock jquery %} | |||||
{% block scripts %} | |||||
{% endblock scripts %} | |||||
<!--[if lt IE 7 ]> | |||||
<script src="js/libs/dd_belatedpng.js"></script> | |||||
<script>DD_belatedPNG.fix('img, .png_bg'); // Fix any <img> or .png_bg bg-images. Also, please read goo.gl/mZiyb </script> | |||||
<![endif]--> | |||||
{% block analytics %} | |||||
{% include "analytics.j2" %} | |||||
{% endblock analytics %} | |||||
{% endblock js %} | |||||
</body> | |||||
</html> |
@@ -0,0 +1,18 @@ | |||||
{% extends "base.j2" %} | |||||
{% block main -%} | |||||
<article class="post"> | |||||
<a class="backlink" href="{{ content_url(resource.node.url) }}">Back to list</a> | |||||
<h1 class="title"> | |||||
<a href="{{ content_url(resource.url) }}"> | |||||
{{ resource.meta.title }} | |||||
</a> | |||||
</h1> | |||||
{% filter markdown|typogrify -%} | |||||
{% block post -%}{%- endblock %} | |||||
{%- endfilter %} | |||||
</article> | |||||
{%- endblock %} |
@@ -1,6 +0,0 @@ | |||||
{%if not site.in_production_mode %} | |||||
<!-- yui profiler and profileviewer - remove for production --> | |||||
<script src="js/profiling/yahoo-profiling.min.js"></script> | |||||
<script src="js/profiling/config.js"></script> | |||||
<!-- end profiling code --> | |||||
{% endif %} |
@@ -0,0 +1,4 @@ | |||||
{%if not site.config.mode == "production" %} | |||||
<script src="js/profiling/yahoo-profiling.min.js"></script> | |||||
<script src="js/profiling/config.js"></script> | |||||
{% endif %} |
@@ -0,0 +1,21 @@ | |||||
{% extends "base.j2" %} | |||||
{% block main %} | |||||
{% block page_title %}<h1 class="title">{{ resource.meta.title }}</h1>{% endblock %} | |||||
<ul class="listing clear"> | |||||
{% for res in resource.node.walk_resources_sorted_by_time() %} | |||||
{% refer to res.url as post %} | |||||
<li> | |||||
<article> | |||||
<h3><a href="{{ content_url(res.url) }}">{{ res.meta.title }}</a></h3> | |||||
<a href="{{ content_url(res.url) }}">{{ post.image|markdown|typogrify }}</a> | |||||
{{ post.excerpt|markdown|typogrify }} | |||||
<time datetime="{{ res.meta.created.strftime('%Y-%m-%d') }}"> | |||||
Posted: {{ res.meta.created.strftime('%a, %d %b %Y') }} | |||||
</time> | |||||
</article> | |||||
</li> | |||||
{% endfor %} | |||||
</ul> | |||||
{% endblock %} |
@@ -1 +0,0 @@ | |||||
{% block all %}{% endblock %} |
@@ -1,9 +1,23 @@ | |||||
site: | |||||
mode: development | |||||
media: | |||||
root: | |||||
path: media # Relative path from site root (the directory where this file exists) | |||||
url: /media | |||||
widgets: | |||||
plugins: | |||||
aggregators: | |||||
mode: development | |||||
media_root: media # Relative path from content folder. | |||||
media_url: /media # URL where the media files are served from. | |||||
base_url: / # The base url for autogenerated links. | |||||
plugins: | |||||
- hyde.ext.plugins.meta.MetaPlugin | |||||
- hyde.ext.plugins.auto_extend.AutoExtendPlugin | |||||
- hyde.ext.plugins.sorter.SorterPlugin | |||||
- hyde.ext.plugins.grouper.GrouperPlugin | |||||
- hyde.ext.plugins.syntext.SyntextPlugin | |||||
- hyde.ext.plugins.textlinks.TextlinksPlugin | |||||
meta: | |||||
nodemeta: meta.yaml | |||||
created: !!timestamp 2010-01-01 00:00:00 | |||||
sorter: | |||||
time: | |||||
attr: | |||||
- meta.created | |||||
reverse: true | |||||
filters: | |||||
source.kind: html | |||||
meta.listable: true | |||||
@@ -7,7 +7,8 @@ created: 2011-01-25 21:31:03 | |||||
§§ blurb | §§ blurb | ||||
Hyde is a static website generator written in python. While Hyde took | Hyde is a static website generator written in python. While Hyde took | ||||
life as [awesome Jekyll][Jekyll]'s [evil twin][], it has since been | life as [awesome Jekyll][Jekyll]'s [evil twin][], it has since been | ||||
completely consumed by [the dark side][python] and has an [identity of its own][hydeid]. | |||||
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 | Hyde desires to fulfill the lofty goal of removing the | ||||
[pain points][static cons] involved in creating and maintaining | [pain points][static cons] involved in creating and maintaining | ||||
@@ -37,7 +38,8 @@ pip install -e https://github.com/hyde/hyde#egg=hyde | |||||
~~~~~~~~ | ~~~~~~~~ | ||||
You can find more detailed documentation in the [installation section][install]. | |||||
You can find more detailed documentation in the | |||||
[installation section][install]. | |||||
## Run | ## Run | ||||
@@ -0,0 +1 @@ | |||||
deploy_root: ../../../../hyde.github.com |
@@ -2,7 +2,6 @@ mode: development | |||||
media_root:: media | media_root:: media | ||||
media_url: /media | media_url: /media | ||||
base_url: / | base_url: / | ||||
deploy_root: ../../../../hyde.github.com | |||||
template: hyde.ext.templates.jinja.Jinja2Template | template: hyde.ext.templates.jinja.Jinja2Template | ||||
plugins: | plugins: | ||||
- hyde.ext.plugins.meta.MetaPlugin | - hyde.ext.plugins.meta.MetaPlugin | ||||
@@ -30,10 +29,9 @@ meta: | |||||
hyde,python,django,jinja,static website,static site, | hyde,python,django,jinja,static website,static site, | ||||
generator,html generator | generator,html generator | ||||
author: Lakshmi Vyasarajan | author: Lakshmi Vyasarajan | ||||
less: | |||||
app: ~/local/bin/lessc | |||||
stylus: | |||||
app: ~/local/bin/stylus | |||||
markdown: | markdown: | ||||
extensions: | extensions: | ||||
- def_list | - def_list | ||||
- headerid | |||||
- tables | |||||
- headerid |