aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore9
-rw-r--r--Makefile43
-rw-r--r--archetypes/default.md6
-rw-r--r--config.toml13
-rw-r--r--content/_index.org (renamed from src/index.org)30
-rw-r--r--content/blog/20200128.org (renamed from blog/20200128.org)3
-rw-r--r--content/blog/20200406.org (renamed from blog/20200406.org)1
-rw-r--r--content/blog/20200410.org (renamed from blog/20200410.org)1
-rw-r--r--content/blog/20200508.org (renamed from blog/20200508.org)1
-rw-r--r--content/blog/20200528.org (renamed from blog/20200528.org)1
-rw-r--r--content/blog/20200617.org (renamed from blog/20200617.org)1
-rw-r--r--content/blog/20200803.org (renamed from blog/20200803.org)1
-rw-r--r--content/blog/20201210.org (renamed from blog/20201210.org)1
-rw-r--r--content/blog/20210303.org (renamed from blog/20210303.org)1
-rw-r--r--content/blog/20210415.org (renamed from blog/20210415.org)16
-rw-r--r--content/blog/20210525.org (renamed from blog/20210525.org)5
-rw-r--r--content/blog/20210630.org15
-rw-r--r--content/blog/20210831.org26
-rw-r--r--content/blog/_index.md5
-rw-r--r--content/docs.org (renamed from src/docs.org)19
-rw-r--r--content/download.org (renamed from src/download.org)7
-rw-r--r--content/install.org352
-rw-r--r--content/mailing-lists.org (renamed from src/mailing-lists.org)0
-rw-r--r--content/news/20191210.org (renamed from news/20191210.org)2
-rw-r--r--content/news/20191212.org (renamed from news/20191212.org)2
-rw-r--r--content/news/20191217.org (renamed from news/20191217.org)2
-rw-r--r--content/news/20191218.org (renamed from news/20191218.org)2
-rw-r--r--content/news/20200109.org (renamed from news/20200109.org)2
-rw-r--r--content/news/20200110.org (renamed from news/20200110.org)2
-rw-r--r--content/news/20200113.org (renamed from news/20200113.org)2
-rw-r--r--content/news/20200115.org (renamed from news/20200115.org)2
-rw-r--r--content/news/20200122.org (renamed from news/20200122.org)2
-rw-r--r--content/news/20200128.org (renamed from news/20200128.org)2
-rw-r--r--content/news/20200213.org (renamed from news/20200213.org)2
-rw-r--r--content/news/20200214.org (renamed from news/20200214.org)2
-rw-r--r--content/news/20200218.org (renamed from news/20200218.org)2
-rw-r--r--content/news/20200405.org (renamed from news/20200405.org)2
-rw-r--r--content/news/20200406.org (renamed from news/20200406.org)2
-rw-r--r--content/news/20200410.org (renamed from news/20200410.org)2
-rw-r--r--content/news/20200427.org (renamed from news/20200427.org)2
-rw-r--r--content/news/20200510.org (renamed from news/20200510.org)2
-rw-r--r--content/news/20200519.org (renamed from news/20200519.org)2
-rw-r--r--content/news/20200526.org (renamed from news/20200526.org)2
-rw-r--r--content/news/20200617.org (renamed from news/20200617.org)2
-rw-r--r--content/news/20200727.org (renamed from news/20200727.org)2
-rw-r--r--content/news/20200903.org (renamed from news/20200903.org)2
-rw-r--r--content/news/20200916.org (renamed from news/20200916.org)2
-rw-r--r--content/news/20210228.org (renamed from news/20210228.org)2
-rw-r--r--content/news/20210304.org (renamed from news/20210304.org)2
-rw-r--r--content/news/20210308.org (renamed from news/20210308.org)2
-rw-r--r--content/news/20210401.org (renamed from news/20210401.org)2
-rw-r--r--content/news/20210406.org (renamed from news/20210406.org)2
-rw-r--r--content/news/20210522.org (renamed from news/20210522.org)2
-rw-r--r--content/people.org (renamed from src/people.org)0
-rw-r--r--content/sources.org32
m---------cpt0
-rw-r--r--elisp/no-littering.el454
-rwxr-xr-xhooks/pre-commit5
-rw-r--r--layouts/_default/baseof.html11
-rw-r--r--layouts/_default/baseof.txt1
-rw-r--r--layouts/_default/rss.xml39
-rw-r--r--layouts/_default/single.html3
-rw-r--r--layouts/_default/single.txt3
-rw-r--r--layouts/blog/list.html8
-rw-r--r--layouts/blog/single.html7
-rw-r--r--layouts/news/list.html7
-rw-r--r--layouts/news/list.txt12
-rw-r--r--layouts/news/single.html6
-rw-r--r--layouts/news/single.txt6
-rw-r--r--layouts/page/index.html16
-rw-r--r--layouts/page/index.txt3
-rw-r--r--layouts/partials/footer.html6
-rw-r--r--layouts/partials/head.html10
-rw-r--r--layouts/partials/navbar.html13
-rw-r--r--layouts/shortcodes/pkg.html1
-rw-r--r--layouts/shortcodes/pkg.txt1
-rwxr-xr-xorg-publish.el358
-rw-r--r--src/install.org4
m---------style0
m---------texidocs0
80 files changed, 699 insertions, 924 deletions
diff --git a/.gitignore b/.gitignore
index 7fafb4f..1c38630 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,3 @@
/.cache/
-/news/index.org
-/news/news.org
-/news/latest-news.org
-/blog/latest-blog.org
-/blog/index.org
-/blog/rss.org
-/docs/
+/public/
+/static/
diff --git a/Makefile b/Makefile
index 3552b5d..8d8d59a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,32 +1,27 @@
EMACS = emacs
-all: docs style
- ${EMACS} --batch --script ./org-publish.el
-
-docs: texidocs/carbslinux.texi texidocs/carbslinux.txt
- mkdir -p docs/docs
- makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css -o docs/docs/cpt cpt/docs/cpt.texi
- makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css --no-split -o docs/docs/cpt.html cpt/docs/cpt.texi
- makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css -o docs/docs/carbslinux texidocs/carbslinux.texi
- makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css --no-split -o docs/docs/carbslinux.html texidocs/carbslinux.texi
- cp texidocs/carbslinux.txt docs/docs/carbslinux.txt
- cp cpt/docs/cpt.txt docs/docs/cpt.txt
-
-style: style/carbslinux.css
- mkdir -p docs
- cp style/carbslinux.css docs/style.css
+all: public
+
+public: style texidocs/carbslinux.texi texidocs/carbslinux.txt
+ cp texidocs/install.org content/install.org
+ hugo
+ mkdir -p public/docs
+ makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css -o public/docs/cpt cpt/docs/cpt.texi
+ makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css --no-split -o public/docs/cpt.html cpt/docs/cpt.texi
+ makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css -o public/docs/carbslinux texidocs/carbslinux.texi
+ makeinfo --html --css-ref=https://www.gnu.org/software/gnulib/manual.css --no-split -o public/docs/carbslinux.html texidocs/carbslinux.texi
+ cp texidocs/carbslinux.txt public/docs/carbslinux.txt
+ cp texidocs/install.txt public/install.txt
+ cp cpt/docs/cpt.txt public/docs/cpt.txt
+
+style: style/carbslinux.min.css
+ mkdir -p static
+ cp style/carbslinux.css static/style.css
update-submodules:
git submodule update --remote --init --recursive -f
-publish:
- ${EMACS} --batch --script ./org-publish.el
-
-rebuild:
- rm -rf .cache/var/timestamps
- ${MAKE} all
-
clean:
- rm -rf ./docs ./.cache/var/timestamps
+ rm -rf public static
-.PHONY: all docs style update-submodules publish rebuild clean
+.PHONY: all public style update-submodules publish rebuild clean
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..00e77bd
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,6 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
+
diff --git a/config.toml b/config.toml
new file mode 100644
index 0000000..b32188a
--- /dev/null
+++ b/config.toml
@@ -0,0 +1,13 @@
+baseURL = "https://carbslinux.org"
+languageCode = "en-us"
+title = "Carbs Linux"
+disableKinds = ["taxonomy", "term"]
+pygmentsUseClasses = true
+
+[markup.highlight]
+codeFences = true
+hl_Lines = " "
+
+[permalinks]
+blog = "/:year/:month/:title/"
+news = "/news/:year-:month-:day/"
diff --git a/src/index.org b/content/_index.org
index 9a01476..cbc838f 100644
--- a/src/index.org
+++ b/content/_index.org
@@ -1,4 +1,4 @@
-#+TITLE: Carbs Linux
+#+TITLE: Home
#+DESCRIPTION: a simple Linux distribution
#+OPTIONS: title:nil
@@ -35,17 +35,18 @@ building new software. The majority of the base packages are statically linked.
Carbs Linux has support for multiple init systems and service supervisors. In
the main repository are
-- [[carbs-pkg:core/sinit][sinit]] / [[carbs-pkg:extra/shinit][shinit]]
-- [[carbs-pkg:core/busybox][busybox-init]] (SysVinit clone)
-- [[carbs-pkg:core/runit][runit-init]]
+- {{< pkg "core/sinit" >}}
+- {{< pkg "extra/shinit" >}}
+- {{< pkg "core/busybox" "busybox-init" >}}
+- {{< pkg "core/runit" "runit-init" >}}
for init systems, and
-- [[carbs-pkg:core/sysmgr][sysmgr]]
-- [[carbs-pkg:core/busybox][busybox-runit]]
-- [[carbs-pkg:core/runit][runit]]
+- {{< pkg "core/sysmgr" >}}
+- {{< pkg "core/busybox" "busybox-runit" >}}
+- {{< pkg "core/runit" >}}
-for service supervisors. The [[carbs-pkg:core/carbs-init][carbs-init]] package is the collection of init
+for service supervisors. The {{< pkg "core/carbs-init" >}} package is the collection of init
scripts that ensure the interoperability of these init and service systems, and
make it easier for the user to switch to their preferred combinations of system
supervision.
@@ -62,16 +63,3 @@ other system supervision technique along with your own init scripts.
- IRC - =#carbslinux= on libera.chat
- Reddit - [[https://reddit.com/r/carbslinux][r/carbslinux]]
- [[file:mailing-lists.org][Mailing Lists]]
-
-* Latest Blog Posts
-
-#+INCLUDE: ../blog/latest-blog.org :minlevel 1
-
-* News
-:PROPERTIES:
-:CUSTOM_ID: news
-:END:
-
-[[file:./news.xml][RSS Feed]] | [[file:./news][See all news]]
-
-#+INCLUDE: ../news/latest-news.org :minlevel 2
diff --git a/blog/20200128.org b/content/blog/20200128.org
index 9309a99..97b771a 100644
--- a/blog/20200128.org
+++ b/content/blog/20200128.org
@@ -1,6 +1,7 @@
#+TITLE: Switching to New Website
-#+DATE: <2020-01-28 Tue>
+#+DATE: 2020-01-28
#+AUTHOR: Cem Keylan
+#+ALIASES[]: /blog/20200128.html
In case you haven't seen it before, this website was powered by [[http://werc.cat-v.org][werc]]. And even
though I liked it really much, it was too powerful for a small website like
diff --git a/blog/20200406.org b/content/blog/20200406.org
index 08e79bf..c993b6f 100644
--- a/blog/20200406.org
+++ b/content/blog/20200406.org
@@ -1,6 +1,7 @@
#+TITLE: Roadmap for Carbs
#+AUTHOR: Cem Keylan
#+DATE: <2020-04-06 Mon>
+#+ALIASES[]: /blog/20200406.html
It has been a busy week. There are lots of changes in direction, and more to
come. I want to talk a little about all of them.
diff --git a/blog/20200410.org b/content/blog/20200410.org
index 0868c2d..8bdf57a 100644
--- a/blog/20200410.org
+++ b/content/blog/20200410.org
@@ -1,6 +1,7 @@
#+TITLE: Outsource Repository Concept
#+AUTHOR: Cem Keylan
#+DATE: <2020-04-10 Fri>
+#+ALIASES[]: /blog/20200410.html
In April 3rd, I have added submodule support for Carbs Linux's fork of =kiss=.
Now, from that sentence, it really doesn't sound exciting at all. But in
diff --git a/blog/20200508.org b/content/blog/20200508.org
index 1df12e7..8de5de0 100644
--- a/blog/20200508.org
+++ b/content/blog/20200508.org
@@ -1,6 +1,7 @@
#+TITLE: The Relation of Carbs and KISS
#+AUTHOR: Cem Keylan
#+DATE: <2020-05-08 Fri>
+#+ALIASES[]: /blog/20200508.html
Since I have forked KISS, I have received many questions that can be summarized
as "Why?". I have realized that I never truly answered this question. That's the
diff --git a/blog/20200528.org b/content/blog/20200528.org
index b37498d..54a140b 100644
--- a/blog/20200528.org
+++ b/content/blog/20200528.org
@@ -1,6 +1,7 @@
#+TITLE: kiss 2.0.0 and Overall Changes
#+AUTHOR: Cem Keylan
#+DATE: <2020-05-28 Thu>
+#+ALIASES[]: /blog/20200528.html
Carbs Linux kiss version 2.0.0 has been released which introduces rsync
repositories.
diff --git a/blog/20200617.org b/content/blog/20200617.org
index 52143ff..2524fb6 100644
--- a/blog/20200617.org
+++ b/content/blog/20200617.org
@@ -1,6 +1,7 @@
#+TITLE: June 2020 News Post
#+AUTHOR: Cem Keylan
#+DATE: <2020-06-17 Wed>
+#+ALIASES[]: /blog/20200617.html
This will be an active month for Carbs as major changes to the base and the
package manager will be coming up.
diff --git a/blog/20200803.org b/content/blog/20200803.org
index 21404e8..c2c2b6b 100644
--- a/blog/20200803.org
+++ b/content/blog/20200803.org
@@ -1,6 +1,7 @@
#+TITLE: August 2020 News Post
#+AUTHOR: Cem Keylan
#+DATE: <2020-08-03 Mon>
+#+ALIASES[]: /blog/20200803.html
We are having some stalls during this summer, as I am currently working on
university-related stuff. Nonetheless, there are some important changes that I
diff --git a/blog/20201210.org b/content/blog/20201210.org
index 7da78cb..f945dc5 100644
--- a/blog/20201210.org
+++ b/content/blog/20201210.org
@@ -1,6 +1,7 @@
#+TITLE: First Year of Carbs Linux
#+AUTHOR: Cem Keylan
#+DATE: <2020-12-10 Thu>
+#+ALIASES[]: /blog/20201210.html
December 10, 2020 marks the first year after the initial release of Carbs Linux.
When I forked the KISS Linux repository on the 9th of December, I was fairly new
diff --git a/blog/20210303.org b/content/blog/20210303.org
index a1bb161..bf7ad96 100644
--- a/blog/20210303.org
+++ b/content/blog/20210303.org
@@ -1,6 +1,7 @@
#+TITLE: March 2021 News Post
#+DATE: <2021-03-03 Wed>
#+AUTHOR: Cem Keylan
+#+ALIASES[]: /blog/20210303.html
Greetings! I am really happy to announce some few changes to the distribution. I
wanted to write a new blog post to summarise them so you can get up to what is
diff --git a/blog/20210415.org b/content/blog/20210415.org
index 4ebf358..609af88 100644
--- a/blog/20210415.org
+++ b/content/blog/20210415.org
@@ -1,6 +1,7 @@
#+TITLE: April 2021 News Post
#+DATE: <2021-04-15 Thu>
#+AUTHOR: Cem Keylan
+#+ALIASES[]: /blog/20210415.html
Greetings from the cruellest month of the year! We have some important
topics this month that I wanted to share with you.
@@ -17,7 +18,7 @@ releases, which contained a variety of changes made since December. The
[[https://fossil.carbslinux.org/cpt/log][Changelog]] details them on our new Fossil repository, which I will be talking
about more on a later section of this post.
-As I have mentioned on the [[file:20210303.org::#next-release-for-cpt][previous news post]], I was holding the release for a
+As I have mentioned on the [[{{<relref "20210303.org#next-release-for-cpt">}}][previous news post]], I was holding the release for a
few bugfixes, and documentation. The documentation is complete enough to be
shipped, but there are still some things to add. The manual pages, and the
documentation for the user tools, however, are considered complete.
@@ -36,12 +37,13 @@ A new tarball has been released after almost 7 months! This tarball targets the
:END:
Releases are now signed with the OpenBSD tool [[https://man.openbsd.org/signify][signify(1)]] instead of GnuPG. There
-are two packages on our repository that provide this tool, [[carbs-pkg:core/otools][otools]], and [[carbs-pkg:extra/signify][signify]].
-Debian-based distributions usually provide it under =signify-openbsd=, and other
-distributions provide it as just =signify=. Each release will have a different
-public key, those can be found on [[https://dl.carbslinux.org/keys]]. Since the
-public keys are so small, I will also be embedding the latest release key to the
-README file of the package repository, and the installation manual.
+are two packages on our repository that provide this tool, {{<pkg "core/otools">}},
+and {{<pkg "extra/signify">}}. Debian-based distributions usually provide it
+under =signify-openbsd=, and other distributions provide it as just =signify=.
+Each release will have a different public key, those can be found on
+[[https://dl.carbslinux.org/keys]]. Since the public keys are so small, I will also
+be embedding the latest release key to the README file of the package
+repository, and the installation manual.
*** The state of i686
:PROPERTIES:
diff --git a/blog/20210525.org b/content/blog/20210525.org
index e19039a..ecbd070 100644
--- a/blog/20210525.org
+++ b/content/blog/20210525.org
@@ -1,6 +1,7 @@
#+TITLE: May 2021 News Post
-#+DATE: <2021-05-25 Tue>
+#+DATE: 2021-05-25
#+AUTHOR: Cem Keylan
+#+ALIASES[]: /blog/20210525.html
Welcome to May! It has been a rather quiet month, mostly dedicated to fixing
some small bugs and working on some features.
@@ -12,7 +13,7 @@ some small bugs and working on some features.
:CUSTOM_ID: fossil-support
:END:
-In the [[file:20210415.org::#fossil][previous news post]] I mentioned adding fossil support to the package
+In the [[{{< relref "20210415.org#fossil" >}}][previous news post]] I mentioned adding fossil support to the package
manager. Fossil support is now merged to the trunk branch of the package
manager, and I have completely rewritten the repository backend which has
better performance and is easier to extend. There are still some changes to
diff --git a/content/blog/20210630.org b/content/blog/20210630.org
new file mode 100644
index 0000000..48611ac
--- /dev/null
+++ b/content/blog/20210630.org
@@ -0,0 +1,15 @@
+#+TITLE: June 2021 News Post
+#+DATE: 2021-06-30
+#+AUTHOR: Cem Keylan
+#+ALIASES[]: /blog/20210630.html
+
+Hello! This month was rather slow for me while I was mostly away for some
+vacation and I had some connectivity issues. I mostly tried to keep the packages
+up to date, and to keep up with the IRC channel as I've had some issues with the
+new logger we are using in the channel. I have very recently returned to home,
+and I'm mostly working on with the next release of the package manager.
+
+Hopefully, next month will be more newsworthy as I will take my time to work on
+the new package repository backend, and document its features.
+
+See you on the next post!
diff --git a/content/blog/20210831.org b/content/blog/20210831.org
new file mode 100644
index 0000000..f39a3c9
--- /dev/null
+++ b/content/blog/20210831.org
@@ -0,0 +1,26 @@
+#+TITLE: August 2021 News Post
+#+DATE: 2021-08-31
+#+AUTHOR: Cem Keylan
+#+DRAFT: true
+
+After a long absence during the summer, I think it's the appropriate time to
+write a new blog post about the changes that arrived to the distribution.
+
+#+TOC: headlines 1 local
+
+* Repository meta file
+
+You might have noticed that most packages now contain a file named =meta=. This
+file contains a small description, license for the package, and the maintainer
+information of the package. A sample meta file looks like the following:
+
+#+begin_example
+description = Carbs Packaging Tools
+license = MIT
+maintainer = Cem Keylan <cem@example.com>
+#+end_example
+
+
+* TODO motd file
+* TODO kiss compatibility
+* TODO linux-headers
diff --git a/content/blog/_index.md b/content/blog/_index.md
new file mode 100644
index 0000000..a2797a4
--- /dev/null
+++ b/content/blog/_index.md
@@ -0,0 +1,5 @@
+---
+title: Blog Index
+---
+
+This is the Carbs Linux blog index. You can find every post here.
diff --git a/src/docs.org b/content/docs.org
index c8d0380..5737f51 100644
--- a/src/docs.org
+++ b/content/docs.org
@@ -1,4 +1,5 @@
#+TITLE: Documentation
+#+ALIASES[]: /docs.html
Below are sources of documentation regarding Carbs Linux and tools surrounding
it.
@@ -21,15 +22,15 @@ can be accessed or otherwise obtained with various methods:
You can view the Manual from your browser. The Manual can be viewed as
-- [[file:docs/carbslinux][One HTML page per node]]
-- [[file:docs/carbslinux.html][Single HTML page]]
+- [[file:/docs/carbslinux/][One HTML page per node]]
+- [[/docs/carbslinux.html][Single HTML page]]
** Plain text
:PROPERTIES:
:CUSTOM_ID: plain-text
:END:
-You can download [[file:docs/carbslinux.txt][carbslinux.txt]] in order to view the Manual from your preferred
+You can download [[/docs/carbslinux.txt][carbslinux.txt]] in order to view the Manual from your preferred
pager.
#+begin_src sh
@@ -61,7 +62,7 @@ You can also acquire the source for generating the Manual, which requires
html/info pages.
#+begin_src sh
-git clone git://git.carbslinux.org/docs
+git clone https://git.carbslinux.org/docs
#+end_src
* Installation Instructions
@@ -72,8 +73,8 @@ git clone git://git.carbslinux.org/docs
Installation Manual is part of the [[*User Manual][User Manual]], but it can also be obtained
separately:
-- [[file:install.org][HTML]]
-- [[file:install.txt][Plaintext]]
+- [[/install/][HTML]]
+- [[/install.txt][Plaintext]]
* Carbs Packaging Tools
:PROPERTIES:
@@ -90,15 +91,15 @@ It can be accessed or otherwise obtained with various methods:
You can view the Manual from your browser. The Manual can be viewed as
-- [[file:docs/cpt][One HTML page per node]]
-- [[file:docs/cpt.html][Single HTML page]]
+- [[/docs/cpt/][One HTML page per node]]
+- [[/docs/cpt.html][Single HTML page]]
** Plain text
:PROPERTIES:
:CUSTOM_ID: cpt-plain-text
:END:
-You can download [[file:docs/cpt.txt][cpt.txt]] in order to view the Manual from your preferred pager.
+You can download [[/docs/cpt.txt][cpt.txt]] in order to view the Manual from your preferred pager.
#+begin_src sh
curl -LO https://carbslinux.org/docs/cpt.txt
diff --git a/src/download.org b/content/download.org
index 1267418..7445ad4 100644
--- a/src/download.org
+++ b/content/download.org
@@ -1,8 +1,11 @@
-#+TITLE: Download Carbs Linux
+#+TITLE: Download
+#+ALIASES[]: /download.html
+
+* Download Carbs Linux
Below are the latest tarballs for the =x86_64= and =i686= architectures. You can
visit [[https://dl.carbslinux.org/releases]] for all downloads. Follow the
-[[file:install.org][Installation guide]] to learn more about verifying the releases, and the required
+[[file:/install.org][Installation guide]] to learn more about verifying the releases, and the required
steps for installing the system.
* x86-64
diff --git a/content/install.org b/content/install.org
new file mode 100644
index 0000000..19397fc
--- /dev/null
+++ b/content/install.org
@@ -0,0 +1,352 @@
+# Created 2021-08-14 Sat 17:54
+#+TITLE: Carbs Linux Installation Guide
+#+AUTHOR: Cem Keylan
+These are the step-by-step instructions for installing Carbs Linux. It can be
+acquired as plain-text to be viewed offline with a pager from
+[[https://carbslinux.org/install.txt]].
+
+#+begin_src sh
+ curl -sL https://carbslinux.org/install.txt | less
+#+end_src
+
+#+toc: headlines 3 local
+* Preparing Environment
+To install Carbs Linux, you will need a Live Linux ISO. For that purpose, you
+can obtain a Gentoo or Void Linux live image. You can follow their instructions
+to boot and setup your network.
+
+You will need the following programs in order to install Carbs Linux:
+
+- tar
+- wget
+- xz
+- some form of base utilities (coreutils, sbase, busybox, etc.)
+
+Rest of these instructions will assume that you have set all of these up, and
+will continue on that point.
+
+** Download
+First, we need to download the rootfs tarball. You can do the following in order
+to obtain the rootfs. If you are using an i686 machine, replace the =x86_64=
+with =i686=. We are setting this in a URL variable so that we don't have to
+write it every time.
+
+#+begin_src sh
+ URL=https://dl.carbslinux.org/releases/x86_64
+ wget $URL/carbs-rootfs.tar.xz.sha256
+ sha256sum -c carbs-rootfs.tar.xz.sha256
+#+end_src
+
+** Signature verification
+It is highly recommended to verify the signature of the tarball. You will need
+the OpenBSD tool =signify(1)= for this. Many distributions provide a package for
+it, if you are using a Carbs Linux host, you can also install the package
+=otools= which provides =signify=. Download the signature first.
+
+#+begin_src sh
+ wget $URL/carbs-rootfs.tar.xz.sig
+#+end_src
+
+The signature file should say something similar to
+
+#+results:
+: untrusted comment: verify with carbslinux-2021.08.pub
+: RWTK4GFDD7JiohUHBeJXuKw+/P3K4ZRR8jQud0iOxNDbn7WCFxQsxt9FUNSEiXfLjkm1Ez8c3esRG8oydrsFUFpBGtekFt5obgo=
+
+
+Grab the key (which probably should be the latest one) that is written on the
+file from [[https://dl.carbslinux.org/keys/]] so you can verify the signature. The
+latest Signify public key is also available on the [[https://git.carbslinux.org/repository][package repository]], so you can
+check the validity of the public key from multiple locations, or just copy paste
+that portion to a file and use that instead.
+
+#+begin_src sh
+ PUBKEY=carbslinux-2021.08.pub
+ wget https://dl.carbslinux.org/keys/$PUBKEY
+#+end_src
+
+You can now verify the distribution tarball with signify.
+
+#+begin_src sh
+ signify -V -m carbs-rootfs.tar.xz -p $PUBKEY
+#+end_src
+
+If everything went alright, this should output:
+
+#+begin_example
+ Signature Verified
+#+end_example
+
+
+
+** Extracting the tarball
+You will need to extract the tarball to your desired location. For partitioning,
+you can follow [[https://wiki.archlinux.org/index.php/Partitioning][this guide]]. This will assume that you will be mounting your root
+partition to =/mnt=.
+
+#+begin_src sh
+ mount /dev/sdx1 /mnt
+ tar xf carbs-rootfs.tar.xz -C /mnt
+#+end_src
+
+* Chroot
+Chroot into Carbs Linux by running the chroot helper inside the rootfs!
+
+#+begin_src sh
+ /mnt/bin/cpt-chroot /mnt
+#+end_src
+
+** Setting up repositories
+Newest tarballs do not come with repositories, so you will need to manually
+obtain them, and set your =CPT_PATH= environment variable. Carbs Linux
+repositories can either be obtained by =git= or =rsync=. While rsync
+repositories are overall faster and smaller, git offers the whole history of the
+repository and a means to manipulate your repository as you like it. If you want
+to obtain the git repository, you will need to install =git= itself.
+
+The following guide will assume that you put the repositories into =~/repos/=
+directory, but you can put the repositories into any directory you want. So go
+ahead and create that directory:
+
+#+begin_src sh
+ mkdir -p $HOME/repos
+#+end_src
+
+*** Obtaining from git
+
+Carbs Linux git repositories can be found both from the main server and GitHub
+(mirror). Here are both their repository links. You can clone any of them.
+
+- https://git.carbslinux.org/repository
+- https://git.sr.ht/~carbslinux/repository
+
+#+begin_src sh
+ git clone git://git.carbslinux.org/repository $HOME/repos/carbs
+#+end_src
+
+*** Obtaining from rsync
+
+Carbs Linux rsync repositories live in rsync://carbslinux.org/repo. In
+order to obtain it, run the following:
+
+#+begin_src sh
+ rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs
+#+end_src
+
+*** Making the package manager use the repositories
+
+In your shell's configuration file, or in your =~/.profile= file, add the
+following lines:
+
+#+begin_src sh
+ CPT_PATH=$HOME/repos/carbs/core
+ CPT_PATH=$CPT_PATH:$HOME/repos/carbs/extra
+ CPT_PATH=$CPT_PATH:$HOME/repos/carbs/xorg
+ CPT_PATH=$CPT_PATH:$HOME/repos/carbs/community
+ export CPT_PATH
+#+end_src
+
+** Updating packages
+It is good practice to make sure your system is up to date, especially before
+building new packages. If there is an update for the package manager you will
+need to update twice.
+
+#+begin_src sh
+ cpt-update && cpt-update
+#+end_src
+
+** Installing packages
+Since you are operating on a really small base, you might need to build and
+install new programs to extend the functionality of your system. In order to
+build and install packages new packages in Carbs, you need to execute the
+following. "Package" is not actually a package and is given as an example.
+
+#+begin_src sh
+ cpt-build package
+ cpt-install package
+#+end_src
+
+** Essential Software
+Here is a small list of software that you might want to have on your system as
+you are setting up. You might want to check the *Software* section in the full
+documentation to learn more about other packaged software.
+
+*BOOTLOADERS*
+
+- efibootmgr
+- grub
+
+*FILESYSTEMS*
+
+- e2fsprogs
+- dosfstools
+- ntfs-3g
+
+*NETWORKING*
+
+- dhcpcd
+- wpa_supplicant
+
+*TEXT EDITORS*
+
+- nano
+- vim
+
+*DOCUMENTATION*
+
+- carbs-docs
+- man-pages
+- man-pages-posix
+
+** Obtaining the documentation
+All the documentation for Carbs Linux can be found on a single info manual to be
+viewed offline. You can obtain either =texinfo= or the =info= packages in order
+to view the documentation.
+
+#+begin_src sh
+ # Install the documentation.
+ cpt b carbs-docs && cpt i carbs-docs
+
+ # Install either texinfo or the info package. We will be installing standalone info
+ # as it doesn't need perl.
+ cpt b info && cpt i info
+
+ # You can then run info and navigate through the documentation.
+ info carbslinux
+#+end_src
+
+* System Configuration
+After you have finished installing some extra packages, you can configure your
+system to your liking.
+
+** Configuring hostname
+You might want to add a hostname, especially in a networked environment. Your
+hostname will default to 'carbslinux' unless you set this.
+
+#+begin_src sh
+ echo your-hostname > /etc/hostname
+#+end_src
+
+** Hosts file
+You can edit your /etc/hosts file, which is the static lookup table for host
+names. By default, there are two entries for localhost which are OKAY. You can
+replace the 'localhost' part of these entries to your hostname.
+
+#+begin_example
+ 127.0.0.1 localhost.localdomain localhost
+ ::1 localhost.localdomain localhost ip6-localhost
+#+end_example
+
+* Kernel
+Kernel isn't managed under the main repositories, even though you could package
+one for your personal use. Here is an [[https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux][example kernel package]], which you will
+need to reconfigure for your specific setup if you want to make use of it.
+
+** Obtaining the kernel sources
+You can visit the [[https://kernel.org]] website to choose a kernel that you want
+to install. Though only the latest stable and longterm (LTS) versions are
+supported.
+
+#+begin_src sh
+ # Download the kernel and extract it
+ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz
+ tar xf linux-5.9.1.tar.xz
+
+ # Change directory into the kernel sources
+ cd linux-5.9.1
+#+end_src
+
+** Kernel dependencies
+In order to compile the kernel you will need to install some dependencies. You
+will need =libelf=, and =bison= to compile the kernel. If you want to configure
+using the menu interface you will also need =ncurses=.
+
+#+begin_src sh
+ # The package manager asks to install if you are building more than one package,
+ # so no need to run 'cpt i ...'
+ cpt b libelf ncurses
+#+end_src
+
+In the vanilla kernel sources, you need perl to compile the kernel, but it can
+be easily patched out. You will need to apply the following patch. Patch was
+written by [[https://github.com/E5ten][E5ten]]. You will need to obtain and apply the patch in the kernel
+source directory.
+
+#+begin_src sh
+ wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch
+ patch -p1 < kernel-no-perl.patch
+#+end_src
+
+** Building the kernel
+Next step is configuring and building the kernel. You can check Gentoo's
+[[https://wiki.gentoo.org/wiki/Kernel/Configuration][kernel configuration guide]] to learn more about the matter. Overall, Gentoo Wiki
+is a good place to learn about configuration according to your hardware. The
+following will assume a monolithic kernel.
+
+#+begin_src sh
+ make menuconfig
+ make
+ install -Dm755 $(make -s image_name) /boot/vmlinuz-linux
+#+end_src
+
+* Making your system bootable
+In order to be able to boot your fresh system, wou will need an init-daemon,
+init-scripts and a bootloader. The init daemon is already provided by busybox,
+but you can optionally change it.
+
+** Bootloader
+In the main repository, there is efibootmgr and grub to serve as bootloaders.
+efibootmgr can be used as a standalone bootloader, or can be used to install
+grub in a UEFI environment. efibootmgr is needed unless you are using a device
+without UEFI support (or you really want to use BIOS for a reason).
+
+*** GRUB BIOS installation
+
+#+begin_src sh
+ cpt b grub && cpt i grub
+ grub-install --target=i386-pc /dev/sdX
+ grub-mkconfig -o /boot/grub/grub.cfg
+#+end_src
+
+*** GRUB UEFI installation
+
+#+begin_src sh
+ cpt b efibootmgr && cpt i efibootmgr
+ cpt b grub && cpt i grub
+
+ grub-install --target=x86_64-efi \
+ --efi-directory=esp \
+ --bootloader-id=CarbsLinux
+
+ grub-mkconfig -o /boot/grub/grub.cfg
+#+end_src
+
+** Init scripts
+Only thing left to do is installing the init-scripts, and now you are almost
+ready to boot your system!
+
+#+begin_src sh
+ cpt b carbs-init && cpt i carbs-init
+#+end_src
+
+** Fstab
+You can now manually edit your fstab entry, or you can use the genfstab tool.
+If you want to use the tool, exit the chroot and run the following:
+
+#+begin_src sh
+ wget https://github.com/cemkeylan/genfstab/raw/master/genfstab
+ chmod +x genfstab
+ ./genfstab -U /mnt >> /mnt/etc/fstab
+#+end_src
+
+* Post-installation
+The base installation is now complete, you can now fine tune your system
+according to your needs. Rest of these instructions are completely optional.
+You can check the rest of the documentation to learn more about the system.
+
+** KISS repositories
+There have been recent changes to the =kiss= package manager that breaks
+compatibility with =cpt=. These changes throw away the entire premise of their
+"static" packaging system. =cpt= will never implement those changes, so don't
+expect any KISS package that was changed during or after July 2021 to work with
+=cpt=.
diff --git a/src/mailing-lists.org b/content/mailing-lists.org
index c33848e..c33848e 100644
--- a/src/mailing-lists.org
+++ b/content/mailing-lists.org
diff --git a/news/20191210.org b/content/news/20191210.org
index 7e7c0c8..af7a540 100644
--- a/news/20191210.org
+++ b/content/news/20191210.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Dec 10, 2019
#+DATE: <2019-12-10 Tue>
First alpha release was made. See the [[https://dl.carbslinux.org/releases][downloads page]].
diff --git a/news/20191212.org b/content/news/20191212.org
index df21941..2f66b54 100644
--- a/news/20191212.org
+++ b/content/news/20191212.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Dec 12, 2019
#+DATE: <2019-12-12 Thu>
Busybox and Busybox-init has been seperated into two different packages.
diff --git a/news/20191217.org b/content/news/20191217.org
index daa160b..dc10d75 100644
--- a/news/20191217.org
+++ b/content/news/20191217.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Dec 17, 2019
#+DATE: <2019-12-17 Tue>
Installation instruction are now complete. A review would be greatly appreciated!
diff --git a/news/20191218.org b/content/news/20191218.org
index 337cfdb..5184fec 100644
--- a/news/20191218.org
+++ b/content/news/20191218.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Dec 18, 2019
#+DATE: <2019-12-18 Wed>
carbs-rootfs-20191218.tar.xz was released.
diff --git a/news/20200109.org b/content/news/20200109.org
index bb09f67..8804729 100644
--- a/news/20200109.org
+++ b/content/news/20200109.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jan 09, 2020
#+DATE: <2020-01-09 Thu>
Happy new year, everyone! I am back after some long silence. I was unable to commit for a
diff --git a/news/20200110.org b/content/news/20200110.org
index 0a83a3e..c71f61b 100644
--- a/news/20200110.org
+++ b/content/news/20200110.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jan 10, 2020
#+DATE: <2020-01-10 Fri>
carbs-rootfs-20200110.tar.xz was released.
diff --git a/news/20200113.org b/content/news/20200113.org
index 5fbdf9f..44f157a 100644
--- a/news/20200113.org
+++ b/content/news/20200113.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jan 13, 2020
#+DATE: <2020-01-13 Mon>
**Busybox update reqires manual intervention**
diff --git a/news/20200115.org b/content/news/20200115.org
index 8da8e13..9d3bcc3 100644
--- a/news/20200115.org
+++ b/content/news/20200115.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jan 15, 2020
#+DATE: <2020-01-15 Wed>
sinit has been taken to =core=, and is now officially supported
diff --git a/news/20200122.org b/content/news/20200122.org
index 9e6b998..009405e 100644
--- a/news/20200122.org
+++ b/content/news/20200122.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jan 22, 2020
#+DATE: <2020-01-22 Wed>
Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating this web server
diff --git a/news/20200128.org b/content/news/20200128.org
index e917fa3..c13e72e 100644
--- a/news/20200128.org
+++ b/content/news/20200128.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jan 28, 2020
#+DATE: <2020-01-28 Tue>
Web Server is now on a Carbs Linux server. It is not complete yet, but I will be
diff --git a/news/20200213.org b/content/news/20200213.org
index f37d9eb..65a2ab1 100644
--- a/news/20200213.org
+++ b/content/news/20200213.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Feb 13, 2020
#+DATE: <2020-02-13 Thu>
Runit is now released on the core repository! You can now replace busybox-init
diff --git a/news/20200214.org b/content/news/20200214.org
index 36b3325..90b805d 100644
--- a/news/20200214.org
+++ b/content/news/20200214.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Feb 14, 2020
#+DATE: <2020-02-14 Fri>
**IMPORTANT!** Carbs-init update to be released on 17th of February
diff --git a/news/20200218.org b/content/news/20200218.org
index ee56dfd..5ea71af 100644
--- a/news/20200218.org
+++ b/content/news/20200218.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Feb 18, 2020
#+DATE: <2020-02-18 Tue>
A new tarball is released. It can be found on [[https://dl.carbslinux.org]].
diff --git a/news/20200405.org b/content/news/20200405.org
index 375a7ac..716f669 100644
--- a/news/20200405.org
+++ b/content/news/20200405.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Apr 05, 2020
#+DATE: <2020-04-05 Sun>
Carbs Linux repositories will be hosted only on Github. Commits will be pushed
diff --git a/news/20200406.org b/content/news/20200406.org
index 31209ca..e2810d1 100644
--- a/news/20200406.org
+++ b/content/news/20200406.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Apr 06, 2020
#+DATE: <2020-04-06 Mon>
A new rootfs tarball has been released. See the downloads page.
diff --git a/news/20200410.org b/content/news/20200410.org
index fda05fb..b51657b 100644
--- a/news/20200410.org
+++ b/content/news/20200410.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Apr 10, 2020
#+DATE: <2020-04-10 Fri>
IRC channel can now be accessed from =#carbslinux= at freenode!
diff --git a/news/20200427.org b/content/news/20200427.org
index 867f83c..4df269e 100644
--- a/news/20200427.org
+++ b/content/news/20200427.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Apr 27, 2020
#+DATE: <2020-04-27 Mon>
A new rootfs tarball has been released! You can see it on
diff --git a/news/20200510.org b/content/news/20200510.org
index c7b7d32..dcdd408 100644
--- a/news/20200510.org
+++ b/content/news/20200510.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: May 10, 2020
#+DATE: <2020-05-10 Sun>
A GCC 10.1.0 change causes a kernel panic for kernels built with GCC 10.1. This
diff --git a/news/20200519.org b/content/news/20200519.org
index 0583f19..52b555e 100644
--- a/news/20200519.org
+++ b/content/news/20200519.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: May 19, 2020
#+DATE: <2020-05-19 Tue>
A rootfs tarball targeting the i686 architecture has been released. It can be
diff --git a/news/20200526.org b/content/news/20200526.org
index 70c4fec..2a3658f 100644
--- a/news/20200526.org
+++ b/content/news/20200526.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: May 26, 2020
#+DATE: <2020-05-26 Tue>
An initial version for binary package management is released. It can be found on
diff --git a/news/20200617.org b/content/news/20200617.org
index 0aee0df..5872e15 100644
--- a/news/20200617.org
+++ b/content/news/20200617.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jun 17, 2020
#+DATE: <2020-06-17 Wed>
A new rootfs tarball including the changes to the core is released and can be
diff --git a/news/20200727.org b/content/news/20200727.org
index 0afe0b3..0309b12 100644
--- a/news/20200727.org
+++ b/content/news/20200727.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Jul 27, 2020
#+DATE: <2020-07-27 Mon>
Carbs Linux's fork of the =kiss= package manager has been renamed to =Carbs
diff --git a/news/20200903.org b/content/news/20200903.org
index 4c1941d..6cd120b 100644
--- a/news/20200903.org
+++ b/content/news/20200903.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Sep 03, 2020
#+DATE: <2020-09-03 Thu>
The default TLS provider has been reverted to =libressl=. System update will
diff --git a/news/20200916.org b/content/news/20200916.org
index 50e9ecb..cf2dc7d 100644
--- a/news/20200916.org
+++ b/content/news/20200916.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Sep 16, 2020
#+DATE: <2020-09-16 Wed>
The libressl "revert" was reverted. System update will replace libressl
diff --git a/news/20210228.org b/content/news/20210228.org
index 3cd89ec..b7efc19 100644
--- a/news/20210228.org
+++ b/content/news/20210228.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Feb 28, 2021
#+DATE: <2021-02-28 Sun>
Mailing lists for Carbs Linux has changed, see [[file:../mailing-lists.html][the mailing lists section]] for
diff --git a/news/20210304.org b/content/news/20210304.org
index f2a576d..f6bc7ca 100644
--- a/news/20210304.org
+++ b/content/news/20210304.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Mar 04, 2021
#+DATE: <2021-03-04 Thu>
Our own git server might stay outdated as it is switching to the new server.
diff --git a/news/20210308.org b/content/news/20210308.org
index 215d3a5..7ea693b 100644
--- a/news/20210308.org
+++ b/content/news/20210308.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Mar 08, 2021
#+DATE: <2021-03-08 Mon>
Our [[https://git.carbslinux.org][Git repositories]] are back up, and you can switch your remotes back to them,
diff --git a/news/20210401.org b/content/news/20210401.org
index ac2d24d..0f03923 100644
--- a/news/20210401.org
+++ b/content/news/20210401.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Apr 01, 2021
#+DATE: <2021-04-01 Thu>
After long consideration, Carbs Linux has again switched from BearSSL to
diff --git a/news/20210406.org b/content/news/20210406.org
index 15894ca..4235157 100644
--- a/news/20210406.org
+++ b/content/news/20210406.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: Apr 06, 2021
#+DATE: <2021-04-06 Tue>
A new rootfs tarball has been released, but the signature verification method
diff --git a/news/20210522.org b/content/news/20210522.org
index af969c4..ed90e1b 100644
--- a/news/20210522.org
+++ b/content/news/20210522.org
@@ -1,4 +1,4 @@
-#+TITLE: {{{date(%b %d\, %Y)}}}
+#+TITLE: May 22, 2021
#+DATE: <2021-05-22 Sat>
The IRC channel '#carbslinux' has moved to [[https://libera.chat][libera.chat]].
diff --git a/src/people.org b/content/people.org
index 4f2fc8f..4f2fc8f 100644
--- a/src/people.org
+++ b/content/people.org
diff --git a/content/sources.org b/content/sources.org
new file mode 100644
index 0000000..bf09ebe
--- /dev/null
+++ b/content/sources.org
@@ -0,0 +1,32 @@
+#+TITLE: Sources and Projects
+* Sources and Projects
+
+All distribution specific tooling and source can be found from either the Fossil
+repositories or the relevant Git repositories. I am planning to eventually move
+all the source repositories to Fossil, including the package repositories. You
+can click the following links to visit source repositories.
+
+- https://git.carbslinux.org
+- https://fossil.carbslinux.org
+- https://git.sr.ht/~carbslinux (Git mirror)
+
+** Package Repositories
+
+Package repositories currently reside in our git server, they can be obtained
+from the places below:
+
+- https://git.carbslinux.org/repository
+- [[https://git.sr.ht/~carbslinux/repository]] (mirror)
+- [[https://github.com/CarbsLinux/repository]] (mirror)
+
+However, it is planned to migrate the package repositories to Fossil at a later
+date.
+
+** Carbs Packaging Tools
+
+CPT is the package management tools of Carbs Linux. The canonical source for the
+package manager is in Fossil, but they are also mirrored to git:
+
+- https://fossil.carbslinux.org/cpt
+- https://git.carbslinux.org/cpt (mirror)
+- https://git.sr.ht/~carbslinux/cpt (mirror)
diff --git a/cpt b/cpt
-Subproject e64ca397b4343502d72977fc791b8c968db1759
+Subproject 8ccb6ca3acdec76fdb279ed61ba21694e3efe5a
diff --git a/elisp/no-littering.el b/elisp/no-littering.el
deleted file mode 100644
index 88fe0e7..0000000
--- a/elisp/no-littering.el
+++ /dev/null
@@ -1,454 +0,0 @@
-;;; no-littering.el --- help keeping ~/.emacs.d clean -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2016-2021 Jonas Bernoulli
-
-;; Author: Jonas Bernoulli <jonas@bernoul.li>
-;; Homepage: https://github.com/emacscollective/no-littering
-;; Package-Requires: ((cl-lib "0.5"))
-
-;; This file is not part of GNU Emacs.
-
-;; This file is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
-
-;; This file is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; For a full copy of the GNU General Public License
-;; see https://www.gnu.org/licenses.
-
-;;; Commentary:
-
-;; Help keeping ~/.emacs.d clean.
-
-;; The default paths used to store configuration files and persistent
-;; data are not consistent across Emacs packages. This isn't just a
-;; problem with third-party packages but even with built-in packages.
-
-;; Some packages put these files directly in `user-emacs-directory'
-;; or $HOME or in a subdirectory of either of the two or elsewhere.
-;; Furthermore sometimes file names are used that don't provide any
-;; insight into what package might have created them.
-
-;; This package sets out to fix this by changing the values of path
-;; variables to put configuration files in `no-littering-etc-directory'
-;; (defaulting to "etc/" under `user-emacs-directory', thus usually
-;; "~/.emacs.d/etc/") and persistent data files in
-;; `no-littering-var-directory' (defaulting to "var/" under
-;; `user-emacs-directory', thus usually "~/.emacs.d/var/"), and
-;; by using descriptive file names and subdirectories when appropriate.
-;; This is similar to a color-theme; a "path-theme" if you will.
-
-;; We still have a long way to go until most built-in and many third-
-;; party path variables are properly "themed". Like a color-theme,
-;; this package depends on user contributions to accomplish decent
-;; coverage. Pull requests are highly welcome (but please follow the
-;; conventions described below and in the pull request template).
-
-;; `no-littering' cannot help with moving existing files to the new
-;; location. You will have to move the files manually. See issue
-;; #79 for more information.
-
-;; Usage:
-
-;; Load the feature `no-littering' as early as possible in your init
-;; file. Make sure you load it at least before you change any path
-;; variables using some other method.
-;;
-;; (require 'no-littering)
-
-;; If you would like to use base directories different from what
-;; `no-littering' uses by default, then you have to set the respective
-;; variables before loading the feature.
-;;
-;; (setq no-littering-etc-directory
-;; (expand-file-name "config/" user-emacs-directory))
-;; (setq no-littering-var-directory
-;; (expand-file-name "data/" user-emacs-directory))
-;; (require 'no-littering)
-
-;; Conventions:
-
-;; * A) File names
-;;
-;; 1. File names are based on the name of the respective Emacs Lisp
-;; variables and the name of the respective Emacs package.
-;;
-;; 2. The name of the respective Emacs package should serve as the
-;; prefix of the file name, unless the file is in a subdirectory in
-;; which case the name of the subdirectory serves as the prefix.
-;;
-;; 3. If the name of the package and the prefix of the variable do not
-;; match, then we prefer the name of the package.
-;;
-;; 4. If the name of a path variable ends with `-file`, `-default-file`,
-;; `-directory`, `-default-directory`, or something similar, then that
-;; suffix is usually dropped from the file name.
-;;
-;; 5. If applicable, the appropriate extension is added to the file name
-;; so that files are visited using the appropriate major-modes and
-;; also to provide a hint about the kind of data stored in the file.
-;; E.g. if a file contains an S-expression, then the suffix should be
-;; `*.el`.
-
-;; * B) File location and subdirectories
-;;
-;; 1. If a package has only one data file, then that is usually placed in
-;; `no-littering-var-directory` itself. Likewise if a package has
-;; only one config file, then that is placed in
-;; `no-littering-etc-directory` itself.
-;;
-;; 2. If a package has multiple data (or config files), then those files
-;; are placed in a subdirectory of `no-littering-var-directory` (or
-;; `no-littering-etc-directory`).
-;;
-;; 3. If a subdirectory is used for a package's data (or config) file
-;; variables, then the name of the directory should match the name of
-;; the package in most cases. The subdirectory name may serve as the
-;; package prefix of the file name.
-;;
-;; 4. If a package provides a "framework" for other packages to use,
-;; then we may reuse its directories for other packages that make use
-;; of that framework or otherwise "extend" the "main package".
-;; E.g. we place all `helm` related files in `helm/`.
-;;
-;; 5. If a package only defines a single variable that specifies a data
-;; (or config) directory, then the directory name should
-;; nevertheless be just the package name. E.g. the path used for
-;; `sx-cache-directory` from the `sx` package is `sx/cache/`, not
-;; `sx-cache/`.
-;;
-;; 6. However if the name of the directory variable implies that the
-;; package won't ever define any data (or config) files that won't be
-;; placed in that directory, then we use a top-level directory. E.g.
-;; when the name of the variable is `<package>-directory`, in which
-;; case we would use just `<package>/` as the path.
-
-;; * C) Ordering and alignment
-;;
-;; 1. The code that sets the values of themed variables is split into two
-;; groups. The first group sets the value of variables that belong to
-;; packages that are part of Emacs, and the second group is used for
-;; variables that are defined by packages that are not part of Emacs.
-;;
-;; 2. Each of these lists is sorted alphabetically (usually by variable
-;; name). Please keep it that way.
-;;
-;; 3. We attempt to align the value forms inside different `setq` forms.
-;; If the symbol part for a particular variable is too long to allow
-;; doing so, then don't worry about it and just break the alignment.
-;; If it turns out that this happens very often, then we will adjust
-;; the alignment eventually.
-
-;; * D) Commit messages
-;;
-;; 1. Please theme each package using a separate commit and use commit
-;; messages of the form "<package>: theme <variable".
-;;
-;; 2. If a package has several path variables, then you should theme them
-;; all in one commit.
-;;
-;; 3. If the variable names do not fit nicely on the summary line, then
-;; use a message such as:
-;;
-;; foo: theme variables
-;;
-;; Theme `foo-config-file', `foo-cache-directory',
-;; and `foo-persistent-file'.
-;; 4. When appropriate add statements like the following to the commit
-;; message:
-;;
-;; - This file is used to store an s-expression.
-;; - This file is used to store raw text.
-;; - This is the only configuration/data file of the package.
-;; - This package does/doesn't take care of creating the containing
-;; directory if necessary. (If the package does not do it, then you
-;; should also fix that and submit an upstream pull request.)
-;;
-;; 5. If you are uncertain, then be explicit about it by adding a comment
-;; to the pull-request.
-
-;;; Code:
-
-(require 'cl-lib)
-
-(defvar no-littering-etc-directory
- (expand-file-name (convert-standard-filename "etc/") user-emacs-directory)
- "The directory where packages place their configuration files.
-This variable has to be set before `no-littering' is loaded.")
-
-(defvar no-littering-var-directory
- (expand-file-name (convert-standard-filename "var/") user-emacs-directory)
- "The directory where packages place their persistent data files.
-This variable has to be set before `no-littering' is loaded.")
-
-;;;###autoload
-(defun no-littering-expand-etc-file-name (file)
- "Expand filename FILE relative to `no-littering-etc-directory'."
- (expand-file-name (convert-standard-filename file)
- no-littering-etc-directory))
-
-;;;###autoload
-(defun no-littering-expand-var-file-name (file)
- "Expand filename FILE relative to `no-littering-var-directory'."
- (expand-file-name (convert-standard-filename file)
- no-littering-var-directory))
-
-(cl-letf (((symbol-function 'etc)
- (symbol-function #'no-littering-expand-etc-file-name))
- ((symbol-function 'var)
- (symbol-function #'no-littering-expand-var-file-name)))
- (make-directory no-littering-etc-directory t)
- (make-directory no-littering-var-directory t)
- (with-no-warnings ; many of these variables haven't been defined yet
-
-;;; Built-in packages
-
- (setq abbrev-file-name (etc "abbrev.el"))
- (setq auto-insert-directory (etc "auto-insert/"))
- (setq auto-save-list-file-prefix (var "auto-save/sessions/"))
- (setq backup-directory-alist (list (cons "." (var "backup/"))))
- (setq bookmark-default-file (var "bookmark-default.el"))
- (setq calc-settings-file (etc "calc-settings.el"))
- (eval-after-load 'desktop
- `(make-directory ,(var "desktop/") t))
- (setq desktop-dirname (var "desktop/"))
- (setq desktop-path (list desktop-dirname))
- (setq diary-file (var "diary"))
- (setq ecomplete-database-file (var "ecomplete-database.el"))
- (setq ede-project-placeholder-cache-file (var "ede-projects.el"))
- (eval-after-load 'erc
- `(make-directory ,(var "erc/dcc/") t))
- (setq erc-dcc-get-default-directory (var "erc/dcc/"))
- (setq erc-log-channels-directory (var "erc/log-channels/"))
- (eval-after-load 'eshell
- `(make-directory ,(etc "eshell/") t))
- (setq eshell-aliases-file (etc "eshell/aliases"))
- (setq eshell-directory-name (var "eshell/"))
- (setq eudc-options-file (etc "eudc-options.el"))
- (eval-after-load 'eww
- `(make-directory ,(var "eww/") t))
- (setq eww-bookmarks-directory (var "eww/"))
- (setq filesets-menu-cache-file (var "filesets-menu-cache.el"))
- (setq gamegrid-user-score-file-directory (var "gamegrid-user-score/"))
- (setq ido-save-directory-list-file (var "ido-save-directory-list.el"))
- (setq image-dired-db-file (var "image-dired/db.el"))
- (setq image-dired-dir (var "image-dired/"))
- (setq image-dired-gallery-dir (var "image-dired/gallery/"))
- (setq image-dired-temp-image-file (var "image-dired/temp-image"))
- (setq image-dired-temp-rotate-image-file (var "image-dired/temp-rotate-image"))
- (setq kkc-init-file-name (var "kkc-init.el"))
- (eval-after-load 'newsticker
- `(make-directory ,(var "newsticker/") t))
- (setq newsticker-cache-filename (var "newsticker/cache.el"))
- (setq newsticker-dir (var "newsticker/data/"))
- (setq nsm-settings-file (var "nsm-settings.el"))
- (eval-after-load 'org
- `(make-directory ,(var "org/") t))
- (setq org-clock-persist-file (var "org/clock-persist.el"))
- (setq org-id-locations-file (var "org/id-locations.el"))
- (setq org-publish-timestamp-directory (var "org/timestamps/"))
- (setq project-list-file (var "project-list.el"))
- (setq quickurl-url-file (var "quickurl-url.el"))
- (setq rcirc-log-directory (var "rcirc-log/"))
- (setq recentf-save-file (var "recentf-save.el"))
- (setq remember-data-file (var "remember/data"))
- (setq remember-data-directory (var "remember/data.d/"))
- (setq save-place-file (var "save-place.el"))
- (setq savehist-file (var "savehist.el"))
- (setq srecode-map-save-file (var "srecode-map.el"))
- (setq semanticdb-default-save-directory (var "semantic/"))
- (setq shared-game-score-directory (var "shared-game-score/"))
- (setq timeclock-file (var "timeclock"))
- (setq tramp-auto-save-directory (var "tramp/auto-save/"))
- (setq tramp-persistency-file-name (var "tramp/persistency.el"))
- (setq type-break-file-name (var "type-break.el"))
- (setq url-cache-directory (var "url/cache/"))
- (setq url-configuration-directory (var "url/configuration/"))
-
-;;; Third-party packages
-
- (setq ac-comphist-file (var "ac-comphist.el"))
- (setq amx-save-file (var "amx-save.el"))
- (setq anaconda-mode-installation-directory (var "anaconda-mode/"))
- (setq annotate-file (var "annotations.el"))
- (setq async-byte-compile-log-file (var "async-bytecomp.log"))
- (setq auto-package-update-last-update-day-path (var "auto-package-update-last-update-day"))
- (eval-after-load 'bbdb
- `(make-directory ,(var "bbdb/") t))
- (setq bbdb-file (var "bbdb/bbdb.el"))
- (setq bbdb-vcard-directory (var "bbdb/vcard/"))
- (setq bm-repository-file (var "bm-repository.el"))
- (eval-after-load 'bookmark+-1
- `(make-directory ,(var "bmkp/") t))
- (setq bmkp-bmenu-commands-file (var "bmkp/bmenu-commands.el"))
- (setq bmkp-current-bookmark-file (var "bmkp/current-bookmark.el"))
- (setq bmkp-last-bookmark-file (var "bmkp/last-bookmark.el"))
- (setq bookiez-file (var "bookiez"))
- (setq cider-repl-history-file (var "cider-repl-history.el"))
- (eval-after-load 'command-log-mode
- `(make-directory ,(var "command-log-mode-logging/") t))
- (setq clm/logging-dir (var "command-log-mode/logging/"))
- (eval-after-load 'company
- `(make-directory ,(var "company/") t))
- (setq company-statistics-file (var "company/statistics.el"))
- (setq company-tabnine-binaries-folder (var "company/tabnine-binaries"))
- (setq dap-breakpoints-file (var "dap/breakpoints.el"))
- (setq dap-java-test-runner (var "lsp-java/eclipse.jdt.ls/test-runner/junit-platform-console-standalone.jar"))
- (setq dap-utils-extension-path (var "dap/extensions/"))
- (setq debbugs-gnu-persistency-file (var "debbugs.el"))
- (setq dired-recent-directories-file (var "dired-recent-directories.el"))
- (setq elbank-data-file (var "elbank-data.el"))
- (setq elmo-msgdb-directory (var "elmo/"))
- (setq elmo-split-log-file (var "elmo/split-log"))
- (eval-after-load 'elfeed
- `(make-directory ,(var "elfeed/") t))
- (setq elfeed-db-directory (var "elfeed/db/"))
- (setq elfeed-enclosure-default-dir (var "elfeed/enclosures/"))
- (setq elfeed-score-score-file (etc "elfeed/score/score.el"))
- (setq elpher-bookmarks-file (var "elpher-bookmarks.el"))
- (eval-after-load 'x-win
- (let ((session-dir (var "emacs-session/")))
- `(progn
- (make-directory ,session-dir t)
- (defun emacs-session-filename (session-id)
- "Construct a filename to save the session in based on SESSION-ID.
-This function overrides the one on `x-win' to use `no-littering'
-directories."
- (expand-file-name session-id ,session-dir)))))
- (setq emms-directory (var "emms/"))
- (eval-after-load 'emojify
- `(make-directory ,(var "emojify/") t))
- (setq emojify-emojis-dir (var "emojify/"))
- (setq epkg-repository (var "epkgs/"))
- (setq equake-persistent-display-file (var "equake-persistent-display"))
- (setq forge-database-file (var "forge/database.sqlite"))
- (setq forge-post-directory (var "forge/posts/"))
- (setq geben-temporary-file-directory (var "geben/"))
- (eval-after-load 'geiser
- `(make-directory ,(var "geiser/") t))
- (setq geiser-repl-history-filename (var "geiser/repl-history"))
- (setq hackernews-visited-links-file (var "hackernews/visited-links.el"))
- (eval-after-load 'helm
- `(make-directory ,(var "helm/") t))
- (setq helm-adaptive-history-file (var "helm/adaptive-history.el"))
- (setq helm-backup-path (var "helm/backup/"))
- (setq helm-github-stars-cache-file (var "helm/github-stars-cache.el"))
- (setq helm-net-curl-log-file (var "helm/helm-curl.log"))
- (setq historian-save-file (var "historian-save.el"))
- (setq indium-workspace-file (var "indium/workspaces.el"))
- (setq irfc-directory (var "irfc/"))
- (setq irony-user-dir (var "irony/"))
- (setq jabber-avatar-cache-directory (var "jabber/avatar-cache"))
- (eval-after-load 'jabber
- `(make-directory ,(var "jabber/avatar-cache/") t))
- (setq jabber-history-dir (var "jabber/history"))
- (eval-after-load 'jabber
- `(make-directory ,(var "jabber/history/") t))
- (setq keyfreq-file (var "keyfreq.el"))
- (setq keyfreq-file-lock (var "keyfreq.lock"))
- (setq libbcel-oauth-store-filename (var "libbcel-oauth-store.el.gpg"))
- (setq litable-list-file (var "litable-list.el"))
- (setq logview-cache-filename (var "logview-cache"))
- (setq logview-views-file (etc "logview-views"))
- (eval-after-load 'lookup
- `(make-directory ,(etc "lookup/") t))
- (setq lookup-init-directory (etc "lookup/"))
- (setq lsp-eslint-library-choices-file (var "lsp/eslint-library-choices.el"))
- (setq lsp-python-ms-dir (var "lsp-python-ms/"))
- (eval-after-load 'lsp-mode
- `(make-directory ,(var "lsp/") t))
- (setq lsp-server-install-dir (var "lsp/server/"))
- (setq lsp-session-file (var "lsp/session.el"))
- (setq lsp-java-workspace-dir (var "lsp-java/workspace/"))
- (setq lsp-java-server-install-dir (var "lsp-java/eclipse.jdt.ls/server/"))
- (setq magithub-dir (var "magithub/"))
- (setq magithub-cache-file (var "magithub/cache.el"))
- (setq mc/list-file (var "mc-list.el"))
- (setq meghanada-server-install-dir (var "meghanada/"))
- (setq multi-compile-history-file (var "multi-compile-history.el"))
- (setq nix-buffer-directory-name (var "nix-buffer/"))
- ;; The value of this variable MUST NOT end with ".el" but the
- ;; actual file name MUST end with ".el". Use "git blame" for
- ;; more information.
- (setq notmuch-init-file (etc "notmuch-init"))
- (setq nov-save-place-file (var "nov-save-place.el"))
- (setq omnisharp-cache-directory (var "omnisharp/cache"))
- (setq org-gcal-dir (var "org/gcal/"))
- (eval-after-load 'org-caldav
- `(make-directory ,(var "org/caldav/save") t))
- (setq org-caldav-backup-file (var "org/caldav/backup.org"))
- (setq org-caldav-save-directory (var "org/caldav/save"))
- (setq org-journal-cache-file (var "org/journal-cache.el"))
- (setq org-recent-headings-save-file (var "org/recent-headings.el"))
- (setq org-registry-file (var "org/registry.el"))
- (setq org-roam-db-location (var "org/org-roam.db"))
- (setq package-quickstart-file (var "package-quickstart.el"))
- (setq pandoc-data-dir (etc "pandoc-mode/"))
- (setq pcache-directory (var "pcache/"))
- (setq pdf-view-restore-filename (var "pdf-view-restore.el"))
- (setq persist--directory-location (var "persist/"))
- (setq persistent-scratch-save-file (var "persistent-scratch.el"))
- (setq persp-save-dir (var "persp-mode/"))
- (eval-after-load 'projectile
- `(make-directory ,(var "projectile/") t))
- (setq prescient-save-file (var "prescient-save.el"))
- (setq projectile-cache-file (var "projectile/cache.el"))
- (setq projectile-known-projects-file (var "projectile/known-projects.el"))
- (setq psession-elisp-objects-default-directory (var "psession/"))
- (setq purpose-default-layout-file (etc "window-purpose/default-layout.el"))
- (setq purpose-layout-dirs (list (etc "window-purpose/layouts/")))
- (setq pyim-dcache-directory (var "pyim/dcache/"))
- (setq quack-dir (var "quack/"))
- (setq rfc-mode-directory (var "rfc-mode/"))
- (setq request-storage-directory (var "request/storage/"))
- (setq rmh-elfeed-org-files (list (var "elfeed/rmh-elfeed.org")))
- (setq runner-init-file (var "runner-init.el"))
- (setq save-kill-file-name (var "save-kill.el"))
- (setq save-visited-files-location (var "save-visited-files-location"))
- (eval-after-load 'sly
- `(make-directory ,(var "sly/") t))
- (setq sly-mrepl-history-file-name (var "sly/mrepl-history"))
- (setq smex-save-file (var "smex-save.el"))
- (setq speed-type-gb-dir (var "speed-type/"))
- (eval-after-load 'sx
- `(make-directory ,(var "sx/cache/") t))
- (setq sx-cache-directory (var "sx/cache/"))
- (setq tldr-directory-path (var "tldr/"))
- (setq transient-history-file (var "transient/history.el"))
- (setq transient-levels-file (etc "transient/levels.el"))
- (setq transient-values-file (etc "transient/values.el"))
- (setq treemacs-persist-file (var "treemacs/persist.org"))
- (setq treemacs-last-error-persist-file (var "treemacs/persist-last-error.org"))
- (setq undo-fu-session-directory (var "undo-fu-session/"))
- (setq undohist-directory (var "undohist/"))
- (setq undo-tree-history-directory-alist (list (cons "." (var "undo-tree-hist/"))))
- (setq user-emacs-ensime-directory (var "ensime/"))
- (setq vimish-fold-dir (var "vimish-fold/"))
- (eval-after-load 'wl
- `(make-directory ,(etc "wanderlust") t))
- (setq wl-init-file (etc "wanderlust/init.el"))
- (setq wl-folders-file (etc "wanderlust/folders"))
- (setq wl-address-file (etc "wanderlust/address"))
- (setq wl-alias-file (etc "wanderlust/alias"))
- (setq wl-x-face-file (etc "wanderlust/x-face"))
- (setq wl-temporary-file-directory (var "wanderlust-tmp"))
- (setq x86-lookup-cache-directory (var "x86-lookup/cache/"))
- (eval-after-load 'xkcd
- `(make-directory ,(var "xkcd/") t))
- (setq xkcd-cache-dir (var "xkcd/"))
- (eval-after-load 'yasnippet
- `(make-directory ,(etc "yasnippet/snippets/") t))
- (setq yas-snippet-dirs (list (etc "yasnippet/snippets/")))
- ))
-
-;;; _
-(provide 'no-littering)
-;; Local Variables:
-;; indent-tabs-mode: nil
-;; End:
-;;; no-littering.el ends here
diff --git a/hooks/pre-commit b/hooks/pre-commit
deleted file mode 100755
index 20c65dc..0000000
--- a/hooks/pre-commit
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-./build
-git add docs
-git add src
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..a4f747b
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+ {{- partial "head.html" . -}}
+ <body>
+ {{- partial "navbar.html" . -}}
+ <div id="content">
+ {{- block "main" . }}{{- end }}
+ </div>
+ {{- partial "footer.html" . -}}
+ </body>
+</html>
diff --git a/layouts/_default/baseof.txt b/layouts/_default/baseof.txt
new file mode 100644
index 0000000..49d010f
--- /dev/null
+++ b/layouts/_default/baseof.txt
@@ -0,0 +1 @@
+{{- block "main" . }}{{- end }}
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 0000000..e49c966
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,39 @@
+{{- $pctx := . -}}
+{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
+{{- $pages := slice -}}
+{{- if or $.IsHome $.IsSection -}}
+{{- $pages = $pctx.RegularPages -}}
+{{- else -}}
+{{- $pages = $pctx.Pages -}}
+{{- end -}}
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+{{- $pages = $pages | first $limit -}}
+{{- end -}}
+{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+ <channel>
+ <title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
+ <link>{{ .Permalink }}</link>
+ <description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
+ <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
+ <language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
+ <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
+ <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
+ <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
+ <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
+ {{- with .OutputFormats.Get "RSS" -}}
+ {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
+ {{- end -}}
+ {{ range $pages }}
+ <item>
+ <title>{{ .Title }}</title>
+ <link>{{ .Permalink }}</link>
+ <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
+ {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
+ <guid>{{ .Permalink }}</guid>
+ <description>{{ .Content | html }}</description>
+ </item>
+ {{ end }}
+ </channel>
+</rss>
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..bfa8dcd
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,3 @@
+{{define "main"}}
+{{ .Content }}
+{{ end }}
diff --git a/layouts/_default/single.txt b/layouts/_default/single.txt
new file mode 100644
index 0000000..bfa8dcd
--- /dev/null
+++ b/layouts/_default/single.txt
@@ -0,0 +1,3 @@
+{{define "main"}}
+{{ .Content }}
+{{ end }}
diff --git a/layouts/blog/list.html b/layouts/blog/list.html
new file mode 100644
index 0000000..63388b7
--- /dev/null
+++ b/layouts/blog/list.html
@@ -0,0 +1,8 @@
+{{define "main"}}
+{{.Content}}
+<ul>
+{{ range .Pages }}
+<li>{{.Date.Format "2006-01-02"}} | <a href="{{.Permalink}}">{{.Title}}</a></li>
+{{ end }}
+</ul>
+{{ end }}
diff --git a/layouts/blog/single.html b/layouts/blog/single.html
new file mode 100644
index 0000000..6a9f636
--- /dev/null
+++ b/layouts/blog/single.html
@@ -0,0 +1,7 @@
+{{define "main"}}
+<header>
+<h1 class="title">{{.Title}}</h1>
+<p class="subtitle">posted on {{.PublishDate.Format "Jan 02, 2006"}}</p>
+</header>
+{{ .Content }}
+{{ end }}
diff --git a/layouts/news/list.html b/layouts/news/list.html
new file mode 100644
index 0000000..67eb4fb
--- /dev/null
+++ b/layouts/news/list.html
@@ -0,0 +1,7 @@
+{{define "main"}}
+<h1>News Index</h1>
+{{ range .Pages }}
+<h2><a href="{{.Permalink}}">{{.Date.Format "Jan 02, 2006"}}</a></h2>
+<p>{{ .Content }}</p>
+{{ end }}
+{{ end }}
diff --git a/layouts/news/list.txt b/layouts/news/list.txt
new file mode 100644
index 0000000..ab0a732
--- /dev/null
+++ b/layouts/news/list.txt
@@ -0,0 +1,12 @@
+{{define "main"}}
+NEWS INDEX
+==========
+
+{{ range .Pages }}
+{{.Date.Format "Jan 02, 2006"}}
+-------------------------------
+
+{{ .RawContent }}
+
+{{ end }}
+{{ end }}
diff --git a/layouts/news/single.html b/layouts/news/single.html
new file mode 100644
index 0000000..2a2d481
--- /dev/null
+++ b/layouts/news/single.html
@@ -0,0 +1,6 @@
+{{define "main"}}
+<header>
+<h2 class="title">{{.PublishDate.Format "Jan 02, 2006"}}</h2>
+</header>
+{{ .Content }}
+{{ end }}
diff --git a/layouts/news/single.txt b/layouts/news/single.txt
new file mode 100644
index 0000000..e59d69f
--- /dev/null
+++ b/layouts/news/single.txt
@@ -0,0 +1,6 @@
+{{define "main"}}
+{{.PublishDate.Format "Jan 02, 2006"}}
+============
+
+{{ .RawContent }}
+{{ end }}
diff --git a/layouts/page/index.html b/layouts/page/index.html
new file mode 100644
index 0000000..e7e3bd8
--- /dev/null
+++ b/layouts/page/index.html
@@ -0,0 +1,16 @@
+{{define "main"}}
+{{ .Content }}
+<h2>Latest Blog Posts</h2>
+<ul>
+ {{ range first 3 (where .Site.RegularPages.ByDate.Reverse "Section" "blog") }}
+ <li>{{.Date.Format "2006-02-01"}} | <a href="{{.Permalink}}">{{.Title}}</a></li>
+ {{ end }}
+</ul>
+<h2>News</h2>
+<a href="{{"news.xml"|relURL}}">RSS Feed</a> |
+<a href="{{"news"|relURL}}">See all news</a>
+{{ range first 5 (where .Site.RegularPages.ByDate.Reverse "Section" "news") }}
+<h3><a href="{{.Permalink}}">{{.Date.Format "Jan 02, 2006"}}</a></h3>
+<p>{{ .Content }}</p>
+{{ end }}
+{{ end }}
diff --git a/layouts/page/index.txt b/layouts/page/index.txt
new file mode 100644
index 0000000..d2cdac2
--- /dev/null
+++ b/layouts/page/index.txt
@@ -0,0 +1,3 @@
+{{- define "main" -}}
+{{- .RawContent}}
+{{- end}}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..e64836f
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,6 @@
+<div id="postamble" class="status">
+<footer>
+ <p>Linux&reg; is a registered trademark of Linus Torvalds</p>
+ <p>Copyright &copy; 2019-2021 Cem Keylan</p>
+</footer>
+</div>
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
new file mode 100644
index 0000000..f8b9eb2
--- /dev/null
+++ b/layouts/partials/head.html
@@ -0,0 +1,10 @@
+<meta charset="utf-8">
+<style>
+</style>
+<link rel=icon href='data:image/png;base64,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'>
+<link rel="stylesheet" href="/style.css" type="text/css" media="screen" />
+<meta name="robots" content="index, follow" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<meta name="referrer" content="no-referrer">
+<meta name="description" content="A simple Linux distribution" />
+<title>{{.Title}} | Carbs Linux</title>
diff --git a/layouts/partials/navbar.html b/layouts/partials/navbar.html
new file mode 100644
index 0000000..0999187
--- /dev/null
+++ b/layouts/partials/navbar.html
@@ -0,0 +1,13 @@
+<nav id="navbar">
+ <a href="/" class=navbartitle>Carbs Linux</a>
+ <label for="hamburger">&#9776;</label>
+ <input type="checkbox" id="hamburger" />
+ <ul id=navbarlist>
+ <li><a href="/" title="Home Page">Home</a></li>
+ <li><a href="/sources/" title="Sources and Projects">Sources</a></li>
+ <li><a href="/download/" title="Download Carbs Linux">Download</a></li>
+ <li><a href="/blog/" title="Blog Posts">Blog</a></li>
+ <li><a href="/install/" title="Installation Instructions">Installation</a></li>
+ <li><a href="/docs/" title="Documentation">Docs</a></li>
+ </ul>
+</nav>
diff --git a/layouts/shortcodes/pkg.html b/layouts/shortcodes/pkg.html
new file mode 100644
index 0000000..0c2eeff
--- /dev/null
+++ b/layouts/shortcodes/pkg.html
@@ -0,0 +1 @@
+<a href="https://git.carbslinux.org/repository/tree/{{ index .Params 0 }}">{{ or (index .Params 1 ) (index .Params 0 | path.Base)}}</a>
diff --git a/layouts/shortcodes/pkg.txt b/layouts/shortcodes/pkg.txt
new file mode 100644
index 0000000..148dca4
--- /dev/null
+++ b/layouts/shortcodes/pkg.txt
@@ -0,0 +1 @@
+{{index .Params 0 | path.Base}}
diff --git a/org-publish.el b/org-publish.el
deleted file mode 100755
index ee0a618..0000000
--- a/org-publish.el
+++ /dev/null
@@ -1,358 +0,0 @@
-#!/usr/bin/emacs --script
-;; Lots of code were taken from:
-;; - https://gitlab.com/to1ne/blog/-/blob/master/elisp/publish.el
-;; - https://github.com/dmacvicar/site.org/blob/master/publish.el
-
-;; I don't want this script, especially package, to mess my Emacs directory.
-(setq user-emacs-directory (expand-file-name ".cache/" default-directory))
-(load-file (expand-file-name "elisp/no-littering.el" default-directory))
-
-(setq package-user-dir (with-no-warnings (no-littering-expand-var-file-name "package/")))
-(require 'package)
-(package-initialize)
-
-(unless package-archive-contents
- (add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
- (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
- (package-refresh-contents))
-
-(dolist (pkg '(org-plus-contrib htmlize))
- (unless (package-installed-p pkg)
- (package-install pkg)))
-
-(require 'cl-lib)
-(require 'sh-script)
-(require 'ox)
-(require 'ox-publish)
-(require 'ox-rss)
-
-;; Taken from doom-emacs
-(defmacro c/pushnew! (place &rest values)
- "Push VALUES sequentially into PLACE, if they aren't already present.
-This is a variadic `cl-pushnew'."
- (let ((var (make-symbol "result")))
- `(dolist (,var (list ,@values) (with-no-warnings ,place))
- (cl-pushnew ,var ,place :test #'equal))))
-
-
-;; Some Quality of Life link abbrevations.
-(c/pushnew! org-link-abbrev-alist
- '("carbs-pkg" . "https://git.sr.ht/~carbslinux/repository/tree/master/item/%s")
- '("srht" . "https://git.sr.ht/%s")
- '("ml" . "https://lists.sr.ht/~carbslinux/%s")
- '("mlto" . "mailto:~carbslinux/%s@lists.sr.ht")
- '("github" . "https://github.com/%s"))
-
-(defvar carbs--src-directory (expand-file-name "src/" default-directory)
- "Directory for most of the static webpage content.")
-
-(defvar carbs--publish-directory (expand-file-name "docs/" default-directory)
- "Root directory of the published website.")
-
-(defvar carbs--news-directory (expand-file-name "news/" default-directory)
- "Directory for news posts.")
-
-(defvar carbs--blog-directory (expand-file-name "blog/" default-directory)
- "Directory for blog posts.")
-
-(defvar carbs--template-directory (expand-file-name "templates/" default-directory)
- "Directory for all types of templates")
-
-(defun carbs--insert-template (file)
- "Insert FILE from `carbs--template-directory'."
- (with-temp-buffer
- (insert-file-contents (expand-file-name file carbs--template-directory))
- (buffer-string)))
-
-(defun carbs/org-html-publish-to-html (plist filename pub-dir)
- "Wrapper function that adds publishing date as a subtitle.
-
-PLIST contains the properties, FILENAME the source file and
- PUB-DIR the output directory."
- (let ((project (cons 'rw plist)))
- (plist-put plist :subtitle
- (carbs/format-date-subtitle filename project))
- (org-html-publish-to-html plist filename pub-dir)))
-
-(defun carbs/org-html-publish-blog-index (plist filename pub-dir)
- "Wrapper function to publish only the index file to html.
-PLIST contains the properties, FILENAME the source file and PUB-DIR the output
-directory."
- (if (equal "index.org" (file-name-nondirectory filename))
- (org-html-publish-to-html plist filename pub-dir)))
-
-(defun carbs/format-rss-feed-entry (entry style project)
- "Format ENTRY for the RSS feed.
-ENTRY is a file name. STYLE is either 'list' or 'tree'.
-PROJECT is the current project."
- (cond ((not (directory-name-p entry))
- (let* ((file (org-publish--expand-file-name entry project))
- (title (org-publish-find-title entry project))
- (date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)))
- (link (concat (file-name-sans-extension entry) ".html")))
- (with-temp-buffer
- (insert (format "* %s\n" title))
- (org-set-property "RSS_PERMALINK" link)
- (org-set-property "PUBDATE" date)
- (insert-file-contents file)
- (buffer-string))))
- ((eq style 'tree)
- ;; Return only last subdir.
- (file-name-nondirectory (directory-file-name entry)))
- (t entry)))
-
-(defun carbs/format-rss-feed (title list)
- "Generate RSS feed, as a string.
-TITLE is the title of the RSS feed. LIST is an internal
-representation for the files to include, as returned by
-`org-list-to-lisp'. PROJECT is the current project."
- (concat "#+TITLE: " title "\n"
- "#+DESCRIPTION: a simple Linux distribution\n\n"
- (org-list-to-subtree list 1 '(:icount "" :istart ""))))
-
-(defun carbs/org-rss-publish-to-rss (plist filename pub-dir)
- "Publish RSS with PLIST, only when FILENAME is 'rss.org'.
-PUB-DIR is when the output will be placed."
- (org-rss-publish-to-rss plist filename pub-dir))
-
-(defun carbs/format-date-subtitle (file project)
- "Format the date found in FILE of PROJECT."
- (format-time-string "posted on %b %d, %Y" (org-publish-find-date file project)))
-
-(defun carbs--pre/postamble-format (type)
- "Return the content for the pre/postamble of TYPE."
- `(("en" ,(carbs--insert-template (format "%s.html" type)))))
-
-(defun carbs/org-publish-sitemap (title list)
- "Generate sitemap as a string, having TITLE.
-LIST is an internal representation for the files to include, as
-returned by `org-list-to-lisp'."
- (let ((filtered-list (cl-remove-if (lambda (x)
- (and (sequencep x) (null (car x))))
- list)))
- (concat (carbs--insert-template "blog.org")
- (org-list-to-org filtered-list) "\n")))
-
-(defun carbs/org-publish-latest-blog (title list)
- "Generate sitemap as a string, having TITLE.
-LIST is an internal representation for the files to include, as returned by
-`org-list-to-lisp'."
- (let* ((filtered-list (cl-remove-if (lambda (x)
- (and (sequencep x) (null (car x))))
- list))
- (latest-posts (seq-subseq filtered-list 0 (min (length filtered-list) 4))))
- (concat (org-list-to-org latest-posts) "\n")))
-
-(defun carbs/org-publish-latest-blog-entry (entry style project)
- "Format for sitemap ENTRY, as a string.
-ENTRY is a file name. STYLE is the style of the sitemap.
-PROJECT is the current project."
- (unless (equal entry "404.org")
- (format "%s - [[file:%s][%s]]"
- (format-time-string "%b %d, %Y" (org-publish-find-date entry project))
- entry
- (org-publish-find-title entry project))))
-
-(defun carbs/org-publish-sitemap-entry (entry style project)
- "Format for sitemap ENTRY, as a string.
-ENTRY is a file name. STYLE is the style of the sitemap.
-PROJECT is the current project."
- (unless (equal entry "404.org")
- (format "[[file:%s][%s]] /%s/"
- entry
- (org-publish-find-title entry project)
- (carbs/format-date-subtitle entry project))))
-
-(defun carbs/org-publish-news (title list)
- "Generate sitemap as a string, having TITLE.
-LIST is an internal representation for the files to include, as
-returned by `org-list-to-lisp'."
- (let ((filtered-list (cl-remove-if (lambda (x)
- (and (sequencep x) (null (car x))))
- list)))
- (concat "#+TITLE: News Index\n\n"
- (org-list-to-subtree filtered-list 1 '(:istart "" :icount "")) "\n")))
-
-(defun carbs/org-publish-news-latest (title list)
- "Generate sitemap as a string, having TITLE.
-LIST is an internal representation for the files to include, as
-returned by `org-list-to-lisp'."
- (let* ((filtered-list (cl-remove-if (lambda (x)
- (and (sequencep x) (null (car x))))
- list))
- (latest-posts (seq-subseq filtered-list 0 (min (length filtered-list) 6))))
- (concat
- (org-list-to-subtree latest-posts 1 '(:istart "" :icount "")) "\n")))
-
-(defun carbs/org-publish-news-entry (entry style project)
- "Format for sitemap ENTRY, as a string.
-ENTRY is a file name. STYLE is the style of the sitemap.
-PROJECT is the current project."
- (cond ((not (directory-name-p entry))
- (let* ((file (org-publish--expand-file-name entry project))
- (date (format-time-string "%b %d, %Y" (org-publish-find-date entry project)))
- (link (concat (file-name-sans-extension entry) ".html")))
- (with-temp-buffer
- (insert (format "* [[file:%s][%s]]\n" link date))
- (insert-file-contents file)
- (buffer-string))))
- ((eq style 'tree)
- ;; Return only last subdir.
- (file-name-nondirectory (directory-file-name entry)))
- (t entry)))
-
-(setq user-full-name "Cem Keylan"
- user-mail-address "root@carbslinux.org"
- org-publish-timestamp-directory (with-no-warnings (no-littering-expand-var-file-name "timestamps/"))
- org-html-doctype "html5"
- org-html-head (concat "<link rel=\"stylesheet\" type=\"text/css\" href=\"/style.css\">\n"
- "<link rel=icon href='data:image/png;base64,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'>")
- org-html-head-include-scripts nil
- org-html-metadata-timestamp-format "%Y-%m-%d"
- org-html-head-include-default-style nil
- org-html-html5-fancy t
- org-html-htmlize-output-type 'css
- org-export-with-toc nil
- org-export-with-section-numbers nil
-
- org-publish-project-alist
- (list
- (list "news"
- :author ""
- :base-directory carbs--news-directory
- :html-preamble t
- :html-postamble t
- :html-preamble-format (carbs--pre/postamble-format 'preamble)
- :html-postamble-format (carbs--pre/postamble-format 'postamble)
- :publishing-directory (expand-file-name "news/" carbs--publish-directory)
- :publishing-function '(org-html-publish-to-html org-ascii-publish-to-ascii)
- :exclude (regexp-opt '("index.org" "news.org" "latest-news.org"))
- :auto-sitemap t
- :sitemap-filename "index.org"
- :sitemap-style 'list
- :sitemap-title "Carbs Linux news"
- :sitemap-sort-files 'anti-chronologically
- :sitemap-function 'carbs/org-publish-news
- :sitemap-format-entry 'carbs/org-publish-news-entry)
- (list "news-rss-generate"
- :base-directory carbs--news-directory
- :publishing-directory carbs--publish-directory
- :publishing-function 'ignore
- :exclude (regexp-opt '("index.org" "news.org" "latest-news.org"))
- :html-link-home "https://carbslinux.org/news"
- :auto-sitemap t
- :sitemap-filename "news.org"
- :sitemap-style 'list
- :sitemap-title "Carbs Linux news"
- :sitemap-sort-files 'anti-chronologically
- :sitemap-function 'carbs/format-rss-feed
- :sitemap-format-entry 'carbs/format-rss-feed-entry)
- (list "latest-news"
- :base-directory carbs--news-directory
- :publishing-directory carbs--publish-directory
- :publishing-function 'ignore
- :exclude (regexp-opt '("index.org" "news.org" "latest-news.org"))
- :auto-sitemap t
- :sitemap-filename "latest-news.org"
- :sitemap-style 'list
- :sitemap-title "Carbs Linux news"
- :sitemap-sort-files 'anti-chronologically
- :sitemap-function 'carbs/org-publish-news-latest
- :sitemap-format-entry 'carbs/org-publish-news-entry)
- (list "news-rss-publish"
- :base-directory carbs--news-directory
- :exclude "."
- :include '("news.org")
- :rss-extension "xml"
- :recursive t
- :html-link-home "https://carbslinux.org/news"
- :publishing-directory carbs--publish-directory
- :publishing-function 'carbs/org-rss-publish-to-rss)
- (list "blog-latest"
- :base-directory carbs--blog-directory
- :publishing-directory carbs--publish-directory
- :publishing-function 'ignore
- :exclude (regexp-opt '("index.org" "rss.org" "latest-blog.org"))
- :auto-sitemap t
- :sitemap-filename "latest-blog.org"
- :sitemap-style 'list
- :sitemap-sort-files 'anti-chronologically
- :sitemap-function 'carbs/org-publish-latest-blog
- :sitemap-format-entry 'carbs/org-publish-latest-blog-entry)
- (list "home"
- :base-directory carbs--src-directory
- :html-preamble t
- :html-postamble t
- :html-preamble-format (carbs--pre/postamble-format 'preamble)
- :html-postamble-format (carbs--pre/postamble-format 'postamble)
- :publishing-directory carbs--publish-directory
- :publishing-function 'org-html-publish-to-html)
- (list "blog-index-publish"
- :base-directory carbs--blog-directory
- :publishing-directory (expand-file-name "blog/" carbs--publish-directory)
- :publishing-function 'carbs/org-html-publish-blog-index
- :html-preamble t
- :html-postamble t
- :html-preamble-format (carbs--pre/postamble-format 'preamble)
- :html-postamble-format (carbs--pre/postamble-format 'postamble)
- :html-link-org-files-as-html t
- :exclude (regexp-opt '("rss.org" "index.org" "latest-blog.org"))
- :auto-sitemap t
- :sitemap-filename "index.org"
- :sitemap-style 'list
- :sitemap-title "Carbs Linux blog"
- :sitemap-sort-files 'anti-chronologically
- :sitemap-function 'carbs/org-publish-sitemap
- :sitemap-format-entry 'carbs/org-publish-sitemap-entry)
- (list "blog"
- :base-directory carbs--blog-directory
- :publishing-directory (expand-file-name "blog/" carbs--publish-directory)
- :publishing-function 'carbs/org-html-publish-to-html
- :html-preamble t
- :html-postamble t
- :html-preamble-format (carbs--pre/postamble-format 'preamble)
- :html-postamble-format (carbs--pre/postamble-format 'postamble)
- :exclude (regexp-opt '("rss.org" "index.org" "latest-blog.org"))
- :html-link-org-files-as-html t)
- (list "blog-generate-rss-sitemap"
- :base-extension "org"
- :base-directory carbs--blog-directory
- :html-link-home "https://carbslinux.org/blog"
- :exclude (regexp-opt '("rss.org" "index.org" "latest-blog.org"))
- :publishing-function 'ignore
- :publishing-directory (expand-file-name "blog/" carbs--publish-directory)
- :rss-extension "xml"
- :auto-sitemap t
- :html-link-org-files-as-html t
- :sitemap-filename "rss.org"
- :sitemap-title "Carbs Linux blog"
- :sitemap-style 'list
- :sitemap-sort-files 'anti-chronologically
- :sitemap-function 'carbs/format-rss-feed
- :sitemap-format-entry 'carbs/format-rss-feed-entry)
- (list "blog-publish-rss-sitemap"
- :base-directory carbs--blog-directory
- :rss-extension "xml"
- :recursive t
- :exclude "."
- :include '("rss.org")
- :publishing-directory carbs--publish-directory
- :publishing-function 'carbs/org-rss-publish-to-rss
- :html-link-home "https://carbslinux.org/blog"
- :html-link-use-abs-url t)
- (list "plaintext"
- :author ""
- :base-directory carbs--src-directory
- :publishing-directory carbs--publish-directory
- :publishing-function 'org-ascii-publish-to-ascii
- :base-extension "org"
- :exclude (regexp-opt '("rss.org" "latest-blog.org"))
- :recursive t)
- (list "blog-txt"
- :base-directory carbs--blog-directory
- :base-extension "org"
- :exclude (regexp-opt '("rss.org" "latest-blog.org"))
- :publishing-directory (expand-file-name "blog/" carbs--publish-directory)
- :publishing-function 'org-ascii-publish-to-ascii)))
-
-(org-publish-all)
diff --git a/src/install.org b/src/install.org
deleted file mode 100644
index 410a02b..0000000
--- a/src/install.org
+++ /dev/null
@@ -1,4 +0,0 @@
-#+TITLE: Installation Guide
-#+OPTIONS: num:t
-
-#+INCLUDE: "../texidocs/carbslinux.org::*Installation" :only-contents t
diff --git a/style b/style
-Subproject dc3edbc26c28205b5ccf697ff3ef2acd001e1a5
+Subproject fab647aa9be5581d0ba84d8bdf11753d7530d8e
diff --git a/texidocs b/texidocs
-Subproject aab5cc17af437489b72a605919bd8038d0db666
+Subproject 37d2f1e9fc3888de78944e3e5539b4354608d45