This fixes selecting the right man page for 'mount', which would
otherwise grab a version from an old distro that happened to have it
with an explicit 'en' locale.
New canonical permalink format is now:
/man.<hash>/<system>/<name>.<section>
Including the system name makes for more predictable navigation between
man pages of the same system.
This new URL format also fixes a problem with not being able to browse
from a package's page to the correct page when the package has multiple
versions of the same man.
This is also yak shaving for some new navigation and formatting features
I have planned.
contact@manned.org works fine, too, except I don't have outgoing mail
setup to go through an smtp proxy so I can't reply to Outlook and gmail
(and a few others). Seriously, fuck providers who can't see the
difference between spam messages and human replies to legitimate mails.
The /man/* URLs now directly open man pages rather than redirecting to
the permalink format, so that the extra source information can be used
to provide a better UI for switching between systems and packages
(currently only between systems).
Step one in getting rid of the JS location/version selection thingies.
Still quite a bit more to do, but I haven't worked it all out yet.
Primarily aimed at reducing the size of the old 'man' (now: files)
table, using smaller integers to refer to man contents and text fields,
and storing a shorthash as an integer for quick lookups. This better
normalization also removes the need to keep a separate 'man_index' cache
for the search function.
The old schema wasn't necessarily bad, but I was in the mood for some
optimizations. And a little cleanup.
Prolly introduces a bunch of new bugs, I haven't tested this too well.
Also greatly simplified basename_from_filename() because apparently I
couldn't write regexes back then.
(And the removed REFERENCES line is to sync schema.sql with the actual
state of the DB, which doesn't have that constraint for some reason.
I'll prolly fix that later)
Not that I have anything against the MIT license nowadays, nor do I mind
of companies use my software without paying and all that stuff, but this
switch is because I *do* like the AGPL license more for networked
software like this, especially when getting-everyone-and-their-pet to
run the code is not really a goal.
Of course, previous commits are still available under MIT.
We've got a lot of packages in the DB that have long been removed from
the Arch repos. These are still indexed, but won't clutter the package
listing anymore.
Also fixed an issue with packages.id numbers getting rather large
because the indexer allocates a new ID for every package on every
update.
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.
Should really be Debian, but we only index Debian stable at the moment
and it tends to lag behind Ubuntu a bit. This extra bias is intended to
solve (part of) the issue with distro-specific tooling like 'ifup'.
This really should be updated to have a generic preference order for all
distros, but that's not as easy to implement.
Fixes#1.
When I have time I'll do a search for man pages that actually *need*
-ms, as I'm getting the impression that it's never used for man pages
and all of grog's guesses for it are wrong.