emacs-orgmode
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]