diff options
author | Arun Isaac | 2023-08-12 20:11:03 +0100 |
---|---|---|
committer | Arun Isaac | 2023-08-12 20:13:06 +0100 |
commit | cf38217c1ae9644a58bb0ebf5d4e14bbc4739ce2 (patch) | |
tree | d8a7dba9cc9ed1348a367ee3bed4007fa6964ecd /guix/forge | |
parent | 275a68f8ab6df00181555949b9284f8d43f8039c (diff) | |
download | guix-forge-cf38217c1ae9644a58bb0ebf5d4e14bbc4739ce2.tar.gz guix-forge-cf38217c1ae9644a58bb0ebf5d4e14bbc4739ce2.tar.lz guix-forge-cf38217c1ae9644a58bb0ebf5d4e14bbc4739ce2.zip |
cgit: Render org mode README files.
* guix/forge/cgit.scm: Import emacs-minimal from (gnu packages emacs).
(%cgit-readme): Add README.org.
(about-filter-gexp): Render org mode README files.
* guix/forge/org2html.el: New file.
* doc/forge.skb (Services)[Git web viewers]{cgit service}: Document
support for org mode README files.
Diffstat (limited to 'guix/forge')
-rw-r--r-- | guix/forge/cgit.scm | 7 | ||||
-rw-r--r-- | guix/forge/org2html.el | 35 |
2 files changed, 41 insertions, 1 deletions
diff --git a/guix/forge/cgit.scm b/guix/forge/cgit.scm index 6ac7589..f652825 100644 --- a/guix/forge/cgit.scm +++ b/guix/forge/cgit.scm @@ -21,6 +21,7 @@ #:use-module (forge fcgiwrap) #:use-module (forge nginx) #:use-module (forge socket) + #:use-module ((gnu packages emacs) #:select (emacs-minimal)) #:use-module ((gnu packages mail) #:select (mailcap)) #:use-module ((gnu packages version-control) #:select (cgit git-minimal)) @@ -55,7 +56,7 @@ (define %cgit-readme (append (list "README.md" "README.markdown" "README.mdown" "README.mkd" - "README.rst") + "README.org" "README.rst") ;; man page READMEs (map (lambda (n) (string-append "README." (number->string n))) @@ -145,6 +146,10 @@ configured in @var{config}." (string-suffix-ci? ".mkd" about-file)) (invoke #$(file-append cgit "/lib/cgit/filters/html-converters/md2html") about-file)) + ((string-suffix-ci? ".org" about-file) + (invoke #$(file-append emacs-minimal "/bin/emacs") + "--script" + #$(local-file "org2html.el"))) ((string-suffix-ci? ".rst" about-file) (invoke #$(file-append cgit "/lib/cgit/filters/html-converters/rst2html") about-file)) diff --git a/guix/forge/org2html.el b/guix/forge/org2html.el new file mode 100644 index 0000000..b311331 --- /dev/null +++ b/guix/forge/org2html.el @@ -0,0 +1,35 @@ +;;; guix-forge --- Guix software forge meta-service +;;; Copyright © 2023 Arun Isaac <arunisaac@systemreboot.net> +;;; +;;; This file is part of guix-forge. +;;; +;;; guix-forge is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published +;;; by the Free Software Foundation, either version 3 of the License, +;;; or (at your option) any later version. +;;; +;;; guix-forge is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with guix-forge. If not, see +;;; <https://www.gnu.org/licenses/>. + +(require 'ox-html) + +(setq org-export-with-section-numbers nil + org-export-with-toc nil) + +(defun pipe-stdin-into-current-buffer () + (when-let (line (ignore-errors + (read-from-minibuffer ""))) + (insert line "\n") + (pipe-stdin-into-current-buffer))) + +;; TODO: Syntax highlight src code blocks using emacs-htmlize. +(with-temp-buffer + (pipe-stdin-into-current-buffer) + (org-html-export-as-html nil nil nil t) + (princ (buffer-string))) |