From 20ba1e69dd8c2823e8e8679476e3e0f8ffbb0711 Mon Sep 17 00:00:00 2001
From: Dibyashanu Pati <>
Date: Tue, 4 Jun 2024 21:32:01 +0530
Subject: [PATCH] Added initial files to the website
---
.gitignore | 2 +
FAQ.org | 24 ++
about.org | 24 ++
blog-table-latest-10.txt | 4 +
blogs/blog-list.org | 29 ++
blogs/blog-table-complete.txt | 4 +
blogs/blog.setup | 46 +++
blogs/test_blog_3.org | 11 +
contact.org | 151 ++++++++
i2p-b32-address.txt | 1 +
index.org | 28 ++
link-list.txt | 3 +
links.org | 50 +++
main.org | 706 ++++++++++++++++++++++++++++++++++
main.setup | 58 +++
news.org | 39 ++
tor-onionv3-address.txt | 1 +
17 files changed, 1181 insertions(+)
create mode 100644 .gitignore
create mode 100644 FAQ.org
create mode 100644 about.org
create mode 100644 blog-table-latest-10.txt
create mode 100644 blogs/blog-list.org
create mode 100644 blogs/blog-table-complete.txt
create mode 100644 blogs/blog.setup
create mode 100644 blogs/test_blog_3.org
create mode 100644 contact.org
create mode 100644 i2p-b32-address.txt
create mode 100644 index.org
create mode 100644 link-list.txt
create mode 100644 links.org
create mode 100644 main.org
create mode 100644 main.setup
create mode 100644 news.org
create mode 100644 tor-onionv3-address.txt
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bfbb5d1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/cosmicpirates.space-gmi/
+/cosmicpirates.space-html/
diff --git a/FAQ.org b/FAQ.org
new file mode 100644
index 0000000..a682175
--- /dev/null
+++ b/FAQ.org
@@ -0,0 +1,24 @@
+#+title: Faq
+#+setupfile: main.setup
+
+#+begin_center
+: +-------------------------------------------+
+: | ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ |
+: | ▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ |
+: | ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌ ▐░█▀▀▀▀▀▀▀█░▌ |
+: | ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ |
+: | ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░▌ |
+: | ▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ ▐░▌ ▐░▌ |
+: | ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌ ▐░█▄▄▄▄▄▄▄█░▌ |
+: | ▐░▌ ▐░▌ ▐░▌ ▐░░░░░░░░░░░▌ |
+: | ▐░▌ ▐░▌ ▐░▌ ▀▀▀▀▀▀█░█▀▀ |
+: | ▐░▌ ▐░▌ ▐░▌ ▐░▌ |
+: | ▀ ▀ ▀ ▀ |
+: +-------------------------------------------+
+#+end_center
+
+#+name: link-list.txt
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
diff --git a/about.org b/about.org
new file mode 100644
index 0000000..fdaa1b2
--- /dev/null
+++ b/about.org
@@ -0,0 +1,24 @@
+#+title: About
+#+created: [2024-03-02 Sat]
+#+setupfile: main.setup
+
+#+begin_center
+: +--------------------------------------+
+: | ___ _ _ |
+: | / _ \ | | | | |
+: |/ /_\ \ | |__ ___ _ _ | |_ |
+: || _ | | '_ \ / _ \ | | | | | __| |
+: || | | | | |_) | | (_) | | |_| | | |_ |
+: |\_| |_/ |_.__/ \___/ \__,_| \__| |
+: +--------------------------------------+
+#+end_center
+
+#+name: link-list.txt
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
+
+We think that knowledge should be open to everyone and freely accessible.
+This website will document our projects, interests and ideas.
+
diff --git a/blog-table-latest-10.txt b/blog-table-latest-10.txt
new file mode 100644
index 0000000..bd80909
--- /dev/null
+++ b/blog-table-latest-10.txt
@@ -0,0 +1,4 @@
+|-
+|Title|Last Modified|Created|
+|-
+|[[file:./blogs/test_blog_3.org][Test Blog]]||[2024-02-05 Thu]|
diff --git a/blogs/blog-list.org b/blogs/blog-list.org
new file mode 100644
index 0000000..2aaef7c
--- /dev/null
+++ b/blogs/blog-list.org
@@ -0,0 +1,29 @@
+#+title: Blogs List
+#+created: [2024-03-01 Fri]
+#+OPTIONS: num:nil ^:{} title:nil toc:nil
+#+setupfile: ../main.setup
+
+#+begin_center
+: +-----------------------------------------------------+
+: |oooooooooo. oooo |
+: |`888' `Y8b `888 |
+: | 888 888 888 .ooooo. .oooooooo .oooo.o |
+: | 888oooo888' 888 d88' `88b 888' `88b d88( "8 |
+: | 888 `88b 888 888 888 888 888 `"Y88b. |
+: | 888 .88P 888 888 888 `88bod8P' o. )88b |
+: |o888bood8P' o888o `Y8bod8P' `8oooooo. 8""888P' |
+: | d" YD |
+: | "Y88888P' |
+: +-----------------------------------------------------+
+#+end_center
+
+[[../index.org][Home]]
+
+* A list of All Blogs
+
+#+name: blog-table-complete.txt
+|-
+|Title|Last Modified|Created|
+|-
+|[[file:test_blog_3.org][Test Blog]]||[2024-02-05 Thu]|
+
diff --git a/blogs/blog-table-complete.txt b/blogs/blog-table-complete.txt
new file mode 100644
index 0000000..cf7c463
--- /dev/null
+++ b/blogs/blog-table-complete.txt
@@ -0,0 +1,4 @@
+|-
+|Title|Last Modified|Created|
+|-
+|[[file:test_blog_3.org][Test Blog]]||[2024-02-05 Thu]|
diff --git a/blogs/blog.setup b/blogs/blog.setup
new file mode 100644
index 0000000..028e3fb
--- /dev/null
+++ b/blogs/blog.setup
@@ -0,0 +1,46 @@
+# -*- mode: org; -*-
+
+# These are the options for blog pages
+# title is automatically set to blog name
+
+#+OPTIONS: num:nil ^:{} toc:nil
+
+The following are the html customiation options
+
+Setting the background color to black
+#+HTML_HEAD:
+#+HTML_HEAD:
+
+* Margins
+** p
+#+HTML_HEAD:
+** h2
+#+HTML_HEAD:
+
+
+Alligning center blocks to the center
+#+HTML_HEAD:
+
+Setting up tables to always be in the center
+#+HTML_HEAD:
+
+Setting up the h2(main) heading
+#+HTML_HEAD:
+
+Setting up the h3 heading
+#+HTML_HEAD:
+#+HTML_HEAD:
diff --git a/blogs/test_blog_3.org b/blogs/test_blog_3.org
new file mode 100644
index 0000000..6f773cf
--- /dev/null
+++ b/blogs/test_blog_3.org
@@ -0,0 +1,11 @@
+#+title: Test Blog
+#+created: [2024-02-05 Thu]
+#+last_modified:
+#+setupfile: blog.setup
+#+author: Dibyashanu Pati
+
+* Introduction
+Hello World
+
+* About
+This is just a test blog
diff --git a/contact.org b/contact.org
new file mode 100644
index 0000000..00b321f
--- /dev/null
+++ b/contact.org
@@ -0,0 +1,151 @@
+#+title: Contact
+#+created: [2024-03-02 Sat]
+#+setupfile: main.setup
+
+#+begin_center
+: +----------------------------+
+: | ╔═╗ ┌─┐ ┌┐┌ ┌┬┐ ┌─┐ ┌─┐ ┌┬┐|
+: | ║ │ │ │││ │ ├─┤ │ │ |
+: | ╚═╝ └─┘ ┘└┘ ┴ ┴ ┴ └─┘ ┴ |
+: +----------------------------+
+#+end_center
+
+
+#+name: link-list.txt
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
+
+* Dibyashanu Pati
+#+begin_center
+: ┌─┐ ┌┬┐ ┌─┐ ┬ ┬
+: ├┤ │││ ├─┤ │ │
+: └─┘ ┴ ┴ ┴ ┴ ┴ ┴─┘
+
+: ┌┬┐ ┬ ┌┐ ┬ ┬ ┌─┐ ┌─┐ ┬ ┬ ┌─┐ ┌┐┌ ┬ ┬ ┌─┐ ┌─┐ ┬─┐ ┌─┐ ┌┬┐ ┌─┐ ┌┐┌ ┌┬┐ ┌─┐ ┬ ┬ ┌─┐ ┌─┐ ┌┬┐
+: ││ │ ├┴┐ └┬┘ ├─┤ └─┐ ├─┤ ├─┤ │││ │ │ │└┘ ├─┘ ├┬┘ │ │ │ │ │ │││ │││ ├─┤ │ │ │ │ │ │││
+: ─┴┘ ┴ └─┘ ┴ ┴ ┴ └─┘ ┴ ┴ ┴ ┴ ┘└┘ └─┘ └── ┴ ┴└─ └─┘ ┴ └─┘ ┘└┘ ┴ ┴ ┴ ┴ ┴ ┴─┘ o └─┘ └─┘ ┴ ┴
+#+end_center
+
+** PGP Keys
+#+begin_src
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+Uwr5q7YlZSsd+DyyEU6tpNO98Afjk+0=
+=JCgB
+-----END PGP PUBLIC KEY BLOCK-----
+#+end_src
+
+* Pranav Kalsi
+#+begin_center
+: ┌─┐ ┌┬┐ ┌─┐ ┬ ┬
+: ├┤ │││ ├─┤ │ │
+: └─┘ ┴ ┴ ┴ ┴ ┴ ┴─┘
+
+: ┌─┐ ┬─┐ ┌─┐ ┌┐┌ ┌─┐ ┬ ┬ ┬┌─ ┌─┐ ┬ ┌─┐ ┬ ┌─┐ ┌─┐ ┬─┐ ┌─┐ ┌┬┐ ┌─┐ ┌┐┌ ┌┬┐ ┌─┐
+: ├─┘ ├┬┘ ├─┤ │││ ├─┤ └┐┌┘ ├┴┐ ├─┤ │ └─┐ │ │└┘ ├─┘ ├┬┘ │ │ │ │ │ │││ │││ ├┤
+: ┴ ┴└─ ┴ ┴ ┘└┘ ┴ ┴ └┘ ┴ ┴ ┴ ┴ ┴─┘ └─┘ ┴ └── ┴ ┴└─ └─┘ ┴ └─┘ ┘└┘ o ┴ ┴ └─┘
+#+end_center
+** PGP Keys
+#+begin_src
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=OaHj
+-----END PGP PUBLIC KEY BLOCK-----
+#+end_src
diff --git a/i2p-b32-address.txt b/i2p-b32-address.txt
new file mode 100644
index 0000000..a6a40cf
--- /dev/null
+++ b/i2p-b32-address.txt
@@ -0,0 +1 @@
+http://dbtjoqs5jnsyq6m6r35a47jix2v4zeloz5fpxi6htwihpnv3fcxq.b32.i2p
diff --git a/index.org b/index.org
new file mode 100644
index 0000000..1bd7426
--- /dev/null
+++ b/index.org
@@ -0,0 +1,28 @@
+#+TITLE: Home
+#+created: [2024-03-01 Fri]
+#+setupfile: main.setup
+
+#+begin_center
+: +------------------------------------------------------------------------------------------------------------------------+
+: | ██████╗ ██████╗ ███████╗ ███╗ ███╗ ██╗ ██████╗ ██████╗ ██╗ ██████╗ █████╗ ████████╗ ███████╗ ███████╗ |
+: | ██╔════╝ ██╔═══██╗ ██╔════╝ ████╗ ████║ ██║ ██╔════╝ ██╔══██╗ ██║ ██╔══██╗ ██╔══██╗ ╚══██╔══╝ ██╔════╝ ██╔════╝ |
+: | ██║ ██║ ██║ ███████╗ ██╔████╔██║ ██║ ██║ █████╗ ██████╔╝ ██║ ██████╔╝ ███████║ ██║ █████╗ ███████╗ |
+: | ██║ ██║ ██║ ╚════██║ ██║╚██╔╝██║ ██║ ██║ ╚════╝ ██╔═══╝ ██║ ██╔══██╗ ██╔══██║ ██║ ██╔══╝ ╚════██║ |
+: | ╚██████╗ ╚██████╔╝ ███████║ ██║ ╚═╝ ██║ ██║ ╚██████╗ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ███████╗ ███████║ |
+: | ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ |
+: +------------------------------------------------------------------------------------------------------------------------+
+#+end_center
+
+#+name: link-list.txt
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
+* Latest Blogs
+Here is a list of our latest blog posts
+
+#+name: blog-table-latest-10.txt
+|-
+|Title|Last Modified|Created|
+|-
+|[[file:./blogs/test_blog_3.org][Test Blog]]||[2024-02-05 Thu]|
diff --git a/link-list.txt b/link-list.txt
new file mode 100644
index 0000000..d627749
--- /dev/null
+++ b/link-list.txt
@@ -0,0 +1,3 @@
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
diff --git a/links.org b/links.org
new file mode 100644
index 0000000..104fb4e
--- /dev/null
+++ b/links.org
@@ -0,0 +1,50 @@
+#+title: Links
+#+created: [2024-03-06 Wed]
+#+last_modified: [2024-03-06 Wed]
+#+setupfile: main.setup
+
+
+#+HTML_HEAD:
+
+
+
+#+begin_center
+: +------------------------------------------+
+: | '|| '|| |
+: | || '' || |
+: | || || `||''|, || //` ('''' |
+: | || || || || ||<< `'') |
+: | .||...| .||. .|| ||. .|| \\. `...' |
+: +------------------------------------------+
+#+end_center
+
+#+name: link-list.txt
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
+#+TOC: headlines 1
+
+* cosmicpirates.space
+** Clearnet
+https://cosmicpirates.space/
+
+
+** TOR
+#+name: tor-onionv3-address.txt
+http://acfc2abqv65bdiwimrx74vrlxy6eel66cjlmgqqvdekcrx7ufl3c2cad.onion
+
+
+** I2P
+#+name: i2p-b32-address.txt
+http://dbtjoqs5jnsyq6m6r35a47jix2v4zeloz5fpxi6htwihpnv3fcxq.b32.i2p
diff --git a/main.org b/main.org
new file mode 100644
index 0000000..5486b37
--- /dev/null
+++ b/main.org
@@ -0,0 +1,706 @@
+#+title: Main
+#+startup: overview
+
+* Usage Instructions and Best Practices
+** Basic Plan
++ The entire organization of the website is generated by the scripts in this file.
++ These scripts generated org files which are later published in other formats
+
+** TODO Software and tools
++ [[https://www.gnu.org/software/emacs/][Emacs]]
+ + [[https://github.com/doomemacs/doomemacs][doomemacs]]
+** How to use this file
+This file contains all the information for the website and updating the website consist of the following steps
+1. Run all scripts on this page by running org-babel-execut-buffer(C-c C-v b)
+2. Publish the Project org-Publish (SPC-m P p)
+3. Check the local copy of the website
+4. If sure sync the local copy with the server copy
+** Advice
++ Do not use the #+include tag
+Writing dynamic content to files and then using #+include to include them in other files has unreliable link conversion
+
+
+* Static content and Sample code snippets
+** Generating the ASCII headings
+*** Main Heading
+#+name: main-heading-text
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "Cosmic - Pirates"
+
+# Choose the font
+font = "ANSI Shadow"
+from jimner import jimner
+j = jimner()
+
+result = j.get_banner_from_text(font,text)
+print(result)
+#+end_src
+
+#+RESULTS: main-heading-text
+: ██████╗ ██████╗ ███████╗ ███╗ ███╗ ██╗ ██████╗ ██████╗ ██╗ ██████╗ █████╗ ████████╗ ███████╗ ███████╗
+: ██╔════╝ ██╔═══██╗ ██╔════╝ ████╗ ████║ ██║ ██╔════╝ ██╔══██╗ ██║ ██╔══██╗ ██╔══██╗ ╚══██╔══╝ ██╔════╝ ██╔════╝
+: ██║ ██║ ██║ ███████╗ ██╔████╔██║ ██║ ██║ █████╗ ██████╔╝ ██║ ██████╔╝ ███████║ ██║ █████╗ ███████╗
+: ██║ ██║ ██║ ╚════██║ ██║╚██╔╝██║ ██║ ██║ ╚════╝ ██╔═══╝ ██║ ██╔══██╗ ██╔══██║ ██║ ██╔══╝ ╚════██║
+: ╚██████╗ ╚██████╔╝ ███████║ ██║ ╚═╝ ██║ ██║ ╚██████╗ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ███████╗ ███████║
+: ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝
+:
+:
+: None
+*** About Heading
+#+name: about-heading-text
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "About"
+
+# Choose the font
+font = "Doom"
+from jimner import jimner
+j = jimner()
+
+print(j.get_banner_from_text(font,text))
+#+end_src
+
+#+RESULTS: about-heading-text
+#+begin_example
+ ___ _ _
+ / _ \ | | | |
+/ /_\ \ | |__ ___ _ _ | |_
+| _ | | '_ \ / _ \ | | | | | __|
+| | | | | |_) | | (_) | | |_| | | |_
+\_| |_/ |_.__/ \___/ \__,_| \__|
+
+
+
+None
+#+end_example
+
+*** News Heading
+#+name: news-heading-text
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "News"
+
+# Choose the font
+font = "Ivrit"
+from jimner import jimner
+j = jimner()
+
+print(j.get_banner_from_text(font,text))
+#+end_src
+
+#+RESULTS: news-heading-text
+: _ _
+: | \ | | ___ __ __ ___
+: | \| | / _ \ \ \ /\ / / / __|
+: | |\ | | __/ \ V V / \__ \
+: |_| \_| \___| \_/\_/ |___/
+:
+:
+: None
+
+*** FAQ Heading
+
+#+name: FAQ-heading-text
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "FAQ"
+
+# Choose the font
+font = "Electronic"
+from jimner import jimner
+j = jimner()
+
+print(j.get_banner_from_text(font,text))
+#+end_src
+
+#+RESULTS: FAQ-heading-text
+#+begin_example
+ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄
+▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌
+▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌ ▐░█▀▀▀▀▀▀▀█░▌
+▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
+▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░▌
+▐░░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ ▐░▌ ▐░▌
+▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌ ▐░█▄▄▄▄▄▄▄█░▌
+▐░▌ ▐░▌ ▐░▌ ▐░░░░░░░░░░░▌
+▐░▌ ▐░▌ ▐░▌ ▀▀▀▀▀▀█░█▀▀
+▐░▌ ▐░▌ ▐░▌ ▐░▌
+ ▀ ▀ ▀ ▀
+
+
+None
+#+end_example
+
+*** Links Heading
+#+name: Links-heading-text
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "Links"
+
+# Choose the font
+font = "Fender"
+from jimner import jimner
+j = jimner()
+
+print(j.get_banner_from_text(font,text))
+#+end_src
+
+#+RESULTS: Links-heading-text
+: '|| '||
+: || '' ||
+: || || `||''|, || //` (''''
+: || || || || ||<< `'')
+: .||...| .||. .|| ||. .|| \\. `...'
+:
+:
+:
+: None
+
+*** Contact Heading
+
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "Contact"
+
+# Choose the font
+font = "Calvin S"
+from jimner import jimner
+j = jimner()
+
+print(j.get_banner_from_text(font,text))
+#+end_src
+
+#+RESULTS:
+: ╔═╗ ┌─┐ ┌┐┌ ┌┬┐ ┌─┐ ┌─┐ ┌┬┐
+: ║ │ │ │││ │ ├─┤ │ │
+: ╚═╝ └─┘ ┘└┘ ┴ ┴ ┴ └─┘ ┴
+:
+: None
+
+*** Blog List Heading
+#+name: Blogs-heading-text
+#+begin_src python :results output
+# Enter the Text you want to be converted
+text = "Blogs"
+
+# Choose the font
+font = "Roman"
+from jimner import jimner
+j = jimner()
+
+print(j.get_banner_from_text(font,text))
+#+end_src
+
+#+RESULTS: Blogs-heading-text
+#+begin_example
+oooooooooo. oooo
+`888' `Y8b `888
+ 888 888 888 .ooooo. .oooooooo .oooo.o
+ 888oooo888' 888 d88' `88b 888' `88b d88( "8
+ 888 `88b 888 888 888 888 888 `"Y88b.
+ 888 .88P 888 888 888 `88bod8P' o. )88b
+o888bood8P' o888o `Y8bod8P' `8oooooo. 8""888P'
+ d" YD
+ "Y88888P'
+
+
+None
+#+end_example
+
+
+** File Read Write functions
+*** Write in the place with a given #+name tag
+#+begin_src python
+def write_output_to_org_file(file_path, name, output):
+ with open(file_path, 'r') as file:
+ data = file.readlines()
+
+ with open(file_path, 'w') as file:
+ for line in data:
+ if '#+name: ' in line and name in line:
+ file.write(line)
+ file.write(output)
+ else:
+ file.write(line)
+#+end_src
+
+#+RESULTS:
+: None
+
+*** Read txt files
+#+begin_src python
+def read_file(file_path):
+ try:
+ with open(file_path, 'r') as file:
+ file_contents = file.read()
+ return file_contents
+ except FileNotFoundError:
+ return "Not found"
+#+end_src
+
+#+RESULTS:
+: None
+
+
+* Administrative-scripts
+:PROPERTIES:
+:EXPORT_EXCLUDE_TAGS: noexport
+:END:
+** Blogs
+*** Main Blog list
+**** Generate Main blog list for [[file:blogs/blog-list.org]]
+The following script looks at all org files(except [[blogs/Blog-list.org][blog-list.org]]) in the [[file:blogs]] directory and finds there title, creation date, and last modified date and then displays it in the file in the form of a org table then this table is exported to [[Blogs/blog-table-complete.org]] which ultimately included in [[Blog/Blog-list.org]].
+This could also have been done using the :results_switches parameter but then the result text would have to be in python(ie the same language as the generating block) so instead I used the elisp block [[file:::blog-list-table-result-writer]].
+# begin_src python :results output raw :exports results
+#+name: blog-table-generator
+#+begin_src python :results output raw :exports none
+import os
+from datetime import datetime
+
+# path of the blog directory
+blogs_directory = "./blogs/"
+
+
+# get a list of all things in blogs_directory
+blog_list = os.listdir(blogs_directory)
+max_lines_to_scan = 10
+
+#Only include files which are .org and do no include the main Blog-list.org file which serves as an index
+b = []
+for i in range(0,len(blog_list)):
+ if blog_list[i].endswith(".org") and blog_list[i] != 'blog-list.org':
+ b.append(blog_list[i])
+blog_list=b
+
+#Sort blog files by last modified time
+# blog_list.sort(key=lambda x: os.path.getmtime(blogs_directory+x),reverse=True)
+
+#prints the heading of the list.
+print("|-")
+print("|Title|Last Modified|Created|")
+
+titles = []
+title_found = False
+creation_dates = []
+creation_found = False
+last_modified_found = False
+last_modified_dates = []
+# finds the title, last modified time and creation time
+for blog_no in range(0,len(blog_list)):
+ with open(blogs_directory +'/'+ blog_list[blog_no], "r") as file:
+ creation_found = False
+ last_modified_found = False
+ title_found = False
+ for line_no in range(max_lines_to_scan):
+ try:
+ line = str(next(file))
+ except Exception as e:
+ break
+ if (line.lower()).startswith('#+title') and title_found == False:
+ titles.append((line.split(':',1)[1]).strip())
+ title_found = True
+ elif (line.lower()).startswith('#+created') and creation_found == False:
+ creation_dates.append((line.split(':',1)[1]).strip())
+ creation_found = True
+ elif (line.lower()).startswith('#+last_modified') and last_modified_found == False:
+ last_modified_dates.append((line.split(':',1)[1]).strip())
+ last_modified_found = True
+ if title_found == True and last_modified_found == True and creation_found == True:
+ break
+ if last_modified_found == False:
+ last_modified_dates.append('unknown')
+ if creation_found == False:
+ creation_dates.append('unknown')
+ if title_found == False:
+ titles.append('unknown')
+print("|-")
+
+def sort_multiple_lists(*args):
+ """This function sorts multiple lists according to the sorting of the first list and returns the sorted lists as a tuple"""
+
+ #Extract the firstlist from the argumnts and find its length
+ first_list = args[0]
+ list_length = len(first_list)
+
+ # Group all corresponding elements into a list of tuples
+ tuples_list = list(zip(*args))
+
+ # Sort the tuples according to there first elements
+ sorted_tuples_list = sorted(tuples_list,key = lambda x: first_list.index(x[0]),reverse = False)
+
+ # Extract the sorted lists and return them
+ return(list(zip(*sorted_tuples_list)))
+
+# print((creation_dates,last_modified_dates,blog_list))
+
+# Sort all lists according to creation_date
+sorted_creation_dates,sorted_titles,sorted_last_modified_dates,sorted_blog_list = sort_multiple_lists(creation_dates,titles,last_modified_dates,blog_list)
+
+# print((creation_dates,last_modified_dates,blog_list))
+# creation_dates,blog_list= zip(*sorted(zip(creation_dates,blog_list),reverse = True))
+
+#prints the rest of the list
+for blog_no in range(0,len(blog_list)):
+ print( "|"+ '[[file:'+ sorted_blog_list[blog_no]+ ']' + '['+sorted_titles[blog_no] + ']]'+ '|' +sorted_last_modified_dates[blog_no] + '|' + sorted_creation_dates[blog_no] + '|')
+
+#+end_src
+
+#+RESULTS: blog-table-generator
+|-
+|Title|Last Modified|Created|
+|-
+|[[file:test_blog_3.org][Test Blog]]||[2024-02-05 Thu]|
+
+**** Write the main blog list in [[file:blogs/blog-table-complete.txt]]
+The snippet below writes the table above to a text file [[file:blogs/blog-table-complete.txt]]
+#+name: blog-list-table-result-writer
+#+begin_src emacs-lisp :results silent
+(save-excursion
+ (org-babel-goto-named-result "blog-table-generator")
+ (forward-line)
+ (write-region (point) (org-babel-result-end) "blogs/blog-table-complete.txt")
+ )
+#+end_src
+
+**** Read and write the main blog list into [[file:blogs/blog-list.org]]
+#+begin_src python :results silent
+def write_output_to_org_file(file_path, name, output):
+ erase_until_newline_after_name(file_path)
+ with open(file_path, 'r') as file:
+ data = file.readlines()
+
+ with open(file_path, 'w') as file:
+ for line in data:
+ if '#+name: ' in line and name in line:
+ file.write(line)
+ file.write(output)
+ else:
+ file.write(line)
+
+def erase_until_newline_after_name(filename):
+ with open(filename, 'r') as file:
+ lines = file.readlines()
+
+ with open(filename, 'w') as file:
+ erase = False
+ for line in lines:
+ if "#+name" in line:
+ erase = True
+ file.write(line)
+ if erase:
+ if line == '\n':
+ erase = False
+ file.write(line)
+ else:
+ file.write(line)
+
+def read_file(file_path):
+ try:
+ with open(file_path, 'r') as file:
+ file_contents = file.read()
+ return file_contents
+ except FileNotFoundError:
+ return "Not found"
+
+write_output_to_org_file( "blogs/blog-list.org", "blog-table-complete.txt", read_file('blogs/blog-table-complete.txt'))
+
+#+end_src
+
+*** Latest Blogs
+**** Generating a list of 10 latest blogs
+This snippet just extracts the first 10 lines from file:blogs/blog-table-complete.txt
+#+name: latest-10-blog-table-generator
+#+begin_src python :results output raw :exports none
+def extract_first_n_lines(file_path, n: int):
+ """Helper function to extract n lines from a text file"""
+ lines =[]
+ with open(file_path,'r') as file:
+ for _ in range(n):
+ line = file.readline().rstrip('\n')
+ if not line:
+ break
+ lines.append(line)
+ return lines
+
+def prepend_path_to_links(string,path):
+ """This is a helper function which fixes the relative file paths in a string"""
+ import re
+
+ # pattern to match file links
+ pattern = r'\[\[.*?\]'
+
+ # find all links
+ org_links = re.findall(pattern,string)
+
+ for org_link in org_links:
+ # Extract the path from the org link
+ path_retgx = r'\[\[(.*?)\]'
+ path_match = re.search(path_retgx,org_link)
+ if path_match:
+ current_path = path_match.group(1)
+
+ # Prepend the provided path to the current path
+ new_path = '{}{}'.format(path,current_path)
+
+ # Repalace the old path with the new path in the org link
+ updated_org_link = org_link.replace(current_path,new_path)
+
+ #Return the replaced string
+ return(string.replace(org_link,updated_org_link))
+
+
+list_of_output_lines=extract_first_n_lines("blogs/blog-table-complete.txt",13)
+
+for line in list_of_output_lines:
+ line = line.replace('file:','')
+ modified_line = prepend_path_to_links(line,"file:./blogs/")
+ if modified_line == None:
+ print(line)
+ else:
+ print(modified_line)
+#+end_src
+
+#+RESULTS: latest-10-blog-table-generator
+|-
+|Title|Last Modified|Created|
+|-
+|[[file:./blogs/test_blog_3.org][Test Blog]]||[2024-02-05 Thu]|
+
+**** Write the latest 10 blogs in a txt file
+Write the above result to [[file:blog-table-latest-10.txt]]
+#+name: latest-10-blog-table-result-writer
+#+begin_src emacs-lisp :results silent
+(save-excursion
+ (org-babel-goto-named-result "latest-10-blog-table-generator")
+ (forward-line)
+ (write-region (point) (org-babel-result-end) "blog-table-latest-10.txt")
+ )
+#+end_src
+
+**** Read and write the latest 10 blogs table in [[file:index.org]]
+#+begin_src python :results silent
+def write_output_to_org_file(file_path, name, output):
+ erase_until_newline_after_name(file_path,name)
+ with open(file_path, 'r') as file:
+ data = file.readlines()
+
+ with open(file_path, 'w') as file:
+ for line in data:
+ if '#+name: ' in line and name in line:
+ file.write(line)
+ file.write(output)
+ else:
+ file.write(line)
+
+def erase_until_newline_after_name(filename,name):
+ with open(filename, 'r') as file:
+ lines = file.readlines()
+
+ with open(filename, 'w') as file:
+ erase = False
+ for line in lines:
+ if "#+name" in line and name in line:
+ erase = True
+ file.write(line)
+ if erase:
+ if line == '\n':
+ erase = False
+ file.write(line)
+ else:
+ file.write(line)
+
+def read_file(file_path):
+ try:
+ with open(file_path, 'r') as file:
+ file_contents = file.read()
+ return file_contents
+ except FileNotFoundError:
+ return "Not found"
+
+write_output_to_org_file( "index.org", "blog-table-latest-10.txt", read_file('blog-table-latest-10.txt'))
+
+#+end_src
+
+** The Links table
+
+#+name: link-list
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
+# Git | Archive | Series | Art | Links | Support |
+
+
+*** Write link-list to [[file:link-list.txt]]
+
+#+begin_src python :results silent
+def read_until_newline_after_name(filename,name):
+ with open(filename, 'r') as file:
+ lines = file.readlines()
+ content = ""
+ in_name = False
+ for line in lines:
+ if "#+name" in line and name in line:
+ in_name = True
+ continue
+
+ if in_name:
+ if line == '\n':
+ in_name = False
+ else:
+ content += line
+
+ return(content)
+
+def write_to_file(file_path, content):
+ with open(file_path, 'w') as file:
+ file.write(content)
+
+write_to_file('link-list.txt',read_until_newline_after_name('main.org','link-list'))
+#+end_src
+
+*** Read and write the link table in all files in the root directory except [[file:main.org]]
+#+begin_src python :results silent
+import os
+
+def write_output_to_org_file(file_path, name, output):
+ erase_until_newline_after_name(file_path,name)
+ with open(file_path, 'r') as file:
+ data = file.readlines()
+
+ with open(file_path, 'w') as file:
+ for line in data:
+ if '#+name: ' in line and name in line:
+ file.write(line)
+ file.write(output)
+ else:
+ file.write(line)
+
+def erase_until_newline_after_name(filename,name):
+ with open(filename, 'r') as file:
+ lines = file.readlines()
+
+ with open(filename, 'w') as file:
+ erase = False
+ for line in lines:
+ if "#+name" in line and name in line:
+ erase = True
+ file.write(line)
+ if erase:
+ if line == '\n':
+ erase = False
+ file.write(line)
+ else:
+ file.write(line)
+
+def read_file(file_path):
+ try:
+ with open(file_path, 'r') as file:
+ file_contents = file.read()
+ return file_contents
+ except FileNotFoundError:
+ return "Not found"
+
+directory = './'
+for filename in os.listdir(directory):
+ if filename.endswith('.org') and filename != 'main.org':
+ file_path = os.path.join(directory, filename)
+ # Process the org file here
+ write_output_to_org_file( file_path,"link-list.txt", read_file('link-list.txt'))
+#+end_src
+
+
+** Onion and I2P addresses
+#+name: i2p-b32-address
+http://dbtjoqs5jnsyq6m6r35a47jix2v4zeloz5fpxi6htwihpnv3fcxq.b32.i2p
+
+
+#+name: tor-onionv3-address
+http://acfc2abqv65bdiwimrx74vrlxy6eel66cjlmgqqvdekcrx7ufl3c2cad.onion
+
+
+*** Write to txt files
+#+begin_src python :results silent
+def read_until_newline_after_name(filename,name):
+ with open(filename, 'r') as file:
+ lines = file.readlines()
+ content = ""
+ in_name = False
+ for line in lines:
+ if "#+name" in line and name in line:
+ in_name = True
+ continue
+
+ if in_name:
+ if line == '\n':
+ in_name = False
+ else:
+ content += line
+
+ return(content)
+
+def write_to_file(file_path, content):
+ with open(file_path, 'w') as file:
+ file.write(content)
+
+write_to_file('i2p-b32-address.txt',read_until_newline_after_name('main.org','i2p-b32-address'))
+write_to_file('tor-onionv3-address.txt',read_until_newline_after_name('main.org','tor-onionv3-address'))
+#+end_src
+
+*** Read and write addresses to all files
+#+begin_src python :results silent
+import os
+
+def write_output_to_org_file(file_path, name, output):
+ erase_until_newline_after_name(file_path,name)
+ with open(file_path, 'r') as file:
+ data = file.readlines()
+
+ with open(file_path, 'w') as file:
+ for line in data:
+ if '#+name: ' in line and name in line:
+ file.write(line)
+ file.write(output)
+ else:
+ file.write(line)
+
+def erase_until_newline_after_name(filename,name):
+ with open(filename, 'r') as file:
+ lines = file.readlines()
+
+ with open(filename, 'w') as file:
+ erase = False
+ for line in lines:
+ if "#+name" in line and name in line:
+ erase = True
+ file.write(line)
+ if erase:
+ if line == '\n':
+ erase = False
+ file.write(line)
+ else:
+ file.write(line)
+
+def read_file(file_path):
+ try:
+ with open(file_path, 'r') as file:
+ file_contents = file.read()
+ return file_contents
+ except FileNotFoundError:
+ return "Not found"
+
+directory = './'
+for root,dir,filename in os.walk(directory):
+ for file in filename:
+ if file.endswith('.org') and file != 'main.org':
+ file_path = os.path.join(root, file)
+ # Process the org file here
+ write_output_to_org_file( file_path,"i2p-b32-address.txt", read_file('i2p-b32-address.txt'))
+ write_output_to_org_file( file_path,"tor-onionv3-address.txt", read_file('tor-onionv3-address.txt'))
+#+end_src
+
+
+
+* TODO Things to do
+** TODO Setup Gitea to host the source code (org files) of the website
diff --git a/main.setup b/main.setup
new file mode 100644
index 0000000..06f7c3b
--- /dev/null
+++ b/main.setup
@@ -0,0 +1,58 @@
+# -*- mode: org; -*-
+
+# These are the options for a main page
+# The Title is expected to be provided individually at the head of each file for pages with main type
+#+startup: overview
+
+* Org defualts
+#+OPTIONS: num:nil ^:{} title:nil toc:nil
+
+* HTML
+The following are the html customiation options
+
+** Setting the background color to black and Margins
+#+HTML_HEAD:
+#+HTML_HEAD:
+
+** Seting up tags
+*** p
+#+HTML_HEAD:
+*** h2
+#+HTML_HEAD:
+
+*** Setting up the h3 heading
+#+HTML_HEAD:
+
+*** table of contents
+#+HTML_HEAD:
+
+** Alligning center blocks to the center
+#+HTML_HEAD:
+
+** Setting up tables to always be in the center
+#+HTML_HEAD:
+
diff --git a/news.org b/news.org
new file mode 100644
index 0000000..488634c
--- /dev/null
+++ b/news.org
@@ -0,0 +1,39 @@
+#+title: News
+#+created: [2024-03-01 Fri]
+#+last_modified: [2024-03-06 Wed]
+#+setupfile: main.setup
+
+#+begin_center
+: +--------------------------------------+
+: | _ _ |
+: | | \ | | ___ __ __ ___ |
+: | | \| | / _ \ \ \ /\ / / / __| |
+: | | |\ | | __/ \ V V / \__ \ |
+: | |_| \_| \___| \_/\_/ |___/ |
+: +--------------------------------------+
+#+end_center
+
+#+name: link-list.txt
+|------+------+-------+-----+------+-----+-------|
+| [[file:index.org][Home]] | [[file:blogs/blog-list.org][Blog]] | [[file:about.org][About]] | [[file:FAQ.org][FAQ]] | [[file:news.org][News]] | [[file:contact.org][PGP]] | [[file:links.org][Links]] |
+|------+------+-------+-----+------+-----+-------|
+
+* TOR and I2P - [2024-03-06 Wed]
+Went live on I2P
+#+name: i2p-b32-address.txt
+http://dbtjoqs5jnsyq6m6r35a47jix2v4zeloz5fpxi6htwihpnv3fcxq.b32.i2p
+
+
+Went live on TOR
+#+name: tor-onionv3-address.txt
+http://acfc2abqv65bdiwimrx74vrlxy6eel66cjlmgqqvdekcrx7ufl3c2cad.onion
+
+
+* First Light - [2024-03-02 Sat]
+Website went live
+
+Got our first SSL Certificates
+
+
+* Big Bang !! - [2024-03-01 Fri]
+The site was created from scratch.
diff --git a/tor-onionv3-address.txt b/tor-onionv3-address.txt
new file mode 100644
index 0000000..db8ea87
--- /dev/null
+++ b/tor-onionv3-address.txt
@@ -0,0 +1 @@
+http://acfc2abqv65bdiwimrx74vrlxy6eel66cjlmgqqvdekcrx7ufl3c2cad.onion