DEV: add replaceTagRenderer to pluginApi

This commit is contained in:
Penar Musaraj 2019-02-20 14:52:56 -05:00
parent 18296b4211
commit 4955ab1689
2 changed files with 28 additions and 2 deletions

View File

@ -31,6 +31,7 @@ import {
replaceIcon
} from "discourse-common/lib/icon-library";
import { replaceCategoryLinkRenderer } from "discourse/helpers/category-link";
import { replaceTagRenderer } from "discourse/lib/render-tag";
import { addNavItem } from "discourse/models/nav-item";
import { replaceFormatter } from "discourse/lib/utilities";
import { modifySelectKit } from "select-kit/mixins/plugin-api";
@ -42,7 +43,7 @@ import Sharing from "discourse/lib/sharing";
import { addComposerUploadHandler } from "discourse/components/composer-editor";
// If you add any methods to the API ensure you bump up this number
const PLUGIN_API_VERSION = "0.8.28";
const PLUGIN_API_VERSION = "0.8.29";
class PluginApi {
constructor(version, container) {
@ -830,6 +831,21 @@ class PluginApi {
replaceCategoryLinkRenderer(fn);
}
/**
* Registers a renderer that overrides the display of a tag.
*
* Example:
*
* function testTagRenderer(tag, params) {
* const visibleName = Handlebars.Utils.escapeExpression(tag);
* return `testing: ${visibleName}`;
* }
* api.replaceTagRenderer(testTagRenderer);
**/
replaceTagRenderer(fn) {
replaceTagRenderer(fn);
}
/**
* Registers custom languages for use with HighlightJS.
*

View File

@ -1,4 +1,10 @@
export default function renderTag(tag, params) {
let _renderer = defaultRenderTag;
export function replaceTagRenderer(fn) {
_renderer = fn;
}
function defaultRenderTag(tag, params) {
params = params || {};
const visibleName = Handlebars.Utils.escapeExpression(tag);
tag = visibleName.toLowerCase();
@ -41,3 +47,7 @@ export default function renderTag(tag, params) {
return val;
}
export default function renderTag(tag, params) {
return _renderer(tag, params);
}