{"id":45230,"date":"2012-09-07T00:11:12","date_gmt":"2012-09-07T00:11:12","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/geshi-source-colorer\/"},"modified":"2012-11-09T22:52:03","modified_gmt":"2012-11-09T22:52:03","slug":"geshi-source-colorer","status":"closed","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/geshi-source-colorer\/","author":5776102,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.13","stable_tag":"0.13","tested":"3.4.2","requires":"3.2","requires_php":"","requires_plugins":"","header_name":"GeSHi Source Colorer","header_author":"flashpixx","header_description":"","assets_banners_color":"","last_updated":"2012-11-09 22:52:03","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&hosted_button_id=WCRMFYTNCJRAU","header_plugin_uri":"http:\/\/wordpress.org\/extend\/plugins\/geshi-source-colorer","header_author_uri":"http:\/\/flashpixx.de","rating":0,"author_block_rating":0,"active_installs":10,"downloads":2818,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog","other_notes"],"tags":[],"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1","0.11","0.12","0.13"],"block_files":[],"assets_screenshots":{"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":"1539224","resolution":"4","location":"plugin"},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":"1539224","resolution":"2","location":"plugin"},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":"1539224","resolution":"3","location":"plugin"},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":"1539224","resolution":"6","location":"plugin"},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":"1539224","resolution":"1","location":"plugin"},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":"1539224","resolution":"5","location":"plugin"}},"screenshots":{"1":"source code view with highlight effect","2":"source code with collapsed view and dynamic highlight effect","3":"shows the black style","4":"tab view of code blocks","5":"tab view of code blocks with black style","6":"setting page with style definition"}},"plugin_section":[],"plugin_tags":[1214,1257,12155,2207,18593],"plugin_category":[],"plugin_contributors":[87810],"plugin_business_model":[],"class_list":["post-45230","plugin","type-plugin","status-closed","hentry","plugin_tags-code","plugin_tags-color","plugin_tags-geshi","plugin_tags-syntax","plugin_tags-syntax-highlight","plugin_contributors-flashpixx","plugin_committers-flashpixx"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/geshi-source-colorer.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/geshi-source-colorer\/trunk\/screenshot-1.jpg?rev=1539224","caption":"source code view with highlight effect"},{"src":"https:\/\/ps.w.org\/geshi-source-colorer\/trunk\/screenshot-2.jpg?rev=1539224","caption":"source code with collapsed view and dynamic highlight effect"},{"src":"https:\/\/ps.w.org\/geshi-source-colorer\/trunk\/screenshot-3.jpg?rev=1539224","caption":"shows the black style"},{"src":"https:\/\/ps.w.org\/geshi-source-colorer\/trunk\/screenshot-4.jpg?rev=1539224","caption":"tab view of code blocks"},{"src":"https:\/\/ps.w.org\/geshi-source-colorer\/trunk\/screenshot-5.jpg?rev=1539224","caption":"tab view of code blocks with black style"},{"src":"https:\/\/ps.w.org\/geshi-source-colorer\/trunk\/screenshot-6.jpg?rev=1539224","caption":"setting page with style definition"}],"raw_content":"<!--section=description-->\n<p>The plugin creates a colorized view of source code. It uses <a href=\"http:\/\/qbnz.com\/highlighter\/\">GeSHi<\/a> for creating the layout information and\nallows an individual configuration of the tag values, so that a migration of anonther code syntax highlighter plugin is possible, without changing the article\ndata. Additional options are like enabling \/ disabling line numbers, copy to clipboard and open code in a blank window can be used by a hover toolbar.\nThe code blocks on a post \/ page can be collected to a \"list of listings\" automatically or collected in a tab view, each code block can get its own layout\nstyle and each code boxes can be collapsed \/ expanded. On a code box different lines can be static highlighted or the highlighting can be added dynamically\non hovering a individual DOM element. You can define a own JavaScript or CSS file in your theme, so that you can handle different layouts \/ actions on your\nthemes. Own styles for different codes can be created and exported \/ imported into the plugin.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>free definition of the tags \/ shortcuts<\/li>\n<li>free code style definition on the given language<\/li>\n<li>multi- or singleline code block on one page with individual configuration<\/li>\n<li>global CSS style definition (code block and toolbar)<\/li>\n<li>theme based individual CSS and JavaScript files<\/li>\n<li>static &amp; dynamic highlighting (hover effect on every DOM with jQuery possible)<\/li>\n<li>table of listing on each page with anchor elements<\/li>\n<li>individual configuration on the code block hover toolbar with enabling \/ disabling line numbers, open code in a blank window, copy code to clipboard, collapsed view etc.<\/li>\n<li>collapsed view of the code with jQuery expand \/ collapsed action<\/li>\n<li>keyword references to the language definition<\/li>\n<li>individual code tab size<\/li>\n<li>export \/ import function with dynamic style renaming (over different plugin versions)<\/li>\n<li>tab view \/ browsing of code blocks (different code blocks can be collected in one global container and each code will be referenced by a individual tab)<\/li>\n<li>automatic choice of the codestyle on the language name<\/li>\n<li>individual language definitions with GeSHi<\/li>\n<li>individual access with JavaScript and jQuery to the code blocks<\/li>\n<li>live preview of style definition<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the folder to the \"\/wp-content\/plugins\/\" directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt>Where can I find the tag options ?<\/dt>\n<dd><p>Take a look on the administration page of the plugin. Within the brackets [] you can find the option name, that can be passed to the tag.<\/p><\/dd>\n<dt>Can I change the layout of the code box ?<\/dt>\n<dd><p>Yes, take a look on \"Other Notes\", there is a short description fpr changing the layout.<\/p><\/dd>\n<dt>Can I change the HTML ID of the code block ?<\/dt>\n<dd><p>Yes, see above. You can set the ID with the option flag \"id\" on the code tag.<\/p><\/dd>\n<dt>Can I get access to the line numbers with JavaScript ?<\/dt>\n<dd><p>Yes. Each line within a code block can be addressed with the ID name of the code block followed by \"-line number\".<\/p><\/dd>\n<dt>Can I add a table of listings ?<\/dt>\n<dd><p>Yes, you can create a \"list of listings\" with the call<\/p>\n\n<pre>[lol]<\/pre>\n\n<p>. This will add a div to your page and a jQuery call fills the source data into the\nthe div after the page have been loaded. The layout of this list is stored in the main CSS file. Feel free to change your layout. Take in mind, that you can not\nuse the \"collaps\" call not on a \"tab\" view.<\/p><\/dd>\n<dt>Can I collecte different code blocks into one container ?<\/dt>\n<dd><p>Yes, use the tag option \"tab\", which create one container and add all other code blocks with the same name into this container. The value is \"classname name of your code\".\nAll code blocks with equal classnames are grouped and a tab menu is created, each item of the menu shows the text which is set after the first space in the tab option.<\/p><\/dd>\n<dt>My language type is not supported. Can I add my own language file ?<\/dt>\n<dd><p>Yes, take a look on the <a href=\"http:\/\/qbnz.com\/highlighter\/geshi-doc.html#language-files\">GeSHi documentation<\/a> and feel free to add your own style. The code file must be stored\nwithin the \"plugin-directory\/external\/geshi\" directory.<\/p><\/dd>\n<dt>Can I use CSS styles on my code ?<\/dt>\n<dd><p>Yes, disable all layout information of GeSHi (set the \"geshicss\" flag to false globally or individual and the set the plugin options the \"maincss\" to false). In this case no stylesheet is\nused, so you can create your own styles.<\/p><\/dd>\n<dt>Can I change the layout of the container ?<\/dt>\n<dd><p>Yes, the plugin has got two styles:<\/p>\n\n<ul>\n<li>\"geshisourcecolorer-block-default\" it is a style with white background and greyed line numbers<\/li>\n<li>\"geshisourcecolorer-block-black\" a black style like Emacs, with black background and white line numbers<\/li>\n<\/ul>\n\n<p>Set up one of these styles on the plugin setting page in the main menu under \"css class name of the code blocks container\" (also the line style).<\/p><\/dd>\n<dt>How can I include my own CSS style or JavaScript file ?<\/dt>\n<dd><p>The plugin can include your file automatically. Store your CSS file in your (parent) theme directory with the name \"geshi-source-colorer.css\". The JavaScript file\nmust be stored in the (parent) theme directory with the name \"geshi-source-colorer.js\". The plugin finds the files and include them.<\/p><\/dd>\n<dt>Where are the styles of the codes ?<\/dt>\n<dd><p>The plugin uses one default style for all codes, because defining different styles for each theme \/ theme group is not possible. Also the styles can be different on each language,\nso there are to many possibilities to create the style definitions. But the plugin makes it easy to create your style, that can be used with your theme. Open the plugin settings and\nthe subsection \"code styles\". In this section you can set up on each code description an own CSS style. Please don't ask if I can create a style for you, because I don't know the \ncolors of your site, so creating different predefined  styles are not usefull. <em>The plugin shows you a very simple method to create a style, so please do it yourself!<\/em> If you\nhave created a style and you think other people can use them also, send me the style definition, than I can add it to the plugin defaults.<\/p><\/dd>\n<dt>Which HTML element is used by the code box ?<\/dt>\n<dd><p>GeSHi uses in this plugin an ordered list (ol) and for each code line (li) different span tags. The full code is in a div tag, that uses the classes \"geshisourcecolorer\"\n(especially \"geshisourcecolorer-line\") and a class named the language name. The toolbar is also stored in a div under the main code div. For the full code, take a look into the DOM structure.<\/p><\/dd>\n<dt>Is the copy-to-clipboard function JavaScript only ?<\/dt>\n<dd><p>No, the copy-to-clipboard function uses JavaScript and Flash. Within the plugin <a href=\"https:\/\/github.com\/jonrohan\/ZeroClipboard\">ZeroClipboard<\/a> is used. The main reason for this\ncall is the security structure in different browsers and internal access to the clipboard. A genereal call to copy data into the clipboard exists only in IE. Webkit browser like Safari,\nChrome can used Flash but Firefox is very secure that only Flash works with the copy procedure. A JavaScript only version is very complex, because the different implementations - if they exists - \nin different browser versions are not documented very well. So if you don't want to use a Flash object, you must disables the copy feature.<\/p><\/dd>\n<dt>Can I export \/ import my styles ?<\/dt>\n<dd><p>Yes, use the export \/ import function on the configuration panel. You can copy the \"export value\" into another plugin (\"import value\") or store this value into a text file or something else. \nAll options of the plugin and the version of the plugin will be exported. The export is a serialized PHP array structure. You can import different version of the plugin, the values will be\nconverted into the correct data fields of the plugin.<\/p><\/dd>\n<dt>Will be removed my own styles on a plugin update ?<\/dt>\n<dd><p>The options of the plugin should be stored on update, but it is recommend to create an export of your settings befor you run the update. You should use in this case the export \/ import\nsection on the plugin option page, so you can copy the plugin settings into your clipboard, run the update, check the settings on the new version and import the settings if there are\nsome errors.<\/p><\/dd>\n<dt>How can I highlight some code lines ?<\/dt>\n<dd><p>The line highlight works only on code blocks, not on code lines. There are three ways to do this. First the \"static\" way, that means, you can set the lines, which should be highlighted\nin a flag of your code block. You can use this with the \"highlight\" flag (see above), eg (we are highlighting the lines 3, 5 and 12):<\/p>\n\n<pre>\n[cc lang=\"cpp\" highlight=\"3 5 12\"]your code[\/cc]\n<\/pre>\n\n<p>On the second way you can add \"hoverhighlight\" to the code tag. This two tags in the example creates a hover effect on the ID (begins with #) and class (begins with .) elements for the lines\nafter the comma. The style of the hover effect is set in the third parameter, which is optional, if it is not set the default highlight style is used. The normal style is saved during hovering\nand restored after, so you do not set the \"normal style\". Keep in mind, that this hovering will be created with jQuery. You can add more than once of this flag to the code tag, eg:<\/p>\n\n<pre>\n[cc language=\"code language\" hoverhighlight=\"#id, 2 3 4, background-color: #bcdaff;\" hoverhighlight=\".class, 9 16 20, background-color: #ff0000;\"]\n<\/pre>\n\n<p>Third way to highlight code lines is a jQuery effect, so you can set to a HTML tag an <a href=\"http:\/\/api.jquery.com\/category\/events\/\">event function<\/a>,\nthat highlights the lines on the event. It uses the ID structure of the lines (see above). You need a \"document ready\" call, which adds an action call for\nthe hover effect (other action are also possible, see <a href=\"http:\/\/api.jquery.com\/category\/events\/\">jQuery documentation<\/a>). In this example I put a\nhover event on another HTML tag (referenced by the ID) and change the background color of the code lines. Use the \n<a href=\"http:\/\/api.jquery.com\/category\/selectors\/\">jQuery selectors<\/a> to get access to the elements.<\/p>\n\n<pre>\njQuery(document).ready(function(){\n\n    \/\/ put a hover effect on the HTML element with the ID \"myhoverelement\"\n    \/\/ and change the background color of the line 2 within the code block\n    \/\/ with the ID \"mycodeblock\"\n    jQuery(\"#myhoverelement\").hover(\n\n        \/\/ create the init function, that is called if the mouse moves in\n        function() { jQuery(\"#mycodeblock-2\").css(\"background-color\", \"#bcdaff\"); },\n\n        \/\/ create the release function, that is called if the mouse moves out\n        function() { jQuery(\"#mycodeblock-2\").css(\"background-color\", \"\");   }\n    );\n}\n<\/pre>\n\n<p>Take a look in which way you can get access with jQuery on the DOM elements, feel free to create you own effects. A special hint to jQuery is the use in the\n\"<a href=\"http:\/\/docs.jquery.com\/Using_jQuery_with_Other_Libraries\">no confilict mode<\/a>\", so you can not use the $ sign to get access to the jQuery object. Take\na look to the WP documentation.<\/p><\/dd>\n<dt>I have got a nice layout, can you add this to the plugin ?<\/dt>\n<dd><p>Yes, please send me your CSS styles, a screenshot of the style types or the exported plugin values.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.13<\/h4>\n\n<ul>\n<li>change language domain to \"geshi-source-colorer\"<\/li>\n<li>fixing css typo error<\/li>\n<\/ul>\n\n<h4>0.12<\/h4>\n\n<ul>\n<li>scripts are loaded only on pages with code<\/li>\n<li>change translation<\/li>\n<li>language detected fixed<\/li>\n<li>add class definition for styles<\/li>\n<li>add themeable JavaScript and CSS file<\/li>\n<li>add a black styles<\/li>\n<li>add tabbed code blocks<\/li>\n<\/ul>\n\n<h4>0.11<\/h4>\n\n<ul>\n<li>fixing CSS layout errors<\/li>\n<li>fixing encoding errors and filter hook<\/li>\n<li>fixing copy-clipboard &amp; create-blank-source-window layout errors<\/li>\n<li>sorting language option field on the settings page<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>first version with the base functions<\/li>\n<\/ul>\n\n<!--section=other_notes-->\n<h3>Shortcode<\/h3>\n\n<p>The shortcuts \/ tags are free defined, so here you see the default definition \"cc\" and \"cci\". Feel free to change this names. You can define a own style, but you need to pass different placeholders in it,\nso the plugin can create the correct expression for modifing the content. There are three placeholders:\n<ul>\n    <li>\"%c\" this is the substitution for the source code<\/li>\n    <li>\"%p\" is the subsitution for the parameters, like a key-value pair. This placeholder represents the parameter string eg: key1=\"value\" key2=\"value\"<\/li>\n    <li>\"%s\" is a placeholder for any kind of spaces. You need this placeholder to create a space between the name of the tag and the parameter list. This placeholder represent one or more than one space<\/li>\n<\/ul><\/p>\n\n<p>All meta characters are masked, so you can add a own tag structure. Take a look to the plugin's setting page, the defalut values are used within this documentation. Add to your post or page a tag\n<pre>[cc lang=\"source language\"]your source code[\/cc]<\/pre> or the call <pre>[cci lang=\"source language\"]your source code[\/cci]<\/pre>\nYou can change in the global plugin option this tags \/ options, so you don't need a change to your articles, if you update from another plugin. The layout of the code is stored in the plugin options\n(default values), this values can be overwritten by each code tag. On the  shotcuts you can create different additional options:<\/p>\n\n<p>\n<ul>\n    <li>highlight             : is used for static highlighting some code lines. Each line number (started with 1) is spitted by space [allowed values: spaces and numbers]<\/li>\n    <li>hoverhighlight        : this option can be set more than once and adds a dynamic hover effect to a DOM element for hovering different code lines [allowed valus: class \/ ID of the DOM element, line numbers split by spaces, CSS style definition]<\/li>\n    <li>keywordcase           : sets all keywords to lower or upper case. An empty value leaves the code untouched [allowed values: upper | lower | \"\"]<\/li>\n    <li>id                    : set the unique ID of the code block [allowed values: every string, default value: geshisourcecolorer-MD5 hash of the source] <\/li>\n    <li>style                 : sets the style of the code. If this option is not set, the plugin tries to find a style which is named with the language name (lower-case). If the style is not found, it uses the default style<\/li>\n    <li>tab                   : sets the information, which code blocks should be collected in one container. The option value of this field is a class name and a name, which is shown in the item [allowed value: string value in this structure \"classname tabtext\"]<\/li>\n    <li>lol                   : name of the source code that is shown within the list of listing (if this flag isn't set or empty, the code is not shown on the list) [allowed values: string value]<\/li>\n    <li>lolhead               : shows the name, which is set by the list of listing option [allowed values: true | false]<\/li>\n    <li>toolbar_blankwindow   : this option enables \/ disables the button for creating a text window with the source code [allowed values: true | false] <\/li>\n    <li>toolbar_copyclipboard : this option enables \/ disables the copt-to-clipboard button [allowed values: true | false]<\/li>\n    <li>toolbar_linenumber    : this option enables \/ disables the button for hiding \/ showing the line numbers [allowed values: true | false]<\/li>\n<\/ul>\nThe other options can be found in the plugin settings between the brackets [].\n<\/p>\n\n<h3>Creating own code layout<\/h3>\n\n<p>This section should be a short how-to for creating your own layout style. First take a look on the \"layout.css\" in the plugin directory. There are different sections:<\/p>\n\n<ol>\n    <li>Each section descrips the layout of the different layout elements of the codes<\/li>\n    <li>The other section descrips the \"global\" configurations of each element:\n<ul>\n    <li>\"geshisourcecolorer-lol\" is the ID of the table of listings<\/li>\n    <li>\"geshisourcecolorer-line\" is the class of the code line block<\/li>\n    <li>\"geshisourcecolorer-collapse-button\" is the class name of the div container, which is shown if a code block is marked with \"collapse=true\"<\/li>\n    <li>\"geshisourcecolorer-tab\" is the class name of the div, which is stored all div container of a tab view (each tab element is an unorded list)<\/li>\n    <li>\"tabmenu\" is the container div, which shows the tab menu, it is always stored within the geshisourcecolorer-tab<\/li>\n    <li>\"geshisourcecolorer\" is the global class name of each code block \/ line (the code lines are stored as an ordered list on lines)<\/li>\n    <li>\"toolbar\" is the class, which is always within a \"geshisourcecolorer\", which descripes the toolbar div container<\/li>\n    <li>\"togglelinenumber\" is the classname of the button on the toolbar for show \/ hide the line numbers<\/li>\n    <li>\"copyclipboard\" is the classname of the button on the toolbar for clipboard-copy<\/li>\n    <li>\"sourcewindow\" is the classname of the button for creating a blank-code-window<\/li>\n<\/ul>\nThese settings can be combined so you can change or overwrite the default values. In the default settings the collapse-button and the images of the toolbar buttons are\nfixed, so each code block \/ line has got the same layout. With this structure colors and other layout styles can be seperated.<\/li>\n<li>Under the global options two style classes with different color layouts a are set:\n<ul>\n    <li>\"geshisourcecolorer-*-default\" which is the class name of the default color style (white background, grey lines &amp; hovereffects)<\/li>\n    <li>\"geshisourcecolorer-*-black\" which is the class name of dark layout<\/li>\n<\/ul>\nYou can change the coloring on the plugin settings (global) or you can add it with the \"css_*\" tags on each shortcut.<\/li>\n    <li>The layout of the source code is depended on the style option and\/or the language option, which is set by the shotcut. The shortcut options \"style\" and \"lang\" are used for the style definition (see the FAQ). The style is loaded in this order:\n<ul>\n    <li>if the style parameter is set, this style will be used if exists, if not exists the default style is used<\/li>\n    <li>if the style option not set or the style is not found, the lang value is used to find a style, if no style exists, the default style is used<\/li>\n<\/ul>\nTo define the (language) styles, take a look into the plugin settings, exspecially the \"codestyle\" subsection. In this subsection each code style is defined. Each value is a CSS definition, so you can use any CSS element to configurate the source code parts.<\/li>\n<\/ol>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Wordpress 3.2 or newer<\/li>\n<li>PHP 5.3.0 or newer<\/li>\n<\/ul>","raw_excerpt":"The plugin can colorize any source in a post or page. There are a lot of possiblities to configurate your code designs.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/45230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=45230"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/flashpixx"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=45230"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=45230"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=45230"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=45230"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=45230"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=45230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}