summaryrefslogtreecommitdiff
path: root/bin/migrate_vimki
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2021-06-11 00:33:09 +0200
committerMarc Vertes <mvertes@free.fr>2021-06-11 00:33:09 +0200
commit6462de909492c58a8b1061633cec1c325539b3b6 (patch)
treed797e74994a05782b1d973c7277e91bb0f062de9 /bin/migrate_vimki
parent684561b3c989f8421963c8c5c0cd0f38299551e0 (diff)
added migrate_vimki
Diffstat (limited to 'bin/migrate_vimki')
-rwxr-xr-xbin/migrate_vimki58
1 files changed, 58 insertions, 0 deletions
diff --git a/bin/migrate_vimki b/bin/migrate_vimki
new file mode 100755
index 0000000..15242e6
--- /dev/null
+++ b/bin/migrate_vimki
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# Migrate Wiki content from vimki to vimki2 format.
+
+fixfile() {
+ awk '
+ {
+ for (i = 1; i <= NR; i++) {
+ if (match($i, /^[A-Z][A-Z_0-9]*[a-z][a-z0-9]*[_A-Z]/) == 0) continue
+ s = $i
+ l = ""
+ while (match(s, /^[A-Z][A-Z_0-9]*[a-z]+/) != 0) {
+ l = l substr(s, 1, RLENGTH) " "
+ s = substr(s, RLENGTH+1)
+ }
+ p = match(s, /[^A-Za-z0-9_]/)
+ if (p != 0) {
+ s2 = substr(s, 1, p-1) "]" substr(s, p)
+ s = s2
+ } else s = s "]"
+ l = "[" l s
+ gsub(/[ \t_]+/, " ", l)
+ sub(/ *]/, "]", l)
+ $i = tolower(l)
+ }
+ print
+ }
+ ' "${1:-HomePage}"
+}
+
+fixname() {
+ echo "$1" | awk '{
+ s = $0
+ l = ""
+ while (match(s, /^[A-Z][A-Z_0-9]*[a-z]+/) != 0) {
+ l = l substr(s, 1, RLENGTH) " "
+ s = substr(s, RLENGTH+1)
+ }
+ p = match(s, /[^A-Za-z0-9_]/)
+ if (p != 0) {
+ s2 = substr(s, 1, p-1) "]" substr(s, p)
+ s = s2
+ }
+ l = l s
+ gsub(/[ \t_]+/, " ", l)
+ sub(/ *$/, "", l)
+ print tolower(l)
+
+ }'
+}
+
+mkdir -p $HOME/Wiki2
+cd $HOME/Wiki
+for file in *; do
+ new=$(fixname "$file")
+ echo "$new"
+ fixfile "$file" > "$HOME/Wiki2/$new"
+done