Support any number of alternatives (for now all shown in small font).
CREATE TABLE word (
form text NOT NULL,
CREATE TABLE word (
form text NOT NULL,
lang text NOT NULL DEFAULT 'eng',
cat integer REFERENCES word (id),
ref integer REFERENCES word (id),
lang text NOT NULL DEFAULT 'eng',
cat integer REFERENCES word (id),
ref integer REFERENCES word (id),
);
COMMENT ON COLUMN word.form IS 'preferred textual representation';
);
COMMENT ON COLUMN word.form IS 'preferred textual representation';
+COMMENT ON COLUMN word.alt IS 'alternate forms with equivalent meaning';
COMMENT ON COLUMN word.lang IS 'ISO 639-3 language code';
COMMENT ON COLUMN word.cat IS 'hierarchical classification';
COMMENT ON COLUMN word.ref IS 'reference to equivalent eng translation';
COMMENT ON COLUMN word.lang IS 'ISO 639-3 language code';
COMMENT ON COLUMN word.cat IS 'hierarchical classification';
COMMENT ON COLUMN word.ref IS 'reference to equivalent eng translation';
COMMENT ON COLUMN word.thumb IS 'ImageMagick convert options to create thumbnail from source image';
COMMENT ON COLUMN word.wptitle IS 'reference Wikipedia article';
COMMENT ON COLUMN word.thumb IS 'ImageMagick convert options to create thumbnail from source image';
COMMENT ON COLUMN word.wptitle IS 'reference Wikipedia article';
+CREATE OR REPLACE FUNCTION exportform(word) RETURNS text AS $$
+ SELECT array_to_string($1.form || $1.alt, '/');
+$$ LANGUAGE SQL IMMUTABLE;
+
CREATE OR REPLACE VIEW _cat_words AS
CREATE OR REPLACE VIEW _cat_words AS
- SELECT * FROM word RIGHT JOIN (
- SELECT cat id, array_agg(form ORDER BY form) forms
+ SELECT exportform(word.*) form, sub.*, word.lang, word.ref
+ FROM word RIGHT JOIN (
+ SELECT cat id, array_agg(exportform(word.*) ORDER BY form) forms
FROM word WHERE ref IS NULL GROUP BY cat
) sub USING (id);
FROM word WHERE ref IS NULL GROUP BY cat
) sub USING (id);
overflow: hidden;
padding: 1px;
}
overflow: hidden;
padding: 1px;
}
+figcaption > small {
+ display: inline-block;
+}
figure:hover ~ ul figure,
figure:hover ~ ul figcaption {
figure:hover ~ ul figure,
figure:hover ~ ul figcaption {
sub showimg {
my ($name) = @_;
sub showimg {
my ($name) = @_;
- my ($img) = $name =~ /^([\w-]+)/;
+ my ($img) = $name =~ /^([\w -]+)/;
$name =~ s/\w{4} [^aoeuiyc\W] [rl]?+ \K (?= [^aoeuiy\W] [rl]? [aoeuiy] \w)/­/gx;
$name =~ s/\w{4} [^aoeuiyc\W] [rl]?+ \K (?= [^aoeuiy\W] [rl]? [aoeuiy] \w)/­/gx;
+ $name =~ s{/(.*)}{ <small>($1)</small>}g;
my $hidden = $name =~ s/\?$//;
my $alt = $name;
$name = "<q>$name</q>" if $name =~ s/\?$//;
my $hidden = $name =~ s/\?$//;
my $alt = $name;
$name = "<q>$name</q>" if $name =~ s/\?$//;
lang => 'Language',
cat => 'Category',
form => 'Translation',
lang => 'Language',
cat => 'Category',
form => 'Translation',
wptitle => 'Wikipedia',
source => 'Image URL',
thumb => 'Convert options',
wptitle => 'Wikipedia',
source => 'Image URL',
thumb => 'Convert options',