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:tapachulaHow 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 binIf your have set everything up, you can start the web server as follows:
ballerina run --experimental tapachula.balYou 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 installAfter 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/tapachulaTo encrypt a org file, copy it into the ./orgx folder inside your project and execute the encrypt script:
./bin/encrypt ./orgx/my_secret_notes.orgYou 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.