The XKCD File System
XKCDFS is a FUSE filesystem providing a special facility for accessing the XKCD webcomics, the components of which are the title, the comic itself, and the comment showing up on mouseover. Having mounted the XKCDFS, its mountpoint's directory listing shows you a .png image file for every XKCD issue. If you access such a file, XKCDFS does the following:
- Download the comic's image, and grep title and comment from its website;
- Use imlib2 to enlarge the comic's canvas and render the title above and the comment below the comic in a font the user has chosen beforehand. The dimension of the enlargement are calculated from the chosen font's metrics;
- The thereby manipulated image is what you will read from the file.
XKCDFS will not do any caching; it's the user's responsibility to use it efficiently.
xkcdfs [FUSE-OPTIONS] MOUNTPOINT
xkcdfs - Provides the XKCD comics with title and comment added Copyright (C) 2011 Jens Oliver John <email@example.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. LEGAL NOTES: == 1 == The xkcdfs_fetch* functions are based off of the "getinmemory.c" example from the cURL project of Daniel Stenberg et al., the license of which I hereby quote: COPYRIGHT AND PERMISSION NOTICE Copyright (c) 1996 - 2011, Daniel Stenberg, <firstname.lastname@example.org>. All rights reserved. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. == 2 == The source code of the entities.* files in this repository have been provided by StackOverflow user <http://stackoverflow.com/users/48015/christoph> through the repository at <http://mercurial.intuxication.org/hg/cstuff/> without any notes on copyright or other legal issues, and hitherto I did not manage to get my hands on any means of contacting him. Therefore, these entities.* sources are as of now not covered by any license and are to be recognized as having been excluded from this project's license's terms insofar as I, who has applied said license, disavow any rights in favour of me regarding these sources.