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