Wren - Static blog generator
Mar 1, 2016
Thinking about this. I will base it upon my Article Preview app, created back in January and the test static page site, created with a command prompt script, created in February.
http://article.soupmode.com/static
Need:
- create and update markup.
- when updating, a backup of the markup is created when the content is saved.
- convert markup to html. a separate process or converted at the same time markup is saved, like i do with my database-backed web publishing apps?
- maintain a master list of articles with title, slug, date, possibly in JSON format. this would be used to create the list of archives pages. index.html would not be a part of this. index.html will be created like a normal article page.
- when is the list of archives pages created? at the time an article is created/updated or is it a separate step?
- need a login mech and auth check, probably similar to my apps that only require an email address to log in. mailgun will be used to send the login session activation link. cookies will bet set and checked.
- use google or duckduckgo to index the site for search.
- maintain tag pages for tag search.
Things to include:
- sitemap.xml - a Google compatible sitemap of the content on the site.
- search with some other search engine, like DuckDuckGo or Google.
- cache by using Nginx's caching mechanism
- http://jothut.com/cgi-bin/junco.pl/blogpost/60302/10Sep2015/Nginx-Caching
- http://jothut.com/cgi-bin/junco.pl/blogpost/21154/14May2015/Installing-nodejs-nginx-mysql-junco-and-ghost-on-Digital-Ocean-Droplet#Installing-Nginx
- http://jothut.com/cgi-bin/junco.pl/blogpost/44995/02Oct2014/HTTP-Caching
- http://jothut.com/cgi-bin/junco.pl/blogpost/45403/02Oct2014/Http-caching-oct-2-2014
Add:
These commands would be used to override defaults. Normally, the slug would be taken from the post's title. Default directory location for html and txt files and the default post template would be listed in the yaml file.
- slug=this-is-a-test (used for .html and .txt files)
- dir=/2016/03/02 or /blog or /contact (create directory if it does not exist)
- template=index-banner (.tmpl will be added by app.)
Formatting Commands
Used at Article Preview app at http://article.soupmode.com
Samples:
http://jothut.com/cgi-bin/junco.pl/blogpost/65125/Article-format-app
Can use either Markdown/Multimarkdown or Textile. The markup chose depends upon how the title line is created. The title line is the first line in the markup. If it begins with a pound sign, the markup uses Markdown. If the title line begins with h1.
then the markup uses Textile.
Commands that can be used within the markup:
css.
(code)
css..
toc=yes|NO
using_css=YES|no
tint_image_header=yes|NO
title_over_image=yes|NO
publish_info_at_top=yes|NO
url_to_link=YES|no
hashtag_to_link=yes|NO
newline_to_br=YES|no
headings_as_links=yes|NO
aside=text
imageheader=url
largeimageheader=url
http://nginxlibrary.com/enable-directory-listing/
http://stackoverflow.com/questions/10663248/how-to-configure-nginx-to-enable-kinda-file-browser-mode
https://www.nginx.com/resources/admin-guide/serving-static-content/
If want a fancier or customized index listing, need to recompile nginx with this module.
https://www.nginx.com/resources/wiki/modules/fancy_index/
lo-fi hack:
http://www.linickx.com/css-styling-nginx-directory-listings
http://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex_format
Directories
I could use it as a simple blog or as a mini CMS.
Possible folders with index.html files:
- /blog (like bradfrost.com) possible URIs:
- /blog/article/this-is-a-test.html
- /blog/note/this-is-a-test.html
- /blog/this-is-a-test.html
- /blog/this-is-a-test
- /blog/2016/03/02/this-is-a-test
- /blog/article/2016/03/02/this-is-a-test
- [X] /2016/03/this-is-a-test
- or do away with all of the directories and use:
- /this-is-a-test
- /contact - could be a post instead of a folder with index.html
- /about - could be a post instead of a folder with index.html
- /wren (an article, detailing the app) - could be a post instead of a folder with index.html
- /tags (index.html contains list of links for design.html, bird.html, etc.) - could be a post instead of a folder with index.html
- /tag (/tag/design.html or /tag/design and /tag/bird.html or /tag/bird) - "/tag" would definitely be a folder with no index.html in order to see a directory listing
Create and Update
- /wren/create
- (will only create in the directory if the file does not exist)
- /wren/update/this-is-a-test
- /wren/archives
- (will create the stream of pages that contain links to the posts)
Perl
From JR's : articles
570 words - 4947 chars
- 3 min read
created on
updated on
- #
source
- versions
Related articles
Installing Wren - Apr 05, 2016
Having search engines index a website - Mar 19, 2016