word edit: preserve wikipedia links in translation suggestions
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 13 Jun 2020 17:26:27 +0000 (19:26 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 20 Oct 2020 20:49:11 +0000 (22:49 +0200)
writer.js
writer.plp

index da8229a54f4f31a76e9534bb43a2ec059a232e19..6470a3957c0b1051b6dd95d0532d858ce4ccd94a 100644 (file)
--- a/writer.js
+++ b/writer.js
@@ -30,7 +30,9 @@ document.addEventListener('DOMContentLoaded', () => {
                                if (wplangs) wplangs.forEach(wptrans => {
                                        let transrow = document.getElementById('trans-' + wptrans.lang);
                                        if (!transrow || transrow.value) return;
-                                       transrow.value = wptrans['*'];
+                                       transrow.value = wptrans['*'].replace(/([^,(]*).*/, (link, short) => {
+                                               return short.toLocaleLowerCase(wptrans.lang).trimEnd() + ' [' + link + ']';
+                                       });
                                });
 
                                // list images in article html
index 4df6f8cd71f6ffe4d7d59c7e751209c58a09f521..b5499173be7a37623b461c73e1667f0cbc723c26 100644 (file)
@@ -245,11 +245,14 @@ elsif (defined $post{form}) {{
                while (my ($lang, $val) = each %post) {
                        my $field = $lang;
                        $lang =~ s/^trans-// or next;
-                       $db->insert(word => {
+                       $val = parseinput($val) or next;
+                       my %subrow = (
                                ref   => $row->{id},
                                lang  => $lang,
-                               form  => $_,
-                       }) for parseinput($val);
+                               form  => $val,
+                       );
+                       $subrow{wptitle} = $1 if $subrow{form} =~ s/\h*\[(.*)\]$//; # [Link] shorthand
+                       $db->insert(word => \%subrow);
                        delete $fields{$field};
                }
                return 1;