chore: modernize web update workflow and ignore generated HTML
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 18 Mar 2026 21:28:29 +0000 (23:28 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 18 Mar 2026 21:28:29 +0000 (23:28 +0200)
- Add automated org-to-HTML export using Emacs batch mode to web update
  script, matching sixth-3d approach
- Add *.html to .gitignore since HTML is generated from org files
- Rename tools/ to Tools/ for consistency with other projects
- Update index.org with modern org export setup

.gitignore
Tools/Open with IntelliJ IDEA [new file with mode: 0755]
Tools/Update web site [new file with mode: 0755]
doc/index.org
tools/commit and push [deleted file]
tools/open with IntelliJ IDEA [deleted file]
tools/update web site [deleted file]

index 78f8bc7..f9576f8 100644 (file)
@@ -2,4 +2,5 @@
 /target/
 /doc/apidocs/
 /*.iml
-/test.byar
\ No newline at end of file
+/test.byar
+*.html
\ No newline at end of file
diff --git a/Tools/Open with IntelliJ IDEA b/Tools/Open with IntelliJ IDEA
new file mode 100755 (executable)
index 0000000..de9bae5
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+#
+# This is a helper bash script that starts IntelliJ with the current project.
+# Script is written is such a way that you can simply click on it in file
+# navigator to run it.
+#
+#
+# Script assumes:
+#
+#    + GNU operating system
+#    + IntelliJ is installed and commandline launcher "idea" is enabled.
+#
+
+cd "${0%/*}"
+cd ..
+
+setsid idea . &>/dev/null
diff --git a/Tools/Update web site b/Tools/Update web site
new file mode 100755 (executable)
index 0000000..7ce9787
--- /dev/null
@@ -0,0 +1,78 @@
+#!/bin/bash
+cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -e "'$0' T"; exit; fi;
+
+cd ..
+
+export_org_to_html() {
+    local org_file=$1
+    local dir=$(dirname "$org_file")
+    local base=$(basename "$org_file" .org)
+    (
+        cd "$dir" || return 1
+        local html_file="${base}.html"
+        if [ -f "$html_file" ]; then
+            rm -f "$html_file"
+        fi
+        echo "Exporting: $org_file → $dir/$html_file"
+        emacs --batch -l ~/.emacs --visit="${base}.org" --funcall=org-html-export-to-html --kill
+        if [ $? -eq 0 ]; then
+            echo "✓ Successfully exported $org_file"
+        else
+            echo "✗ Failed to export $org_file"
+            return 1
+        fi
+    )
+}
+
+export_org_files_to_html() {
+    echo "🔍 Searching for .org files in doc/ ..."
+    echo "======================================="
+
+    mapfile -t ORG_FILES < <(find doc -type f -name "*.org" | sort)
+
+    if [ ${#ORG_FILES[@]} -eq 0 ]; then
+        echo "❌ No .org files found!"
+        return 1
+    fi
+
+    echo "Found ${#ORG_FILES[@]} .org file(s):"
+    printf '%s\n' "${ORG_FILES[@]}"
+    echo "======================================="
+
+    SUCCESS_COUNT=0
+    FAILED_COUNT=0
+
+    for org_file in "${ORG_FILES[@]}"; do
+        export_org_to_html "$org_file"
+        if [ $? -eq 0 ]; then
+            ((SUCCESS_COUNT++))
+        else
+            ((FAILED_COUNT++))
+        fi
+    done
+
+    echo "======================================="
+    echo "📊 SUMMARY:"
+    echo "   ✓ Successful: $SUCCESS_COUNT"
+    echo "   ✗ Failed:     $FAILED_COUNT"
+    echo "   Total:        $((SUCCESS_COUNT + FAILED_COUNT))"
+    echo ""
+}
+
+mvn clean package
+
+export_org_files_to_html
+
+echo "📤 Uploading to server..."
+rsync -avz --delete -e 'ssh -p 10006' doc/ \
+      n0@www3.svjatoslav.eu:/mnt/big/projects/sixth-data/
+
+if [ $? -eq 0 ]; then
+    echo "✓ Upload completed successfully!"
+else
+    echo "✗ Upload failed!"
+fi
+
+echo ""
+echo "Press ENTER to close this window."
+read
\ No newline at end of file
index 0a8e105..2658d32 100644 (file)
@@ -1,16 +1,15 @@
+#+SETUPFILE: ~/.emacs.d/org-styles/html/darksun.theme
 #+TITLE: Sixth Data - Data storage and computing engine
+#+LANGUAGE: en
+#+LATEX_HEADER: \usepackage[margin=1.0in]{geometry}
+#+LATEX_HEADER: \usepackage{parskip}
+#+LATEX_HEADER: \usepackage[none]{hyphenat}
 
-* (document settings) :noexport:
-** use dark style for TWBS-HTML exporter
-#+HTML_HEAD: <link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
-#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
-#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
-#+HTML_HEAD: <style type="text/css">
-#+HTML_HEAD:   footer {background-color: #111 !important;}
-#+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
-#+HTML_HEAD: </style>
+#+OPTIONS: H:20 num:20
+#+OPTIONS: author:nil
 
 * General
+
 - This program is free software: released under Creative Commons Zero
   (CC0) license
 
@@ -35,6 +34,7 @@
   :PROPERTIES:
   :ID:       f6764282-a6f6-44e6-8716-b428074dd093
   :END:
+
 Provide hackable, versioned, optimized, distributed, geometrical,
 arbitrary dimensional ([[id:96116550-a6a1-4700-bef7-865d0deee7ea][hypercube based]]) data storage and computation
 engine ([[id:d2375acc-af14-4f18-8ad0-7949501178c5][as inspired by the brain]]) for general purpose visual computing
@@ -46,11 +46,14 @@ language]] it would be used to provide [[https://en.wikipedia.org/wiki/Imperativ
 :PROPERTIES:
 :ID:       0fa6354b-18c9-4120-bbf5-c7239aebecab
 :END:
+
 + see also: [[https://en.wikipedia.org/wiki/OLAP_cube][OLAP cube]].
+
 ** Brain
   :PROPERTIES:
   :ID:       d2375acc-af14-4f18-8ad0-7949501178c5
   :END:
+
 + Brain appears to be natural geometrical/parallel data storage and
   computational engine:
   + https://www.quantamagazine.org/the-brain-maps-out-ideas-and-memories-like-spaces-20190114/
@@ -68,11 +71,11 @@ language]] it would be used to provide [[https://en.wikipedia.org/wiki/Imperativ
   beautifully fits CM-1 Connection Machine architecture (for extra
   hardware accelerated solution).
 
-
 ** CM-1 Connection Machine
 :PROPERTIES:
 :ID:       01aa65c1-3d44-44a8-9b90-58454bc6be80
 :END:
+
 https://en.wikipedia.org/wiki/Connection_Machine
 
 Massively parallel (thousands of CPUs) connected via
@@ -86,10 +89,11 @@ http://www.mission-base.com/tamiko/theory/cm_txts/di-ch2.html
 we can pre-distribute data across computation units and perform
 parallel [[id:171fe375-c737-41e6-b429-a414f6abc5d8][geometrical computation]].
 
-* Reasons for hypercube as a so called first class citizen
+* Reasons for hypercube
 :PROPERTIES:
 :ID:       96116550-a6a1-4700-bef7-865d0deee7ea
 :END:
+
 + Hypercube is quite general purpose data structure that naturally
   encapsulates wide variety data and problems.
 
@@ -106,14 +110,17 @@ parallel [[id:171fe375-c737-41e6-b429-a414f6abc5d8][geometrical computation]].
 + Hypercube stored data (and computation process) has geometry by its
   nature and should fit nicely with "3D first" user interface ideology
   of the parent [[http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html][Sixth]] project.
+
 * Geometrical computation idea
 :PROPERTIES:
 :ID:       171fe375-c737-41e6-b429-a414f6abc5d8
 :END:
+
 ** Distributed computation and data storage
    :PROPERTIES:
    :ID:       5d287158-53ea-44a2-a754-dd862366066a
    :END:
+
 Lots of problems can be translated to geometry (use any shapes and as
 many dimensions as you need). Solution(s) to such problems could be
 then found via geometrical search/comparison/lookup results. As a
@@ -127,6 +134,7 @@ part). Question answering is making (relatively simple) lookups
    :PROPERTIES:
    :ID:       a117c11e-97c1-4822-88b2-9fc10f96caec
    :END:
+
 Object oriented programming is inspired by the way human mind
 operates. It allows programmer to express ideas to computer in a more
 human-like terms.
@@ -150,7 +158,8 @@ database to geometrical hyperspace:
    :PROPERTIES:
    :ID:       b6b15bd2-c78b-4c51-a343-72843a515c29
    :END:
-Consider we want to create database of:
+
+   Consider we want to create database of:
 + Books.
 + Authors.
 + Effort: Amount of time contributed by every author to every book
@@ -163,7 +172,9 @@ Information above can be represented as 3D cube where dimensions are:
 
 Points in that cube would nicely capture many to many relations
 between authors and the books.
+
 * Current status
+
 - More or less defined [[id:f6764282-a6f6-44e6-8716-b428074dd093][Vision / goal]].
 
 - Collected some [[id:0fa6354b-18c9-4120-bbf5-c7239aebecab][inspiring]] [[id:171fe375-c737-41e6-b429-a414f6abc5d8][ideas]].
diff --git a/tools/commit and push b/tools/commit and push
deleted file mode 100755 (executable)
index c2f228c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -- "$0" T; exit; fi
-
-cd ..
-
-cola
-git push
-
-echo ""
-echo "Press ENTER to close this window."
-read
diff --git a/tools/open with IntelliJ IDEA b/tools/open with IntelliJ IDEA
deleted file mode 100755 (executable)
index de9bae5..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-#
-# This is a helper bash script that starts IntelliJ with the current project.
-# Script is written is such a way that you can simply click on it in file
-# navigator to run it.
-#
-#
-# Script assumes:
-#
-#    + GNU operating system
-#    + IntelliJ is installed and commandline launcher "idea" is enabled.
-#
-
-cd "${0%/*}"
-cd ..
-
-setsid idea . &>/dev/null
diff --git a/tools/update web site b/tools/update web site
deleted file mode 100755 (executable)
index 1350337..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -- "$0" T; exit; fi
-
-cd ..
-
-mvn clean package
-
-# rm -rf doc/apidocs/
-# cp -r target/apidocs/ doc/
-
-rsync -avz --delete  -e 'ssh -p 10006' doc/ n0@www3.svjatoslav.eu:/mnt/big/projects/sixth-data/
-
-echo ""
-echo "Press ENTER to close this window."
-read