An Org Mode based blog engine

root

What is Tapachula

Tapachula is a lightweight content management engine using org mode files to generate websites.

Org mode files are translated at runtime to HTML pages using a modified verson of the org.js parser. All org mode pages reside in the "org" directory.

How to get Tapachula

The current version of Tapachula can be downloaded via the following URL: https://hub.darcs.net/stefan/tapachula

The darcs repository can be checked out with the following command:

$ darcs clone stefan@hub.darcs.net:tapachula

How to install Tapachula

Prerequisites

To compile Tapachula out of the source code, you need the following tools:

  • Java Runtime Environment (>= 1.8.0)
  • jBallerina 1.1.4
  • ImageMagick (>=7.0.10-28)

Compile

Inside the root directory of Tapachula create a ballerina.conf file with references to your project folders. It is highly recommended, to NOT put your website files into the Tapachula repository structure, but to use a separate directory.

[content]
org_files="../my_website/org"
images="../my_website/images"
javascripts="../my_website/javascripts"
views="../my_website/views"
stylesheets="../my_website/stylesheets"

Create a symbolic link to the ./tapachula/bin directory to your project folder, to have access to the Tapachula CLI.

cd my_website
ln -s ~/src/tapachula/bin bin

If your have set everything up, you can start the web server as follows:

ballerina run --experimental tapachula.bal

You can now open a web browser and access Tapachula by the following URL: http://localhost:4000.

Encrypted org files

You can provide encrypted org files, that are password protected. To encrypt org files, you need Node.js 0.12.7 or higher. Go to your Tapachula directory and install the needed npm packages like this:

npm install

After this, set your Tapachula root path to the environment Variable $TAPACHULA_ROOT - ideally in a configuration file like .profile, .bashrc or config.fish

export TAPACHULA_ROOT=~/src/tapachula

To encrypt a org file, copy it into the ./orgx folder inside your project and execute the encrypt script:

./bin/encrypt ./orgx/my_secret_notes.org

You will be prompted to enter a password. The encrypted org file will be stored as ./orgx/my_secret_notes.orgx and can be accessed with a web browser by the url http://localhost:4000/#/orgx/my_secred_notes.orgx. To view the file, you will be prompted to enter your password again. It is highly recommended to store the unencrypted source files outside of the orgx folder.

pass - password manager

You can use the UNIX password manager pass to store your master password for your encrypted org files. First you need to define a pass key for your orgx files like this:

pass insert Tapachula/orgx
Enter password for Tapachula/orgx: 
Retype password for Tapachula/orgx: 

Then your insert the pass key into the ballerina.conf file in the Tapachula root path:

[orgx]
pass_key="Tor/n8safari/orgx"

The next time you encrypt a file you will not be prompted to enter a password, because the password will be read directly from the password store.

Remembering passwords

You can configure Tapachula to remember passwords so that you don't need to enter them every time, you open an encrypted org file. For that, you can set the storeOrgxPasswords in your ./public/javascripts/config.js file to true:

window.TapachulaConfig = {
  storeOrgxPasswords: true
}

After that, Tapachula will save your password once you have successfully entered them for the first time. You will not be prompted to enter them again, if you open a org file, until you delete your browser cache or you change the org file's password. Nevertheless storing password in your browser's local storage may be dangerous, as cross site scripting attacks may reveal them to unauthorised people. Please be careful!

License

Tapachula is released into the public domain.