OFLB TODO list
From OFLB
This is a list of development work for the new site at http://openfontlibrary.fontly.org that was initiated in October. We hope it will go live in June 2009.
Contents |
Priorities
Quick tasks
@font-face rules for listed fonts use 'font-style: regular;' instead of 'font-style: normal;' which is correct.
Upgrade Mediawiki to latest version
CSS Favicon to use our new logo
Wiki Change fontlog to FONTLOG
Admin Decide about keeping or removing ratings
Admin Wiki: Make the anti-spam login details appear on the login screen
Admin create links to the mentioned projects in the footer row
CSS The CSS generator could be 2cols so people can read it - or perhaps that ccHost "[+]" style link to expand the input box on a click could do a similar job.
CSS: The grey fields at the bottom should be a little bit darker or divided with a thin line. On some LCD displays all but the darkest field all seem to be white - at least with an unchanged angle of view.
CSS: The 3 icons at the top don't wrap well on small screens; the div height doesnt expand/stretch and the line wrapping can be too tight. Here's a screenshot.
CSS Fix the far-right layout bug, and perhaps redo the table, on the user page list of hidden fonts. To access this page, upload a font, then go to its main page, and click the "unpublish" action, and you'll be taken to the page. Click "publish" in the table to revert the change.
CSS check the typeface record pages render well
CSS IE5.5 and IE6 don't like our homepage's background image. Strange vertical bars appear in the log-in strip, in a place where there should be zero-width non-breaking spaces. These are only visible on the dev server at the moment – we should check for these when migrating to the live server.
CSS < dl > < dd > elements break the layout on the right side
Main page: Add a single, brief line with H1 status that explains why this project is different, and re-iterates the key benefits. Perhaps as a line above the 4 smaller boxes about individual qualities of the site
@font-face: Optimise CSS snippets for users who have the font installed locally: include the PostScript name of the font face in local() as the first alternative in src, so users who already have the font installed locally don't need to wait for it to download: @font-face { font-family: "Linux Biolinum"; font-weight: bold; font-style: normal; src: local("LinBiolinumB"), url("../fonts/libertine/4.4.1/Biolinum_Bd-0.4.1.otf.gz") format("opentype"), url("../fonts/libertine/4.4.1/Biolinum_Bd-0.4.1.ttf.gz") format("truetype"); }. This has been corrected on a new branch that will be merged in soon! BW
Server headers: To accommodate Firefox 3.5 and future browsers supporting w3c’s Cross-origin Resource Sharing, send Access-Control-Allow-Origin:* headers when fonts are served. Otherwise the OFLB cannot act as a font server. Description of access control feature on mozilla.org.
Big tasks
Make uploads convert to EOT, and offer EOTs for download. Perhaps write a mod_eot Apache module so that when it saw IE coming, it did a cached conversion on the fly so web designers don't have to think about EOT. Remember, to respect the licensing chosen by OFL users we need to rename files to respecting the reserved font names defined by the authors: Foo Sans -> Subsetted Bar.
Integrate Ed's font-face Javascript detector. This is in a class file and can be included on the OFLB site with
<script type="text/javascript" src="javascript/gCSSCapabilities.js"></script>
The font-face previews should not appear if the browser doesn't support them, and instead have a text about font-face existing in other free software browsers that people should switch too.No one assigned; waiting for an OFLB SVN...
Rid of JS bling: Make ccHost's default JS libraries optional, and then port them to jQuery. Any lightbox style javascript popup stuff should be removed and replaced with simple on-page links. The GET page is the main example with its "action" links, but there are lots of javascript:// links scattered throughout the site; the upload page has a lightbox based status popup when users click upload, that could be replaced by a simpler barbers-pole inline on the page and making the text in the popup appear on the page. That kind of thing would be best done with jQuery rather than the large-file-size libraries we have at the moment. This probably involves patching ccHost itself, and sending the patches upstream. No one assigned; start now with ccHost's current SVN!
Lists with previews: The files page lists all the fonts in the library, but there is no way of filtering them by tag and by license. We already list tags on a separate page, so putting that page's contents into the "get" page would be good. We do all this with the query browser feature of ccHost that is now fully documented and the query-api URL explains how to filter by license. Also sort by categories (sans, serif, mono, script). It should be paginated with options (default to 10 per page, be able to say how many per page, and be able to list ALL fonts.) This list should include small previews, like
<img class="typeSpecimen" src="typespecimens/Diavlo.png" alt="Diavlo; PanEuropean; Tørwald can pick up his Téléphone" />
Aaron S assigned, Ben Weiner has now formatted the revised listing code with CSS. New bug: the new code allows users to filter by tag, but when the list is shown in the context of the user's own list of contributed fonts, the tags override the contents of the list, so other people's fonts are shown. Also, the link code will show only the first file for a typeface record and that may be a .sfd or .jpg.
Make great URLs: Rework the way that ccHost stores files, so the font-face path should include a version string to distinguish current/future versions/branches (maybe in name of the file itself), and so it suits distro and other software package maintainers. Something like: http://openfontlibrary.org/people/benweiner/2.0/Puritan_Regular.otf or http://openfontlibrary.org/people/benweiner/Puritan_Regular/2.0/Puritan_Regular-2.0.otf No one assigned; start now with ccHost's current SVN!'
Upload and download ZIPs: Make it possible for users to upload and download typefaces both as individual files and as a single compressed archive file. There is now ccHost documentation about how to do this. When this is done, add this to the Uploading page: If you are uploading a compressed archive (.zip) don’t forget to include the license as a text file, and also the FONTLOG. The primary ccHost developer made a post about something similar recently that may be of use here. No one assigned; start now with ccHost's current SVN!
WordPress satellites wordpress sample pools are worth writing up so people can contribute from their own "satellite" sites. No one assigned; start now with ccHost's current SVN!'
Post Launch Stuff
Community: Decide default tags for upload pages! Currently we have: african, arabic, asian, cyrillic, fantasy, latin, monospace, sans_serif, script, serif, symbol
CSS: H1 should be links (but remain styled as they are) so as to provide permalinks to the pages, both on the main site and the wiki
Consider the similarities/differences with the new myfonts site (tp thread) and add tasks to this list as appropriate.
Admin Make an "edit this page" link in the top bar
Admin: Change the template of most of the http://openfontlibrary.fontly.org/files/username/0 pages, like the "manage files" page, so that the h1 have a link back to the main page.
Admin: Made links for admins on font pages like these:
href=\"%(home-url)%file/manage/${upload_id}\">${GLOBALS['str_files_manage']}</a>";
href=\"%(home-url)%files/edit/${user_name}/${upload_id}\">${GLOBALS['str_file_edit']}</a>";
href=\"%(home-url)%files/publish/${user_name}/${upload_id}\">${GLOBALS['str_file_publish']}</a>";
href=\"%(home-url)%file/remixes/${upload_id}\">${GLOBALS['str_files_manage_remixes']}</a>";
href=\"%(home-url)%files/delete/${upload_id}\">${GLOBALS['str_file_delete']}</a>";
The CSS @font-face generator should check there are TTF or OTF files in the typeface record, and if not, it should emit a paragraph under the "Link" H4 that says "This typeface record does not yet contain any font files suitable for font linking yet.
Get the title tag processing to string out any tags and leave plain text in place.
Anywhere you can see the "publicize" or "contest" features, add that URL to this note. They should be hidden.
Usernames should be displayed on the site as full names, and signing up should require people to put in a full name. WordPress has preferences for this which are well thought out.
The full names of users should be required when registering, and used on page contributions so attribution is easy to Do Right. When this happens, make a wiki page about how to contribute anonymously.
The FontForge integration needs updating to work with the ccHost v5 code, and the explanation at http://fontforge.sourceforge.net/oflib.html needs to be integrated into the site
After many fonts are added into this OFLB, the "collections" feature should be used. Is it the same as 'editors picks'?
It's very annoying to get an OFL font and not know where it's coming from or even if it claims reserved names. Some authors just specify "OFL" as if that was sufficient. The OFLB upload form should therefore have checkboxes for uploaders to confirm they have done their homework applying the license in an ideal way. Including a copy of the license in the font. TrueType and OpenType allow for this easily and FontForge has made it very easy to add the OFL to fonts. The upload form should prominently link to a page on how to include a license inside font files that gives a step-by-step guide to doing this; ideally this would be screenshot-illustrated.
We need to agree if files should be filtered on an include or exclude bases. Exclude may be better than include. We need to decide a definitive list if it's include-based. For an exclude list, we should exclude files with .exe .php and so on, and include any files not matching this ban-list. But, one can always change a file name extension to something else, so testing against the file extension is probably not very useful.... PHP's $_FILES['userfile']['type'] will indicate the file's mime type if provided by the browser, but how do browsers determine the mime type for uploaded files? The *nix "file" command reads the file headers and determines file type based on the pattern of bytes in the headers of files -- that is the most reliable way to do it. But browsers may not use a similar method. Perhaps the "Report possible License violation" feature could be duplicated/extended to "Report possible malicious file" so a simple machine filter like file extensions would have a social safety net. In the supposed "upload zip, uncompress zip, if other files added, compress all the files into a new zip" process, running the "file" command on the files to check their type matches their file extension at the "uncompress zip" and "files added" stages would be great.
$fontlog field should complain if empty. Adding a FONTLOG.txt should work - TXT to become an allowed file type. Uploading a FONTLOG.txt when the $fontlog box is null should make the contents of the TXT be copied to the field. Fontlog field should process markdown when rendered, and when edited, should have a note saying that it has no rich text like the Description field because its often distributed as plain text, but link to Markdown and explain it briefly.
Extract reliable information about the Unicode coverage of typeface families and use that metadata to add type-centric statistics to the site, such as signposting which orthographies need better coverage by free software fonts.
Allow a form of version control of the fonts, so that users have the ability to see changes in the filesets of each typeface and retrieve older versions of the typeface. It has been suggested that we adapt existing ccHost features for this purpose.
Have the Upload forms upload a font file as soon as it is selected, and parse its metadata and auto-complete other fields in the form. This is a pretty speculative idea, but would make the upload forms easier.
It seems we want two upload forms: "One click/Easy upload form" - provide a TTF, a name, read a notice confirming that its OFL, click upload - and, "Detailed upload form" - all the stuff required for a typeface family covering multiple scripts with multiple weights and variants and some unusual but free license. A JS library can be used to make the easy upload form transform like an Transformers Autobot into the detailed one.
The upload form/docs should encourage authors themselves to upload their own fonts. If others who are not authors post a font it should be clearly marked as such ("on behalf of" or something like that - OFLBv1 has "featuring") to indicate who the upstream author is, and provide a link to the upstream site when it is known. A tickbox "I have checked that this font isn't violating any author rights" or similar could be useful. Or fields for admins only on the upload form that allows admins to denote a font is importing from an existing project on their behalf, eg Liberation or DejaVu. The effect would be to remove the byline on the typeface page (such as incorrectly shown in http://openfontlibrary.fontly.org/files/crossland/4 )
Remix: auto-add the stuff from the original sources to the new FONTLOG?
Copywriting
Help draft the text of the new site by finishing these pages:
- Why - explain in one paragraph why the site exists
- Blocking drive-by access - complete this when the technology ships in FireFox 3.1
- FontForge area needs filling out, and the how to install FontForge needs testing in a clean system with the latest packaged and source versions, and How to share typefaces with FontForge page needs to be written
- How free font licensing works - to be merged with old Font Licensing page
- Sample_image page needs a sample image example and to talk about PDFs
Sponsors' Goals
- Create a "Patrons" page and display a logo or image of sponsors choice, also list them in the footer area. DONE
- Write compelling copy explaining what's going on! Especially with web fonts. DONE
- Document how to contribute! DONE
- Overhaul the visual identity of the site! Make it appeal to the international graphic design community, without losing the inclusive free software community attitude DONE
- Signpost what's available! Make PNG previews of each font, and list fonts in the library sensibly. IN PROGRESS
Wishlist Ideas
Add wishlist ideas to the Roadmap.
Migration checklist
Is 'Report license violation' working?
Are all ... turned into their unicode decimal entity?