ForgeWiki

wiki overview

The wiki is a collaborative document editor which is easily edited. By default any logged in user can edit your project wiki. But like most modern wiki's all edits are non-destructive -- we keep a copy of every version.

The wiki page itself has an edit button at the top right, and a discussion feature at the bottom of every page. The comment system is the same as all of the other tools in the new forge.

Like most wiki's there's a history page allows you to view the most recent edits to the wiki, and revert to any previous version.

Advanced users can modify permissions at Permissions can be modified at:
http://sourceforge.net/p/PROJECTNAME/admin/wiki/permissions

Wikis by default have a left navigation/tool sidebar and a right metadata panel which shows authorship, tags, and attachments. These can be optionally removed in the wiki's configuration options under "admin".

Markdown syntax

The wiki uses the markdown syntax (http://daringfireball.net/projects/markdown/syntax) with a few notable extensions.

WikiWords

Words with internal capitalization automatically create page links to wiki pages.

Any page existing forge resource can be linked with surrounding square brackets ie [mypage].

Links to resources in other tools can be explicitly referenced by adding a tool identifier prefix to the link. So for instance [developerwiki:MyTechnicalPage] and [userwiki:MySimplePage] can refer to wiki pages in a developerwiki instance. You can also link to tickets with [tickets:123] assuming there's a 123 ticket in a ForgeTracker instance mounted at tickets. The same is true for forums, or any of the other tools you have installed. You can even link to tickets in a subproject with [subproject.tickets:123].

Macros

macros can be used to call functions in the wiki, currently we have two macros include and img:

  • The include macro looks like this: [[include ref=PAGENAME ATTRIBUTE=VALUE ATTRIBUTE2=VALUE etc]] which pulls in another wiki page into a div on the current page. The attribute fields are passed on to the div, so it can be given id, class, etc definitions for layout. This is useful where you want an announcement on every wiki page, or where you want to include some consistent navigation element in on every wiki page.

  • img src=IMAGENAME surrounded by double square brackets [[ ]] -- this embeds an attached image, or image by url into the page

Tables

Everywhere you can use markdown on the newforge you can use confluence-style "|" delimited tables.

Free-form HTML

The adobe wikis can also accept a restricted subset of HTML.

Attachments

Wiki pages can store attachments for files up to ~10M, including images. Attachments are added or removed on the bottom of the edit page, and will automatically show up in links on the right hand navigation bar. Images will be automatically thumbnailed.

REST API

All wiki pages are read/writable via the REST API, which has 3 main functions:

  • View page

Adding "/rest" as the top level directory allows you to fetch the wiki pages in JSON format ie: https://sourceforge.net/adobe/cairngorm/wiki/CairngormTools/
becomes
https://sourceforge.net/rest/adobe/cairngorm/wiki/CairngormTools/

  • List pages

Similarly, prefixing the wiki tool path with "/rest" lets you see a JSON list of pages in the wiki: https://sourceforge.net/rest/adobe/cairngorm/wiki/

  • Update page

Updating the wiki is done by calling the view page with additional parameters, including signed API keys. I have attached a python script which demos the basic functionality by allowing a wiki page to be created out of a markdown or HTML file, but it requires that the user create a .forge-api.ini file with the parameters:

 [keys]
 api-key=XXXXXX
 secret-key=XXXXX

These keys can be generated for your account by going to the https://sourceforge.net/auth/prefs/ page. Usage is then:

 wiki-post.py --url=WIKI_REST_PATH PAGENAME FILENAME

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks