X-Git-Url: https://plomlompom.com/repos/?p=redo-blog;a=blobdiff_plain;f=README.md;h=c1d9f4b6c751e3d3d92b7864830328fafab0043f;hp=1aab3f91f4f0c029b0c7588f3bd660a9b3987966;hb=7fced3bc8411add4f4d3c6b70ab4a6f01e30277a;hpb=0994991d0bd757bd8536586f48fed4da02206209 diff --git a/README.md b/README.md index 1aab3f9..c1d9f4b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ redo-blog ========= -small blog system using the redo build system +small blog system using the redo build system, with blog article files written +in (pandoc) Markdown or ReStructured Text. dependencies ------------ @@ -27,14 +28,26 @@ You can then enter the directory and run redo there. This will generate article .html files from all .md and .rst files, plus a ./index.html, and a ./feed.xml. These files will be linked to symbolically in a directory ./public/. +If you provide or edit a file suffixed .links to basename of an article file, +these links will be added as article-specific linkbacks to the .html file and +the feed entry. + +Just like the .links files, article-specific files containing captcha data are +created and can be edited in ./captchas/. The first line of such a file is meant +as a captcha, and the second line as its description, which may be inserted via +templating into the article HTML file. + Some metadata files will also be generated below ./metadata/: For each article, -there will be generated a .uuid and a .intermediate file; furthermore, files for -data used in ./feed.xml and ./index.html will be built there and can be edited -to customize the blog – namely the files url, author, uuid, title, index.tmpl, -index_snippet.tmpl, article.tmpl. +there will be generated a .automatic_metadata (to contain an article's UUID, +checksum, and creation/modification dates) and a .intermediate file (to contain +pandoc-formatted article content like title and body); furthermore, files for +data used in ./feed.xml and ./index.html will, if non-existant, be built there +and can be edited to customize the blog – namely the files url, author, title, +index.tmpl, index_snippet.tmpl, article.tmpl, linkback.tmpl. A blog-specific +UUID and creation date is stored in ./metadata/automatic_metadata -recipe to use server-side with git ----------------------------------- +recipe to remotely manage a redo blog with git +---------------------------------------------- On your server, install the dependencies listed above. Then set up a repository for your blog files. Let's assume we want it to sit in our home directory and be @@ -45,10 +58,22 @@ called `blog`: git init --bare blog.git cat << EOF > blog.git/hooks/post-update #!/bin/sh - BLOGDIR=~/blog - GIT_WORK_TREE=\$BLOGDIR git checkout -f - cd \$BLOGDIR + blog_dir=~/blog + export GIT_DIR=\$(pwd) + export GIT_WORK_TREE="\$blog_dir" + git checkout -f + cd "\$GIT_WORK_TREE" redo + git add metadata/author metadata/url metadata/title metadata/*.tmpl metadata/automatic_metadata + count=\$(ls -1 metadata/*.automatic_metadata 2>/dev/null | wc -l) + if [ "\$count" != 0 ]; then + git add metadata/*.automatic_metadata + fi + status=\$(git status -s) + n_updates=\$(printf "\$status" | grep -vE '^\?\?' | wc -l) + if [ "\$n_updates" -gt 0 ]; then + git commit -a -m 'Update metadata' + fi EOF chmod a+x blog.git/hooks/post-update @@ -64,7 +89,8 @@ public web content to sit: ln -s ~/blog/public /var/www/html/blog -Client-side, do this (obviously, replace server and username): +Client-side, do this (you obviously need to customize this code; at least +replace the username `user` and the server name `example.org`): cd ~ git init blog @@ -76,11 +102,20 @@ Client-side, do this (obviously, replace server and username): git commit -m 'set up blog metadata' git push origin master -bugs ----- +If successful, the git hook will furthermore commit some ~/blog/metadata/ files +generated by redo, that can be pulled into the client-side local repository: + + git pull origin master + +bugs and peculiarities +---------------------- Don't create a index.rst or index.md in the redo-managed directory, that will break things. -Running redo without a single blog entry source file (.md or .rst) in the -directory will also break things. +The article title is derived in .md files from a first line prefixed with `%`, +while all other headings are treated as sub-headings. In .rst files, the title +is derived from a heading that must be at the top of the document, and be of an +adornment style (such as underlining with `=`) used only once in it. + +Symbolic links in public/ to removed article pages are currently not removed.