Functionality:Edittools/Specification

From MediaWiki extension testing
Jump to: navigation, search

Outline for desirable features that would be useful in the CharInsert extension.

Contents

Problem description

The current CharInsert extension is typically only used with what is described as "Edittools". Similar Edittools are used on many projects and consequently they are not localised and they are not configurable. Edittools are provided in the edit mode and provide you with the characters that are available for a language.

When the Edittools are made into an extension, the names of the languages and scripts can be localised and it will be possible to configure what will be made available for a particular Wiki or for a particular user.

Enhancements

Character Groups

Groups are a series of related characters stored for use in multiple places; this allows groups to be defined by the wiki, and the names of them groups localised. They would be specified using messages, under the prefix charinsert-group-name. The name message specifies the name of the character grouping (and should be localised), and the chars message specifies the characters in that group (and would generally not be localised).

This would allow us to unify the set of characters available across different wikis, making the tool more intuitive, and also reducing workload. Groups could be taken directly from the CLDR and unified in that way aswell.

Groups would be accessed using the group="name" attribute of the <charinsert> tag.

Example

Messages
charinsert-group-example-name
Example
charinsert-group-example-chars
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Accessor
<charinsert group="example"/>
Output
Without JavaScript
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
With JavaScript
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Character Group Selection

A series of groups could also be output at the same time. When JavaScript is present these could then be consolidated in to a drop-down box and displayed based upon the selected item.

This functionality would be accessed using the groups="name1 name2 name3" attribute of the <charinsert> tag.

Example

Messages
charinsert-group-example1-name
Example 1
charinsert-group-example1-chars
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
charinsert-group-example2-name
Example 2
charinsert-group-example2-chars
a b c d e f g h i j k l m n o p q r s t u v w x y z
Accessor
<charinsert groups="example1 example2"/>
Output
Without JavaScript
Example 1: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Example 2: a b c d e f g h i j k l m n o p q r s t u v w x y z
With JavaScript
Imagine "[Example 1|V]" being a drop-down box
[Example 1|V] A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Personal tools
Variants
Actions
navigation
Toolbox