Open oubiwann opened 4 years ago
So, after some deep exploration of Zola, I don't think I can easily do what I want to do with things as they are. This essentially boils down to how taxonomies are handled (e.g., "tags", "categories", "authors", etc.): the problem being that these are all processed at the top-level directory. For us, the top-level directory is the LFE site itself; the blog will sit under that. We want /blog/tags
etc. not /tags
.
Two possible ways forward are:
Keep blog content where it currently is, published to the lfe/blog
repo. The "builder" code for Zola could be anywhere (in the same repo, or in the site repo) ... but it would be nice to keep a unified set of stylings in one location ... maybe even a repo of its own?
Move all the content -- builder and actual blog -- out of the current lfe/blog
repo and into the lfe/lfe.github.io
repo, moving the current code in the builder branch into a "site" subdir, and creating a "blog" subdir for the blog builder code. A new top-level Makefile
could be created that would build both and publish them optionally together (at the same time) or separately, as needed.
I've been pondering this for about a day, and still haven't landed on a decision. Will continue to weigh and experiment ...
I want to rule out the approach of separate sass
, site
and blog
repos ... but:
lfe/lfe.github.io
, I still might be creating a git submodule for the lfe/blog
repo ...So, there will probably be a git submodule setup, regardless. Also, if any content or builder code ends up in two or more separate repos, there will definitely be a main repo to consolidate these resources and reduce maintenance overhead and increase the chance of contributions.
Additionally, in Zola, we can't exactly duplicate the same URLs as those produced by the existing blog, though I did get them close. Witness:
Current blog:
Possible new URLs:
To get Zola to be that close took some hacking / metadata duplication that will have to be scripted with Makefile
targets. But his does mean that we'll need to set up some redirects that point from the old blog.lfe.io/site
URLs to whatever the new base URL will be.
These options show there's not really a clear winner in approach, thus my delay in making a decision.
Let's see what some competing solutions might look like:
All building done in one repo (lfe/lfe.github.io
)
site
site
would have it's own Zola build/config/etc setupblog
dir which would also have its own Zola build/config/etcmake
target that copies site
static content into blog
? blog
use the generated sass from site
(as a static resource)blog
portion with Zola's local HTTP server ... I mean, the base URL will be 127.0.0.1/blog/ ... so how will references to /some/thing.css
be handled by the local HTTP server?build
dir that points to the master
branch of lfe/lfe.github.io
site/build/*
into build/
blog/build
as build/blog
build
to the master branch of github, publishing the web contentblog
repo with HTML redirect files that point to the new locationKeep lfe.io and blog.lfe.io content and builder code separate. no git submodules
Keep lfe.io and blog.lfe.io content and builder code separate, but share commonalities with submodules
sass
static
templates
syntaxes
Move all content to lfe.io, use symlinks for shared resources (variation on Approach 1)
site
and blog
buildsMove all build code to lfe.io, use symlinks for shared resources, publish to separate repos (variation on Approach 1)
site
and blog
buildsmaster
on lfe/lfe.github.io
and master
on lfe/blog
blog
repo with HTML redirect files that point to the new locations for the contentI think I'm leaning toward 4 or 5.
The code that I'm working on right now can be adapted to either of these. Probably 4 would be easiest to start with, and if I land on 5 I can always to the little extra work to adapt 4 code to that needed for 5.
Staging is now viewable here:
Don't have the tooling bend us into pretzels; use different tooling:
This will:
Blocked by #104
Fixes https://github.com/lfe/blog/issues/29
Branch epic/105/add-blog
Tasks:
/blog
Cleanup tasks:
Old tasks:
lfe/site-staging
)