Change to more minimalistic website design + few HTML modernizations
I didn't touch the actual man page pages yet, but they seem to have mostly survived my CSS changes. There's a LOT of general UI improvements to be done, while this commit is really just a different style of paint.
This commit is contained in:
parent
b531f71ab0
commit
3db1283a16
5 changed files with 152 additions and 204 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 183 B |
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
217
www/index.pl
217
www/index.pl
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
use v5.26;
|
||||
use warnings;
|
||||
use TUWF ':html_', ':xml';
|
||||
use TUWF ':html5_', ':xml';
|
||||
use POSIX 'ceil';
|
||||
use SQL::Interp 'sql', 'sql_interp';
|
||||
use Time::Local 'timegm';
|
||||
|
|
@ -196,26 +196,25 @@ sub framework_ {
|
|||
|
||||
html_ sub {
|
||||
head_ sub {
|
||||
link_ rel => 'stylesheet', type => 'text/css', href => '/man.css?4';
|
||||
link_ rel => 'stylesheet', type => 'text/css', href => '/man.css?5';
|
||||
title_ $o{title}.' - manned.org';
|
||||
};
|
||||
body_ sub {
|
||||
div_ id => 'header', sub {
|
||||
a_ href => '/', 'manned.org';
|
||||
header_ sub {
|
||||
a_ href => '/', 'Manned.org';
|
||||
form_ action => '/browse/search', method => 'get', sub {
|
||||
input_ type => 'text', name => 'q', id => 'q', tabindex => 1;
|
||||
input_ type => 'submit', value => ' ';
|
||||
input_ type => 'submit', value => 'Search';
|
||||
}
|
||||
};
|
||||
div_ id => 'body', sub {
|
||||
$content->();
|
||||
br_ style => 'clear: both';
|
||||
};
|
||||
div_ id => 'footer', sub {
|
||||
lit_ 'All manual pages are copyrighted by their respective authors.
|
||||
| <a href="/info/about">About manned.org</a>
|
||||
| <a href="mailto:contact@manned.org">Contact</a>
|
||||
| <a href="https://code.blicky.net/yorhel/manned">Source</a>';
|
||||
main_ class => $o{mainclass}, $content;
|
||||
footer_ sub {
|
||||
span_ sub {
|
||||
a_ href => '/info/about', 'about'; txt_ ' | ';
|
||||
a_ href => 'mailto:contact@manned.org', 'contact'; txt_ ' | ';
|
||||
a_ href => 'https://code.blicky.net/yorhel/manned', 'source';
|
||||
};
|
||||
span_ 'all manual pages are copyrighted by their respective authors.';
|
||||
};
|
||||
script_ type => 'text/javascript', src => '/man.js', '';
|
||||
}
|
||||
|
|
@ -253,7 +252,7 @@ sub paginate_ {
|
|||
};
|
||||
|
||||
my $lp = ceil($count/$perpage);
|
||||
p_ class => 'paginate', sub {
|
||||
nav_ class => 'paginate', sub {
|
||||
l_ 1 if $p > 1+4;
|
||||
b_ '...' if $p > 1+5;
|
||||
l_ $_ for (($p > 4 ? $p-4 : 1)..($p+4 > $lp ? $lp : $p+4));
|
||||
|
|
@ -278,47 +277,48 @@ TUWF::get '/' => sub {
|
|||
|
||||
sub num { local $_=shift; 1 while(s/(\d)(\d{3})($|,)/$1,$2/); $_ };
|
||||
|
||||
framework_ title => 'Man Pages Archive', sub {
|
||||
h1_ 'Man Pages Archive';
|
||||
p_ class => 'txt', sub {
|
||||
lit sprintf <<' _', map num($stats->{$_}), qw|hashes mans files packages|;
|
||||
Indexing <b>%s</b> versions of <b>%s</b> manual pages found in <b>%s</b>
|
||||
files of <b>%s</b> packages.
|
||||
<br /><br />
|
||||
Manned.org aims to index all manual pages from a variety of systems, both
|
||||
old and new, and provides a convenient interface for looking up and viewing
|
||||
the various versions of each man page.
|
||||
<a href="/info/about">About manned.org »</a>
|
||||
_
|
||||
};
|
||||
framework_ title => 'Man Pages Archive', mainclass => 'thin', sub {
|
||||
h1_ 'Welcome to Manned.org';
|
||||
h2_ 'The archive for man pages';
|
||||
lit sprintf <<' _', map num($stats->{$_}), qw|hashes mans files packages|;
|
||||
<p>
|
||||
Indexing <b>%s</b> versions of <b>%s</b> manual pages found in
|
||||
<b>%s</b> files of <b>%s</b> packages.
|
||||
</p><p>
|
||||
Manned.org aims to index all manual pages from a variety of systems, both
|
||||
old and new, and provides a convenient interface for looking up and viewing
|
||||
the various versions of each man page.
|
||||
<a href="/info/about">More information »</a>
|
||||
</p>
|
||||
_
|
||||
|
||||
h2_ 'Browse the manuals';
|
||||
ul_ id => 'systems', sub {
|
||||
h2_ 'Indexed systems';
|
||||
div_ class => 'systems', sub {
|
||||
my %sys;
|
||||
push $sys{$_->{name}}->@*, $_ for(systems->@*);
|
||||
li_ sub {
|
||||
push $sys{$_->{name}}->@*, $_ for systems->@*;
|
||||
div_ sub {
|
||||
my $sys = $sys{$_};
|
||||
my $img = $sys->[0]{short} =~ s/^(.+)-.+$/$1/r;
|
||||
if(@$sys == 1) {
|
||||
a_ href => "/pkg/$sys->[0]{short}", sub {
|
||||
span_ style => "background-image: url('images/$img.png')", '';
|
||||
img_ src => "images/$img.png";
|
||||
b_ $sys->[0]{name};
|
||||
};
|
||||
return;
|
||||
}
|
||||
span_ style => "background-image: url('images/$img.png')", '';
|
||||
b_ $sys->[0]{name};
|
||||
my $i = 0;
|
||||
for(reverse @$sys) {
|
||||
a_ href => "/pkg/$_->{short}", ++$i > 3 ? (class => 'hidden') : (), $_->{release};
|
||||
lit_ ' ';
|
||||
}
|
||||
a_ href => '#', class => 'more', 'more...' if $i > 3;
|
||||
img_ src => "images/$img.png";
|
||||
div_ sub {
|
||||
b_ $sys->[0]{name};
|
||||
for(reverse @$sys) {
|
||||
a_ href => "/pkg/$_->{short}", $_->{release};
|
||||
lit_ ' ';
|
||||
}
|
||||
};
|
||||
} for sort keys %sys;
|
||||
};
|
||||
|
||||
h2_ 'Other sites';
|
||||
ul_ id => 'external', sub {
|
||||
h2_ 'Other relevant sites';
|
||||
ul_ sub {
|
||||
li_ sub { a_ href => 'http://man7.org/linux/man-pages/index.html', 'man7.org'; txt_ ' - Linux man pages from several upstream projects.' };
|
||||
li_ sub { a_ href => 'https://manpag.es/', 'ManPag.es'; txt_ ' - Man pages from several Linux distributions.' };
|
||||
li_ sub { a_ href => 'https://www.mankier.com/', 'ManKier'; txt_ ' - Fedora Rawhide + some manually imported man pages; Nicely formatted and with some unique features.' };
|
||||
|
|
@ -336,16 +336,15 @@ TUWF::get '/' => sub {
|
|||
li_ sub { a_ href => 'https://manpages.ubuntu.com/', 'Ubuntu Manuals' };
|
||||
li_ sub { a_ href => 'https://man.voidlinux.org/', 'Void Linux manpages' };
|
||||
};
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
TUWF::get '/info/about' => sub {
|
||||
framework_ title => 'About', sub {
|
||||
framework_ title => 'About', mainclass => 'thin', sub {
|
||||
h1_ 'About Manned.org';
|
||||
div_ id => 'about', sub {
|
||||
lit <<' _';
|
||||
<h2>Goal</h2>
|
||||
lit <<' _';
|
||||
<h2 id="goal">Goal</h2>
|
||||
<p>
|
||||
The state of online indices of manual pages used to be a sad one. Existing
|
||||
sites used to only offer you a single version of a man page: From one
|
||||
|
|
@ -355,7 +354,7 @@ TUWF::get '/info/about' => sub {
|
|||
harder to find a manual for a specific system. Additionally, some sites
|
||||
rendered the manuals in an unreadable way, didn't correctly handle special
|
||||
formatting - like tables - or didn't correctly display non-ASCII characters.
|
||||
<br /><br />
|
||||
</p><p>
|
||||
Nowadays there are many good alternatives, but Manned.org was one of the
|
||||
sites created in order to improve that situation. This site aims to index
|
||||
the manual pages from a variaty of systems, both old and new, and allows you
|
||||
|
|
@ -363,14 +362,14 @@ TUWF::get '/info/about' => sub {
|
|||
system behaves. The manuals are stored in the database as UTF-8, and are
|
||||
passed through <a href="http://www.gnu.org/software/groff/">groff</a> to
|
||||
render them in (mostly) the same way as they are displayed in your terminal.
|
||||
<br /><br />
|
||||
</p><p>
|
||||
This website is <a href="https://code.blicky.net/yorhel/manned">open
|
||||
source</a> (MIT licensed) and written in a combination of Perl and Rust. The
|
||||
entire PostgreSQL database is available for download (see "Database
|
||||
download" below).
|
||||
source</a> (MIT licensed) and written in a combination of Perl and Rust.
|
||||
The entire PostgreSQL database is available
|
||||
<a href="#database-download">for download</a>.
|
||||
</p>
|
||||
|
||||
<h2>URL format</h2>
|
||||
<h2 id="url-format">URL format</h2>
|
||||
<p>You can link to specific packages and man pages with several URL formats.
|
||||
These URLs will keep working in the future, so you should not have to worry
|
||||
about eventual dead links.</p>
|
||||
|
|
@ -419,7 +418,7 @@ TUWF::get '/info/about' => sub {
|
|||
pages; Linking to a package that doesn't have any will result in a 404
|
||||
page.</p>
|
||||
|
||||
<h2>The indexing process</h2>
|
||||
<h2 id="indexing">The indexing process</h2>
|
||||
<p>
|
||||
All man pages are fetched right from the (binary) packages available on the
|
||||
public repositories of Linux distributions. In particular:<br />
|
||||
|
|
@ -491,7 +490,7 @@ TUWF::get '/info/about' => sub {
|
|||
The repositories are scanned for new packages on a daily basis.
|
||||
</p>
|
||||
|
||||
<h2>Database download</h2>
|
||||
<h2 id="database-download">Database download</h2>
|
||||
<p>
|
||||
This site is backed by a PostgreSQL database containing all the man pages.
|
||||
Weekly dumps of the full database are available for download at
|
||||
|
|
@ -508,7 +507,7 @@ TUWF::get '/info/about' => sub {
|
|||
major version bumps may occur.
|
||||
</p>
|
||||
|
||||
<h2>Other systems</h2>
|
||||
<h2 id="other-systems">Other systems</h2>
|
||||
<p>
|
||||
Suggestions for new (or old) systems to index are welcome.
|
||||
<br /><br />
|
||||
|
|
@ -524,7 +523,7 @@ TUWF::get '/info/about' => sub {
|
|||
here. :-(
|
||||
</p>
|
||||
|
||||
<h2>Future plans</h2>
|
||||
<h2 id="future-plans">Future plans</h2>
|
||||
<p>
|
||||
This site isn't nearly as awesome yet as it could be. Here's some ideas that
|
||||
would be nice to have in the future:
|
||||
|
|
@ -538,7 +537,7 @@ TUWF::get '/info/about' => sub {
|
|||
</ul>
|
||||
</p>
|
||||
|
||||
<h2>Copyright</h2>
|
||||
<h2 id="copyright">Copyright</h2>
|
||||
<p>
|
||||
All manual pages are copyrighted by their respective authors. The manuals
|
||||
have been fetched from publically available repositories of free and
|
||||
|
|
@ -549,7 +548,7 @@ TUWF::get '/info/about' => sub {
|
|||
know and I will have it removed as soon as possible.
|
||||
</p>
|
||||
_
|
||||
} }
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -576,20 +575,19 @@ TUWF::get '/browse/search' => sub {
|
|||
my $man = search_man $q, 150;
|
||||
return tuwf->resRedirect("/$man->[0]{name}.$man->[0]{section}", 'temp') if @$man == 1;
|
||||
|
||||
framework_ title => 'Search results for '.$q, sub {
|
||||
framework_ title => 'Search results for '.$q, mainclass => 'searchres', sub {
|
||||
h1_ 'Search results for '.$q;
|
||||
# Package search would also be useful.
|
||||
p_ 'Note: This is just a simple case-insensitive prefix match on the man names. In the future we\'ll have more powerful search functionality. Hopefully.';
|
||||
if(@$man) {
|
||||
ul_ id => 'searchres', sub {
|
||||
ul_ sub {
|
||||
li_ sub {
|
||||
a_ href => "/$_->{name}.$_->{section}", $_->{name};
|
||||
i_ " $_->{section}";
|
||||
small_ " $_->{section}";
|
||||
} for @$man;
|
||||
}
|
||||
} else {
|
||||
br_; br_;
|
||||
b_ 'No results :-(';
|
||||
p_ 'No results :-(';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
@ -785,31 +783,32 @@ TUWF::get qr{/pkg/([^/]+)} => sub {
|
|||
$f->{c} ne 'all' ? ('AND LOWER(SUBSTR(name, 1, 1)) =', \$f->{c}) : ();
|
||||
my $count = tuwf->dbVali('SELECT count(*) FROM', $packages_with_man, 'p WHERE', $where);
|
||||
my $pkg = tuwf->dbPagei({ results => 200, page => $f->{p} },
|
||||
'SELECT id, system, name, category FROM', $packages_with_man, 'p WHERE', $where, 'ORDER BY name'
|
||||
'SELECT id, system, name, category FROM', $packages_with_man, 'p WHERE', $where, 'ORDER BY name, category'
|
||||
);
|
||||
|
||||
my $title = "Packages for $sys->{name}".($sys->{release}?" $sys->{release}":"");
|
||||
framework_ title => $title, sub {
|
||||
div_ id => 'pkglist', sub {
|
||||
h1_ $title;
|
||||
|
||||
p_ class => 'charselect', sub {
|
||||
my $title = $sys->{name}.($sys->{release}?" $sys->{release}":"");
|
||||
framework_ title => $title, mainclass => 'pkglist', sub {
|
||||
div_ sub {
|
||||
div_ sub {
|
||||
h1_ $title;
|
||||
};
|
||||
nav_ class => 'charselect', sub {
|
||||
for('all', 0, 'a'..'z') {
|
||||
a_ href => "/pkg/$short?c=$_", $_?uc$_:'#' if $_ ne $f->{c};
|
||||
b_ $_?uc$_:'#' if $_ eq $f->{c};
|
||||
}
|
||||
};
|
||||
};
|
||||
small_ '(Packages without man pages are not listed)';
|
||||
|
||||
p_ 'Note: Packages without man pages are not listed.';
|
||||
paginate_ "/pkg/$short?c=$f->{c};p=", $count, 200, $f->{p};
|
||||
ul_ id => 'packages', sub {
|
||||
li_ sub {
|
||||
a_ href => "/pkg/$short/$_->{category}/$_->{name}", $_->{name};
|
||||
i_ ' '.$_->{category};
|
||||
} for @$pkg;
|
||||
};
|
||||
paginate_ "/pkg/$short?c=$f->{c};p=", $count, 200, $f->{p};
|
||||
}
|
||||
paginate_ "/pkg/$short?c=$f->{c};p=", $count, 200, $f->{p};
|
||||
ul_ sub {
|
||||
li_ sub {
|
||||
a_ href => "/pkg/$short/$_->{category}/$_->{name}", $_->{name};
|
||||
small_ ' '.$_->{category};
|
||||
} for @$pkg;
|
||||
};
|
||||
paginate_ "/pkg/$short?c=$f->{c};p=", $count, 200, $f->{p};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -846,33 +845,39 @@ TUWF::get qr{/pkg/([^/]+)/(.+)} => sub {
|
|||
# Latest version of this package determines last modification date of the page.
|
||||
tuwf->resLastMod($vers->[0]{released});
|
||||
|
||||
my $title = "$sys->{name}".($sys->{release}?" $sys->{release}":"")." / $pkg->{category} / $pkg->{name}";
|
||||
framework_ title => "$title $sel->{version}", sub {
|
||||
h1_ $title;
|
||||
|
||||
div_ id => 'pkgversions', sub {
|
||||
h2_ 'Versions';
|
||||
ul_ sub {
|
||||
li_ sub {
|
||||
a_ href => "/pkg/$sys->{short}/$pkg->{category}/$pkg->{name}/$_->{version}", $_->{version} if $_ != $sel;
|
||||
b_ " $_->{version}" if $_ == $sel;
|
||||
i_ " $_->{released}";
|
||||
} for(@$vers);
|
||||
}
|
||||
my $sysname = $sys->{name}.($sys->{release}?" $sys->{release}":"");
|
||||
my $subtitle = " / $pkg->{category} / $pkg->{name}";
|
||||
framework_ title => "$sysname$subtitle $sel->{version}", mainclass => 'pkgpage', sub {
|
||||
h1_ sub {
|
||||
a_ href => "/pkg/$sys->{short}", $sysname;
|
||||
txt_ $subtitle;
|
||||
};
|
||||
|
||||
div_ id => 'pkgmans', sub {
|
||||
h2_ "Manuals for version $sel->{version}";
|
||||
paginate_ "/pkg/$sys->{short}/$pkg->{category}/$pkg->{name}/$sel->{version}?p=", $count, 200, $p;
|
||||
ul_ sub {
|
||||
li_ sub {
|
||||
a_ href => "/$_->{name}/".substr($_->{hash},0,8), "$_->{name}($_->{section})";
|
||||
b_ " $_->{locale}" if $_->{locale};
|
||||
i_ " $_->{filename}";
|
||||
} for(@$mans);
|
||||
div_ sub {
|
||||
section_ sub {
|
||||
h2_ 'Versions';
|
||||
ul_ sub {
|
||||
li_ sub {
|
||||
a_ href => "/pkg/$sys->{short}/$pkg->{category}/$pkg->{name}/$_->{version}", $_->{version} if $_ != $sel;
|
||||
b_ " $_->{version}" if $_ == $sel;
|
||||
small_ " $_->{released}";
|
||||
} for(@$vers);
|
||||
}
|
||||
};
|
||||
paginate_ "/pkg/$sys->{short}/$pkg->{category}/$pkg->{name}/$sel->{version}?p=", $count, 200, $p;
|
||||
}
|
||||
|
||||
section_ sub {
|
||||
h2_ "Manuals for version $sel->{version}";
|
||||
paginate_ "/pkg/$sys->{short}/$pkg->{category}/$pkg->{name}/$sel->{version}?p=", $count, 200, $p;
|
||||
ul_ sub {
|
||||
li_ sub {
|
||||
a_ href => "/$_->{name}/".substr($_->{hash},0,8), "$_->{name}($_->{section})";
|
||||
b_ " $_->{locale}" if $_->{locale};
|
||||
small_ " $_->{filename}";
|
||||
} for(@$mans);
|
||||
};
|
||||
paginate_ "/pkg/$sys->{short}/$pkg->{category}/$pkg->{name}/$sel->{version}?p=", $count, 200, $p;
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
118
www/man.css
118
www/man.css
|
|
@ -1,85 +1,54 @@
|
|||
/* TODO: column-width is better done in Perl? (More like a column-count, then) */
|
||||
|
||||
* { margin: 0; padding: 0; font-family: "Trebuchet MS", sans-serif; }
|
||||
html { background: #333; padding: 0 10px; }
|
||||
body { margin: 10px auto 50px auto; max-width: 1100px; border-collapse: separate; padding-bottom: 10px; border-radius: 10px; box-shadow: 0 10px 10px #def; }
|
||||
h1 { font-size: 24px; font-weight: normal; color: #abc; }
|
||||
h2 { font-size: 21px; margin-top: 40px; color: #468; font-weight: normal; clear: left }
|
||||
h2 + i { font-size: 12px; }
|
||||
h3 { font-size: 16px; margin-top: 20px; color: #468; font-weight: normal }
|
||||
a { color: #048; }
|
||||
* { margin: 0; padding: 0; font-size: inherit; font-family: "Trebuchet MS", sans-serif; }
|
||||
html { background: #fff; padding: 0 10px; color: #000 }
|
||||
body { margin: 10px auto 50px auto; max-width: 1100px; border-collapse: separate; padding-bottom: 10px }
|
||||
h1 { font-size: 24px; font-weight: normal }
|
||||
h2 { font-size: 21px; margin-top: 35px; margin-bottom: 7px; font-weight: normal; border-bottom: 1px solid #ccc }
|
||||
h3 { font-size: 18px; margin-top: 20px; margin-bottom: 5px; font-weight: normal }
|
||||
a { color: #048; text-decoration: none }
|
||||
a:hover { text-decoration: underline; color: #48B;}
|
||||
code { font-family: "Lucida Console", Monospace; font-size: 12px; background-color: #f0f8ff }
|
||||
p { margin-bottom: 15px }
|
||||
dl { margin-bottom: 15px }
|
||||
dt { margin: 0 0 5px 0 }
|
||||
dd { margin: 0 0 10px 10px; }
|
||||
ul { margin: 0 0 15px 20px }
|
||||
input { font-size: 0.9em; padding: 1px 2px }
|
||||
code { font-family: "Lucida Console", Monospace; font-size: 12px; background-color: #f0f8ff; padding: 1px }
|
||||
small { color: #aaa }
|
||||
.hidden { display: none!important; }
|
||||
|
||||
#header { padding: 4px 20px; border-bottom: 1px solid #888; font: 24px "Arial"; background: url('images/gradients.png') repeat-x; border-radius: 8px 8px 0 0; }
|
||||
#header a { color: #f8f8f8; text-decoration: none; font-weight: bold; }
|
||||
#header a:hover { background: none; }
|
||||
#header form { float: right; }
|
||||
#header input[type=text] { color: #000; width: 260px; padding: 1px 2px 1px 15px; border-radius: 12px 0 0 12px; border: 1px solid #444;
|
||||
box-shadow: 1px 1px 3px #fff, -1px -1px 2px #234; background: url('images/gradients.png') 0 -105px repeat-x; height: 15px; }
|
||||
#header input[type=text]:hover, #header input[type=text]:focus { background: url('images/gradients.png') 0 -122px repeat-x; outline: none; }
|
||||
#header input[type=submit] { height: 23px; width: 62px; background-image: url('images/search.png'); border: 0; margin: 0 0 0 -5px; cursor: pointer }
|
||||
header { border-bottom: 3px dotted #ccc; display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap }
|
||||
header a { font: 24px "Arial", serif; font-weight: bold }
|
||||
header form { padding-bottom: 3px }
|
||||
header input[type=text] { width: 100px }
|
||||
|
||||
#body { padding: 10px 10px 20px 10px; background: #fff }
|
||||
footer { border-top: 3px dotted #ccc; color: #666; font-size: 12px; display: flex; justify-content: space-between; flex-wrap: wrap }
|
||||
|
||||
#systems a,
|
||||
.charselect a,
|
||||
.paginate a { color: #048; font-family: "Verdana"; font-weight: normal; text-decoration: none; padding: 3px 5px; border-radius: 4px; }
|
||||
main { padding: 10px 0 25px 0 }
|
||||
main.thin { max-width: 700px; margin: 0 auto }
|
||||
|
||||
.charselect b,
|
||||
.paginate b { font-family: "Verdana"; padding: 3px }
|
||||
.systems > div { margin: 25px 0; display: flex; align-items: start }
|
||||
.systems > div > a { display: flex; align-items: center }
|
||||
.systems img { width: 50px; height: 50px; margin-right: 10px }
|
||||
.systems b { font-size: 24px; display: block }
|
||||
.systems > div > div > a { padding-right: 10px }
|
||||
|
||||
#systems a:hover,
|
||||
.charselect a:hover,
|
||||
.paginate a:hover { background: #cde; }
|
||||
.searchres ul { margin: 20px 0; list-style-type: none; column-width: 300px }
|
||||
.searchres a { padding-right: 2px }
|
||||
|
||||
p.txt { margin: 5px 0 0 10px; max-width: 700px }
|
||||
#external { list-style-type: none; margin-left: 10px }
|
||||
.charselect a, .paginate a { display: inline-block; padding: 3px 5px }
|
||||
.charselect b, .paginate b { display: inline-block; padding: 3px 5px }
|
||||
|
||||
i.grayedout { color: #aaa; font-size: 13px; }
|
||||
.pkglist > div { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap }
|
||||
.pkglist .paginate { margin: 10px 0; text-align: center }
|
||||
.pkglist ul { margin: 20px 0; list-style-type: none; column-width: 300px }
|
||||
.pkglist ul a { padding-right: 2px }
|
||||
|
||||
#about { max-width: 700px }
|
||||
#about h2 { margin-bottom: 5px }
|
||||
#about dl { margin-bottom: 5px }
|
||||
#about dt { margin: 5px 0 0 10px }
|
||||
#about p { margin: 0 0 0 10px; }
|
||||
#about dd { margin: 0 0 0 20px; }
|
||||
#about ul { padding: 5px 0 5px 30px }
|
||||
.pkgpage > div { display: flex; flex-wrap: wrap; margin-top: 15px }
|
||||
.pkgpage h2 { border-bottom: 0; margin: 0 0 10px 0 }
|
||||
.pkgpage ul { margin: 0; list-style-type: none }
|
||||
.pkgpage section:first-child { border-right: 1px dashed #468; padding: 0 10px }
|
||||
.pkgpage section:last-child { padding: 0 10px }
|
||||
|
||||
#systems li { display: block; float: left; width: 300px; min-height: 80px; margin: 15px 10px; padding-left: 60px }
|
||||
#systems span { display: block; margin-left: -55px; float: left; width: 50px; height: 50px; background-repeat: no-repeat; }
|
||||
#systems a span { margin-top: 10px }
|
||||
#systems b { font-size: 24px; display: block }
|
||||
|
||||
#pkglist .charselect { float: right }
|
||||
#pkglist .paginate { display: block; margin: 10px; width: 100%; text-align: center }
|
||||
|
||||
#packages { margin: 20px 0; -webkit-column-width: 300px; -moz-column-width: 300px; column-width: 300px }
|
||||
#packages li { display: block; }
|
||||
#packages i { color: #aaa; font-size: 13px; }
|
||||
#packages a { padding-right: 2px }
|
||||
|
||||
#searchres { margin: 20px 0; -webkit-column-width: 300px; -moz-column-width: 300px; column-width: 300px }
|
||||
#searchres li { display: block; }
|
||||
#searchres i { color: #aaa; font-size: 13px; }
|
||||
#searchres a { padding-right: 2px }
|
||||
|
||||
#pkgversions { margin-top: 10px }
|
||||
#pkgversions h2 { margin: 0 }
|
||||
#pkgversions { float: left; padding: 0 10px; }
|
||||
#pkgversions ul { margin: 10px 0; padding-right: 10px; border-right: 1px dashed #468 }
|
||||
#pkgversions li { display: block; }
|
||||
#pkgversions i { color: #aaa; font-size: 13px; }
|
||||
#pkgversions a { padding-right: 2px }
|
||||
|
||||
#pkgmans { margin-top: 10px }
|
||||
#pkgmans h2 { margin: 0 }
|
||||
#pkgmans { float: left }
|
||||
#pkgmans .paginate { margin: 10px 0 }
|
||||
#pkgmans ul { margin: 10px 0 }
|
||||
#pkgmans li { display: block }
|
||||
#pkgmans i { color: #aaa; font-size: 13px; }
|
||||
|
||||
#manbuttons h1 { display: inline; margin: 0 20px 0 0; vertical-align: middle }
|
||||
#manbuttons ul { list-style-type: none; display: inline-block }
|
||||
|
|
@ -92,7 +61,7 @@ i.grayedout { color: #aaa; font-size: 13px; }
|
|||
|
||||
#manres { margin: 0 0 10px 0; width: 70%; padding: 10px; box-sizing: border-box; background: #f0f8ff; border-radius: 10px; border-left: 1px dashed #333; border-right: 1px dashed #333 }
|
||||
#manres i { color: #aaa; font-size: 13px; margin-left: 7px }
|
||||
#manres ul { list-style-type: none }
|
||||
#manres ul { list-style-type: none; margin-bottom: 0 }
|
||||
#manres ul a { outline: none; text-decoration: none }
|
||||
#manres ul .oldver a { color: #aaa; font-size: 13px }
|
||||
#manres div > ul { margin-top: 5px } /* System names */
|
||||
|
|
@ -117,11 +86,6 @@ i.grayedout { color: #aaa; font-size: 13px; }
|
|||
|
||||
#contents { margin: 10px 0 0 0 }
|
||||
|
||||
#footer { height: 60px; clear: both; padding: 4px 10px; color: #f8f8f8; margin: 0 0 -20px 0;
|
||||
border-top: 1px solid #888; font-size: 13px; background: url('images/gradients.png') 0 -37px repeat-x; border-radius: 0 0 8px 8px; }
|
||||
#footer a { font-size: 13px; padding: 0; color: #f8f8f8; }
|
||||
#footer a:hover { background: none; }
|
||||
|
||||
pre, pre * { font-family: "Lucida Console", Monospace; font-size: 15px }
|
||||
pre b, pre em, pre a { color: #369; font-weight: normal; text-decoration: none }
|
||||
pre em { font-style: italic }
|
||||
|
|
|
|||
21
www/man.js
21
www/man.js
|
|
@ -459,24 +459,3 @@ function dsResults(hr, obj) {
|
|||
'locations')));
|
||||
})();
|
||||
})();
|
||||
|
||||
|
||||
|
||||
|
||||
// The "more..." links on the homepage.
|
||||
(function(){
|
||||
var sys = byId('systems');
|
||||
if(!sys)
|
||||
return;
|
||||
var f = function() {
|
||||
var l = byName(this.parentNode, 'a');
|
||||
var show = hasClass(l[3], 'hidden');
|
||||
for(var i=3; i<l.length-1; i++)
|
||||
setClass(l[i], 'hidden', !show);
|
||||
setText(this, show ? '...less' : 'more...');
|
||||
return false
|
||||
};
|
||||
var l = byClass(sys, 'a', 'more');
|
||||
for(var i=0; i<l.length; i++)
|
||||
l[i].onclick = f;
|
||||
})();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue