From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 0FwwByOwWGSgLAAASxT56A (envelope-from ) for ; Mon, 08 May 2023 10:17:39 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id aG03ByOwWGRxtwAA9RJhRA (envelope-from ) for ; Mon, 08 May 2023 10:17:39 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A6D9411051 for ; Mon, 8 May 2023 10:17:38 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pvw2y-0003Z1-Ms; Mon, 08 May 2023 04:16:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvw2w-0003V4-BD for emacs-orgmode@gnu.org; Mon, 08 May 2023 04:16:38 -0400 Received: from mail.mojserwer.eu ([195.110.48.8]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pvw2Y-00076F-Ek for emacs-orgmode@gnu.org; Mon, 08 May 2023 04:16:23 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.mojserwer.eu (Postfix) with ESMTP id BE8DEA08A18 for ; Mon, 8 May 2023 10:16:08 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mail.mojserwer.eu Received: from mail.mojserwer.eu ([127.0.0.1]) by localhost (mail.mojserwer.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rXSyHo6FM4sE for ; Mon, 8 May 2023 10:15:57 +0200 (CEST) Received: from localhost (apn-37-248-138-23.dynamic.gprs.plus.pl [37.248.138.23]) by mail.mojserwer.eu (Postfix) with ESMTPSA id 903A91B910A5 for ; Mon, 8 May 2023 10:15:56 +0200 (CEST) User-agent: mu4e 1.1.0; emacs 30.0.50 From: Marcin Borkowski To: Org-Mode mailing list Subject: An Org-mode-based blogging engine? Date: Mon, 08 May 2023 10:15:52 +0200 Message-ID: <877ctj1bnr.fsf@mbork.pl> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=195.110.48.8; envelope-from=mbork@mbork.pl; helo=mail.mojserwer.eu X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Seal: i=1; s=key1; d=yhetil.org; t=1683533858; a=rsa-sha256; cv=none; b=a4FgcG4yoJqj2IurRp1J+e3EGEe4QanDC0kBHdRGwblJE7CtFlI/erkE5o/SGc/Krb18zY mTY0tuB5d3InBqeR5cNodBpOM+rBEsLEV3dkFWyr25OmSOxR/I5dbPvWApxihE58Fqp3do mGthu2iJqQYpsv13VcJz2BGWrnU3j9m+xrl/nPzxgAW+IwcSfGsDwU8C62kdTDaj8IY2E2 MuIPZ33ydnysHxKC2jqfzAy/QaR4bodrITCfaGr/uYqJg7QTHcx8nYRog+Z/ciKo8YqjQC vGs+5/LRMvpMo6EkzvYxPOJaaJrmp60g0ZnHP0vnRx8nuhUPwl9q8m9hrvtKgw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1683533858; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=p2hAOit9CNyHyfYfGpGIKgzEDRyTVTxWBhDET3Co3Zc=; b=tYtF1fFJRCmSeyKgrfKBj6tuRtSfGVdm6P+4tXkDyhAxZbpNwn9E33m4cJrg5+DZxfnNpn ntbnIZ3LlKKwhLjnRF/WNvrV0ssrER9TKyYD9b7Zcd0c21Gp7QaLb4Vi2rmAncBBJADRxc 1ThI8vpVTXF6LYaiDgYAFCH+18quYog5gZe47l71gYbzL7tHqvOLkRDFHjyaXY74U6l9pK ptwpVQ25j5a0g3dbr03BfkAXpL3NEfvrxYgXetWHYLY8lA+oPGxZYp2TvK1pwNHWcAyQDw n9mSDtb8iXRkDnMn/pvWONJ0C/ox9NN48Ehi0KbKwkkJmFNedBPwNhnB/n35wA== X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -0.29 X-Spam-Score: -0.29 X-Migadu-Queue-Id: A6D9411051 X-TUID: pdvmdFN9DFkf Hello fellow Orgers, I'm preparing to set up a new blog, and I'd like to have a fully Org-mode-based workflow. Ideally, I'd like to be able to do everything - including publishing the posts - from within Emacs. I know about things like "Org publish" and ox-hugo, though I never used them - and there are probably others - but I'm asking specifically about two things: A. other people's experiences with similar workflows, and B. tool/workflow recommendations. Here are my requirements, in no particular order. 1. I want the blog to be fully static HTML+CSS, with a tiny sprinkling of (my custom) JS. 2. I want to publish a whole set of HTML files from a single Org mode file. I will need to preserve internal links (so that I can link to another headline and the result will be one post linking to another), and of course I will need external links. The blog will live on some server I will have ssh access to, so for publishing it should be enough to scp some files somewhere. 3. I want to be able to fully customize the HTML produced. I want it to be as simple as possible (but see below). I will also need it to be put in some kind of a template, so that every page will contain things like a header, footer and a sidebar. 4. I am going, though, to need some custom "blocks" - in HTML parlance,
s and possibly also s. I want to be able to mark them up somehow in my Org source and get
and . Reusing existing markup (like _underline_, which I'm not going to use) is not enough - I will need more than a dozen of those custom classes. Any thought, suggestions, recommendations? -- Marcin Borkowski http://mbork.pl