summaryrefslogtreecommitdiffstats
path: root/content/posts
diff options
context:
space:
mode:
authorDante Catalfamo2021-01-14 00:54:00 -0500
committerDante Catalfamo2021-01-14 00:54:00 -0500
commit3990b3c47b83cc98133af86457ab0c64ace22bca (patch)
tree938268e7fc6f5fcdba5cba10ad84ba070303260e /content/posts
parent682ec6d52bc3c2019c5de8359e530cdfa71d33fe (diff)
downloadblog-3990b3c47b83cc98133af86457ab0c64ace22bca.tar.gz
blog-3990b3c47b83cc98133af86457ab0c64ace22bca.tar.bz2
blog-3990b3c47b83cc98133af86457ab0c64ace22bca.zip
agenda-html: mostly grammar
Diffstat (limited to 'content/posts')
-rw-r--r--content/posts/WIP-org-agenda-online/index.org51
1 files changed, 27 insertions, 24 deletions
diff --git a/content/posts/WIP-org-agenda-online/index.org b/content/posts/WIP-org-agenda-online/index.org
index b571517..f2cfdbc 100644
--- a/content/posts/WIP-org-agenda-online/index.org
+++ b/content/posts/WIP-org-agenda-online/index.org
@@ -13,38 +13,39 @@ work. A lot of this workflow centres around the [[https://orgmode.org/features.h
compiles all the current and upcoming tasks and due dates from several
files into a single view.
-The only gripe I have with it, is that I have to be within Emacs to
-use it. This isn't a deal breaker, but there were often times when I
-want to check my agenda where I wasn't already in Emacs. In these
-cases I had to open Emacs and pull up the agenda. This can feel a
-little clunky for something I may check a dozen times every day.
+The only gripe I had with it was that I had to be within Emacs to use
+it. This wasn't a deal breaker, but there were often times when I
+wanted to check my agenda, but I wasn't already in Emacs. In these
+cases I had to open Emacs and pull up the agenda. This felt a little
+clunky for something I may check a dozen times every day.
The solution I came up with was a way to automatically generate and
-export an HTML version of my agenda every 15 minutes on my server, in
-a place where I can see it on all my devices. They are also password
-protected so that strangers on the internet can't see my agenda.
+export an HTML version of my agenda every 15 minutes on my server.
+That way I can serve it over HTTP and access it on all my devices.
+They are also password protected so that strangers on the internet
+can't see my agenda.
The heart of this system is a small set of scripts I wrote called
[[https://github.com/dantecatalfamo/agenda-html][agenda-html]], which let you export a fully fontified view of the org
agenda to HTML without having to open Emacs in a terminal. This means
-it can be easily scripted. For convenience it also has an option to
-export a text-only version.
+it can be easily scripted.
My org mode files are synchronized between my machines using a
self-hosted [[https://nextcloud.com/][Nextcloud]] instance. This means that I have access to all
my up to date org documents on a remote machine, which will come in
handy very soon.
-To start setting up my automatically updating agenda, I first clone
-[[https://github.com/dantecatalfamo/agenda-html][agenda-html]] onto the server which hosts my Nextcloud.
+To start setting things up, I first cloned [[https://github.com/dantecatalfamo/agenda-html][agenda-html]] onto the server
+which hosts my Nextcloud.
-I set the input files to the location of the org files I want included
-inside of the Nextcloud storage directory. This would typically be
-somewhere like =/var/www/nextcloud/data/<user>/files/Org=. I set the
-output for HTML and text to be =/var/www/html/agenda/agenda.html= and
-=/var/www/html/agenda/agenda.txt= respectively.
+I edited =config.el= and set the location of the org files I wanted
+included in the agenda. These files are located inside of the
+Nextcloud storage directory. This would typically be somewhere like
+=/var/www/nextcloud/data/<user>/files/Org=. I then set the output for
+HTML to be =/var/www/html/agenda/agenda.html=, so that it is served by
+=nginx=.
-I then put the =/agenda/= path behind basic auth in =nginx=.
+To protect the =/agenda= path, I then put it behind basic auth.
To do this I downloaded =apache2-utils= for the =htpasswd= tool and
used it to generate an =htpasswd= file at =/etc/nginx/htpasswd=.
@@ -54,9 +55,9 @@ htpasswd -c /etc/nginx/htpasswd <user>
#+end_src
I then opened the site's nginx config file in my text editor and
-added this line.
+added these lines.
-#+begin_src conf
+#+begin_src js
location /agenda {
auth_basic "Agenda Files";
auth_basic_user_file /etc/nginx/htpasswd;
@@ -65,13 +66,15 @@ location /agenda {
Then I reloaded =nginx= using the command =nginx -s reload=.
-Finally I edit root's crontab file to run =agenda-html.sh= every 15
+Finally I edited root's crontab to run =agenda-html.sh= every 15
minutes, using this line.
-#+begin_src conf
+#+begin_src
*/15 * * * * /root/agenda-html/agenda-html.sh
#+end_src
Now every 15 minutes the latest version of my org files are pulled
-from my Nextcloud storage and exported as an agenda, which I can
-view from any device, and even set as the new tab page in my browser.
+from my Nextcloud storage and exported as an agenda, which I can view
+from any device. I'm also able to set as the new tab page in my
+browser. I'm even able to check it from my phone now that I no longer
+have to have Emacs installed on a device.