| @@ -15,3 +15,4 @@ build | |||
| PYSMELLTAGS | |||
| .noseids | |||
| *.tar.gz | |||
| .hyde_deps | |||
| @@ -118,10 +118,11 @@ class FS(object): | |||
| """ | |||
| Gets the fragment of the current path starting at root. | |||
| """ | |||
| if self == root: | |||
| if self.path == root: | |||
| return '' | |||
| ancestors = self.ancestors(stop=root) | |||
| return functools.reduce(lambda f, p: Folder(p.name).child(f), | |||
| self.ancestors(stop=root), | |||
| ancestors, | |||
| self.name) | |||
| 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.plugin import Plugin | |||
| from hyde.template import Template | |||
| from hyde.site import Node, Resource | |||
| from contextlib import contextmanager | |||
| @@ -197,6 +198,18 @@ class Generator(object): | |||
| node = self.site.content.node_from_path(node_path) | |||
| 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): | |||
| """ | |||
| Generates the given node. If node is invalid, empty or | |||
| @@ -210,7 +223,8 @@ class Generator(object): | |||
| self.load_site_if_needed() | |||
| try: | |||
| self.__generate_node__(node, incremental) | |||
| with self.events_for(node): | |||
| self.__generate_node__(node, incremental) | |||
| self.finalize() | |||
| except HydeException: | |||
| self.generate_all() | |||
| @@ -245,8 +259,8 @@ class Generator(object): | |||
| self.load_site_if_needed() | |||
| try: | |||
| self.__generate_resource__(resource, incremental) | |||
| self.finalize() | |||
| with self.events_for(resource): | |||
| self.__generate_resource__(resource, incremental) | |||
| except HydeException: | |||
| 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 | |||
|  | |||
| --- 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 | |||
|  | |||
| --- 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 | |||
|  | |||
| --- 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 | |||
| 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 | |||
| change the UA-XXXXX-X to be your site's ID --> | |||
| <script> | |||
| var _gaq = [['_setAccount', '{{site.meta.GAID}}'], ['_trackPageview']]; | |||
| var _gaq = [['_setAccount', '{{ resource.meta.analytics.id }}'], ['_trackPageview']]; | |||
| (function(d, t) { | |||
| var g = d.createElement(t), | |||
| 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 | |||
| 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] 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 | |||
| [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 | |||
| @@ -0,0 +1 @@ | |||
| deploy_root: ../../../../hyde.github.com | |||
| @@ -2,7 +2,6 @@ mode: development | |||
| media_root:: media | |||
| media_url: /media | |||
| base_url: / | |||
| deploy_root: ../../../../hyde.github.com | |||
| template: hyde.ext.templates.jinja.Jinja2Template | |||
| plugins: | |||
| - hyde.ext.plugins.meta.MetaPlugin | |||
| @@ -30,10 +29,9 @@ meta: | |||
| hyde,python,django,jinja,static website,static site, | |||
| generator,html generator | |||
| author: Lakshmi Vyasarajan | |||
| less: | |||
| app: ~/local/bin/lessc | |||
| stylus: | |||
| app: ~/local/bin/stylus | |||
| markdown: | |||
| extensions: | |||
| - def_list | |||
| - headerid | |||
| - tables | |||
| - headerid | |||