Free Software Foundation!

Join now

Difference between revisions of "Free Software Directory:Hack"

From Free Software Directory
Jump to: navigation,
(added mw links)
(directory-dev isn't up)
 
(6 intermediate revisions by one user not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 +
__NOEDITSECTION__
 
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.
 
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 ===
 
=== 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:
+
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 MediaWiki. Start out learning from these links:
  
 
* [http://www.mediawiki.org/wiki/Help:Formatting syntax]
 
* [http://www.mediawiki.org/wiki/Help:Formatting syntax]
 +
* [http://www.mediawiki.org/wiki/Help:Categories categories]
 
* [http://www.mediawiki.org/wiki/Templates templates]
 
* [http://www.mediawiki.org/wiki/Templates templates]
 
* [http://www.mediawiki.org/wiki/Help:Talk_pages#User_talk_pages user talk page]
 
* [http://www.mediawiki.org/wiki/Help:Talk_pages#User_talk_pages user talk page]
 
* [http://www.mediawiki.org/wiki/Help:Namespaces namespaces]
 
* [http://www.mediawiki.org/wiki/Help:Namespaces namespaces]
 +
* [http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions parser functions (extension)]
  
 
=== Semantic MediaWiki ===
 
=== Semantic MediaWiki ===
  
 +
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: [http://semantic-mediawiki.org/wiki/Introduction_to_SMW Introduction to SMW]. For a briefer introduction, you could start by reading up on the following topics:
 +
 +
* [http://semantic-mediawiki.org/wiki/Help:Properties_and_types properties and types]
 +
* [http://semantic-mediawiki.org/wiki/Help:Inline_queries inline queries (the fun stuff)]
 +
* [http://semantic-mediawiki.org/wiki/Help:Properties_and_types#Silent_annotations_using_.23set #set]
 +
* [http://www.mediawiki.org/wiki/Extension:Arrays arrays]
 +
* [http://www.mediawiki.org/wiki/Extension:Semantic_Forms semantic forms (extension)]
  
 
=== The Free Software Directory ===
 
=== The Free Software Directory ===
  
* add detail about how the directory is organized.
+
A few details 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.
+
* [[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 ([http://directory-dev.fsf.org 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
 
* all logged-in users have the ability to edit pages in the User: and Review namespaces
 +
* See [[:Category:Documentation]], particularly [[FSD:Workflow]].
  
See [[:Category:Documentation]], particularly [[:Category:Workflow]].
+
Think before you edit:
 +
* '''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.) We have a development site ([http://directory-dev.fsf.org directory-dev.fsf.org]) that we use to test systemic changes before implementing them. (Update: It isn't up as of Friday, June 29th 2012. A ticket has been made, so hopefully it will be up soon.)
  
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.
+
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.
 
+
=== Topics to eventually address above: ===
+
  
* Getting started
+
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 of programs on user talk pages that would be displayed in any number of ways. If you have other ideas, we would be happy to hear about them and get your help in developing a number of ideas.
** Editing your user page
+
** Getting help from other users via the talk page
+
** [[Special:SpecialPages|Special pages]]
+
** All of your user pages ( e.g., [http://directory.fsf.org/wiki?title=Special%3APrefixIndex&prefix=Jgay&namespace=2 User:Jgay's pages]).
+
* 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
+
  
  
 
[[Category:Documentation]]
 
[[Category:Documentation]]

Latest revision as of 15:43, 29 June 2012


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 MediaWiki. Start out learning from these links:

Semantic MediaWiki

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. For a briefer introduction, you could start by reading up on the following topics:

The Free Software Directory

A few details 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.
  • all logged-in users have the ability to edit pages in the User: and Review namespaces
  • See Category:Documentation, particularly FSD:Workflow.

Think before you edit:

  • 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.) We have a development site (directory-dev.fsf.org) that we use to test systemic changes before implementing them. (Update: It isn't up as of Friday, June 29th 2012. A ticket has been made, so hopefully it will be up soon.)


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 of programs on user talk pages that would be displayed in any number of ways. If you have other ideas, we would be happy to hear about them and get your help in developing a number of ideas.




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.


Personal tools

Variants
Actions
Navigation
Contribute