cl-ownpress icon indicating copy to clipboard operation
cl-ownpress copied to clipboard

Ideas and ways of development

Open MorphicResonance opened this issue 2 years ago • 12 comments

Unfortunately, there is currently no serious site generator based on org mode. Most don't provide anything very different from the standard org-publish. But they carry all the same shortcomings that do not allow productive publishing of web pages that meet modern standards. I'm talking about html templates, schema.org markup and required meta tags. It looks like developers are anything but web. They didn't set the task that the published site (as a result) should be convenient and understandable for both visitors and search engines. Why then do we need these tricks with special static generators when your task is simply to publish a few of boring html pages? use your simplest project via org-publish.

Many site generators are characterized by the following shortcomings that hinder development (and, by the way, suppress the development of the generators themselves from the very beginning).

  • themeing. the need to customize themes, macros inside templates. An unnecessary layer of complication (hugo, zola, the vast majority).
  • A limited set of template languages ​​or (oh my god) inventing your own. In addition to an over-engineered set of related templates, some manage to invent their own language for templates (hello weblorg).
  • support is not written in Lisp. => Most likely you will have to delve into the syntax of python, javascript, rust. Incredible brake in the ability to modify anything. Look for freelancers, programmers, if you want to change something, redo it. The most interesting org-tailored lazyblorg is written in python.
  • The generator solves basic tasks well, but the plugins/filters for the generator need to be written in a language different from the language in which the generator is written (for the soupault generator, you need to write filters in lua).
  • some generators dictate the structure of the future site, urls, based on their code. What folders and where will be located, where you need to put the content, in /blog/ in /content/.

The most interesting, from my point of view, generators that support org..

  • You can look at the ideas of a self-contained soupault (on ocalm) , which does not work with themes, but focuses on changing the html tree itself. You can modify and add to the original template by adding and changing html tags. Unique approach. Accepts all formats using an external converters, but you need to configure the conversion process from org-mode to html. And write filters in lua for pandoc.
  • lazyblog tuned for org-mode. It parses posts from .org files with a subtree tagged with a specific tag. Uses simple templates. But is written in python. There are restrictions on the site structure and templates. Doesn't work under windows.

To make a .org site up to date, now you have to fiddle with a well-known (and usually bloated) site generator, which will:

  • ensure compliance with standards. Out of the box or with plugins.
  • be able to get files to the converter/plugin to send them to the generator. I conclude that then it makes sense to dive into a generator written in javascript and jump to jamstack bandwagon. At least the need to study one more language will expand the possibilities of application. Since js is the language of the browser anyway.

If you create content in org, emacs and want to make a working site that receives visitors and performs your goals, then now you have to deal with the following paranoia: fine-tuning org (elisp)-> the language in which the generator is written + perhaps a converter (pandoc, encoda) from .org to introductory markup for generator (usually markdown) -> learning the language and rules when modifying themes and templates (pug, mustache, etc.)-> modifying html->modifying and optimizing css.

Adding to this we can add the need to connect javascript inserts for interactive elements (forms, surveys) and the need automate these modifications by page type.. Is it possible to complicate the process even more, otherwise it’s not fun enough?

Right now I have this wild publishing sequence:

  1. python the script looks for subtrees in org. files marked with a special tag. Folds them into separate .org files.
  2. pandoc converter with lua filter converts html files.
  3. soupault generator connects everything to the site. Schema.org microdata issue not resolved. Flaws outweighed the benefits. It's not worth continuing.

Another 'simpler' scenario is being considered: python script posts from subtrees org file -> astro generator (written in js) with pandoc plugin converts org and generates html. At first glance it has the necessary plugins.

A serious generator for org should be in Lisp and integrated into emacs. It should not dictate the structure of the future site, nor the introductory files as 1 file per input to 1 page of output. Have the ability to publish posts from subtrees from within files has many advantages.

When the article becomes a tightly connected part of the informational project management process in emacs, and not as a separate file that needs to be specially prepared. Get away from levels of sophistication such as your own templating language and themes.

At the first stage, should not engage in expanding of generator's features , but to achieve such a result of the whole process as the publication a real working site that meets the standards in one method. Then expand. See the ideas embodied in the most interesting generators.

The most important thing that potentially gives emacs and org is integrity workflows => increased productivity. Study and immersion in development of such generator is a deeper development of emacs at the same time. What is completely worth it. The publication of posts becomes closely associated with actions preceding their appearance, todo organization and info management into subtrees.

Real problems solved by individual plugins and add-ons in other generators are partially already resolved in emacs. At the same time, emacs is much larger and is used for a much wider range of tasks than any of these generators. I don't know not one of the generators or cms, which would have a practically operating system (emacs) somehow in the 'back-end' .

If your project sets itself such goals, then it will be something special. I will be the first who is ready to support such a project. What it takes to try cl-ownpress and will it work under windows?

MorphicResonance avatar Nov 01 '22 21:11 MorphicResonance