Skip to content
a literate programming tool to write clojure in org mode
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo
src/literate_clojure
test/literate_clojure
.gitignore
.travis.yml
README.org
project.clj

README.org

https://img.shields.io/clojars/v/literate-clojure.svg https://travis-ci.com/jingtaozf/literate-clojure.svg?branch=master

Table of Contents

Introduction

This is a clojure library designed to extend the clojure syntax so it can load org file as source file directly.

The implementation details of literate-clojure is in file core.org (pdf version).

This library is provided to make litrate programming more happy in clojure,without pain of tangling code from org files.

This library contains the following files:

Tutorial

install polymode in emacs

It’s better to edit the org file with polymode,which will make code block use its native file mode. The following elisp scripts in .emacs will install it.

(use-package poly-org
    :ensure t)

Add dependence in project.clj

To use this library, please add dependence in your project.clj:

:dependencies [[literate-clojure "0.1.1"]]

Load org file

Then in one of your source file,add the following codes to install the org syntax for clojure reader:

(require 'literate-clojure.core)
(literate-clojure.core/install-org-dispatcher)
(load-file "src/demo/core.org")

Now you can use core.org to write your documentation and source codes together, and any codes in core.org will be loaded automatically.

The special requirement for org files

The org files must start with a sharp and a space, for example I usually add the following line to the beginning of an org file:

# -*- encoding:utf-8 Mode: POLY-ORG;  -*- --- 

It will use Emacs library poly-org-mode which is a lightweight library to support multiple major mode in one file, so you can edit clojure code natively in an org file.

a new code block header argument load

Please have a look of the section handle org syntax in ./src/literate_clojure/core.org.

License

Copyright © 2018 Jingtao Xu

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.

You can’t perform that action at this time.