Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/milouse/fronde

A static website generator for Emacs Org mode (Mirror)
https://github.com/milouse/fronde

emacs org-mode ruby static-site-generator

Last synced: about 2 months ago
JSON representation

A static website generator for Emacs Org mode (Mirror)

Awesome Lists containing this project

README

        

#+title: Fronde
#+author: Étienne Deparis
#+language: en
#+keywords: static website generator, ruby, gem, org mode, emacs
#+description: Fronde is a ruby gem, which helps you to manage your
#+description: static website generated with Org mode

* What's fronde for?

#+attr_html: :style width:150px;float:right;margin-top:-4.5em;margin-left:2em;
[[file:./tigre.png]]

Fronde is an opinionated static website generator for [[https://orgmode.org][Org]]. It helps you
convert Org mode files into websites, giving you full control over
the publication process.

* Features

- Inherits all [[https://orgmode.org][Org mode features]] (tables, syntax highlighting,
code blocks evaluation, multiple languages support…)
- Does not require any emacs lisp knowledge
- Does not require any server-side code, nor databases, only a simple
http server like apache, nginx, lighttpd, hiawatha…
- Allows fine customization of generated html files
- Allows multiple sources for your Org file and lets you organize them as
you wish in the destination folder
- Can use different themes for different sources
- Supports tags and [[https://en.wikipedia.org/wiki/Atom_(Web_standard)][ATOM feeds]]

* Quick install

Fronde is a [[https://rubygems.org/][Ruby gem]]. You need a working Ruby environment to use it. We
recommend that you use [[https://rvm.io][RVM]] and a specific gemset. However fronde works
with a global ruby installation too.

#+caption: Installation procedure with RVM
#+begin_src shell
rvm get latest
rvm install ruby-3.2.2
rvm use ruby-3.2.2@fronde --create
gem install fronde
#+end_src

Now you're ready to create your first fronde website.

#+begin_src shell
mkdir mywebite
cd mywebsite
fronde init -t "My first fronde website"
fronde build
fronde preview
#+end_src

* Announcements

** Nov. 2023 - v0.4 release

The version 0.4 of fronde is made available for all. This new release
brings a lot of stability improvements and inner refactoring. Even if
the visible changes list might look a bit poor, this release is a big
step forward and will help a lot to develop new features in the
future. Some parts of the software were poorly designed and we worked
hard to improve the coding.

#+begin_noteblock
After the update, you will need to update your installations and force a
full publication of your websites (because the way templates are
inserted inside published files changed). Actually, this will become
the new standard routine after any fronde upgrade.

#+begin_src shell
fronde update
fronde build -f
#+end_src
#+end_noteblock

Here is the list of the most visible changes:

- Improve Gemini support
- Translate all console messages
- Introduce a new onboarding command (~new~ instead of ~init~) to follow
other static website generator habbits
- Rework tags and Atom feeds publication
+ Output full article body in Atom feeds
+ Announce each Atom feed in its related tag page
+ Move tag pages and Atom feeds /inside/ the related blog source. They
are not shared anymore but specific to their source.

#+begin_warningblock
As tags and feeds are now published under their related source public
path and no more directly at the root of the publication folder, you
might want to setup some redirections in your web server configuration.

For the following example configuration:

#+begin_src yaml
---
sources:
- path: src/news
is_blog: true
#+end_src

Feeds and tags will now be published under ~public_html/news/feeds/~ and
~/public_html/news/tags/~ instead of ~public_html/feeds/~ and
~public_html/tags/~. Thus you might want to setup some redirections like
the following for nginx:

#+begin_src
location ~ ^/tags/(?.*)$ {
return 301 /news/tags/$slug;
}
location ~ ^/feeds/(?.*)$ {
return 301 /news/feeds/$slug;
}
#+end_src
#+end_warningblock

* Contributing

#+html: Contributor Covenant

Fronde is proudly following the [[./CODE_OF_CONDUCT.org][Contributor Covenant Code of Conduct]].

** Translations

You can fetch the yaml files directly from the [[./locales][source code tree]] and
send your changes as a pull request (see bellow) or by email, as you
prefer.

** Code

The canonical repository is located at [[https://git.umaneti.net/fronde]].
A mirror also exists on [[https://framagit.org/milouse/fronde][Framagit]] and [[https://github.com/milouse/chwall][Github]].

Merge requests and issues are accepted both on framagit and github, or
by mail to the main author.

** Support

#+html: Support using Liberapay
#+html: Support using Paypal

You can help me a lot by giving me some tip, either through [[https://liberapay.com/milouse][Liberapay]] or
[[https://paypal.me/milouse][Paypal]]. Thank you very much!

* Going further

Please refer to the [[./DOCUMENTATION.org][documentation]].