parent
1093636728
commit
3922b13fb1
@ -0,0 +1 @@ |
|||||||
|
include pixywerk2/defaults/*.yaml |
@ -0,0 +1,69 @@ |
|||||||
|
# Project Layout # |
||||||
|
|
||||||
|
It is recommended that in general your project for PixyWerk2 site be layed out like: |
||||||
|
``` |
||||||
|
project_top/ |
||||||
|
Makefile - Convenient for building your site |
||||||
|
src/ - All "source" pages are contained in here. |
||||||
|
.meta - Top-level default metadata is set here |
||||||
|
templates/ - Templates go in here |
||||||
|
default.jinja2 - Default template that will be used if none are specified |
||||||
|
publish/ - The path the build process will create, where the post-processed files go. |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
## Makefile ## |
||||||
|
|
||||||
|
Makefile is suggested, but not essential, for encapsulating your build commands to produce your |
||||||
|
site. Something as simple as: |
||||||
|
|
||||||
|
``` |
||||||
|
build: src/templates/* src/* |
||||||
|
python -mpixywerk2 src publish |
||||||
|
``` |
||||||
|
|
||||||
|
## src/ ## |
||||||
|
|
||||||
|
This is the top level path that all of your templates, page fragments, images, etc. will be stored. This is basically the "source code" for your site. |
||||||
|
|
||||||
|
## src/.meta ## |
||||||
|
|
||||||
|
This is the top level metadata that is used as the default for all subsidiary metadata. It is in JSON format (with JS style comments). See <METADATA.md> for more information. |
||||||
|
|
||||||
|
Example .meta file: |
||||||
|
|
||||||
|
``` |
||||||
|
{ |
||||||
|
"title": "My Website", // this is the default title applied if none are specified |
||||||
|
"author": "Super Web Dude", |
||||||
|
"site_root": "http://example.com", |
||||||
|
"uuid-oid-root": "example.com-", // this is used to generate UUIDs |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## src/templates/ ## |
||||||
|
|
||||||
|
Templates are all stored here, as this is the search path for Jinja. |
||||||
|
|
||||||
|
## templates/default.jinja2 ## |
||||||
|
|
||||||
|
If a page specifies a `template` metadata key, the named template is used, however, if not this template is used. Generally speaking this is a complete HTML file, with the `{{ content }}` template string placed where the content of subsidiary pages will be embedded. |
||||||
|
|
||||||
|
A simple default.jinja2 example: |
||||||
|
|
||||||
|
``` |
||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>{{ title }}</title> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
{{content}} |
||||||
|
</body> |
||||||
|
</html> |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
## publish/ ## |
||||||
|
|
||||||
|
This is arbitrary, and will be created by pixywerk at build time, but it will be the root path that should be published to your web server. |
@ -0,0 +1,2 @@ |
|||||||
|
build: src/templates/* src/* src/images/* src/posts/* |
||||||
|
python -mpixywerk2 src publish
|
@ -0,0 +1,4 @@ |
|||||||
|
# Pixywerk.com Example # |
||||||
|
|
||||||
|
This is an example blog system with the features most blogs would have (posts, tag cloud, atom/rss feeds, |
||||||
|
index with images). |
@ -0,0 +1,3 @@ |
|||||||
|
|
||||||
|
|
||||||
|
body { margin: 10% 10% 0 10% } |
After Width: | Height: | Size: 72 KiB |
@ -0,0 +1,13 @@ |
|||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title></title> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/main.css"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<p>This is my index!!</p> |
||||||
|
|
||||||
|
for i in posts[:5]: |
||||||
|
|
||||||
|
get metadata, fill in post image/text summary with link |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,18 @@ |
|||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>My first post</title> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/main.css"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<img src="../images/20190415-0.jpg" class="featured"> |
||||||
|
<div class="byline"> |
||||||
|
<p>Author: Cas Rusnov</p> |
||||||
|
<p>Published: 2019-04-16T01:42:27.156392+00:00 |
||||||
|
|
||||||
|
</p> |
||||||
|
</div> |
||||||
|
<p>This is an example post!</p> |
||||||
|
<p>yo fresh</p> |
||||||
|
<p>There are many posts like it but this one is mine.</p> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,9 @@ |
|||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>{{ metadata.title }}</title> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/main.css"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
{{ content }} |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,6 @@ |
|||||||
|
{ |
||||||
|
"author": "Cas Rusnov", |
||||||
|
"author_email": "rusnovn@gmail.com", |
||||||
|
"uuid-oid-root": "pixywerk.com/", |
||||||
|
"site_root": "https://pixywerk.com/" |
||||||
|
} |
@ -0,0 +1,3 @@ |
|||||||
|
|
||||||
|
|
||||||
|
body { margin: 10% 10% 0 10% } |
After Width: | Height: | Size: 72 KiB |
@ -0,0 +1,5 @@ |
|||||||
|
<p>This is my index!!</p> |
||||||
|
|
||||||
|
for i in posts[:5]: |
||||||
|
|
||||||
|
get metadata, fill in post image/text summary with link |
@ -0,0 +1,12 @@ |
|||||||
|
<img src="{{ metadata.featured }}" class="featured"> |
||||||
|
<div class="byline"> |
||||||
|
<p>Author: {{ metadata.author }}</p> |
||||||
|
<p>Published: {{ get_time_iso8601(metadata.stat.ctime) }} |
||||||
|
{% if metadata.stat.mtime-metadata.stat.ctime > 512 %} |
||||||
|
Updated: {{ get_time_iso8601(metadata.stat.mtime) }} |
||||||
|
{% endif %} |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
<p>This is an example post!</p> |
||||||
|
<p>yo fresh</p> |
||||||
|
<p>There are many posts like it but this one is mine.</p> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"title":"My first post", |
||||||
|
"featured":"../images/20190415-0.jpg" |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>{{ metadata.title }}</title> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/main.css"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
{{ content }} |
||||||
|
</body> |
||||||
|
</html> |
Reference in new issue