Free Software Directory:Hack

From Free Software Directory
Revision as of 13:29, 28 November 2011 by Sudoman (talk | contribs)$7

Jump to: navigation, search

This is a work in progress. We'll be adding more info as we go, but this should be a good start if you want to hack on the Free Software Directory.

Getting Started

Create a user account and login so you can follow along with this guide. To learn about Semantic MediaWiki, first you need to cover some basics about MediWiki. Start out learning from these links:

Semantic MediaWiki

The Free Software Directory

  • add detail about how the directory is organized.
    • Form:Entry is used to conveniently edit values that are stored on a program's page. Those values are passed through Template:Entry. Within Template:Entry, all of the displaying of values is performed by Template:Show, which queries the semantic values that are set by the rest of Template:Entry.
    • As a side note, do not casually edit Templates that are in wide use, especially by every program in the directory. This will create a huge work queue that will take hours to complete, slowing down the site. If a mistake gets made, it could render the site broken until the introduced bugs get fixed (after another long wait to update all the pages again.) We have a development site ( that we use to test systemic changes before implementing them.
  • all logged-in users have the ability to edit pages in the User: and Review namespaces

See Category:Documentation, particularly Category:Workflow.

The idea behind the Free Software Directory relaunch is that we would like a system where all users can submit changes and new entries, and where elevated users can implement those changes on the actual entries themselves.

We would also like the FSD to be more than just a directory of programs. We have different FSD:Features in mind that we would like to implement. One of those would be the ability for users to list which programs they use, either by tagging a program page itself, or by creating a queryable list that would display that information in any number of ways. If you have other ideas, we would be happy to hear about them and get your help in developing them.

Topics to eventually address above:

  • Getting started
  • MediaWiki functionality
    • Transclusion
    • Templates and template directives
    • Categories
    • Namespaces
  • Parser Functions
    • Magic words
    • Arrays
    • Strings
    • Conditionals
    • Switch statements
    • Misc
  • Semantic MediaWiki Basics
    • Properties
    • Types
    • Assignments
    • inline queries
  • Semantic MediaWiki advanced
    • #set
    • Arrays
    • advanced queries
    • Misc. such as concept pages, etc.
  • Semantic Forms
    • Form definitions
    • Linking to forms
    • Passing variables to forms
  • Paradigms and styling
    • Basic example of how we use MVC in Template:Show
    • Inline styles
    • User CSS pages
    • Backend CSS
  • Other topics

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.