Reminder that it's #HomebrewWebsiteClub Nottingham tomorrow! I hope to see you there at 1730 for some website stuff! https://events.indieweb.org/2020/09/homebrew-website-club-nottingham-WAiW57QjvHe2
Interesting thought on how having generic tools for publishing lost us some of the fun of hand-crafted homepages.
once you are given a tool that operates effortlessly — but only in a certain way — every choice that deviates from the standard represents a major cost.
I hear that – publishing through WordPress got me lots of IndieWeb goodness, but I feel a bit restricted in other ways sometimes. That said, you definitely should have tooling available for people who can’t/don’t want to hand-roll everything.
Also on:I think my ideal social world will be a mixture of the IndieWeb and Secure Scuttlebutt view of things.
But I hope that just regularly posting and being visible as part of the wider IndieWeb is a useful contribution, too.
Doug has a preference for the Fediverse as an approach to an open web, and says the political philosophy of the IndieWeb is a type of right-libertarianism, because it lacks social equality, and without that it is just a focus on individual freedom.
My gut response is that I disagree of course. But it’s a great jumping off point for some thought and reflection…
Also on:Diversity is absolutely a problem in tech, but IndieWeb folks are, from my experience, absolutely doing what they can to rectify that; bringing in people from all sorts of backgrounds, trying to boost the minority voices, and being supportive of everyone who is trying to make the world, or at least the Internet, a better place.
This is a really good article by Fluffy on the state of the IndieWeb and making it more accessible for wider adoption. Just because we’re not there yet, doesn’t mean that we’re not trying.
Also on:Autonomy Online: A Case For The IndieWeb https://www.smashingmagazine.com/2020/08/autonomy-online-indieweb/
This article at Smashing Magazine is a great introduction to the IndieWeb by Ana Rodrigues. Covers the principles, community, and tech building blocks. Perfectly captures the “why” of owning your own content and blogging.
A wonderful introduction to the indie web—Ana really conveys her sense of excitement!
Roel asked if there was a post detailing how I set up the posting form. There is now...
Firstly, I've slimmed down the form a bit further by adding placeholder values rather than labels and adjusting the spacing. It now takes up less room at the top of the page. I've also added a toggle to show/hide the form with a quick bit of JavaScript and CSS.
So, how does it work?
It's all relatively straightforward.
As mentioned yesterday, the elements are contained within if (current_user_can('edit posts'))
checks. The original form page had everything permanently visible but required a "key" to be entered so that only I could post. With this now being at the top of the home page (unless your default is the Today view) I obviously don't want it visible all the time. Hiding it with the current user check also means I can do away with the key.
The form is just regular HTML with its method set to "post" and no action so that it redirects back to the same page on submit. Inspired by micro.blog, the Title field is only shown if I change the post format to 'Post' rather than 'Status'.
Once submitted and after a quick sanity check I pull the required form values from the standard PHP $_POST
variable and set up my core details:
$title = stripslashes($_POST['title']);
$body = stripslashes($_POST['body']);
$status = $_POST['status'];
$format = $_POST['format'];
$author_id = '346';
$comment_status = 'open';
$ping_status = 'open';
$post_date = gmdate("Y-m-d H:i");
If I am sending a "Like" webmention I enter the URL and the required text is added to the post as per my "Likes and Replies plugin" so I won't go in to those details here. Suffice it to say that this uses a custom field on posting.
With all the information in place I construct an array of 'post data'
$post_data = array(
'post_type' => 'post',
'post_title' => $title,
'post_content' => $body,
'post_status' => $status,
'tax_input' => array('post_format' => $format),
'post_author' => $author_id,
'comment_status' => $comment_status,
'ping_status' => $ping_status,
'post_date_gmt' => $post_date,
);
and then use this at the parameter to insert a new post
$postID = wp_insert_post($post_data);
If the post is a draft I then redirect to the post preview, otherwise I just stay on the Daily page which will then have the shiny new post.
And that's it - there's not much to it and it's simpler this was than with the standalone page.
If I did decide to go the AJAX route things would get considerably more complex but I don't think I really need to. Besides, I've not done anything of that ilk for what seems like an eternity.
Being the strictly plain text/Markdown kinda guy I am I've always resisted the move to the block editor in WordPress (aka Gutenberg) but have been curious about it for a while.
I decided to take a quick look earlier but my theme (a highly customised version of an old, old Automattic offering) isn't compatible with blocks.
I could probably make it compatible but think it wouldn't be worth the effort and I've yet to find a clear and concise guide to building block compatibility into existing themes. I could also move to a newer theme with compatibility built in but would then have to spend far too much time and effort reintroducing all the indieweb elements.
Again, it's just not worth it.
So, as the old saying says, if it ain't broke...
Looking forward to more IndieAuth discussions!