擴展:CharInsert

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:CharInsert and the translation is 15% complete.
MediaWiki擴充功能手冊
OOjs UI icon advanced-invert.svg
CharInsert
发布状态: 稳定版
实现 标签 , 页面操作 , 我的Wiki
描述 Allows to create JavaScript character insert boxes.
作者 Brion Vibber (Brion VIBBER讨论)
最新版本 continuous updates
兼容性方针 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki 1.25+
PHP 5.4+
许可协议 GNU通用公眾授權條款2.0或更新版本
下载
‎<charinsert>
翻譯CharInsert擴充功能如在translatewiki.net可用

检查使用和版本矩阵。

问题 尚未完成的工作 · 回報錯誤

The CharInsert extension allows to create JavaScript links that when clicked, insert predefined text into the text box.

These links are usually used in MediaWiki:Edittools (example on this wiki) system message.

語法

Use ‎<charinsert> tags with a space-separated list of characters or tags for which you wish to allow insertion.

你可以在標籤之間使用+符號去定義:

  • 插入被選擇的文字
  • place cursor if no text was selected.

You have to enclose templates and spaces inside ‎<nowiki>:

<charinsert><nowiki>== + ==</nowiki> <nowiki>{{stub}}</nowiki></charinsert>

使用方法和輸出範例

Individual characters

Individual characters are just listed between the "charinsert" tags.

<charinsert>Á á Ć ć É é Í í Ĺ ĺ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź</charinsert>

results in

Á á Ć ć É é Í í Ĺ ĺ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź

Clicking the links will have no effect since there is no input or edit field.

Combined characters

Combined characters are listed between the "charinsert" tags and connected by the "+" sign.

<charinsert>“+” ‘+’ «+» ‹+› „+“ ‚+‘ [[+]] {{+}}</charinsert>

results in

“” ‘’ «» ‹› „“ ‚‘ [[]] {{}}

Clicking the links will have no effect since there is no input or edit field.

Notes

  • Generated JavaScript links also work in other areas around edit window, e.g. in MediaWiki:Copyrightwarning or MediaWiki:Newarticletext, on the page preloaded with Inputbox , and even from the text preview.
  • They can also be used in MediaWiki:Uploadtext to insert image description templates.
  • Unlike toolbar buttons on top, this extension doesn't provide a way to specify inserted "sample text".
  • Use &#10; to add new lines (\n).
  • Enclose white spaces in ‎<nowiki>...‎</nowiki> tags when needed.
  • Add ‎<charinsert>...‎</charinsert> tags into MediaWiki:Edittools.

安裝

Due to bug T88922 the tool bar provided by CharInsert does not work on special page "Upload" when used on MediaWiki 1.27.x. Use the version provided for MediaWiki 1.28+ but note that some Gadgets may not work as expected without further update.
  • 下载文件,并将其放置在您extensions/文件夹中的CharInsert目录内。
  • 将下列代码放置在您的LocalSettings.php的底部:
    wfLoadExtension( 'CharInsert' );
    
  • If you use the gadget Edittools , update its code to the latest version (≥ May 27, 2016)
  • Yes 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。

致使用MediaWiki 1.24或更早版本的用户:

上面的说明介绍的是安装此扩展的新方法,它使用wfLoadExtension()。 如果您需要在早期版本(MediaWiki 1.24和更早版本)中安装此扩展,而不是wfLoadExtension( 'CharInsert' );,您需要使用:

require_once "$IP/extensions/CharInsert/CharInsert.php";

Advanced Installation

重要: You must have Extension:Gadgets for this to work.

格式化

Charinsert-sample-edittools-box.png

To give the charinsert lists additional styling, wrap the contents of your Edittools between <div class="mw-charinsert-buttons"> and ‎</div> and add styling for them to your MediaWiki:Common.css. This site (www.mediawiki.org) does that to make the links appear like buttons (as shown in the screenshot to the side). The below stylesheet was used for that, copy it to your MediaWiki:Common.css to apply the same styling.

 
/**
 * Styling for links generated by [[MediaWiki:Edittools]]
 * @source https://www.mediawiki.org/wiki/Extension:CharInsert#Styling
 * @updated 2020-03-17
 */
.mw-charinsert-buttons {
	border: 1px solid #aaa;
	margin-top: 10px;
	padding: 1px;
	font-size: 1.1em;
	text-align: center;
}

.mw-charinsert-buttons a {
	background-color: #cde !important;
	color: #000;
	border: thin #069 outset;
	padding: 0 1px 1px;
	font-weight: bold;
	font-size: 0.9em;
	text-decoration: none;
}

.mw-charinsert-buttons a:hover,
.mw-charinsert-buttons a:active {
	background-color: #bcd;
	border-style: inset;
}

.client-js .mw-edittools-section {
	display: inline;
}

.client-js .mw-edittools-section input[type="button"] {
	font-size: 0.9em;
	margin-left: 1px;
	padding-left: 1px;
	padding-right: 1px;
}

Alternatively, you can choose a style closer to the Wikimedia Design Style Guide and the WikimediaUI theme:

 
/**
 * Styling for links generated by [[MediaWiki:Edittools]] in WikimediaUI inspired theme.
 * @source https://www.mediawiki.org/wiki/Extension:CharInsert#Styling
 * @updated 2020-03-17
 */
.mw-charinsert-buttons {
	margin-top: 8px;
	border: 1px solid #c8ccd1;
	padding: 2px 4px 4px;
	font-size: 1.1em;
	text-align: center;
}

.mw-charinsert-buttons a {
	background-color: #f8f9fa !important;
	color: #202122;
	border: thin #36c outset;
	padding: 0 1px 2px;
	font-size: 0.9em;
	font-weight: bold;
	text-decoration: none;
}

.mw-charinsert-buttons a:hover {
	background-color: #fff;
    color: #404244;
}

.mw-charinsert-buttons a:active {
	background-color: #c8ccd1;
	border-style: inset;
}

.client-js .mw-edittools-section {
	display: inline;
}

.client-js .mw-edittools-section input[type="button"] {
	background-color: #f8f9fa;
	color: #202122;
	margin-left: 1px;
    border-radius: 2px;
	padding: 1px 6px;
	font-size: 0.9em;
    /* Apply pointer cursor to all interactive elements. */
    cursor: pointer;
}

.client-js .mw-edittools-section input[type="button"]:hover {
	background-color: #fff;
    color: #404244;
}

.client-js .mw-edittools-section input[type="button"]:active {
	background-color: #c8ccd1;
    color: #000;
}

脚本

If you have many CharInsert links, one could use JavaScript to put them in separate groups and allow dynamic switching with a dropdown menu. For example to separate diacritical characters from wikisyntax etc. Several sites (such as mediawiki.org, de.wikipedia.org and en.wikipedia.org) have done this. They all implemented it in different ways though. Documented below is the way it is done on mediawiki.org:

1. Wrap all the charinsert tags on MediaWiki:Edittools into a ‎<div> container and give it a descriptive, unique, ID (for example "mw-edittools-charinsert"):

<div id="mw-edittools-charinsert" class="mw-charinsert-buttons" title="Click on the wanted special character.">
...
</div>
2. Wrap each individual block of charinserts into ‎<p> tags like this:
<p class="mw-edittools-section" data-section-title="Wiki-Syntax" style="display: none;">
...
</p>
Note:
  • Don't change the word 'mw-edittools-section'
  • The text behind "data-section-title=" will identify this group in the dropdown menu.
  • Make sure there is one group without the 'style="display: none;"' directive: That will be the default choice in the dropdown menu. On this site, it is called 'Standard' while the other groups are named by the language for which the characters are significant.
3. Copy the contents of MediaWiki:Gadget-Edittools.js to an equally named page on your own wiki
4. Add the following code to your MediaWiki:Gadgets-definition:
* Edittools[ResourceLoader|default]|Edittools.js

English Wikipedia CharInsert menu

For implementing CharInsert menu like the one used on the English Wikipedia, either export gadgets: Charinsert-core, Charinsert-styles, and Charinsert and then import them on your own wiki through Special:Import or if you want to do it manually, copy the following four interface pages to your wiki:

* charinsert[ResourceLoader|default|peers=charinsert-styles]|charinsert.js
* charinsert-core[ResourceLoader|hidden|dependencies=jquery.textSelection,user,mediawiki.storage]|charinsert-core.js
* charinsert-styles[ResourceLoader|hidden|type=styles]|charinsert-styles.css
  • MediaWiki:Edittools (Wikipedia) - Only for users with JavaScript turned off or unsupported (which disables the WikiEditor extension too), therefore not really necessary or useful either. It only shows symbols/characters as simple text below the editor window, which can then be copy-pasted and thus be of some help to editors. Apparently, it does not get activated in English Wikipedia for disabled JavaScript.

Note: This particular English Wikipedia character set also contains templates, which will need to be defined separately, if they are to be used on your Wiki.

English Wikipedia Solution checked on: November 6, 2018