Initial commit
This commit is contained in:
commit
c90daec5f4
31 changed files with 1130 additions and 0 deletions
44
.dir-locals.el
Normal file
44
.dir-locals.el
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
((nil
|
||||||
|
. ((org-export-html-inline-images . t)
|
||||||
|
(org-export-htmlize-output-type . css)
|
||||||
|
(org-publish-project-alist
|
||||||
|
. (("oni-blog"
|
||||||
|
:base-directory "~/code/projects/orgweb/blog/"
|
||||||
|
;; :publishing-directory "/ssh:ryuslash@ninthfloor.org:public_html/blog/"
|
||||||
|
:publishing-directory "/ssh:ryuslash@ssh.alwaysdata.com:www/org/blog/"
|
||||||
|
:base-extension "org"
|
||||||
|
:publishing-function org-publish-org-to-blog
|
||||||
|
:blog-title "oni blog"
|
||||||
|
:blog-description "Another org blog test"
|
||||||
|
:blog-export-rss t
|
||||||
|
:blog-url "http://ryuslash.ninth.su/blog/"
|
||||||
|
:index-title "oni blog"
|
||||||
|
:recursive nil
|
||||||
|
:table-of-contents nil
|
||||||
|
:section-numbers nil
|
||||||
|
:style-include-default nil
|
||||||
|
:author-info nil
|
||||||
|
:creator-info nil
|
||||||
|
:style "<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheet.css\" />")
|
||||||
|
("oni-files"
|
||||||
|
:base-directory "~/code/projects/orgweb/site/"
|
||||||
|
;; :publishing-directory "/ssh:ryuslash@ninthfloor.org:public_html/"
|
||||||
|
:publishing-directory "/ssh:ryuslash@ssh.alwaysdata.com:www/org/"
|
||||||
|
:recursive t
|
||||||
|
:base-extension "css\\|png"
|
||||||
|
:publishing-function org-publish-attachment)
|
||||||
|
("oni-org"
|
||||||
|
:base-directory "~/code/projects/orgweb/site/"
|
||||||
|
;; :publishing-directory "/ssh:ryuslash@ninthfloor.org:public_html/"
|
||||||
|
:publishing-directory "/ssh:ryuslash@ssh.alwaysdata.com:www/org/"
|
||||||
|
:recursive t
|
||||||
|
:table-of-contents nil
|
||||||
|
:base-extension "org"
|
||||||
|
:publishing-function org-publish-org-to-html
|
||||||
|
:section-numbers nil
|
||||||
|
:style-include-default nil
|
||||||
|
:author-info nil
|
||||||
|
:creator-info nil
|
||||||
|
:style "<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheet.css\" />")
|
||||||
|
("oni"
|
||||||
|
:components ("oni-org" "oni-files" "oni-blog")))))))
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.html
|
2
blog/.gitignore
vendored
Normal file
2
blog/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
unfinished
|
||||||
|
index.org
|
21
blog/blog-2012-04-24-0052.org
Normal file
21
blog/blog-2012-04-24-0052.org
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#+TITLE: A new org-blog
|
||||||
|
#+DESCRIPTION: Going for another org blogging module
|
||||||
|
|
||||||
|
I've taken it upon myself to update the ~org-blog.el~ that was written
|
||||||
|
a long time ago. I want something other than an extra layer over some
|
||||||
|
other system, ~org-mode~ has everything a blog needs, but it doesn't
|
||||||
|
generate an RSS feed or a special index page.
|
||||||
|
|
||||||
|
There was the ~org-blog.el~, but that uses some old functions that
|
||||||
|
don't exist anymore, so I thought I'd try to update it.
|
||||||
|
|
||||||
|
I just barely got it working, as you can see from this post. It
|
||||||
|
generates an RSS feed, but the links don't work. It generates an index
|
||||||
|
page, but no links to the individual pages (not that it needs it,
|
||||||
|
really). It doesn't listen to some of the settings (toc, sections) the
|
||||||
|
rest of the publishing projects do.
|
||||||
|
|
||||||
|
I'd also like to have all posts in a single file and use things like a
|
||||||
|
post's category and tags and such.
|
||||||
|
|
||||||
|
It'll be interesting to see what else I can fix.
|
14
blog/blog-2012-04-24-0127.org
Normal file
14
blog/blog-2012-04-24-0127.org
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#+TITLE: Quick org-blog update
|
||||||
|
#+DESCRIPTION: just a quick update
|
||||||
|
|
||||||
|
Apparently there are some things it does seem to do, and some it
|
||||||
|
doesn't, that I didn't realize.
|
||||||
|
|
||||||
|
* Generate index html
|
||||||
|
|
||||||
|
It only generates an ~index.org~ file, which it then doesn't convert
|
||||||
|
to HTML. That should be fixable.
|
||||||
|
|
||||||
|
* Generate links
|
||||||
|
|
||||||
|
It seems to generate links correctly after all.
|
44
blog/blog-2012-04-24-1551.org
Normal file
44
blog/blog-2012-04-24-1551.org
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#+TITLE: Silly django confusion
|
||||||
|
#+DESCRIPTION: Think about this next time...
|
||||||
|
|
||||||
|
I'm setting up a testing environment for work, using fixtures to save
|
||||||
|
and load test data and I got a little stumped by something I ran into.
|
||||||
|
|
||||||
|
I had exported one of the database tables we use to a json file that I
|
||||||
|
was going to import into a fresh new database to test with. When I
|
||||||
|
imported it everything seemed fine, except when looking at the actual
|
||||||
|
page. So this is what I found:
|
||||||
|
|
||||||
|
#+BEGIN_SRC sql
|
||||||
|
SELECT * FROM app_table;
|
||||||
|
=> 3 rows of data
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC python
|
||||||
|
from app.models import Table
|
||||||
|
|
||||||
|
Table.objects.count()
|
||||||
|
=> 3
|
||||||
|
|
||||||
|
Table.objects.all()
|
||||||
|
=> []
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
This is weird. So I looked at the ~django.db.connection.queries~
|
||||||
|
property and I realized that it was doing a join since the model
|
||||||
|
subclasses another:
|
||||||
|
|
||||||
|
#+BEGIN_SRC python
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
from app.models import SuperTable
|
||||||
|
|
||||||
|
class Table(SuperTable):
|
||||||
|
field1 = models.CharField(max_lenth=200)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Which, of course, means that in order to get the complete ~Table~
|
||||||
|
instance, the related ~SuperTable~ instance is also required, but in
|
||||||
|
order to do a ~COUNT~ of ~app_table~ it isn't necessary. And that's
|
||||||
|
where the inconsistency came from, now that I've also copied the
|
||||||
|
contents of ~SuperTable~ everything is fine again.
|
41
blog/blog-2012-05-02-2109.org
Normal file
41
blog/blog-2012-05-02-2109.org
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#+TITLE: Ask for selection in emacs
|
||||||
|
#+DESCRIPTION: Something I came across
|
||||||
|
|
||||||
|
I came across an email on one of the emacs mailing lists today, where
|
||||||
|
someone asked how to ask a user for input whilst providing
|
||||||
|
completions. The first answer he got was to try ~tmm-prompt~, so I
|
||||||
|
looked into it a little.
|
||||||
|
|
||||||
|
I use ~mu4e~ as my primary email program, but since it isn't designed
|
||||||
|
(seemingly) for use with multiple accounts I've got some wrapper
|
||||||
|
functions that set some variables according to my liking and then
|
||||||
|
start ~mu4e~. This works very well, but it's a pain to have to use
|
||||||
|
~M-x view-ryu-mail~ or ~M-x view-ninthfloor-mail~ and such, so I wrote
|
||||||
|
a function to read a string from the minibuffer, which I then bound to
|
||||||
|
the ~<XF86Mail>~ key, this turned it into, for example ~<XF86Mail>
|
||||||
|
ryu~ and ~<XF86Mail> ninthfloor~ and so on, but this doesn't have any
|
||||||
|
completion or notification of my options.
|
||||||
|
|
||||||
|
So after looking at ~tmm-prompt~ I came up with the following:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defvar oni:mailbox-map
|
||||||
|
'(("ryulash.org" . "ryu")
|
||||||
|
("ninthfloor" . "ninthfloor"))
|
||||||
|
"A mailbox map for use with `tmm-prompt'.")
|
||||||
|
|
||||||
|
(defun view-ryu-mail ()...)
|
||||||
|
(defun view-ninthfloor-mail ()...)
|
||||||
|
|
||||||
|
(defun view-mu ()
|
||||||
|
(interactive)
|
||||||
|
(let* ((tmm-completion-prompt "Choose a mailbox\n")
|
||||||
|
(inbox (tmm-prompt oni:mailbox-map)))
|
||||||
|
(funcall (intern (concat "view-" inbox "-mail")))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
I've left out the definitions and some mail accounts for brevity.
|
||||||
|
|
||||||
|
~tmm-prompt~ is usually used when using the text-mode menu with ~M-`~,
|
||||||
|
but it works very well here too. This changes mailbox selection to,
|
||||||
|
for example ~<XF86Mail> r~ or ~<XF86Mail> n~.
|
21
blog/blog-2012-05-02-2136.org
Normal file
21
blog/blog-2012-05-02-2136.org
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#+TITLE: Show identica icon with new dents
|
||||||
|
#+DESCRIPTION: I kinda like it
|
||||||
|
|
||||||
|
I've written this a while ago after I found out how images can be
|
||||||
|
added to the emacs modeline. I like being notified of things that go
|
||||||
|
on, and new dents is a good example of this, though ~notify-send~ and
|
||||||
|
an urgency hint don't always work for that.
|
||||||
|
|
||||||
|
This works:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-to-list
|
||||||
|
'global-mode-string
|
||||||
|
'(:eval
|
||||||
|
(unless (zerop identica-new-dents-count)
|
||||||
|
(propertize " " 'display identica-active-indicator-image))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
This will show an icon in your modeline whenever there are new dents,
|
||||||
|
at this time there dents will not have been loaded into the buffer, so
|
||||||
|
you'll have to refresh it, after which the icon disappears.
|
19
blog/blog-2012-05-02-2152.org
Normal file
19
blog/blog-2012-05-02-2152.org
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#+TITLE: Ask for selection in emacs, addendum
|
||||||
|
#+DESCRIPTION: Oops, I forgot this
|
||||||
|
|
||||||
|
I erroneously assumed (and thought I tested) that using ~tmm-prompt~
|
||||||
|
could be done the way I described before. The ~oni:mailbox-map~
|
||||||
|
variable needs to be a little different from what I'd shown before,
|
||||||
|
namely:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defvar oni:mailbox-map
|
||||||
|
'("top" ("menu" ("ryulash.org" . "ryu")
|
||||||
|
("ninthfloor" . "ninthfloor")
|
||||||
|
("gmail" . "gmail")
|
||||||
|
("aethon" . "aethon")))
|
||||||
|
"A mailbox map for use with `tmm-prompt'.")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Without the /top/ and /menu/ items it will complain about wrong
|
||||||
|
arguments.
|
25
blog/blog-2012-05-03-1004.org
Normal file
25
blog/blog-2012-05-03-1004.org
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#+TITLE: Another way to get a selection
|
||||||
|
#+DESCRIPTION: Another thing I came across
|
||||||
|
|
||||||
|
When I was first looking into improving my mailbox selection function
|
||||||
|
I was looking at how to just ask the user for input with
|
||||||
|
completions. Though now that I came across ~tmm-prompt~ I really
|
||||||
|
prefer this way of working, at least in this case.
|
||||||
|
|
||||||
|
However, today another function was mentioned, in response to someone
|
||||||
|
pointing out ~org-completing-read~: ~completing-read~. Wow that's a
|
||||||
|
far leap.
|
||||||
|
|
||||||
|
Anyway:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(completing-read "Your favorite color: "
|
||||||
|
'("red" "green" "blue" "yellow"))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
This will ask for user input and provide these options as completions,
|
||||||
|
but it won't show a list of options, of provide shortcuts, like
|
||||||
|
~tmm-prompt~ does.
|
||||||
|
|
||||||
|
It's good to know these things, and I really should read both the
|
||||||
|
emacs manual and the emacs lisp reference manual at some point.
|
25
blog/blog-2012-05-10-0130.org
Normal file
25
blog/blog-2012-05-10-0130.org
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#+TITLE: Testing org-blog fix
|
||||||
|
#+DESCRIPTION: Let's see if it works
|
||||||
|
|
||||||
|
I've just adjusted just a little bit of code in org-blog, and now I
|
||||||
|
want to see if it works correctly.
|
||||||
|
|
||||||
|
I was getting the following error message when I would try and export
|
||||||
|
an ~org-blog~ project:
|
||||||
|
|
||||||
|
#+BEGIN_EXAMPLE
|
||||||
|
Selecting deleted buffer
|
||||||
|
#+END_EXAMPLE
|
||||||
|
|
||||||
|
It turns out that this is because of this little piece of code:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
;; if buffer is already open, kill it
|
||||||
|
(if index-buffer
|
||||||
|
(kill-buffer index-buffer))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
I'm guessing it wasn't originally meant as a function for
|
||||||
|
~org-publish~, well it was meant as an index function, but that
|
||||||
|
feature seems to have changed over time. Let's see what can be made of
|
||||||
|
it.
|
6
blog/blog-2012-05-13-1041.org
Normal file
6
blog/blog-2012-05-13-1041.org
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#+TITLE: Testing out an RSS fix
|
||||||
|
#+DESCRIPTION: Oopsie
|
||||||
|
|
||||||
|
I was working on [[http://ryuslash.org][my website]] yesterday and I noticed that the RSS feed
|
||||||
|
doesn't generate links correctly. So I've changed it, and now I'm
|
||||||
|
trying it out.
|
15
blog/blog-2012-06-03-2318.org
Normal file
15
blog/blog-2012-06-03-2318.org
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#+TITLE: Website update
|
||||||
|
|
||||||
|
As you can [[http://ryuslash.org][see]] I finally updated my website again. It's the same basic
|
||||||
|
idea as before, except this time I try to make the posts look more
|
||||||
|
lisp-y, since I'm writing a lot more ~emacs-lisp~ as of late I've
|
||||||
|
grown fond of all the parentheses.
|
||||||
|
|
||||||
|
I've also moved my [[http://org.ryuslash.org][static website]] from ninthfloor to my own domain in
|
||||||
|
the hopes it will become more a part of my website than it was before,
|
||||||
|
although the beauty of static websites generated by things like
|
||||||
|
~org-mode~, ~jekyll~ and such is of course that they can pretty much
|
||||||
|
be placed on any public web space, and they're fast.
|
||||||
|
|
||||||
|
Anyway, perhaps I'll post more, but for now I'm happy to have changed
|
||||||
|
things a little again.
|
25
blog/blog-2012-06-09-0119.org
Normal file
25
blog/blog-2012-06-09-0119.org
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#+TITLE: Literate emacs init
|
||||||
|
|
||||||
|
A little while back I saw [[http://sachachua.com/blog/2012/05/where-i-am-in-terms-of-emacs/][Sacha Chua]] mention using ~org-mode~ for
|
||||||
|
literate programming. I'd heard of literate programming, but its use
|
||||||
|
escaped me. Still, reading that and looking at what ~noweb~ is I
|
||||||
|
started thinking that it would indeed be a great way of documenting
|
||||||
|
code, especially something my emacs init file, since that is not a
|
||||||
|
serious software project ans some weird stuff goes on in there.
|
||||||
|
|
||||||
|
I still didn't really get the hang of it. It seemed like a lot of work
|
||||||
|
to get into it and how exactly it fit together with using ~org-mode~
|
||||||
|
didn't really hit me so I pushed it aside for the moment.
|
||||||
|
|
||||||
|
Today I see her [[http://sachachua.com/blog/2012/06/literate-programming-emacs-configuration-file/][presenting]] her new literately programming init file
|
||||||
|
with some links to other resources and I just had to try it too.
|
||||||
|
|
||||||
|
I haven't gotten very far yet, but what I have so far I have put
|
||||||
|
[[http://ryuslash.org/inittest.html][here]]. It's just the generated HTML file, no org source, and I'm still
|
||||||
|
messing around with the colors and stuff, but it's fun to see the
|
||||||
|
result already.
|
||||||
|
|
||||||
|
I don't know if I'm actually going to use it, since my init file's
|
||||||
|
sloc count is 1038 and its total line count is 1280 lines I fear that
|
||||||
|
adding even more documentation (= lines) would make my init file
|
||||||
|
*very* bulky. It is still fun to see and experiment with, though.
|
127
site/articles/emacs.org
Normal file
127
site/articles/emacs.org
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
#+TITLE: Emacs
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
#+OPTIONS: H:5
|
||||||
|
|
||||||
|
* General Emacs Tips
|
||||||
|
|
||||||
|
Tips might be the wrong word here, but the way I use Emacs has
|
||||||
|
resulted into looking at some things that others might not think of
|
||||||
|
or see.
|
||||||
|
|
||||||
|
** Emacs Init File
|
||||||
|
|
||||||
|
Your Emacs init file can be any of the following:
|
||||||
|
|
||||||
|
- ~$HOME/.emacs~
|
||||||
|
- ~$HOME/.emacs.el~
|
||||||
|
- ~$HOME/.emacs.d/init.el~
|
||||||
|
|
||||||
|
I personally use ~$HOME/.emacs.d/init.el~ because that way I can
|
||||||
|
keep *everything* Emacs related in a single directory
|
||||||
|
(~$HOME/.emacs.d~).
|
||||||
|
|
||||||
|
** Displaying time
|
||||||
|
|
||||||
|
I've seriously minimized the use of my window manager's task
|
||||||
|
bar. It only shows which tags there are, some important daemons'
|
||||||
|
status (running or not) and whether or not I have mail. This makes
|
||||||
|
it difficult to tell time when I need it. That why it's useful to
|
||||||
|
see what time it is in Emacs, since that is on 99.99% of the time
|
||||||
|
I'm behind my computer, and it's very easy:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(display-time-mode t)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
That is all. When you have that in your [[Emacs Init File]], you will
|
||||||
|
always have the time in your modeline.
|
||||||
|
|
||||||
|
** Automatically compile startup files
|
||||||
|
|
||||||
|
I know that for 99% of the things you might have in your having a
|
||||||
|
compiled init files won't make much of a difference, but still I
|
||||||
|
like having my init files compiled. This gets messy when you share
|
||||||
|
your init files across multiple PCs and the source files become
|
||||||
|
newer than the compiled ones.
|
||||||
|
|
||||||
|
To fix this I've put only a very little bit of code in my actual
|
||||||
|
[[Emacs Init File]]:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(require 'bytecomp)
|
||||||
|
|
||||||
|
(defvar startup-files
|
||||||
|
(directory-files "~/.emacs.d/startup/" t "^[^.].*\\.el$")
|
||||||
|
"A list of the files that should be loaded during startup.")
|
||||||
|
|
||||||
|
(while startup-files
|
||||||
|
(let ((filename (car startup-files))
|
||||||
|
(byte-compile-warnings nil))
|
||||||
|
(if (not (eq (byte-recompile-file filename nil 0) nil))
|
||||||
|
(load (substring filename 0 -3))))
|
||||||
|
(setq startup-files (cdr startup-files)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
It gets all the files in the ~$HOME/.emacs.d/startup/~ directory
|
||||||
|
that end with ~.el~. It loops through all these files and compiles
|
||||||
|
them, and then loads them. I use ~byte-recompile-file~ instead of
|
||||||
|
~byte-recompile-directory~ because the directory one didn't work
|
||||||
|
quite right. It doesn't recompile anything if the source file is
|
||||||
|
still up to date, so it only slows down when you have a lot of new
|
||||||
|
files in the ~startup~ directory. It also disables warnings so
|
||||||
|
that you're not bothered by them during startup.
|
||||||
|
|
||||||
|
* Emacs as...
|
||||||
|
|
||||||
|
There are *many* things Emacs[fn:emacs] is useful for, not just
|
||||||
|
coding and writing, but certainly very much for these uses as well.
|
||||||
|
|
||||||
|
** ... An IDE...
|
||||||
|
|
||||||
|
Emacs features many modes for a lot of different languages.
|
||||||
|
|
||||||
|
# *** ... For PHP
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# *** ... For Python
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# **** ... With django
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# *** ... For C
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# *** ... For Java on Android
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# *** ... For Go
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# *** ... For Guile (Scheme)
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# ** ... A web authoring tool
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# ** ... An organizational tool
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# ** ... A social network interface
|
||||||
|
|
||||||
|
# Coming soon...
|
||||||
|
|
||||||
|
# ** ... A notifier
|
||||||
|
|
||||||
|
# Coming soon...
|
49
site/code_vault.org
Normal file
49
site/code_vault.org
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#+TITLE: Code Vault
|
||||||
|
|
||||||
|
Here we have some code snippets that I no longer (intend to) use, but
|
||||||
|
might still need (to look at) at some point in time.
|
||||||
|
|
||||||
|
* Jabber urgency and libnotify
|
||||||
|
|
||||||
|
This piece of code sends a message through ~libnotify~ and sets a
|
||||||
|
window urgency hint when a new message is received.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defvar jabber-activity-jids-count 0)
|
||||||
|
|
||||||
|
(defun jabber-urgency-hint ()
|
||||||
|
(let ((count (length jabber-activity-jids)))
|
||||||
|
(unless (= jabber-activity-jids-count count)
|
||||||
|
(if (zerop count)
|
||||||
|
(x-urgency-hint (selected-frame) nil)
|
||||||
|
(x-urgency-hint (selected-frame) t))
|
||||||
|
(setq jabber-activity-jids-count count))))
|
||||||
|
|
||||||
|
(defun libnotify-jabber-notify (from buf text proposed-alert)
|
||||||
|
"(jabber.el hook) Notify of new Jabber chat messages via libnotify"
|
||||||
|
(when (or jabber-message-alert-same-buffer
|
||||||
|
(not (memq (selected-window) (get-buffer-window-list buf))))
|
||||||
|
(if (jabber-muc-sender-p from)
|
||||||
|
(notify-send (format "(PM) %s"
|
||||||
|
(jabber-jid-displayname
|
||||||
|
(jabber-jid-user from)))
|
||||||
|
(format "%s: %s" (jabber-jid-resource from) text)))
|
||||||
|
(notify-send (format "%s: " (jabber-jid-displayname from))
|
||||||
|
(format "%.20s" text))))
|
||||||
|
|
||||||
|
(add-hook 'jabber-activity-update-hook 'jabber-urgency-hint)
|
||||||
|
(add-hook 'jabber-alert-message-hooks 'libnotify-jabber-notify)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* Show symbol instead of ~lambda~
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun oni:pretty-lambdas ()
|
||||||
|
"Show a lambda sign where the world `lambda' is found."
|
||||||
|
(font-lock-add-keywords
|
||||||
|
nil `(("(?\\(\\<lambda\\>\\)[ :]"
|
||||||
|
(0 (progn
|
||||||
|
(compose-region (match-beginning 1)
|
||||||
|
(match-end 1)
|
||||||
|
?λ)))))))
|
||||||
|
#+END_SRC
|
BIN
site/favicon.png
Normal file
BIN
site/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 974 B |
7
site/header.org
Normal file
7
site/header.org
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#+BEGIN_HTML
|
||||||
|
<div class="content">
|
||||||
|
#+END_HTML
|
||||||
|
|
||||||
|
#+BEGIN_HTML
|
||||||
|
</div>
|
||||||
|
#+END_HTML
|
7
site/ideas/orgtpl.org
Normal file
7
site/ideas/orgtpl.org
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#+TITLE: Orgtpl
|
||||||
|
|
||||||
|
* What
|
||||||
|
|
||||||
|
Since we already create both HTML *and* XML templates in django, why
|
||||||
|
shouldn't we be able to do the same with org. Create a template that
|
||||||
|
creates an org file that can easily be viewed in emacs.
|
45
site/index.org
Normal file
45
site/index.org
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#+TITLE: oni org
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="stylesheet.css" />
|
||||||
|
#+OPTIONS: toc:nil num:nil author:nil email:nil creator:nil
|
||||||
|
#+LANGUAGE: en
|
||||||
|
#+LINK_HOME: http://ryuslash.org
|
||||||
|
#+LINK_UP: http://ryuslash.org
|
||||||
|
#+STARTUP: showall
|
||||||
|
|
||||||
|
@<div class="dlmenu">
|
||||||
|
[[http://ryuslash.org/][Front page]] || [[file:blog/index.org][Blog]]
|
||||||
|
@</div>
|
||||||
|
|
||||||
|
* About
|
||||||
|
|
||||||
|
I'm a programming, free software and GNU/Linux enthusiast. I'm also
|
||||||
|
a programmer professionally, so that works out well.
|
||||||
|
|
||||||
|
I was born in the Netherlands, live in Belgium and work for a dutch
|
||||||
|
company. I have been using GNU/Linux since 2008, having settled on
|
||||||
|
[[http://www.archlinux.org][Archlinux]] after trying [[http://www.ubuntu.com][Ubuntu]], [[http://fedoraproject.org][Fedora]] and [[http://zenwalk.org][Zenwalk]]. I have been using
|
||||||
|
[[http://www.gnu.org][GNU Emacs]] since not long after switching over to GNU/Linux.
|
||||||
|
|
||||||
|
I can be contacted through email (tom at ryuslash dot org) or any
|
||||||
|
other place you can find me, really.
|
||||||
|
|
||||||
|
** Other places to find me
|
||||||
|
|
||||||
|
- [[https://diasp.org/u/ryuslash][Diasp*]]
|
||||||
|
- [[http://gitorious.org/%7Eryuslash][Gitorious]]
|
||||||
|
- [[http://identi.ca/ryuslash][identi.ca]]
|
||||||
|
- [[http://www.emacswiki.org][EmacsWiki]]
|
||||||
|
|
||||||
|
* Configuration files
|
||||||
|
|
||||||
|
I'm working on putting all of my configuration files (dotfiles) in
|
||||||
|
~org-mode~, with ~org-babel~'s literate programming support. [[http://org.ryuslash.org/dotfiles/][Here]] is
|
||||||
|
what I have so far.
|
||||||
|
|
||||||
|
* Projects
|
||||||
|
|
||||||
|
- [[file:projects/git-auto-commit-mode.org][git-auto-commit-mode]]
|
||||||
|
- [[file:projects/ryuslash.org][ryuslash.org]]
|
||||||
|
- [[file:projects/eye-on-manga.org][eye-on-manga]]
|
||||||
|
- [[file:projects/org-blog.org][org-blog]]
|
||||||
|
- [[file:projects/org.org][org]]
|
18
site/projects/bint.org
Normal file
18
site/projects/bint.org
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
* About
|
||||||
|
** bint -- Bad Image Naming Tool
|
||||||
|
marijn_a:
|
||||||
|
dit is wat ik wil dat het doet
|
||||||
|
|
||||||
|
* ik selecteer een map met plaatjes erin.
|
||||||
|
* programma scant alle mappen in die map voor plaatjes
|
||||||
|
* nadat ie klar is, laat ie filepath zien en het 1ste plaatje
|
||||||
|
* vraagt om de naam van het plaatje
|
||||||
|
* ik type een naam in en druk enter
|
||||||
|
* volgende plaatje in beeld
|
||||||
|
* ik typ naam en enter
|
||||||
|
* etc
|
||||||
|
|
||||||
|
zie het als een image renamer
|
||||||
|
dus eerst heet het plaatje 35y6795634.jpg
|
||||||
|
dan type je in de balk: THE ALIENS INVADED!!
|
||||||
|
en dan renamed ie naar THE ALIENS INVADED!!.jpg
|
31
site/projects/clever-mode.org
Normal file
31
site/projects/clever-mode.org
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#+TITLE: clever-mode
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "1-4"
|
||||||
|
|
||||||
|
* About
|
||||||
|
|
||||||
|
~clever-mode~ is a GNU Emacs[fn:emacs:http://gnu.org/software/emacs/]
|
||||||
|
major mode for editing Smarty[fn:smarty:http://www.smarty.net] templates.
|
||||||
|
|
||||||
|
** Why
|
||||||
|
|
||||||
|
The only modes for editing Smarty[fn:smarty] templates are either
|
||||||
|
outdated or need MuMaMo, and I seriously dislike MuMaMo.
|
||||||
|
|
||||||
|
Also, I have some Emacs[fn:emacs] projects now, but no major mode
|
||||||
|
yet, and I want to learn.
|
||||||
|
|
||||||
|
** Features
|
||||||
|
|
||||||
|
~clever-mode~ is based on HTML mode, although Smarty[fn:smarty] is
|
||||||
|
not limited to HTML, that is what it is used for most (at least by me).
|
||||||
|
|
||||||
|
* Usage
|
||||||
|
|
||||||
|
Since it only has some syntax highlighting at the moment usage only
|
||||||
|
consists of getting it, installing it and enabling it.
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "5-8"
|
1
site/projects/dispass.el.org
Normal file
1
site/projects/dispass.el.org
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#+TITLE: Dispass.el
|
4
site/projects/dlmenu.inc
Normal file
4
site/projects/dlmenu.inc
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# -*- mode: org -*-
|
||||||
|
@<div class="dlmenu">
|
||||||
|
[[src][Browse Source]] || [[tar_gz][Download tar.gz]] || [[zip][Download zip]]
|
||||||
|
@</div>
|
38
site/projects/eye-on-manga.org
Normal file
38
site/projects/eye-on-manga.org
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#+TITLE: eye-on-manga
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
#+LINK: src https://github.com/ryuslash/eye-on-manga
|
||||||
|
#+LINK: tar_gz https://github.com/ryuslash/eye-on-manga/tarball/master
|
||||||
|
#+LINK: zip https://github.com/ryuslash/eye-on-manga/zipball/master
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "1-4"
|
||||||
|
#+INCLUDE: "dlmenu.inc"
|
||||||
|
|
||||||
|
* About
|
||||||
|
|
||||||
|
~eye-on-manga~ is a manga collection management application for the
|
||||||
|
Nokia N900.
|
||||||
|
|
||||||
|
** Why
|
||||||
|
|
||||||
|
I was always either standing in the shop, or at the
|
||||||
|
F.A.C.T.S. event, looking at and for manga, and I'd completely
|
||||||
|
forget which ones I needed to get and which ones I'd already read.
|
||||||
|
|
||||||
|
** How
|
||||||
|
|
||||||
|
~eye-on-manga~ is a simple application for the N900, it keeps a
|
||||||
|
list of manga in a SQLite database and makes it possible to edit
|
||||||
|
this data through a UI. You can tell it how many volumes a manga
|
||||||
|
should have and then it makes it easy to select which ones you've
|
||||||
|
aquired and which ones you've read.
|
||||||
|
|
||||||
|
** Features
|
||||||
|
|
||||||
|
- Create a list of manga.
|
||||||
|
- Keep track of which volumes have been acquired and read.
|
||||||
|
- Edit wrongfully entered entries.
|
||||||
|
- Easily mark a volume as acquired or read.
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "5-8"
|
90
site/projects/git-auto-commit-mode.org
Normal file
90
site/projects/git-auto-commit-mode.org
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
#+TITLE: git-auto-commit-mode
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
#+LINK: src https://github.com/ryuslash/git-auto-commit-mode
|
||||||
|
#+LINK: tar_gz https://github.com/ryuslash/git-auto-commit-mode/tarball/master
|
||||||
|
#+LINK: zip https://github.com/ryuslash/git-auto-commit-mode/zipball/master
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "1-4"
|
||||||
|
#+INCLUDE: "dlmenu.inc"
|
||||||
|
|
||||||
|
* About
|
||||||
|
|
||||||
|
~git-auto-commit-mode~ is a minor mode for GNU Emacs[fn::
|
||||||
|
http://gnu.org/software/emacs/] that, when enabled, adds and commits
|
||||||
|
a file after every save.
|
||||||
|
|
||||||
|
** Why
|
||||||
|
|
||||||
|
I thought of it when I was editing my configuration files. Most of
|
||||||
|
my changes in my configuration files are fairly simple and I would
|
||||||
|
like them immediately committed, I don't want to have to sift
|
||||||
|
through all the changes at a later point to figure out what I want
|
||||||
|
to commit when.
|
||||||
|
|
||||||
|
** How
|
||||||
|
|
||||||
|
~git-auto-commit-mode~ blindly calls
|
||||||
|
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
git add FILE
|
||||||
|
git commit -m "RELATIVE-FILE-PATH"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
setting up the git repository correctly is the responsibility of
|
||||||
|
the user.
|
||||||
|
|
||||||
|
** Features
|
||||||
|
|
||||||
|
~git-auto-commit-mode~ only really has one feature:
|
||||||
|
|
||||||
|
- Automatically commit file to current git repository after saving.
|
||||||
|
|
||||||
|
* Usage
|
||||||
|
|
||||||
|
To be able to use it you need to put it somewhere in your
|
||||||
|
~load-path~ and load it, for example:
|
||||||
|
|
||||||
|
#+NAME: .emacs.d
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-to-list 'load-path "~/path/to/git-auto-commit-mode.el")
|
||||||
|
(autoload 'git-auto-commit-mode "git-auto-commit-mode")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
There are a few ways this could be used:
|
||||||
|
|
||||||
|
** As file-local variable
|
||||||
|
|
||||||
|
This is the way I use it and I wanted to use it. Any file that you
|
||||||
|
would like to have automatically committed upon saving gets this
|
||||||
|
prop-line:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
;; -*- eval: (git-auto-commit-mode 1) -*-
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Or, if you're in anything older than emacs 24:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
;; -*- mode: git-auto-commit -*-
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** As a directory-local variable
|
||||||
|
|
||||||
|
Put the following in a ~.dir-locals.el~ file in any directory where
|
||||||
|
you want to enable ~git-auto-commit-mode~ for *all* files:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
((nil . ((git-auto-commit-mode . t))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** As a hook
|
||||||
|
|
||||||
|
I doubt this will ever really be useful, but it is possible:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-hook 'some-hook 'git-auto-commit-mode)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "5-8"
|
83
site/projects/org-blog.org
Normal file
83
site/projects/org-blog.org
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
#+TITLE: git-auto-commit-mode
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
#+LINK: src https://github.com/ryuslash/org-blog
|
||||||
|
#+LINK: tar_gz https://github.com/ryuslash/org-blog/tarball/master
|
||||||
|
#+LINK: zip https://github.com/ryuslash/org-blog/zipball/master
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "1-4"
|
||||||
|
#+INCLUDE: "dlmenu.inc"
|
||||||
|
|
||||||
|
* About
|
||||||
|
|
||||||
|
~org-blog~ is a blog exporter for ~org-mode~ written by David
|
||||||
|
O'Toole in 2006. ~org-mode~ has since then changed a bit and it
|
||||||
|
seemed that it no longer worked. It also seems to be the only
|
||||||
|
viable/acceptable pure-org solution for me, so I'm trying to revive
|
||||||
|
it.
|
||||||
|
|
||||||
|
** Why
|
||||||
|
|
||||||
|
As stated, it seemed to be out-of-date and packages like [[http://renard.github.com/o-blog/][o-blog]] and
|
||||||
|
[[http://www.emacswiki.org/emacs/Blorg][blorg]] didn't work for me, and many others require some external
|
||||||
|
tool to work.
|
||||||
|
|
||||||
|
* Setup
|
||||||
|
|
||||||
|
Since I've adapted it to work as a normal publishing function for
|
||||||
|
org, setting it up is a lot like any other publishing project as
|
||||||
|
well:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq org-publish-project-alist
|
||||||
|
'(("myblog"
|
||||||
|
:base-directory "~/location/to/org/files/"
|
||||||
|
:publishing-directory "/place/to/export/to/"
|
||||||
|
:base-extension "org"
|
||||||
|
:publishing-function org-publish-org-to-blog
|
||||||
|
:blog-title "some title"
|
||||||
|
:blog-description "some description"
|
||||||
|
:blog-export-rss t
|
||||||
|
:index-title "oni blog"
|
||||||
|
:recursive nil
|
||||||
|
:table-of-contents nil)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Most of these options are very normal project settings and can be
|
||||||
|
read about in the documentation for the variable
|
||||||
|
~org-publish-project-alist~. The ~blog-title~, ~blog-description~,
|
||||||
|
~blog-export-rss~ and ~index-title~, however, are used by
|
||||||
|
~org-blog~.
|
||||||
|
|
||||||
|
- ~blog-title~
|
||||||
|
|
||||||
|
This setting is used when exporting RSS. It sets the ~title~ in
|
||||||
|
the XML output.
|
||||||
|
|
||||||
|
- ~blog-description~
|
||||||
|
|
||||||
|
This setting is also used when exporting RSS. It sets the
|
||||||
|
~description~ in the XML output.
|
||||||
|
|
||||||
|
- ~blog-export-rss~
|
||||||
|
|
||||||
|
Whether or not you would like an RSS feed to be exported.
|
||||||
|
|
||||||
|
- ~index-title~
|
||||||
|
|
||||||
|
This is used as the title of the blog's index page.
|
||||||
|
|
||||||
|
Apart from these there are also 2 other settings that need your
|
||||||
|
attention:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq org-blog-directory "~/path/to/blog/org/files/")
|
||||||
|
(setq org-blog-unfinished-directory "~/path/to/drafts/")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
These don't have any relevance to the exporting and publishing
|
||||||
|
functions, but they're used by the ~org-blog-new-post~ and
|
||||||
|
~org-blog-finish-post~ functions, which help with creating new
|
||||||
|
posts.
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "5-8"
|
85
site/projects/org.org
Normal file
85
site/projects/org.org
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
#+TITLE: org
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
#+OPTIONS: H:5
|
||||||
|
|
||||||
|
* About
|
||||||
|
|
||||||
|
No I don't mean that I have anything to do with [[http://orgmode.org][org-mode]], but trying
|
||||||
|
to find a nice and effective structure to my org files is an ongoing
|
||||||
|
project for me.
|
||||||
|
|
||||||
|
* Organizational
|
||||||
|
|
||||||
|
** inbox.org
|
||||||
|
|
||||||
|
The ~inbox.org~ file is used as, surprise surprise, an
|
||||||
|
inbox. Whenever ~org-capture~ is used to create a new task,
|
||||||
|
appointment or note, it is placed in this file, from here it should
|
||||||
|
be distributed to one of the other org files.
|
||||||
|
|
||||||
|
- appointments
|
||||||
|
|
||||||
|
New appointments that should be placed in one of the other files
|
||||||
|
are first placed here.
|
||||||
|
|
||||||
|
- notes
|
||||||
|
|
||||||
|
New notes that should be placed in one of the other files are
|
||||||
|
first placed here.
|
||||||
|
|
||||||
|
- tasks
|
||||||
|
|
||||||
|
New tasks that should be placed in one of the other files are
|
||||||
|
first placed here.
|
||||||
|
|
||||||
|
** personal.org
|
||||||
|
|
||||||
|
The ~personal.org~ file is used for private tasks, appointments and
|
||||||
|
notes. Not specifically actually private, just not belonging to any
|
||||||
|
of the other org files.
|
||||||
|
|
||||||
|
- appointments
|
||||||
|
|
||||||
|
Appointments of a personal nature, not specifically about any of
|
||||||
|
the other org files.
|
||||||
|
|
||||||
|
- birthdays
|
||||||
|
|
||||||
|
Birthdays of friends and family are noted here.
|
||||||
|
|
||||||
|
- bookmarks
|
||||||
|
|
||||||
|
Some very interesting links that I should keep an eye on.
|
||||||
|
|
||||||
|
- notes
|
||||||
|
|
||||||
|
Notes about personal things should be placed here.
|
||||||
|
|
||||||
|
- rss
|
||||||
|
|
||||||
|
I have a single RSS feed that I load with org, this is a feed
|
||||||
|
from [[http://www.myepisodes.com][MyEpisodes]] which tells me when new episodes of shows I
|
||||||
|
watch air.
|
||||||
|
|
||||||
|
- tasks
|
||||||
|
|
||||||
|
Tasks of a personal nature, not belonging to any of the other
|
||||||
|
files/categories.
|
||||||
|
|
||||||
|
** contacts.org
|
||||||
|
|
||||||
|
Just keeps my contacts.
|
||||||
|
|
||||||
|
** projects
|
||||||
|
|
||||||
|
Org files about projects I work on.
|
||||||
|
|
||||||
|
*** any org files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** work
|
||||||
|
|
||||||
|
Org files about work-related things.
|
75
site/projects/ryuslash.org
Normal file
75
site/projects/ryuslash.org
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
#+TITLE: ryuslash.org
|
||||||
|
#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
|
||||||
|
#+LINK_UP: ../index.html
|
||||||
|
#+LINK_HOME: ../index.html
|
||||||
|
#+LINK: python http://www.python.org
|
||||||
|
#+LINK: django http://djangoproject.com
|
||||||
|
#+LINK: feedparser http://code.google.com/p/feedparser/
|
||||||
|
#+LINK: south http://south.aeracode.org/
|
||||||
|
#+LINK: markdown http://packages.python.org/Markdown/
|
||||||
|
#+LINK: src https://github.com/ryuslash/ryuslash.org
|
||||||
|
#+LINK: tar_gz https://github.com/ryuslash/ryuslash.org/tarball/master
|
||||||
|
#+LINK: zip https://github.com/ryuslash/ryuslash.org/zipball/master
|
||||||
|
|
||||||
|
#+INCLUDE: "../header.org" :lines "1-4"
|
||||||
|
#+INCLUDE: "dlmenu.inc"
|
||||||
|
|
||||||
|
* About
|
||||||
|
:PROPERTIES:
|
||||||
|
:hosted_at: github
|
||||||
|
:END:
|
||||||
|
|
||||||
|
~ryuslash.org~ is the project of the front page of [[http://ryuslash.org][my website]]. I
|
||||||
|
have noticed, though, that apart from the /design/ and the initial
|
||||||
|
data[fn:: The configured feeds], there is nothing really specific to
|
||||||
|
my about this project.
|
||||||
|
|
||||||
|
Right now all it really does is show a bunch of feeds on a page.
|
||||||
|
|
||||||
|
** Why
|
||||||
|
|
||||||
|
I've been trying out different kinds of ways to manage/run a
|
||||||
|
website/blog for a long time now, and I can't seem to keep using
|
||||||
|
just one thing. This annoys me.
|
||||||
|
|
||||||
|
With ~ryuslash.org~ I'm trying it in a different way, gather
|
||||||
|
everything I do elsewhere and present it in a single place. I
|
||||||
|
*must* be generating content /somewhere/, and if that's true, and
|
||||||
|
friends or other interested people might want to know about this,
|
||||||
|
then it's nice to have it all in one place.
|
||||||
|
|
||||||
|
** How
|
||||||
|
|
||||||
|
~ryuslash.org~ uses the [[python][Python]] web framework [[django][django]] and the [[python][Python]]
|
||||||
|
module [[feedparser][feedparser]]. It uses a management command ~loadfeeds~ to go
|
||||||
|
through all the configured feeds and check them for new items.
|
||||||
|
|
||||||
|
** Features
|
||||||
|
|
||||||
|
- Define multiple RSS feeds to load news items from.
|
||||||
|
- Define relative paths for the xml and profile linked to a feed.
|
||||||
|
- Group feeds in categories.
|
||||||
|
- Add comments to any post that comes in.
|
||||||
|
- Generate feeds: One for all posts, one for all comments.
|
||||||
|
|
||||||
|
** Requirements
|
||||||
|
|
||||||
|
~ryuslash.org~ uses the following modules and applications:
|
||||||
|
|
||||||
|
- [[python][Python]] 2.6.x or 2.7.x
|
||||||
|
- [[django][Django]] 1.3
|
||||||
|
- [[south][South]] 0.7.4
|
||||||
|
- [[feedparser][Feedparser]] 5.1.1
|
||||||
|
- [[markdown][Markdown]] 2.1.1
|
||||||
|
|
||||||
|
* Installation
|
||||||
|
|
||||||
|
Must write...
|
||||||
|
|
||||||
|
* Configuration
|
||||||
|
|
||||||
|
The feeds that are loaded are defined in the database, through the
|
||||||
|
~Feed~ model. Now when you want to run your own instance, it might
|
||||||
|
be preferable *not* to load my feeds, so you should remove (part of)
|
||||||
|
or change ~aggregator/fixtures/initial_data.json~, otherwise your
|
||||||
|
feeds will be overwritten by my feeds every time you migrate.
|
157
site/stylesheet.css
Normal file
157
site/stylesheet.css
Normal file
|
@ -0,0 +1,157 @@
|
||||||
|
* {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: orange;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #262a2b;
|
||||||
|
color: #ffffff;
|
||||||
|
font-family: "DejaVu Sans", sans-serif;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 1px 3px;
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
code, pre {
|
||||||
|
font-family: "DejaVu Sans Mono", mono;
|
||||||
|
background-color: #181818;
|
||||||
|
color: #eeeeec;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
border-bottom: 2px solid #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1.title {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
border-bottom: 2px dotted #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
border-bottom: 2px dashed #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
border-bottom: 1px solid #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
border-bottom: 1px dotted #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
border-bottom: 1px dashed #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul ul {
|
||||||
|
margin: 5px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
margin: 20px 0 20px 40px;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width: 750px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dlmenu {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#postamble {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#org-div-home-and-up a {
|
||||||
|
text-decoration: none;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Org font-locking */
|
||||||
|
.src {
|
||||||
|
background-color: #002b36;
|
||||||
|
color: #839496;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-keyword {
|
||||||
|
color: #859900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-string {
|
||||||
|
color: #2aa198;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-function-name {
|
||||||
|
color: #268bd2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-doc {
|
||||||
|
color: #586e75;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-constant {
|
||||||
|
color: #2aa198;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-type {
|
||||||
|
color: #b58900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-regexp-grouping-backslash {
|
||||||
|
color: #b58900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-regexp-grouping-construct {
|
||||||
|
color: #cb4b16;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-builtin {
|
||||||
|
color: #859900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-negation-char {
|
||||||
|
color: #dc322f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-variable-name {
|
||||||
|
color: #268bd2;
|
||||||
|
}
|
10
site/windowmanagers.org
Normal file
10
site/windowmanagers.org
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
| herbstluftwm | c | manual | IPC (anything) |
|
||||||
|
| awesomewm | c | automatic | lua |
|
||||||
|
| wmx | ? | N/A | N/A |
|
||||||
|
| wm2 | ? | ? | N/A |
|
||||||
|
| dwm | c | automatic | c |
|
||||||
|
| spectrwm | c | automatic | text |
|
||||||
|
| kde | ? | N/A | graphical |
|
||||||
|
| gnome | ? | N/A | graphical |
|
||||||
|
| openbox | ? | N/A | xml |
|
||||||
|
| adwm | c | automatic | c? |
|
Loading…
Reference in a new issue