Free Software Directory:Hack
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.
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:
The Free Software Directory makes heavy use of The Semantic MediaWiki extension, so in order to help with development, take a look at the following introduction on SMW's site: Introduction to SMW
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 (directory-dev.fsf.org) 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
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
- Templates and template directives
- Parser Functions
- Magic words
- Switch statements
- Semantic MediaWiki Basics
- inline queries
- Semantic MediaWiki advanced
- 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