26 files changed, 149 insertions(+), 248 deletions(-)
A README.org
A build.sh
A el/get-feeds.el
A el/get-org-title.el
A el/get-posts.el
A el/pub.el
D feeds/coding/functional-programming.org
D feeds/coding/index.org
D feeds/handhelds/on-vacation-with-my-pinephone.org
D feeds/index.org
D feeds/projects/oomph.org
D feeds/queertopia/index.org
D index.org
D license.org
D pub.el
M res/base.css
D sitemap.org
R config.org => src/config.org
R feeds/handhelds/formatting-an-ipod.org => src/feeds/handhelds/formatting-an-ipod.org
R feeds/handhelds/index.org => src/feeds/handhelds/index.org
R feeds/handhelds/using-linux-mobile-for-1-month.org => src/feeds/handhelds/using-linux-mobile-for-1-month.org
A src/feeds/index.org
R feeds/projects/index.org => src/feeds/projects/index.org
R feeds/projects/polarplayer-studio.org => src/feeds/projects/polarplayer-studio.org
R README.org => src/index.org
A src/license.org
A README.org => README.org +1 -0
@@ 0,0 1,1 @@
+./src/index.org<
\ No newline at end of file
A build.sh => build.sh +2 -0
@@ 0,0 1,2 @@
+#!/bin/bash
+yes yes | emacs --batch -l ./el/pub.el
A el/get-feeds.el => el/get-feeds.el +9 -0
@@ 0,0 1,9 @@
+(setq this (file-name-directory load-file-name))
+(load-file
+ (format "%s/%s" this "get-org-title.el"))
+
+(defun extract (path)
+ (format "[[file:%s/index.org][%s]]" path (get-org-title (format "%s/index.org" path))))
+
+(defun get-feeds (path)
+ (mapcar '(lambda (p) (extract (format "%s/%s" path p))) (directory-files path nil "^[^.]*$")))
A el/get-org-title.el => el/get-org-title.el +10 -0
@@ 0,0 1,10 @@
+(defun get-org-title (file)
+ (let (title)
+ (when file
+ (with-temp-buffer
+ (insert-file-contents file)
+ (pcase (org-collect-keywords '("TITLE"))
+ (`(("TITLE" . ,val))
+ (setq title (car val)))))
+ title)))
+(provide 'get-org-title)
A el/get-posts.el => el/get-posts.el +12 -0
@@ 0,0 1,12 @@
+(setq this (file-name-directory load-file-name))
+(load-file
+ (format "%s/%s" this "get-org-title.el"))
+
+(defun extract (path)
+ (format "[[file:./%s][%s]]" path (get-org-title (format "%s" path))))
+
+(require 'seq)
+(defun get-posts (path)
+ (mapcar
+ '(lambda (p) (extract (format "%s/%s" path p)))
+ (remove "index.org" (directory-files path nil "[.]org$"))))
A el/pub.el => el/pub.el +36 -0
@@ 0,0 1,36 @@
+(require 'ox-publish)
+;; function run before the website is generated
+(defun before (n))
+;; function run after website has been generated
+(defun after (n))
+
+;; configure the project
+(setq org-publish-project-alist
+ '(
+ ;; build the blog source
+ ("src"
+ :base-directory "./src"
+ :base-file "index.org"
+ :recursive t
+ :publishing-directory "./build"
+ :auto-sitemap nil
+ :preparation-function before
+ :complete-function after)
+
+ ;; bundle the assets
+ ("res"
+ :base-directory "./res"
+ :base-extension "css\\|js\\|png\\|jpg"
+ :publishing-directory "./build/res"
+ :recursive t
+ :publishing-function org-publish-attachment
+ )
+
+ ;; combine the individual components into one
+ ("ccw.icu" :components ("src" "res"))
+ ))
+
+;; dynamic build
+;; force rebuild if "build" does not exist
+;; or updated changed files if build does exist
+(org-publish "ccw.icu" (not (file-directory-p "./build/")))
D feeds/coding/functional-programming.org => feeds/coding/functional-programming.org +0 -19
@@ 1,19 0,0 @@
-#+TITLE: Let's check out functional programming
-#+DESCRIPTION: I've never really understood functional programming. Lets have a look at some languages
-#+SETUPFILE: ../../config.org
-#+OPTIONS: toc:nil num:nil
-
-
-#+begin_src elisp :exports both
-(defun suc (x) (+ x 1))
-(defun add3 (x y z)
- (if (= y z) x
- (add3 (suc x) y (suc z))))
-(defun add (x y)
- (add3 x y 0))
-
-(print (add -3 5))
-#+end_src
-
-#+RESULTS:
-: 2
D feeds/coding/index.org => feeds/coding/index.org +0 -26
@@ 1,26 0,0 @@
-#+TITLE: Coding
-#+DESCRIPTION: Are you up for a coding challenge? You can find some of my weird side projects here
-#+SETUPFILE: ../../config.org
-#+OPTIONS: toc:nil num:nil
-#+DATE:<2023-01-29 Sun 16:20>
-
-There is nothing I can say to explain this,
-sometimes I just feel like writing some lines of code.
-But instead of throwing them away like a normal person,
-I hold onto them.
-
-And this is how they end up here.
-
-Test projects or challanges I try,
-that I never finish
-
-#+BEGIN_SRC bash :exports results
-for dir in $(find . -name '*.org' -maxdepth 1 -mindepth 1); do
- stext="$(echo $dir | sed -e "s/\.\///g" | sed -e "s/\.org$//g")"
- echo [[file:conding/$dir][$stext]]
-done
-#+END_SRC
-
-#+RESULTS:
-| [[file:conding/./functional-programming.org][functional-programming]] |
-| [[file:conding/./index.org][index]] |
D feeds/handhelds/on-vacation-with-my-pinephone.org => feeds/handhelds/on-vacation-with-my-pinephone.org +0 -14
@@ 1,14 0,0 @@
-#+TITLE: Using the pinephone as a laptop replacement
-#+DESCRIPTION: I left my laptop at home and took my pinephone instead
-#+SETUPFILE: ../../config.org
-#+DATE: <2022-11-16 Wed 14:00>
-
-* What is a pine-phone
-Although I doubt that you'd read this without having heard of the pinephone,
-let me explain the concept in a couple of sentences:
-
-* Why?
-Looking at the title this might sound like a stupid idea,
-but thing about it for a moment:
-- apple uses arm processors as well[fn::I know their processors are faster]
-- the pinephone is able to run a desktop linux operating system
D feeds/index.org => feeds/index.org +0 -35
@@ 1,35 0,0 @@
-#+TITLE: Blog Posts
-#+DESCRIPTION: Index page with all of my blog entries listed by category
-#+SETUPFILE: ../config.org
-#+OPTIONS: toc:nil num:nil
-#+DATE:<2022-06-17 Fri 13:30>
-
-Whoooaa you have found my blog-post index.
-
-See below for a list of all of the posts I posted.
-You can click on the folder name
-if you want to see a list of all posts in that category.
-Or click on the given file name if you want to read the post.
-
-#+begin_src bash :exports results
-for dir in $(find .// -type d -maxdepth 1 -mindepth 1); do
- for file in $(find $dir -name '*.org' -type f -maxdepth 1 -mindepth 1); do
- category="$(echo $dir | sed -e "s/\.\/\///g")"
- post="$(echo $file | sed -e "s/\.\/\/$category\///g")"
- stylized="$(echo $post | sed -e "s/.org$//g")"
- echo [[file:$dir/index.org][$category]]/[[file:$file][$stylized]]
- done
-done
-#+end_src
-
-#+RESULTS:
-| [[file:.//projects/index.org][projects]]/[[file:.//projects/index.org][index]] |
-| [[file:.//projects/index.org][projects]]/[[file:.//projects/polarplayer-studio.org][polarplayer-studio]] |
-| [[file:.//projects/index.org][projects]]/[[file:.//projects/oomph.org][oomph]] |
-| [[file:.//handhelds/index.org][handhelds]]/[[file:.//handhelds/index.org][index]] |
-| [[file:.//handhelds/index.org][handhelds]]/[[file:.//handhelds/using-linux-mobile-for-1-month.org][using-linux-mobile-for-1-month]] |
-| [[file:.//handhelds/index.org][handhelds]]/[[file:.//handhelds/on-vacation-with-my-pinephone.org][on-vacation-with-my-pinephone]] |
-| [[file:.//handhelds/index.org][handhelds]]/[[file:.//handhelds/formatting-an-ipod.org][formatting-an-ipod]] |
-| [[file:.//coding/index.org][coding]]/[[file:.//coding/functional-programming.org][functional-programming]] |
-| [[file:.//coding/index.org][coding]]/[[file:.//coding/index.org][index]] |
-| [[file:.//queertopia/index.org][queertopia]]/[[file:.//queertopia/index.org][index]] |
D feeds/projects/oomph.org => feeds/projects/oomph.org +0 -10
@@ 1,10 0,0 @@
-#+TITLE: Oomph
-#+DESCRIPTION: Introduction Oomph! A mastodon music-genre bot
-#+SETUPFILE: ../../config.org
-#+DATE:<2022-06-17 Fri 10:30>
-
-* Why?
-
-* About
-
-* Follow Me
D feeds/queertopia/index.org => feeds/queertopia/index.org +0 -29
@@ 1,29 0,0 @@
-#+TITLE: Queertopia
-#+DESCRIPTION: Im Queer! And how could I not have a blog about queer-ness?
-#+SETUPFILE: ../../config.org
-#+OPTIONS: toc:nil num:nil
-#+DATE:<2023-01-29 Sun 16:20>
-
-You probably visited my [[../../index.org][homepage]] before,
-but did you know that I identify as =trans/nonbinary=?
-
-*Well now you do.*
-
-* Welcome to Queertopia
-May I say: =Welcome to queertopia=,
-the place where I share my queer thoughts,
-come up with weird proposals
-and maybe I'm even able to teach you something.
-
-Either way,
-it is amazing to have you here.
-
-#+BEGIN_SRC bash :exports results
-for dir in $(find . -name '*.org' -maxdepth 1 -mindepth 1); do
- stext="$(echo $dir | sed -e "s/\.\///g" | sed -e "s/\.org$//g")"
- echo [[file:conding/$dir][$stext]]
-done
-#+END_SRC
-
-#+RESULTS:
-: [[file:conding/./index.org][index]]
D index.org => index.org +0 -1
@@ 1,1 0,0 @@
-#+INCLUDE: ./README.org
D license.org => license.org +0 -1
@@ 1,1 0,0 @@
-Content on this website and on the subsites is available under CC BY-SA.
D pub.el => pub.el +0 -31
@@ 1,31 0,0 @@
-(require 'ox-publish)
-
-; the assets and build directory pipeline
-; creates the build folder (if needed)
-; deleted the old asset folder (if needed)
-; copies new asset version
-(defun assets (n)
- (if (not (file-directory-p "./build"))
- (make-directory "./build" t))
- (delete-directory "./build/res" t)
- (copy-directory "./res" "./build/res"))
-
-; configure the project
-(setq org-publish-project-alist
- '(
- ("ccw.icu"
- :base-directory "."
- :base-file "index.org"
- :recursive t
- :publishing-directory "./build"
- :auto-sitemap nil
- :sitemap-filename "sitemap.org"
- :sitemap-title "Sitemap"
- :preparation-function assets
- )
- ))
-
-; dynamic build
-; force rebuild if "build" does not exist
-; or updated changed files if build does exist
-(org-publish "ccw.icu" (not (file-directory-p "./build/")))
M res/base.css => res/base.css +23 -6
@@ 53,7 53,8 @@ a:hover {
}
figure {
margin: 0;
- padding: 0.4rem
+ padding: 0.4rem;
+ max-width: 80%;
}
img {
border-radius: 1rem;
@@ 117,13 118,22 @@ table tr:nth-child(2n) {
.org-src-container {
border-radius: 8px;
- padding-top: 1rem;
background: var(--color-base);
border: 4px solid var(--color-base);
position: relative;
overflow: hidden;
max-height: 40vh;
}
+.org-src-container > label {
+ display: flex;
+ opacity: 0.8;
+ font-size: 0.8rem;
+ justify-content: right;
+ padding: 0.1rem;
+}
+.org-src-container > label > .listing-number {
+ margin-right: 0.2rem
+}
.src {
background: var(--color-box-light);
width: calc(100% - 2 * 0.4rem);
@@ 131,8 141,12 @@ table tr:nth-child(2n) {
border: none;
padding: 0.4rem;
margin: 0;
+ margin-top: 1rem;
overflow: auto;
}
+label ~ .src {
+ margin-top: 0;
+}
.example {
background: var(--color-box-light);
border-radius: 8px;
@@ 148,14 162,13 @@ table tr:nth-child(2n) {
left: 0
}
-.org-src-container, .example {
- transition: box-shadow .4s;
+.org-src-container, .example, figure {
position: relative !important;
overflow: inherit;
}
-.org-src-container::after,.example::after {
+.org-src-container::after,.example::after, figure::after {
--offset: 0.4rem;
content: '';
@@ 177,7 190,11 @@ table tr:nth-child(2n) {
.example::after {
--offset: 0.2rem;
}
-.org-src-container:hover::after,.example:hover::after {
+figure::after {
+ --offset: 0.1rem;
+ border-radius: 1rem;
+}
+.org-src-container:hover::after,.example:hover::after, figure:hover::after {
opacity: 0.8;
animation: trans-rotate 10s both 0s linear infinite;
}
D sitemap.org => sitemap.org +0 -20
@@ 1,20 0,0 @@
-#+TITLE: Sitemap
-
-- [[file:README.org][Jakob Meier]]
-- [[file:config.org][config]]
-- [[file:index.org][index]]
-- [[file:license.org][license]]
-- feeds
- - [[file:feeds/index.org][Blog Posts]]
- - announcements
- - [[file:feeds/announcements/index.org][Announcements]]
- - coding
- - [[file:feeds/coding/functional-programming.org][Let's check out functional programming]]
- - handhelds
- - [[file:feeds/handhelds/index.org][Smartphone related posts]]
- - [[file:feeds/handhelds/using-linux-mobile-for-1-month.org][Using Linux on my phone for 1 month]]
- - [[file:feeds/handhelds/on-vacation-with-my-pinephone.org][Using the pinephone as a laptop replacement]]
- - [[file:feeds/handhelds/formatting-an-ipod.org][iPod USB Key and going back to normal]]
- - projects
- - [[file:feeds/projects/polarplayer-studio.org][PolarPlayer-Studio]]
- - [[file:feeds/projects/index.org][Projects]]>
\ No newline at end of file
R config.org => src/config.org +0 -0
R feeds/handhelds/formatting-an-ipod.org => src/feeds/handhelds/formatting-an-ipod.org +0 -0
R feeds/handhelds/index.org => src/feeds/handhelds/index.org +6 -10
@@ 26,15 26,11 @@ with a lot of elements strip away from it,
and a lot of binary blobs.
Additionally most phones are stuck on ~4.*~ kernels
-#+BEGIN_SRC bash :exports results
-for dir in $(find . -name '*.org' -maxdepth 1 -mindepth 1); do
- stext="$(echo $dir | sed -e "s/\.\///g" | sed -e "s/\.org$//g")"
- echo [[file:phones/$dir][$stext]]
-done
-#+END_SRC
+#+begin_src elisp :exports results :results value list
+(load-file "../../../el/get-posts.el")
+(get-posts "../../feeds/handhelds")
+#+end_src
#+RESULTS:
-| [[file:phones/./index.org][index]] |
-| [[file:phones/./using-linux-mobile-for-1-month.org][using-linux-mobile-for-1-month]] |
-| [[file:phones/./on-vacation-with-my-pinephone.org][on-vacation-with-my-pinephone]] |
-| [[file:phones/./formatting-an-ipod.org][formatting-an-ipod]] |
+- [[file:./../../feeds/handhelds/formatting-an-ipod.org][iPod USB Key and going back to normal]]
+- [[file:./../../feeds/handhelds/using-linux-mobile-for-1-month.org][Using Linux on my phone for 1 month]]
R feeds/handhelds/using-linux-mobile-for-1-month.org => src/feeds/handhelds/using-linux-mobile-for-1-month.org +0 -0
A src/feeds/index.org => src/feeds/index.org +23 -0
@@ 0,0 1,23 @@
+#+TITLE: Blog Posts
+#+DESCRIPTION: Index page with all of my blog entries listed by category
+#+SETUPFILE: ../config.org
+#+OPTIONS: toc:nil num:nil
+#+DATE:<2022-06-17 Fri 13:30>
+
+Whoooaa you have found my blog-post index.
+
+See below for a list of all of the posts I posted.
+You can click on the folder name
+if you want to see a list of all posts in that category.
+Or click on the given file name if you want to read the post.
+
+#+begin_src elisp :exports results :results value list
+(load-file "../../el/get-feeds.el")
+(get-feeds "./")
+#+end_src
+
+#+RESULTS:
+- [[file:.//coding/index.org][Coding]]
+- [[file:.//handhelds/index.org][Smartphone related posts]]
+- [[file:.//projects/index.org][Projects]]
+- [[file:.//queertopia/index.org][Welcome to Queertopia]]
R feeds/projects/index.org => src/feeds/projects/index.org +6 -9
@@ 20,14 20,11 @@ Additionally I also have a [[https://github.com/comcloudway/][github]] account,
but I only ever mirror repos over there
and occasionally use it to fork other repos.
-#+BEGIN_SRC bash :exports results
-for dir in $(find . -name '*.org' -maxdepth 1 -mindepth 1); do
- stext="$(echo $dir | sed -e "s/\.\///g" | sed -e "s/\.org$//g")"
- echo [[file:projects/$dir][$stext]]
-done
-#+END_SRC
+#+begin_src elisp :exports results :results value list
+(load-file "../../../el/get-posts.el")
+(get-posts "../../feeds/projects")
+#+end_src
#+RESULTS:
-| [[file:projects/./index.org][index]] |
-| [[file:projects/./polarplayer-studio.org][polarplayer-studio]] |
-| [[file:projects/./oomph.org][oomph]] |
+- [[file:./../../feeds/projects/oomph.org][Oomph]]
+- [[file:./../../feeds/projects/polarplayer-studio.org][PolarPlayer-Studio]]
R feeds/projects/polarplayer-studio.org => src/feeds/projects/polarplayer-studio.org +0 -0
R README.org => src/index.org +15 -37
@@ 29,48 29,26 @@ If you noticed that some of them are outdated,
please contact me (the alpine website has a button).
* Categories
-#+BEGIN_EXPORT html
-<i class="horizontal-table"></i>
-#+END_EXPORT
-#+begin_src bash :exports results
-for dir in $(find ./feeds/ -type d -maxdepth 1 -mindepth 1); do
- title="$(echo $dir | sed -e "s/\.\/feeds\///g")"
- echo [[file:feeds/$dir/index.org][$title]]
-done
-#+end_src
-#+RESULTS:
-| [[file:feeds/./feeds/projects/index.org][projects]] |
-| [[file:feeds/./feeds/handhelds/index.org][handhelds]] |
-| [[file:feeds/./feeds/coding/index.org][coding]] |
-| [[file:feeds/./feeds/queertopia/index.org][queertopia]] |
+To reduce the distance you have to scroll,
+I removed the /All posts/ list.
+
+If you are looking for something specific,
+just check the appropriate category.
+And if you are just here to spend some time reading,
+pick a category that seems interestign to you
+
-* All posts
-#+begin_src bash :exports results
-for dir in $(find ./feeds/ -type d -maxdepth 1 -mindepth 1); do
- for file in $(find $dir -name '*.org' -type f -maxdepth 1 -mindepth 1); do
- category="$(echo $dir | sed -e "s/\.\/feeds\///g")"
- post="$(echo $file | sed -e "s/\.\/feeds\/$category\///g")"
- stylized="$(echo $post | sed -e "s/.org$//g")"
- echo [[file:$dir/index.org][$category]]/[[file:$file][$stylized]]
- done
-done
+#+begin_src elisp :exports results :results value list
+(load-file "../el/get-feeds.el")
+(get-feeds "./feeds")
#+end_src
#+RESULTS:
-| [[file:./feeds/projects/index.org][projects]]/[[file:./feeds/projects/index.org][index]] |
-| [[file:./feeds/projects/index.org][projects]]/[[file:./feeds/projects/polarplayer-studio.org][polarplayer-studio]] |
-| [[file:./feeds/projects/index.org][projects]]/[[file:./feeds/projects/oomph.org][oomph]] |
-| [[file:./feeds/handhelds/index.org][handhelds]]/[[file:./feeds/handhelds/index.org][index]] |
-| [[file:./feeds/handhelds/index.org][handhelds]]/[[file:./feeds/handhelds/using-linux-mobile-for-1-month.org][using-linux-mobile-for-1-month]] |
-| [[file:./feeds/handhelds/index.org][handhelds]]/[[file:./feeds/handhelds/on-vacation-with-my-pinephone.org][on-vacation-with-my-pinephone]] |
-| [[file:./feeds/handhelds/index.org][handhelds]]/[[file:./feeds/handhelds/formatting-an-ipod.org][formatting-an-ipod]] |
-| [[file:./feeds/coding/index.org][coding]]/[[file:./feeds/coding/functional-programming.org][functional-programming]] |
-| [[file:./feeds/coding/index.org][coding]]/[[file:./feeds/coding/index.org][index]] |
-| [[file:./feeds/queertopia/index.org][queertopia]]/[[file:./feeds/queertopia/index.org][index]] |
-| [[file:./feeds/queertopia/index.org][queertopia]]/[[file:./feeds/queertopia/gay-walk.org][gay-walk]] |
-| [[file:./feeds/queertopia/index.org][queertopia]]/[[file:./feeds/queertopia/gender-triangle.org][gender-triangle]] |
-| [[file:./feeds/queertopia/index.org][queertopia]]/[[file:./feeds/queertopia/gender-inclusivity-in-germany.org][gender-inclusivity-in-germany]] |
+- [[file:../src/feeds/coding/index.org][Coding]]
+- [[file:../src/feeds/handhelds/index.org][Smartphone related posts]]
+- [[file:../src/feeds/projects/index.org][Projects]]
+- [[file:../src/feeds/queertopia/index.org][Welcome to Queertopia]]
* Social
I occasionally post over on [[https://fosstodon.org/@comcloudway][Mastodon]],
A src/license.org => src/license.org +6 -0
@@ 0,0 1,6 @@
+All written content on this website
+and on the sub-sites is available under CC BY-SA,
+unless stated otherwise.
+
+For source-code you have to consult the project license,
+if specified.