aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile80
-rw-r--r--README.md65
-rw-r--r--altnavbar.patch42
-rw-r--r--altnavbar_i18n.patch28
-rw-r--r--honk.service23
-rwxr-xr-xhonkinit3
-rw-r--r--i18n.go4
-rw-r--r--i18n.patch (renamed from patches/03_bloated_i18n_implementation.patch)73
-rw-r--r--i18n_views/about.html (renamed from views/i18n/about.html)0
-rw-r--r--i18n_views/account.html (renamed from views/i18n/account.html)0
-rw-r--r--i18n_views/chatter.html (renamed from views/i18n/chatter.html)0
-rw-r--r--i18n_views/combos.html (renamed from views/i18n/combos.html)0
-rw-r--r--i18n_views/funzone.html (renamed from views/i18n/funzone.html)0
-rw-r--r--i18n_views/header.html (renamed from views/i18n/header.html)19
-rw-r--r--i18n_views/hfcs.html (renamed from views/i18n/hfcs.html)0
-rw-r--r--i18n_views/honk.html (renamed from views/i18n/honk.html)0
-rw-r--r--i18n_views/honkers.html (renamed from views/i18n/honkers.html)0
-rw-r--r--i18n_views/honkform.html (renamed from views/i18n/honkform.html)0
-rw-r--r--i18n_views/honkfrags.html (renamed from views/i18n/honkfrags.html)0
-rw-r--r--i18n_views/honkpage.html (renamed from views/i18n/honkpage.html)0
-rw-r--r--i18n_views/honkpage.js (renamed from views/i18n/honkpage.js)0
-rw-r--r--i18n_views/local.css (renamed from views/local.css)0
-rw-r--r--i18n_views/login.html (renamed from views/i18n/login.html)0
-rw-r--r--i18n_views/msg.html (renamed from views/i18n/msg.html)0
-rw-r--r--i18n_views/onts.html (renamed from views/i18n/onts.html)0
-rw-r--r--i18n_views/pleroma.css (renamed from views/i18n/pleroma.css)0
-rw-r--r--i18n_views/style.css (renamed from views/i18n/style.css)0
-rw-r--r--i18n_views/xzone.html (renamed from views/i18n/xzone.html)0
-rw-r--r--rsstitle.patch (renamed from patches/01_prettier_rssfeed.patch)2
-rw-r--r--views/header.html90
-rw-r--r--views/honk.html140
-rw-r--r--views/i18n/local.css58
32 files changed, 241 insertions, 386 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..295bada
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,80 @@
+VER=0.9.6
+PREFIX=/usr/share
+DLURL="https://humungus.tedunangst.com/r/honk/d/honk-$(VER).tgz"
+MANDIR="$(DESTDIR)$(PREFIX)/man/man"
+DOCS="honk-$(VER)/docs"
+SYSTEMD=1
+
+getsrc:
+ @if ! test -e honk-$(VER).tgz; then \
+ $(MAKE) clean; \
+ printf "Getting source for honk version $(VER)...\n"; \
+ curl --progress-bar -fOJL $(DLURL); \
+ fi
+ @tar xzf honk-$(VER).tgz; \
+
+rsstitle: rsstitle.patch
+ $(MAKE) getsrc;
+ cd honk-$(VER)/ && patch -Nbp1 < ../rsstitle.patch;
+
+i18n: i18n.patch i18n.go
+ $(MAKE) getsrc;
+ cp i18n.go honk-$(VER)/;
+ cp i18n_views/* honk-$(VER)/views/;
+ cd honk-$(VER) && patch -Nbp1 < ../i18n.patch;
+
+altnavbar: altnavbar.patch
+ $(MAKE) getsrc;
+ cp i18n_views/local.css honk-$(VER)/views;
+ cd honk-$(VER) && patch -Nbp1 < ../altnavbar.patch;
+
+i18naltnavbar: altnavbar_i18n.patch
+ $(MAKE) getsrc;
+ $(MAKE) i18n;
+ cp i18n_views/local.css honk-$(VER)/views;
+ cd honk-$(VER) && patch -Nbp1 < ../altnavbar_i18n.patch;
+
+build: honk-$(VER)/
+ cd honk-$(VER) && go build -mod=`ls -d vendor 2> /dev/null` -o honk;
+
+install: honk.service honkinit honk-$(VER)/
+ $(MAKE) build;
+ install -Dm755 "honk-$(VER)/honk" -t "$(DESTDIR)/usr/bin/";
+ install -Dm644 honk-$(VER)/views/* -t "$(DESTDIR)$(PREFIX)/honk/views/";
+ install -Dm644 $(DOCS)/* -t "$(DESTDIR)$(PREFIX)/honk/docs/";
+ gzip -k -f $(DOCS)/*.{1,3,5,7,8};
+ install -Dm644 $(DOCS)/honk.1.gz -t $(MANDIR)1/;
+ install -Dm644 $(DOCS)/honk.3.gz -t $(MANDIR)3/;
+ install -Dm644 $(DOCS)/honk.5.gz -t $(MANDIR)5/;
+ install -Dm644 $(DOCS)/honk.8.gz -t $(MANDIR)8/;
+ install -Dm644 $(DOCS)/activitypub.7.gz $(MANDIR)7/honk_activitypub.7.gz;
+ install -Dm644 $(DOCS)/hfcs.1.gz $(MANDIR)1/honk_hfcs.1.gz;
+ install -Dm644 $(DOCS)/intro.1.gz $(MANDIR)1/honk_intro.1.gz;
+ install -Dm644 $(DOCS)/vim.3.gz $(MANDIR)3/honk_vim.3.gz;
+ install -Dm644 "honk-$(VER)"/LICENSE -t "$(DESTDIR)$(PREFIX)/licenses/honk/";
+ @if test -n $(SYSTEMD); #if systemd
+ install -Dm644 honk.service -t "$(DESTDIR)/usr/lib/systemd/system/";\
+ systemctl daemon-reload;\
+ fi;
+ mandb -q > /dev/null;
+ if ! getent passwd honk >/dev/null; then \
+ useradd -r -d $(DESTDIR)$(PREFIX)/honk honk; \
+ fi
+ chown honk:honk -R "$(DESTDIR)$(PREFIX)/honk";
+ @if ! test -e $(PREFIX)/honk/honk.db; then \
+ sh honkinit;\
+ fi
+ @printf "\nDone\n";
+
+uninstall: $(DESTDIR)$(PREFIX)/honk;
+ @if test -n $(SYSTEMD); #if systemd
+ systemctl stop honk;
+ fi;
+ userdel honk;
+ rm -rf $(DESTDIR)$(PREFIX)/honk;
+ rm -f $(DESTDIR)/usr/lib/systemd/system/honk.service;
+ rm -f $(DESTDIR)/usr/bin/honk;
+ find $(DESTDIR)$(PREFIX)/man/ -name "honk*.gz" -exec rm -f {} \;;
+
+clean:
+ rm -rf honk honk-$(VER)*;
diff --git a/README.md b/README.md
index 4ccd7e5..3ae2cd9 100644
--- a/README.md
+++ b/README.md
@@ -8,31 +8,62 @@ ActivityPub server.
These are mainly related to the UX, but patching of the Go files
might happen if I feel the need.
-Branches are created based on released version numbers.
+# How to use
-# i18n
+If you are already using Honk, backup
+your `blob.db`, `honk.db` and `local.css`. For example, if you
+want prepare the source with the rss patch:
+```
+make rsstitle
+```
+This will download the source tarball if not already done, untar it
+and patch the source with the rsstitle.patch.
+The patches are useable outside the Makefile. You just have to make
+sure to put them in the root of the cloned honk repo or untarred source.
+
+# Patches
+
+## i18n.patch : Translation of the honk user interface
-The patch `03_bloated_i18n_implementation.patch` works on
-`web.go` in the latest changeset
-of honk, [dca9f49c629f](https://humungus.tedunangst.com/r/honk/v/dca9f49c629f).
+- Adds an option to switch language, cookie-based (defaults to eng)
+- Can also switch it in account settings
+
+The patches `i18n.patch` works in the latest honk release, `0.9.6`, and
+latest hg changeset of honk, [f74b9ce19463](https://humungus.tedunangst.com/r/honk/v/d/f74b9ce19463).
The translated strings are contained in the `i18n.go` and
-`views/i18n/honkpage.js` files. Contact me if you need
+`i18n_views/honkpage.js` files. Contact me if you need
help to add translations or notify me for problems, suggestions or
improvements.
-Command line to do after adding translations to compile
-and run the i18n'd honk should ressemble this:
-```
-cp patches/03_bloated_i18n_implementation.patch ../honk/
-cp views/i18n/* ../honk/views/
-cd ../honk
-patch -b < 03_bloated_i18n_implementation.patch
-make all
-./honk
-```
+## rsstitle.patch : More descriptive RSS title and description
+
+Before the patch, the title and description of an user RSS Feed is like this:
+- title : yourhandle honk
+- description: yourhandle honk rss
+After the patch:
+- title: @yourhandle - honking from honk.club
+- description: Honks from yourhandle@honk.club
+
+I find it clearer.
+
+## altnavbar.patch (and the i18n version): honking faster with less clicks
+
+You need to shitpost fast ? Look no further, this will add a floating
+navigation bar at the page's top with link to:
+- /newhonk
+- /front
+- /home
+- /xzone
+- /@me
+- /u/yourhandle (so your can see your own honks)
+- /account
+
+The `altnavbar_i18n.patch` is the same, but the labels are i18n'd.
# Screenshots
-Alternative navigation bar, less uses of the drop down menu:
+Alternative navigation bar, less uses of the menu on the left:
[alt nav bar menu for honk](https://git.les-miquelots.net/honk_custom/plain/scrots/honk_altnavbar.png)
+
+A video of the i18n module and the navbar patch [here](https://partage.les-miquelots.net/img/honk_i18n.mp4)
diff --git a/altnavbar.patch b/altnavbar.patch
new file mode 100644
index 0000000..10864bf
--- /dev/null
+++ b/altnavbar.patch
@@ -0,0 +1,42 @@
+--- a/views/header.html
++++ b/views/header.html
+@@ -1,6 +1,7 @@
+ <!doctype html>
+ <html>
+ <head>
++ <link rel="shortcut icon" href="/favicon.ico"/>
+ <title>honk</title>
+ <link href="/style.css{{ .StyleParam }}" rel="stylesheet">
+ {{ if .LocalStyleParam }}
+@@ -12,6 +13,8 @@
+ <link href="/icon.png" rel="icon">
+ <meta name="theme-color" content="#305">
+ <meta name="viewport" content="width=device-width">
++<meta name="description" content="Federated ActivityPub instance running the Honk server. things happen">
++<meta name="keywords" content="honk">
+ </head>
+ <body>
+ <header>
+@@ -57,6 +60,22 @@
+ </form>
+ </ul>
+ </details>
++
++<!-- CUSTOM HONK NAVIGATION BAR -->
++ <div id="altnavbar">
++ <a href="/newhonk" tabindex="2">new honk</a> |
++ <a title="Public timeline" href="/front">ptl</a> |
++ <a href="/">home</a> |
++ <a title="To fetch posts from a remote user" href="/xzone">fetch</a> |
++ <a href="/atme">@me</a> |
++ <a href="/u/{{ .UserInfo.Username}}">profile</a> |
++ <a href="/account">settings</a> |
++ <form style="display:inline" action="/q" method="GET">
++ <input type="text" tabindex="1" name="q" autocomplete="off" size="10" placeholder="search">
++ </form>
++ </div>
++<!-- END -->
++
+ <p id="topspacer"></p>
+ {{ else }}
+ <span><a id="homelink" href="/">home</a></span>
diff --git a/altnavbar_i18n.patch b/altnavbar_i18n.patch
new file mode 100644
index 0000000..4c2fc10
--- /dev/null
+++ b/altnavbar_i18n.patch
@@ -0,0 +1,28 @@
+diff --git a/i18n_views/header.html b/usr/share/honk/views/header.html
+index 4f3373e..9e65c45 100644
+--- a/views/header.html
++++ b/views/header.html
+@@ -60,6 +60,23 @@
+ </form>
+ </ul>
+ </details>
++
++<!-- CUSTOM HONK NAVIGATION BAR -->
++ <div id="altnavbar">
++ <a href="/newhonk" tabindex="2">{{ .i18n.Newhonk }}</a> |
++ <a href="/front">{{ .i18n.Front }}</a> |
++ <a href="/">{{ .i18n.Home }}</a> |
++ <a href="/xzone">{{ .i18n.Xzone }}</a> |
++ <a href="/atme">{{ .i18n.Atme }}</a> |
++ <a href="/u/{{ .UserInfo.Username}}">{{ .i18n.Myhonks }}</a> |
++ <a href="/account">{{ .i18n.Account }}</a> |
++ <form style="display:inline" action="/q" method="GET">
++ <input type="text" tabindex="1" name="q" autocomplete="off"
++ size="10" placeholder="{{ .i18n.Search }}">
++ </form>
++ </div>
++<!-- END -->
++
+ <p id="topspacer"></p>
+ {{ else }}
+ <span><a id="homelink" href="/">{{ .i18n.Home }}</a></span>
diff --git a/honk.service b/honk.service
new file mode 100644
index 0000000..0d9d3ba
--- /dev/null
+++ b/honk.service
@@ -0,0 +1,23 @@
+[Unit]
+Description="Honk ActivityPub server"
+After=syslog.target network.target
+Requires=network.target
+
+[Service]
+Restart=always
+RestartSec=30
+WorkingDirectory=/usr/share/honk
+ExecStart=/usr/bin/honk
+NoNewPrivileges=yes
+ProtectKernelLogs=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+ReadWritePaths=/usr/share/honk
+
+
+User=honk
+Group=honk
+
+[Install]
+WantedBy=default.target
diff --git a/honkinit b/honkinit
new file mode 100755
index 0000000..6c5d568
--- /dev/null
+++ b/honkinit
@@ -0,0 +1,3 @@
+#!/bin/sh
+HONKDIR="/usr/share/honk"
+su -l honk -c "honk -datadir $HONKDIR init"
diff --git a/i18n.go b/i18n.go
index 9e9126e..83a3e36 100644
--- a/i18n.go
+++ b/i18n.go
@@ -222,7 +222,7 @@ func setLangStr (lang string) interface{} {
"mentions",
"premier (first)",
"combos",
- "discutaille",
+ "tchat",
"balises",
"événements",
"il y a longtemps",
@@ -233,7 +233,7 @@ func setLangStr (lang string) interface{} {
"plus de choses",
"profil",
"à propos",
- "tout le réseau connu",
+ "tlrc",
"zone fun",
"récup",
"aide",
diff --git a/patches/03_bloated_i18n_implementation.patch b/i18n.patch
index d8d09a5..07916c3 100644
--- a/patches/03_bloated_i18n_implementation.patch
+++ b/i18n.patch
@@ -1,5 +1,5 @@
-diff --git a/web.go b/web.go
-index 11adf5b..d15fbac 100644
+diff --git a/honk-0.9.6/web.go.orig b/honk-0.9.6/web.go
+index 600f28b..cadca17 100644
--- a/web.go
+++ b/web.go
@@ -85,6 +85,9 @@ func getInfo(r *http.Request) map[string]interface{} {
@@ -75,14 +75,14 @@ index 11adf5b..d15fbac 100644
- templinfo["ServerMessage"] = "saved honks"
+ switch templinfo["Lang"] {
+ case "fr":
-+ templinfo["ServerMessage"] = "klaxons enregistrés"
++ templinfo["ServerMessage"] = "klaxons "
+ default:
+ templinfo["ServerMessage"] = "saved honks"
+ }
templinfo["PageName"] = "saved"
honks = getsavedhonks(userid, 0)
default:
-@@ -733,6 +761,8 @@ func showhonker(w http.ResponseWriter, r *http.Request) {
+@@ -744,6 +772,8 @@ func showhonker(w http.ResponseWriter, r *http.Request) {
templinfo["PageArg"] = name
templinfo["ServerMessage"] = msg
templinfo["HonkCSRF"] = login.GetCSRF("honkhonk", r)
@@ -91,7 +91,7 @@ index 11adf5b..d15fbac 100644
honkpage(w, u, honks, templinfo)
}
-@@ -744,7 +774,12 @@ func showcombo(w http.ResponseWriter, r *http.Request) {
+@@ -755,7 +785,12 @@ func showcombo(w http.ResponseWriter, r *http.Request) {
templinfo := getInfo(r)
templinfo["PageName"] = "combo"
templinfo["PageArg"] = name
@@ -105,7 +105,7 @@ index 11adf5b..d15fbac 100644
templinfo["HonkCSRF"] = login.GetCSRF("honkhonk", r)
honkpage(w, u, honks, templinfo)
}
-@@ -1109,8 +1144,9 @@ func saveuser(w http.ResponseWriter, r *http.Request) {
+@@ -1120,8 +1155,9 @@ func saveuser(w http.ResponseWriter, r *http.Request) {
options.MapLink = ""
}
options.Reaction = r.FormValue("reaction")
@@ -117,7 +117,7 @@ index 11adf5b..d15fbac 100644
ava := re_avatar.FindString(whatabout)
if ava != "" {
whatabout = re_avatar.ReplaceAllString(whatabout, "")
-@@ -2179,11 +2215,22 @@ func webhydra(w http.ResponseWriter, r *http.Request) {
+@@ -2192,11 +2228,22 @@ func webhydra(w http.ResponseWriter, r *http.Request) {
case "atme":
honks = gethonksforme(userid, wanted)
honks = osmosis(honks, userid, false)
@@ -142,67 +142,20 @@ index 11adf5b..d15fbac 100644
case "home":
honks = gethonksforuser(userid, wanted)
honks = osmosis(honks, userid, true)
-@@ -2191,26 +2238,53 @@ func webhydra(w http.ResponseWriter, r *http.Request) {
- case "first":
- honks = gethonksforuserfirstclass(userid, wanted)
- honks = osmosis(honks, userid, true)
-- templinfo["ServerMessage"] = "first class only"
-+
-+ switch templinfo["Lang"] {
-+ case "fr":
-+ templinfo["ServerMessage"] = "première classe seulement"
-+ default:
-+ templinfo["ServerMessage"] = "first class only"
-+ }
- case "saved":
- honks = getsavedhonks(userid, wanted)
- templinfo["PageName"] = "saved"
-- templinfo["ServerMessage"] = "saved honks"
-+ switch templinfo["Lang"] {
+@@ -2229,6 +2276,12 @@ func webhydra(w http.ResponseWriter, r *http.Request) {
+ </form>`, login.GetCSRF("submithonker", r), xid)
+ msg := templates.Sprintf(`honks by honker: <a href="%s" ref="noreferrer">%s</a>%s`, xid, xid, miniform)
+ templinfo["ServerMessage"] = msg
++ switch templinfo["Lang"]{
+ case "fr":
+ templinfo["ServerMessage"] = "klaxons enregistrés"
+ default:
+ templinfo["ServerMessage"] = "saved honks"
+ }
- case "combo":
- c := r.FormValue("c")
- honks = gethonksbycombo(userid, c, wanted)
- honks = osmosis(honks, userid, false)
-- templinfo["ServerMessage"] = "honks by combo: " + c
-+ switch templinfo["Lang"] {
-+ case "fr":
-+ templinfo["ServerMessage"] = "klaxons par groupe: " + c
-+ default:
-+ templinfo["ServerMessage"] = "honks by combo: " + c
-+ }
- case "convoy":
- c := r.FormValue("c")
- honks = gethonksbyconvoy(userid, c, wanted)
- honks = osmosis(honks, userid, false)
-- templinfo["ServerMessage"] = "honks in convoy: " + c
-+ switch templinfo["Lang"] {
-+ case "fr":
-+ templinfo["ServerMessage"] = "klaxons dans le convoi: " + c
-+ default:
-+ templinfo["ServerMessage"] = "honks in convoy: " + c
-+ }
- case "honker":
- xid := r.FormValue("xid")
- honks = gethonksbyxonker(userid, xid, wanted)
-- msg := templates.Sprintf(`honks by honker: <a href="%s" ref="noreferrer">%s</a>`, xid, xid)
-- templinfo["ServerMessage"] = msg
-+ switch templinfo["Lang"] {
-+ case "fr":
-+ msg := templates.Sprintf(`klaxons par le klaxonneur: <a href="%s" ref="noreferrer">%s</a>`, xid, xid)
-+ templinfo["ServerMessage"] = msg
-+ default:
-+ msg := templates.Sprintf(`honks by honker: <a href="%s" ref="noreferrer">%s</a>`, xid, xid)
-+ templinfo["ServerMessage"] = msg
-+ }
default:
http.NotFound(w, r)
}
-@@ -2436,6 +2510,7 @@ func serve() {
+@@ -2454,6 +2507,7 @@ func serve() {
getters.HandleFunc("/server", serveractor)
posters.HandleFunc("/server/inbox", serverinbox)
posters.HandleFunc("/inbox", serverinbox)
diff --git a/views/i18n/about.html b/i18n_views/about.html
index 962e7c3..962e7c3 100644
--- a/views/i18n/about.html
+++ b/i18n_views/about.html
diff --git a/views/i18n/account.html b/i18n_views/account.html
index 2d5a3f3..2d5a3f3 100644
--- a/views/i18n/account.html
+++ b/i18n_views/account.html
diff --git a/views/i18n/chatter.html b/i18n_views/chatter.html
index 0173224..0173224 100644
--- a/views/i18n/chatter.html
+++ b/i18n_views/chatter.html
diff --git a/views/i18n/combos.html b/i18n_views/combos.html
index 9cd227d..9cd227d 100644
--- a/views/i18n/combos.html
+++ b/i18n_views/combos.html
diff --git a/views/i18n/funzone.html b/i18n_views/funzone.html
index d5e69e3..d5e69e3 100644
--- a/views/i18n/funzone.html
+++ b/i18n_views/funzone.html
diff --git a/views/i18n/header.html b/i18n_views/header.html
index 77995e7..4f3373e 100644
--- a/views/i18n/header.html
+++ b/i18n_views/header.html
@@ -20,7 +20,7 @@
<header>
{{ if .UserInfo }}
<details id="topmenu">
- <summary>menu <span> {{ .UserInfo.Username }}</span></summary>
+<summary>menu <span> {{ .UserInfo.Username }}</span></summary>
<ul>
<li><a id="homelink" href="/">{{ .i18n.Home }}</a>
<li><a id="atmelink" href="/atme">{{ .i18n.Atme }}</a>
@@ -60,23 +60,6 @@
</form>
</ul>
</details>
-
-<!-- CUSTOM HONK NAVIGATION BAR -->
- <div id="altnavbar">
- <a href="/newhonk" tabindex="2">{{ .i18n.Newhonk }}</a> |
- <a href="/front">{{ .i18n.Front }}</a> |
- <a href="/">{{ .i18n.Home }}</a> |
- <a href="/xzone">{{ .i18n.Xzone }}</a> |
- <a href="/atme">{{ .i18n.Atme }}</a> |
- <a href="/u/{{ .UserInfo.Username}}">{{ .i18n.Myhonks }}</a> |
- <a href="/account">{{ .i18n.Account }}</a> |
- <form style="display:inline" action="/q" method="GET">
- <input type="text" tabindex="1" name="q" autocomplete="off"
- size="10" placeholder="{{ .i18n.Search }}">
- </form>
- </div>
-<!-- END -->
-
<p id="topspacer"></p>
{{ else }}
<span><a id="homelink" href="/">{{ .i18n.Home }}</a></span>
diff --git a/views/i18n/hfcs.html b/i18n_views/hfcs.html
index 75b6f4f..75b6f4f 100644
--- a/views/i18n/hfcs.html
+++ b/i18n_views/hfcs.html
diff --git a/views/i18n/honk.html b/i18n_views/honk.html
index 52f63a7..52f63a7 100644
--- a/views/i18n/honk.html
+++ b/i18n_views/honk.html
diff --git a/views/i18n/honkers.html b/i18n_views/honkers.html
index 5b9ecf4..5b9ecf4 100644
--- a/views/i18n/honkers.html
+++ b/i18n_views/honkers.html
diff --git a/views/i18n/honkform.html b/i18n_views/honkform.html
index ce17fca..ce17fca 100644
--- a/views/i18n/honkform.html
+++ b/i18n_views/honkform.html
diff --git a/views/i18n/honkfrags.html b/i18n_views/honkfrags.html
index 5ccc2da..5ccc2da 100644
--- a/views/i18n/honkfrags.html
+++ b/i18n_views/honkfrags.html
diff --git a/views/i18n/honkpage.html b/i18n_views/honkpage.html
index 0ae42ef..0ae42ef 100644
--- a/views/i18n/honkpage.html
+++ b/i18n_views/honkpage.html
diff --git a/views/i18n/honkpage.js b/i18n_views/honkpage.js
index 351cde4..351cde4 100644
--- a/views/i18n/honkpage.js
+++ b/i18n_views/honkpage.js
diff --git a/views/local.css b/i18n_views/local.css
index 680d300..680d300 100644
--- a/views/local.css
+++ b/i18n_views/local.css
diff --git a/views/i18n/login.html b/i18n_views/login.html
index e5ea195..e5ea195 100644
--- a/views/i18n/login.html
+++ b/i18n_views/login.html
diff --git a/views/i18n/msg.html b/i18n_views/msg.html
index b729caa..b729caa 100644
--- a/views/i18n/msg.html
+++ b/i18n_views/msg.html
diff --git a/views/i18n/onts.html b/i18n_views/onts.html
index 4a208c8..4a208c8 100644
--- a/views/i18n/onts.html
+++ b/i18n_views/onts.html
diff --git a/views/i18n/pleroma.css b/i18n_views/pleroma.css
index b25439a..b25439a 100644
--- a/views/i18n/pleroma.css
+++ b/i18n_views/pleroma.css
diff --git a/views/i18n/style.css b/i18n_views/style.css
index b1da23d..b1da23d 100644
--- a/views/i18n/style.css
+++ b/i18n_views/style.css
diff --git a/views/i18n/xzone.html b/i18n_views/xzone.html
index e2ab0d7..e2ab0d7 100644
--- a/views/i18n/xzone.html
+++ b/i18n_views/xzone.html
diff --git a/patches/01_prettier_rssfeed.patch b/rsstitle.patch
index 80e8d9e..c4993ec 100644
--- a/patches/01_prettier_rssfeed.patch
+++ b/rsstitle.patch
@@ -10,7 +10,7 @@ index 11adf5b..502e15f 100644
+ Title: "@" + name + " - honking from " + serverName,
Link: home,
- Description: name + "honk rss",
-+ Description: "RSS Feed of honks from " + name + "@" + serverName,
++ Description: "Honks from " + name + "@" + serverName,
Image: &rss.Image{
URL: base + "icon.png",
Title: name + "honk rss",
diff --git a/views/header.html b/views/header.html
deleted file mode 100644
index 4498ca1..0000000
--- a/views/header.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!doctype html>
-<html>
-<head>
- <link rel="shortcut icon" href="/favicon.ico"/>
-<title>honk</title>
-<link href="/style.css{{ .StyleParam }}" rel="stylesheet">
-{{ if .LocalStyleParam }}
-<link href="/local.css{{ .LocalStyleParam }}" rel="stylesheet">
-{{ end }}
-<style>
-{{ .UserStyle }}
-</style>
-<link href="/icon.png" rel="icon">
-<meta name="theme-color" content="#305">
-<meta name="viewport" content="width=device-width">
-<meta name="description" content="Federated ActivityPub instance running the Honk server. things happen">
-<meta name="keywords" content="honk">
-</head>
-<body>
-<header>
-{{ if .UserInfo }}
-<details id="topmenu">
- <summary>menu <span> {{ .UserInfo.Username }}</span></summary>
-<ul>
-<li><a id="homelink" href="/">home</a>
-<li><a id="atmelink" href="/atme">@me</a>
-<li><a id="firstlink" href="/first">first</a>
-<li style="list-style-type:none; margin-left:-1em">
-<details>
-<summary>combos</summary>
-<ul>
-{{ range .Combos }}
-<li><a class="combolink" href="/c/{{ . }}">{{ . }}</a>
-{{ end }}
-</ul>
-</details>
-<li><a href="/chatter">chatter</a>
-<li><a href="/o">tags</a>
-<li><a href="/events">events</a>
-<li><a id="longagolink" href="/longago">long ago</a>
-<li><a id="savedlink" href="/saved">saved</a>
-<li><a href="/honkers">honkers</a>
-<li><a href="/hfcs">filters</a>
-<li><a href="/account">account</a>
-<li style="list-style-type:none; margin-left:-1em">
-<details>
-<summary>more stuff</summary>
-<ul>
-<li><a href="/{{ .UserSep }}/{{ .UserInfo.Username }}">my honks</a>
-<li><a href="/about">about</a>
-<li><a href="/front">front</a>
-<li><a href="/funzone">funzone</a>
-<li><a href="/xzone">xzone</a>
-</ul>
-</details>
-<li><a href="/help/honk.1.html">help</a>
-<li>
-<form action="/q" method="GET">
-<input type="text" name="q" autocomplete=off size=10 placeholder="search">
-</form>
-</ul>
-</details>
-
-<!-- CUSTOM HONK NAVIGATION BAR -->
- <div id="altnavbar">
- <a href="/newhonk" tabindex="2">new honk</a> |
- <a href="/front">front</a> |
- <a href="/">home</a> |
- <a href="/xzone">fetch</a> |
- <a href="/atme">@me</a> |
- <a href="/u/{{ .UserInfo.Username}}">profile</a> |
- <a href="/account">settings</a> |
- <form style="display:inline" action="/q" method="GET">
- <input type="text" tabindex="1" name="q" autocomplete="off" size="10" placeholder="search">
- </form>
- </div>
-<!-- END -->
-
-<p id="topspacer"></p>
-{{ else }}
-<span><a id="homelink" href="/">home</a></span>
-<span><a href="/o">tags</a></span>
-<span><a href="/events">events</a></span>
-<span><a href="/about">about</a></span>
-{{ if .ShowRSS }}
-<span><a href="/rss">rss</a></span>
-{{ end }}
-<span><a href="/login">login</a></span>
-{{ end }}
-</header>
diff --git a/views/honk.html b/views/honk.html
deleted file mode 100644
index 2d1e465..0000000
--- a/views/honk.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<article class="honk {{ .Honk.Style }}" data-convoy="{{ .Honk.Convoy }}">
-{{ $bonkcsrf := .BonkCSRF }}
-{{ $IsPreview := .IsPreview }}
-{{ $maplink := .MapLink }}
-{{ $omitimages := .OmitImages }}
-{{ with .Honk }}
-<header>
-{{ if $bonkcsrf }}
-<a class="honkerlink" href="/h?xid={{ .Honker }}" data-xid="{{ .Honker }}">
-{{ else }}
-<a href="{{ .Honker }}" rel=noreferrer>
-{{ end }}
-<img alt="" src="/a?a={{ .Honker}}">
-{{ if $bonkcsrf }} </a> {{ end }}
-{{ if .Oonker }}
-{{ if $bonkcsrf }}
-<a class="honkerlink" href="/h?xid={{ .Oonker }}" data-xid="{{ .Oonker }}">
-{{ else }}
-<a href="{{ .Oonker }}" rel=noreferrer>
-{{ end }}
-<img alt="" src="/a?a={{ .Oonker}}">
-{{ if $bonkcsrf }} </a> {{ end }}
-{{ end }}
-<p>
-{{ if $bonkcsrf }}
-<a class="honkerlink" href="/h?xid={{ .Honker }}" data-xid="{{ .Honker }}">{{ .Username }}</a>
-{{ else }}
-<a href="{{ .Honker }}" rel=noreferrer>{{ .Username }}</a>
-{{ end }}
-<span class="clip"><a href="{{ .URL }}" rel=noreferrer>{{ .What }}</a> {{ .Date.Local.Format "02 Jan 2006 15:04 -0700" }}</span>
-{{ if .Oonker }}
-<br>
-<span style="margin-left: 1em;" class="clip">
-{{ if $bonkcsrf }}
-original: <a class="honkerlink" href="/h?xid={{ .Oonker }}" data-xid="{{ .Oonker }}">{{ .Oondle }}</a>
-{{ else }}
-original: <a href="{{ .Oonker }}" rel=noreferrer>{{ .Oondle }}</a>
-{{ end }}
-</span>
-{{ else }}
-{{ if .RID }}
-<br>
-<span style="margin-left: 1em;" class="clip">
-in reply to: <a href="{{ .RID }}" rel=noreferrer>{{ .RID }}</a>
-</span>
-{{ end }}
-{{ end }}
-<br>
-{{ if $bonkcsrf }}
-<span style="margin-left: 1em;" class="clip">convoy: <a class="convoylink" href="/t?c={{ .Convoy }}">{{ .Convoy }}</a></span>
-{{ else }}
-<span style="margin-left: 1em;" class="clip">convoy: {{ .Convoy }}</span>
-{{ end }}
-</header>
-<p>
-<details class="noise" {{ .Open }} >
-<summary>{{ .HTPrecis }}<p></summary>
-<p>{{ .HTPrecis }}
-<p>{{ .HTML }}
-{{ with .Time }}
-<p>Time: {{ .StartTime.Local.Format "03:04PM EDT Mon Jan 02"}}
-{{ if .Duration }}<br>Duration: {{ .Duration }}{{ end }}
-{{ end }}
-{{ with .Place }}
-<p>Location: {{ with .Url }}<a href="{{ . }}" rel=noreferrer>{{ end }}{{ .Name }}{{ if .Url }}</a>{{ end }}{{ if or .Latitude .Longitude }} <a href="{{ if eq $maplink "apple" }}https://maps.apple.com/?q={{ or .Name "here" }}&z=16&ll={{ .Latitude }},{{ .Longitude }}{{ else }}https://www.openstreetmap.org/?mlat={{ .Latitude }}&mlon={{ .Longitude}}#map=16/{{ .Latitude }}/{{ .Longitude }}{{ end }}" rel=noreferrer>{{ .Latitude }} {{ .Longitude }}</a>{{ end }}
-{{ end }}
-{{ range .Donks }}
-{{ if .Local }}
-{{ if eq .Media "text/plain" }}
-<p><a href="/d/{{ .XID }}">Attachment: {{ .Name }}</a>{{ if not (eq .Desc .Name) }} {{ .Desc }}{{ end }}
-{{ else if eq .Media "application/pdf" }}
-<p><a href="/d/{{ .XID }}">Attachment: {{ .Name }}</a>{{ if not (eq .Desc .Name) }} {{ .Desc }}{{ end }}
-{{ else }}
-{{ if $omitimages }}
-<p><a href="/d/{{ .XID }}">Image: {{ .Name }}</a>{{ if not (eq .Desc .Name) }} {{ .Desc }}{{ end }}
-{{ else }}
-<p><img src="/d/{{ .XID }}" title="{{ .Desc }}" alt="{{ .Desc }}">
-{{ end }}
-{{ end }}
-{{ else }}
-{{ if .External }}
-<p><a href="{{ .URL }}" rel=noreferrer>External Attachment: {{ .Name }}</a>{{ if not (eq .Desc .Name) }} {{ .Desc }}{{ end }}
-{{ else }}
-{{ if eq .Media "video/mp4" }}
-<p><video controls src="{{ .URL }}">{{ .Name }}</video>
-{{ else }}
-<p><img src="{{ .URL }}" title="{{ .Desc }}" alt="{{ .Desc }}">
-{{ end }}
-{{ end }}
-{{ end }}
-{{ end }}
-</details>
-{{ end }}
-{{ if and $bonkcsrf (not $IsPreview) }}
-<p>
-<div>
-<p>
-{{ if .Honk.Public }}
-{{ if .Honk.IsBonked }}
-<button onclick="return unbonk(this, '{{ .Honk.XID }}');">unbonk</button>
-{{ else }}
-<button onclick="return bonk(this, '{{ .Honk.XID }}');">bonk</button>
-{{ end }}
-{{ else }}
-<button disabled>nope</button>
-{{ end }}
-<button onclick="return showhonkform(this, '{{ .Honk.XID }}', '{{ .Honk.Handles }}');"><a href="/newhonk?rid={{ .Honk.XID }}">honk back</a></button>
-<button onclick="return muteit(this, '{{ .Honk.Convoy }}');">mute</button>
-<button onclick="return showelement('evenmore{{ .Honk.ID }}')">even more</button>
-</div>
-<div id="evenmore{{ .Honk.ID }}" style="display:none">
-<p>
-<button onclick="return zonkit(this, '{{ .Honk.XID }}');">zonk</button>
-{{ if .Honk.IsAcked }}
-<button onclick="return flogit(this, 'deack', '{{ .Honk.XID }}');">deack</button>
-{{ else }}
-<button onclick="return flogit(this, 'ack', '{{ .Honk.XID }}');">ack</button>
-{{ end }}
-{{ if .Honk.IsSaved }}
-<button onclick="return flogit(this, 'unsave', '{{ .Honk.XID }}');">unsave</button>
-{{ else }}
-<button onclick="return flogit(this, 'save', '{{ .Honk.XID }}');">save</button>
-{{ end }}
-{{ if .Honk.IsUntagged }}
-<button disabled>untagged</button>
-{{ else }}
-<button onclick="return flogit(this, 'untag', '{{ .Honk.XID }}');">untag me</button>
-{{ end }}
-<button><a href="/edit?xid={{ .Honk.XID }}">edit</a></button>
-{{ if not (eq .Badonk "none") }}
-{{ if .Honk.IsReacted }}
-<button disabled>badonked</button>
-{{ else }}
-<button onclick="return flogit(this, 'react', '{{ .Honk.XID }}');">{{ .Badonk }}</button>
-{{ end }}
-{{ end }}
-</div>
-<p>
-{{ end }}
-</article>
diff --git a/views/i18n/local.css b/views/i18n/local.css
deleted file mode 100644
index 0e6f7e1..0000000
--- a/views/i18n/local.css
+++ /dev/null
@@ -1,58 +0,0 @@
-html{
- --bg-page: beige;
- --fg: #222;
- --fg-subtle: teal;
- --bg-dark:lightblue;
-}
-
-#honksonpage td {
- border:1px solid #222;
- padding: 0.2em;
-}
-
-#altnavbar a {
- text-decoration:none
-}
-#altnavbar{
- margin-left:17%;
- position:fixed;
- background:var(--bg-page);
- opacity:0.7;
- top:0;
- padding: 0.5em 0.5em 0.5em 0.5em;
-}
-
-#altnavbar input {
- height:0.3em;
-}
-
-
-#setlang{
- vertical-align:middle;
- display:inline;
- margin-left:2em;
-}
-
-@media screen and (max-width: 740px) {
- #altnavbar{
- font-size:0.9em;
- margin-left:30%;
- }
-
- #altnavbar input {
- height:0.3em;
- width:4em
- }
-
- header > details {
- padding: 0.5em 0.5em 0.5em 0.5em;
- }
-
- #setlang {
- display:block;
- }
-}
-
-@media print{
- #altnavbar,#setlang{display:none;}
-}