Extension:PieceOfCode

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
PieceOfCode

Release status: beta

Implementation Tag
Description Imports pieces of SVN files.
Author(s) Alejandro Darío Simi (DaemonracoTalk)
Last version 0.1 (2010-09-13)
MediaWiki Tested on 1.15.x and 1.16.x
License GPL
Download Project page
Download snapshot
Subversion [Help]

Browse source code
View code changes

Example DAEMonRaco's Wiki
Parameters

$wgPieceOfCodeConfig
$wgPieceOfCodeSVNConnections

Check usage (experimental)

Contents

[edit] What can this extension do?

This MediaWiki[1] extension[2] allows to import SVN file from several repositories and show them completely inside articles or just some lines.

[edit] Usage

In order to import a piece of some font-code, this extension provides the tag <pieceofcode> and it can be used as it's shown on the next example:

<pieceofcode title="true">
        file       = /trunk/PieceOfCode-dr.php
        revision   = 5
        connection = PieceOfCode-dr
        lines      = 2-13
</pieceofcode>

To see the result visit: http://wiki.daemonraco.com/wiki/PieceOfCode-dr#Usage

[edit] Parameters

Option Description
title This parameter allows to show a title over the piece of code with a sort of path representing the source.
When it's present it needs the value true.

[edit] Options

Option Description
connection This is a key for a repository configured by a web administrator.more
file This is the path to be added to the connection's url in order to create a full path. For example, if the connection's url is http://pieceofcode-dr.googlecode.com/svn, path may be /trunk/PieceOfCode-dr.php.
lines This parameter specifies a range of lines to be shown. For example: 20-30 (both, line 20 and line 30 will be shown).
revision This is the SVN number of revision.

[edit] Connections

A connection is a piece of configuration used to identify a repository and specify its connection data. For this purpose, PieceOfCode uses the configuration variable $wgPieceOfCodeSVNConnections, this variable is an array where each element is an array itself with at least one value called url. This is the list of values that can be stored inside these items:

Option Description
url URL of a SVN repository.
username Username with rights to perform a checkout.
password Password for user previously specified.

An example of its use may be something like this:

$wgPieceOfCodeSVNConnections['MyProject'] = array(
    'url'      => 'https://myproject.googlecode.com/svn',
    'username' => 'myusername',
    'password' => 'mypassword',
);

In this case, MyProject is the key that identifies this connection.

[edit] Configuration

This is the set of variables users can modify to change PieceOfCode behavior:

General
Type Name Default Description
string
$wgPieceOfCodeConfig["svn-binary"]
"/usr/bin/svn"
Specifies SVN command full-path.
string
$wgPieceOfCodeConfig["enableuploads"]
$wgEnableUploads
This parameter enables/disables imports. Bay default takes the same configuration for uploads.
string
$wgPieceOfCodeConfig["uploaddirectory"]
$wgUploadDirectory.DIRECTORY_SEPARATOR."PieceOfCode"
This is a full path to the directory to be use for uploads.
Tables
Type Name Default Description
string
$wgPieceOfCodeConfig["db-tablename"]
"poc_codes"
This is the table name used to store imports information.
string
$wgPieceOfCodeConfig["db-tablename-text"]
"poc_codes_pages"
Name of table that holds a list of pages using the extension.
string
$wgPieceOfCodeConfig["db-tablename-ccounts"]
"poc_codes_counts"
Name of table that keep counts of uses by font-code.
string
$wgPieceOfCodeConfig["db-tablename-history"]
"poc_codes_history"
Name of table where history of modifications per font-code is stored.
string
$wgPieceOfCodeConfig["db-tablename-flags"]
"poc_flags"
Name of table to hold several values used by the extension.
Font-codes Configuration
Type Name Default Description
array
$wgPieceOfCodeConfig["fontcodes"]["bash"]
$wgPieceOfCodeConfig["fontcodes"]["make"]
$wgPieceOfCodeConfig["fontcodes"]["cpp"]
$wgPieceOfCodeConfig["fontcodes"]["php"]
$wgPieceOfCodeConfig["fontcodes"]["text"]
$wgPieceOfCodeConfig["fontcodes"]["sql"]
$wgPieceOfCodeConfig["fontcodes"]["xml"]
$wgPieceOfCodeConfig["fontcodes"]["java"]
$wgPieceOfCodeConfig["fontcodes"]["dos"]
$wgPieceOfCodeConfig["fontcodes"]["asm"]
$wgPieceOfCodeConfig["fontcodes"]["html4strict"]
$wgPieceOfCodeConfig["fontcodes"]["python"]
$wgPieceOfCodeConfig["fontcodes"]["css"]
$wgPieceOfCodeConfig["fontcodes"]["javascript"]
array('sh')
array('mk', 'mak')
array('cpp', 'h', 'hpp', 'c')
array('php', 'inc', 'php3')
array('txt', 'log')
array('sql')
array('xml', 'xsl', 'xslt', 'mxml')
array('java')
array('bat')
array('asm')
array('html', 'htm')
array('py')
array('css')
array('js')
These lists configures how to map file-extensions and their types. Values like bash, cpp, etc. are those accepted by paramenter lang of SyntaxHighlight extension.
array
$wgPieceOfCodeConfig["fontcodes-forbidden"]
array("exe", "so", "zip", "rar", "7z",
        "gz", "jar", "class", "a", "o",
        "tar", "bz2", "jpg", "jpeg", "png",
        "gif", "xcf", "svg")
This is the list of extensions forbidden by the extension. When one of these is about to be imported, PieceOfCode shows an error message.
boolean
$wgPieceOfCodeConfig["fontcodes-allowempty"]
false
This option allows to import files without extensions.
int
$wgPieceOfCodeConfig["maxsize"]["highlighting"]
30720
Maximum size in bytes before highlighting is disabled. By default is 30KB.
int
$wgPieceOfCodeConfig["maxsize"]["showing"]
51200
Maximum size in bytes before font-code is truncated. By default is 50KB.

This parameter has two diferent behaviors:

  • When code is shown on Special:PieceOfCode[3], it stops reading and printing.
  • When code is shown by tags <pieceofcode>, it reads the whole file and shows it directly adding tags <pre> and </pre>.
Statistics
Type Name Default Description
boolean
$wgPieceOfCodeConfig["stats"]
true
Enables/Disables statistics recollection.
boolean
$wgPieceOfCodeConfig["db-stats-limited"]
false
Allows to limit pages analized on each wiki request. This is a way to improve performace.
integer
$wgPieceOfCodeConfig["db-stats-per-try"]
2
This statistics limitations are enabled, this is the maximum of pages to be analized on each wiki request.
integer
$wgPieceOfCodeConfig["db-stats-timelimit"]
2592000
Time-limit for stored statistics. By deafult it is 30 days.
History
Type Name Default Description
boolean
$wgPieceOfCodeConfig["history"]
true
Enables/Disables font-codes history storage.
Miscellaneous
Type Name Default Description
boolean
$wgPieceOfCodeConfig["autocss"]
true
Allows to enable/disable internal CSS-file inclution.
boolean
$wgPieceOfCodeConfig["show"]["installdir"]
true
Shows system path to PieceOfCode installation directory at Special:PieceOfCode.
boolean
$wgPieceOfCodeConfig["show"]["tablenames"]
true
Shows table names at Special:PieceOfCode.
boolean
$wgPieceOfCodeConfig["show"]["binarypaths"]
true
Shows system path to the SVN application at Special:PieceOfCode.
boolean
$wgPieceOfCodeConfig["show"]["updaloaddirs"]
true
Shows system path to the uploads directory at Special:PieceOfCode.
boolean
$wgPieceOfCodeConfig["show"]["svnusernames"]
true
Shows username for each SVN connextion at Special:PieceOfCode.
boolean
$wgPieceOfCodeConfig["show"]["svnpasswords"]
false
Shows password for each SVN connextion at Special:PieceOfCode.
integer
$wgPieceOfCodeConfig["show"]["stored-limit"]
20
Maximum of entries show on section Stored Codes at Special:PieceOfCode.
integer
$wgPieceOfCodeConfig["show"]["history-limit"]
50
Maximum of entries shown at Special:PieceOfCode when a font-code specific information is shown.
boolean
$wgPieceOfCodeConfig["show"]["authorslogo"]
true
Allows to disable DAEMonRaco's logotype at Special:PieceOfCode.

[edit] Downloads

[edit] Installation

If you want to install this extension, follow these steps:

require_once("extensions/PieceOfCode-dr/PieceOfCode-dr.php");
//$wgPieceOfCodeSVNConnections['MyProject'] = array(
//    'url'      => 'https://myproject.googlecode.com/svn',
//    'username' => 'myusername',
//    'password' => 'mypassword',
//);
  • Then, enjoy!.

[edit] What's New

[edit] Version trunk

  • Highlight Specified lines.
  • Adding multirange of lines support.
    • Adding param 'separator' in order to separate ranges of lines.
  • Adding POCStats: a new class to keep statistics.
    • Adding configuration to manage this new feature.
  • Adding class POCFlags in order to manage PieceOfCode flags.
  • Adding class POCVersionManager in order to manage version upgrades of PieceOfCode.
  • Almost all Specia:PieceOfCode works with wiki text.

[edit] Version 0.1

  • Extension presentation.

[edit] @TODO

  • Register what article includes what font-code.
  • SpecialPage: separate REQUEST actions.
    • others...
  • Pre-recursive parse inside tags.

[edit] See also

[edit] References

  1. Visit http://www.mediawiki.org
  2. Visit Extensions
  3. You may visit Special:PieceOfCode to see an example
Personal tools
Namespaces
Variants
Actions
Site
Support
Download
Development
Communication
Print/export
Toolbox