[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Best way to create blog for company web site with Orgmode
From: |
Alan Schmitt |
Subject: |
Re: [O] Best way to create blog for company web site with Orgmode |
Date: |
Thu, 10 Mar 2016 08:37:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin) |
On 2016-03-09 20:18, Rainer Hansen <address@hidden> writes:
> Sometimes I should read more carefully what I write. I want to use a
> static web site generator! So Wordpress is no option for me.
I maintain several very basic web sites in org. *Basic* is the keyword
here. Here is an example: http://ajacs.inria.fr/
Note that I suck at design and CSS, but I think this is orthogonal to
the matter at hand ;)
Each page is its own org file, and there is an additional file for the
left-hand bar.
Here is what index.org starts with:
#+INCLUDE: "common.org"
* body
:PROPERTIES:
:CUSTOM_ID: mainbody
:HTML_CONTAINER_CLASS: container-mainbody
:END:
** Welcome to the AJACS web site
Content goes here
The common.org is like this:
#+TITLE: AJACS
#+OPTIONS: toc:nil num:nil
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="/style.css" />
* sidebar
:PROPERTIES:
:CUSTOM_ID: sidebar
:HTML_CONTAINER_CLASS: container-sidebar
:END:
- [[http://ajacs.inria.fr/][Home]]
- [[./members.org][Members]]
- [[./meetings.org][Meetings]]
#+begin_center
#+ATTR_HTML: :width 100
[[./files/ANR.png]]\\
ANR-14-CE28-0008
#+end_center
The layout is done using CSS. Here is an excerpt:
#+begin_src css
.container-mainbody {
margin-left: 200px;
padding: 10px;
}
.container-sidebar {
float: left;
width: 200px;
padding-top: 12px;
}
#postamble {
clear: both;
}
#mainbody, #sidebar {
display: none;
}
#text-sidebar li a {
color: rgb(54, 117, 148);
text-decoration: none;
}
#address {
display: none;
}
#text-address {
color: rgb(54, 117, 148);
text-align: center;
}
#mainheading {
text-align: center;
}
.container-sidebar ul {
list-style: none;
}
#+end_src
Finally this is all exported using a very simple Makefile
#+begin_src make
EMACS=emacs
BATCH_EMACS=$(EMACS) --batch -Q -l init.el
PUB_FILES=index.html meetings.html internships/proxies.html style.css
%.html: %.org common.org
$(BATCH_EMACS) $*.org -f org-html-export-to-html
all: $(PUB_FILES)
publish: $(PUB_FILES)
rsync -azR --no-p --rsh=ssh -O $^ gf:/home/groups/ajacs/htdocs/
.PHONY: all publish
#+end-src
Oh, I need to show the init.el as well for the export:
#+begin_src emacs-lisp
(add-to-list 'load-path (file-name-directory load-file-name))
(require 'local_settings)
(require 'org)
(require 'ox-html)
(setq org-html-postamble nil)
#+end_src
The local-settings.el file allows us to collaborate using different kind
of installations for org.
#+begin_src emacs-lisp
(setq emacsd-dir "/Users/schmitta/.emacs.d/")
;; (add-to-list 'load-path (concat emacsd-dir "org/emacs/site-lisp/org"))
(setq package-user-dir (concat emacsd-dir "elpa"))
(package-initialize)
(provide 'local_settings)
#+end_src
Best,
Alan
--
OpenPGP Key ID : 040D0A3B4ED2E5C7
Monthly Athmospheric CO₂ (2016-02, Mauna Loa Obs.): 404.02
signature.asc
Description: PGP signature