- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Wiki 上运行了 MediaWiki VisualEditor 扩展,它运行得很好。但是,我想自定义 VE 主工具栏以添加不同字体样式的列表,例如:1. new --> 将文本包裹在 <span class='new'>text here</span>
中2. old --> 会将文本换行到 <span class='old'>text here</span>
中
有关于如何实现此目的的示例吗?
the link question下的答案可能朝着正确的方向前进,但我无法让它在我的环境中工作 - 该链接不会添加到我的 VE 工具栏。也许我错过了一个步骤,但即便如此,它也只会添加一个链接,而不会在我的文本周围添加样式。所以请帮忙!
最佳答案
所以经过大量的尝试和错误并查看了许多不同的帖子后,我终于自己解决了这个问题;但我不确定这不是黑客攻击;事实上,我正在编辑现有的类 - 添加我自己的注释 - 而不是创建一个干净的扩展。
这是我修改过的可视化编辑器版本:可视化编辑器:REL1_252015-09-17T18:15:26be84313
以下是我的修改的差异:
diff -r VisualEditor/extension.json /var/www/html/wiki/extensions/VisualEditor/extension.json
535a536,537
> "lib/ve/src/dm/annotations/ve.dm.StrongAnnotation.js",
> "lib/ve/src/dm/annotations/ve.dm.InsAnnotation.js",
602a605,606
> "lib/ve/src/ce/annotations/ve.ce.StrongAnnotation.js",
> "lib/ve/src/ce/annotations/ve.ce.InsAnnotation.js",
755a760,762
> "visualeditor-annotationbutton-strong-tooltip",
> "visualeditor-annotationbutton-ins-tooltip",
> "visualeditor-annotationbutton-highlight-tooltip",
diff -r VisualEditor/lib/ve/i18n/en.json /var/www/html/wiki/extensions/VisualEditor/lib/ve/i18n/en.json
30c30
< "visualeditor-annotationbutton-strikethrough-tooltip": "Strikethrough",
---
> "visualeditor-annotationbutton-strikethrough-tooltip": "Deleted",
33a34,36
> "visualeditor-annotationbutton-strong-tooltip": "Hot",
> "visualeditor-annotationbutton-ins-tooltip": "New edit",
> "visualeditor-annotationbutton-highlight-tooltip": "Marked outdated",
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/lib/oojs-ui/themes/apex/images/icons: new.svg
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/lib/oojs-ui/themes/mediawiki/images/icons: new.svg
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ce/annotations: ve.ce.InsAnnotation.js
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ce/annotations: ve.ce.StrongAnnotation.js
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/dm/annotations: ve.dm.InsAnnotation.js
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/dm/annotations: ve.dm.StrongAnnotation.js
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/styles/images/icons: hot.svg
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/styles/images/icons: new.svg
Only in /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/styles/images/icons: old.svg
diff -r VisualEditor/lib/ve/src/ui/styles/ve.ui.Icons.css /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/styles/ve.ui.Icons.css
198a199,210
> .oo-ui-icon-strong {
> /* @embed */
> background-image: url(images/icons/hot.svg); }
>
> .oo-ui-icon-new {
> /* @embed */
> background-image: url(images/icons/new.svg); }
>
> .oo-ui-icon-highlight {
> /* @embed */
> background-image: url(images/icons/old.svg); }
>
diff -r VisualEditor/lib/ve/src/ui/tools/ve.ui.AnnotationTool.js /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/tools/ve.ui.AnnotationTool.js
180a181,246
> * UserInterface strong tool.
> *
> * @class
> * @extends ve.ui.AnnotationTool
> * @constructor
> * @param {OO.ui.ToolGroup} toolGroup
> * @param {Object} [config] Configuration options
> */
> ve.ui.StrongAnnotationTool = function VeUiStrongAnnotationTool( toolGroup, config ) {
> ve.ui.AnnotationTool.call( this, toolGroup, config );
> };
> OO.inheritClass( ve.ui.StrongAnnotationTool, ve.ui.AnnotationTool );
> ve.ui.StrongAnnotationTool.static.name = 'strong';
> ve.ui.StrongAnnotationTool.static.group = 'textStyle';
> ve.ui.StrongAnnotationTool.static.icon = 'strong';
> ve.ui.StrongAnnotationTool.static.title =
> OO.ui.deferMsg( 'visualeditor-annotationbutton-strong-tooltip' );
> ve.ui.StrongAnnotationTool.static.annotation = { name: 'textStyle/strong' };
> ve.ui.StrongAnnotationTool.static.commandName = 'strong';
> ve.ui.toolFactory.register( ve.ui.StrongAnnotationTool );
>
> /**
> * UserInterface ins tool.
> *
> * @class
> * @extends ve.ui.AnnotationTool
> * @constructor
> * @param {OO.ui.ToolGroup} toolGroup
> * @param {Object} [config] Configuration options
> */
> ve.ui.InsAnnotationTool = function VeUiInsAnnotationTool( toolGroup, config ) {
> ve.ui.AnnotationTool.call( this, toolGroup, config );
> };
> OO.inheritClass( ve.ui.InsAnnotationTool, ve.ui.AnnotationTool );
> ve.ui.InsAnnotationTool.static.name = 'ins';
> ve.ui.InsAnnotationTool.static.group = 'textStyle';
> ve.ui.InsAnnotationTool.static.icon = 'new';
> ve.ui.InsAnnotationTool.static.title =
> OO.ui.deferMsg( 'visualeditor-annotationbutton-ins-tooltip' );
> ve.ui.InsAnnotationTool.static.annotation = { name: 'textStyle/ins' };
> ve.ui.InsAnnotationTool.static.commandName = 'ins';
> ve.ui.toolFactory.register( ve.ui.InsAnnotationTool );
>
> /**
> * UserInterface highlight tool.
> *
> * @class
> * @extends ve.ui.AnnotationTool
> * @constructor
> * @param {OO.ui.ToolGroup} toolGroup
> * @param {Object} [config] Configuration options
> */
> ve.ui.HighlightAnnotationTool = function VeUiHighlightAnnotationTool( toolGroup, config ) {
> ve.ui.AnnotationTool.call( this, toolGroup, config );
> };
> OO.inheritClass( ve.ui.HighlightAnnotationTool, ve.ui.AnnotationTool );
> ve.ui.HighlightAnnotationTool.static.name = 'highlight';
> ve.ui.HighlightAnnotationTool.static.group = 'textStyle';
> ve.ui.HighlightAnnotationTool.static.icon = 'highlight';
> ve.ui.HighlightAnnotationTool.static.title =
> OO.ui.deferMsg( 'visualeditor-annotationbutton-highlight-tooltip' );
> ve.ui.HighlightAnnotationTool.static.annotation = { name: 'textStyle/highlight' };
> ve.ui.HighlightAnnotationTool.static.commandName = 'highlight';
> ve.ui.toolFactory.register( ve.ui.HighlightAnnotationTool );
>
> /**
diff -r VisualEditor/lib/ve/src/ui/ve.ui.CommandRegistry.js /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/ve.ui.CommandRegistry.js
164a165,182
> 'strong', 'annotation', 'toggle',
> { args: ['textStyle/strong'], supportedSelections: ['linear', 'table'] }
> )
> );
> ve.ui.commandRegistry.register(
> new ve.ui.Command(
> 'ins', 'annotation', 'toggle',
> { args: ['textStyle/ins'], supportedSelections: ['linear', 'table'] }
> )
> );
> ve.ui.commandRegistry.register(
> new ve.ui.Command(
> 'highlight', 'annotation', 'toggle',
> { args: ['textStyle/highlight'], supportedSelections: ['linear', 'table'] }
> )
> );
> ve.ui.commandRegistry.register(
> new ve.ui.Command(
diff -r VisualEditor/lib/ve/src/ui/ve.ui.TriggerRegistry.js /var/www/html/wiki/extensions/VisualEditor/lib/ve/src/ui/ve.ui.TriggerRegistry.js
109,110c109,110
< new ve.ui.Trigger( 'cmd+\\' ),
< new ve.ui.Trigger( 'cmd+m' )
---
> new ve.ui.Trigger( 'cmd+\\' )//,
> //new ve.ui.Trigger( 'cmd+m' )
113,114c113,114
< new ve.ui.Trigger( 'ctrl+\\' ),
< new ve.ui.Trigger( 'ctrl+m' )
---
> new ve.ui.Trigger( 'ctrl+\\' )//,
> //new ve.ui.Trigger( 'ctrl+m' )
125c125,135
< 'strikethrough', { mac: new ve.ui.Trigger( 'cmd+shift+5' ), pc: new ve.ui.Trigger( 'ctrl+shift+5' ) }
---
> 'strong', { mac: new ve.ui.Trigger( 'cmd+h' ), pc: new ve.ui.Trigger( 'ctrl+h' ) }
> );
> ve.ui.triggerRegistry.register(
> 'ins', { mac: new ve.ui.Trigger( 'cmd+e' ), pc: new ve.ui.Trigger( 'ctrl+e' ) }
> );
> ve.ui.triggerRegistry.register(
> 'highlight', { mac: new ve.ui.Trigger( 'cmd+m' ), pc: new ve.ui.Trigger( 'ctrl+m' ) }
> );
> ve.ui.triggerRegistry.register(
> 'strikethrough', { mac: new ve.ui.Trigger( 'cmd+d' ), pc: new ve.ui.Trigger( 'ctrl+d' ) }
diff -r VisualEditor/modules/ve-mw/init/ve.init.mw.Target.js /var/www/html/wiki/extensions/VisualEditor/modules/ve-mw/init/ve.init.mw.Target.js
190,193c190,193
< include: [ { group: 'textStyle' }, 'language', 'clear' ],
< forceExpand: [ 'bold', 'italic', 'clear' ],
< promote: [ 'bold', 'italic' ],
< demote: [ 'strikethrough', 'code', 'underline', 'language', 'clear' ]
---
> include: [ { group: 'textStyle' }, 'strong', 'ins', 'highlight', 'clear' ],
> forceExpand: [ 'strong', 'ins', 'highlight', 'strikethrough', 'clear' ],
> promote: [ 'strong', 'ins', 'highlight', 'strikethrough', 'bold', 'italic', 'underline' ],
> demote: [ 'superscript', 'subscript', 'code', 'clear' ]
diff -r VisualEditor/VisualEditor.php /var/www/html/wiki/extensions/VisualEditor/VisualEditor.php
462a463,464
> 'lib/ve/src/dm/annotations/ve.dm.StrongAnnotation.js',
> 'lib/ve/src/dm/annotations/ve.dm.InsAnnotation.js',
534a537,538
> 'lib/ve/src/ce/annotations/ve.ce.StrongAnnotation.js',
> 'lib/ve/src/ce/annotations/ve.ce.InsAnnotation.js',
706a711,713
> 'visualeditor-annotationbutton-strong-tooltip',
> 'visualeditor-annotationbutton-ins-tooltip',
> 'visualeditor-annotationbutton-highlight-tooltip',
如果有人感兴趣,我也可以发布我创建的新类(class);最后,我很想听听有关如何以更易于维护的方式实现此类功能的任何建议。
关于mediawiki - 如何自定义 MediaWiki 可视化编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33005077/
我有很多文本文件要上传到运行 MediaWiki 的 wiki。 我什至不知道这是否真的可能,但我想试一试。 每个文本文件的名称将是 wiki 页面的标题。 一个 wiki 页面对应一个文件。 我想从
是否可以使用 SyntaxHighlight GeSHi 在 MediaWiki 中缩进一段代码? ? 比如我希望下面的代码容器与三级列表对齐 * This is plain text of a fi
是否可以在 MediaWiki 中定义可缩进和可折叠的文本或代码块(例如,使用语法高亮格氏格式化)? 我在 Wikipedia 中看到了可折叠的表格和列表,并希望将相同的概念应用于段落和代码片段。 谢
mediawiki 数据库中的哪个表保存页面内容?我想直接访问 mediawiki 的数据库。 最佳答案 您可以查看database layout媒体维基。页面内容位于表格text (在 Postgr
在 MediaWiki 中,您可以使用变量(“Magic Word”),例如 {{PAGENAME}} 或 {{REVISIONDAY}} 获取与当前正在查看的页面相关的特定信息。是否有类似的变量(或
我正在尝试在 wiki 页面上放置一个对象列表,供多个团队标记他们使用的对象。为此,我为每个团队制作了一个带有一列的表格,并希望在这些列中放置一个复选框,以便团队进行标记。 这是我要做的事情的基本思想
有没有MediaWIki我可以在其中提交整个(可能非常大)mediawiki 文本(用于维基百科文章)的 API,这将给我提供与在 wikipedia 上查看的 HTML 文章完全相同的 HTML对于
有没有MediaWIki我可以在其中提交整个(可能非常大)mediawiki 文本(用于维基百科文章)的 API,这将给我提供与在 wikipedia 上查看的 HTML 文章完全相同的 HTML对于
我正在寻找一种方法来防止所有用户在 Mediawiki 中更改他们的密码(因为帐户创建和密码更改由中央 SSO 服务器处理)。 据我所知,Mediawiki 用户可以通过两种方式更改密码:使用登录页面
背景: 我与一个大型协作机构合作,该机构将大量文档集中在一个 wiki 结构中。我已经熟悉 wiki 标记,并且可以创建带有链接等的简单页面。 我合作的 wiki(基于 mediawiki 架构)的一
我正在运行一个 MediaWiki 实例,在撰写本文时我刚刚将其升级到最新版本 1.32.0。这个 wiki 已有近 10 年的历史,并且经历了多次升级。 这是一个法语维基,对于说法语的人来说,令人讨
通过访问 sysop 和数据库访问,我如何更改与用户关联的电子邮件地址? 数据库中的用户表将所有内容都编码为 BLOB。如果我可以解码和编码这些值,大概我可以更新 user.user_email。 最
MediaWiki 支持的侧边栏的默认左侧边栏包含诸如“随机页面”和“当前事件”之类的链接。我想隐藏这些。 除了使用 CSS ( display:none; ) 之外,还有其他方法可以做到这一点吗?
如何设置才能让 MediaWiki 不允许一个电子邮件地址创建多个帐户?垃圾邮件机器人仅使用一封电子邮件创建了 5 个帐户。 我一直在寻找配置设置或扩展,但没能找到。 与此相关的一个问题是使用类似于
我有一个包含不同类型类别的 mediawiki。 如果一个页面有 2 个类别 [[Category:Pear]][[Category:Strawberry]]) 我想添加第三个类别 [[Categor
我们的网络上有自定义协议(protocol),可以在我们的应用程序中打开窗口。我们想在我们的 Wiki 中放置此应用程序的链接,但 mediawiki 似乎唯一识别的协议(protocol)是 htt
我想在 mediawiki 中找到图像的确切 URL 以发送到我的 pinterest 代码中。要查找页面 URL,我使用 urlencode($wgTitle->getFullURL()) 但我无法
我不太确定这在 MediaWiki 中是否可行。 我有几个类别,每个类别包含几页。如果您打开一个类别页面,您将看到该类别的内容,通常由以下三个部分组成: 用户定义的文本(可以使用编辑链接进行编辑)。
我开发了一个应用程序,它在 mediawiki 站点上有一个手册/帮助系统。当用户在应用程序中需要帮助时,他/她可以点击一个按钮,访问维基上相应的帮助页面。这工作得很好,当我在应用程序中添加/更改功能
我刚刚安装了 Mediawiki 并意识到为新手配置它非常复杂。 作为我的第一个条目,我想更改字体颜色: {{ font color | green | green text }} 为此,我从 Wik
我是一名优秀的程序员,十分优秀!