Home Plugins tfo graphviz
TFO Graphviz logo

TFO Graphviz

by Chris Luke on WordPress.org

Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.)

(2)
Virtual Disk Stack

Virtual Disk Stack

Graphviz is a powerful tool for visualizing network and tree structures that connect objects.

This WordPress plugin provides a shortcode mechanism to create Graphviz graphics within blogs, including image map generation and most other Graphviz features.

How to use TFO Graphviz

The shortcode syntax is:

[graphviz ]
 
[/graphviz]

Where is anything from this list. All are entirely optional:

  • class=""

    Adds an extra CSS class name (or names) to the img tag of the rendered graph. This is in addition to the graphviz class that is already applied.

  • emitjs="yes|no"

    Override the global setting that controls whether JavaScript is emitted as necessary. Typically this JavaScript is only produced when rendering SVG output and is intended to ensure SVG images work on most browsers. However this can sometimes be undesirable and thus this option gives some control over this.

  • height=""

    Adds a height attribute to the image tags to enable control of the image rendering. This is useful for making sure the graphic fits into a certain space and works well for SVG rendered graphs.

  • href="self|"

    Encompasses the generated image with a link either to the image itself (with the self value) or to the provided URL. If the option is empty (for example, href="") then no link is generated. This is the default.

  • id=""

    Provides the identifier used to link the generated image to an image map. If you use the simple option then it also provides the name of the generated DOT graph container (since Graphviz uses this to generate the image map). If not given then an identifier is generated with the form tfo_graphviz_N where N is an integer that starts at one when the plugin is loaded and is incremented with use.

  • imap="yes|no"

    Graphviz can generate image maps using any URL’s given in the DOT code so that clicking on objects in the resultant image will direct a web browser to a new page. The effect of this option is to both instruct Graphviz to generate a client-side image map and to also insert that map into the generated HTML. It will use the id value as the name of the map (see the id option for details). imap defaults to no.

    Take note that the id value specified in the shortcode tag must match the name of the graph inside your DOT; the HTML for the image map is generated by Graphviz using the name of the graph as the map id and name. This plugin uses the id specified in the shortcode tag to link the image to the map and thus these values need to match.

    For example, note that mymap is both the id and the graph name:

    [graphviz imap="yes" title="This is my map" id="mymap"]
    digraph mymap {
      input[shape="box", style="rounded", label="My label", URL="/myurl"];
    }
    [/graphviz]
    

    If you do not give the graph any name at all the results are undefined. Some versions of Graphviz use the string %3 as the identifier in the map but this may not be universally true.

  • lang=""

    Specifies the particular Graphviz interpreter to use. The options are dot, neato, twopi, circo and fdp. The default is dot.

  • output=""

    Indicates the desired image format. Defaults to png.

  • simple="yes|no"

    The simple option provides a very basic DOT wrapper around your code such that the following is possible:

    [graphviz simple="yes"] a -> b -> c; [/graphviz]
    

    The generated code would look like:

    digraph tfo_graphviz_1 {
        a -> b -> c;
    }
    

    See the id option for a description of how the name of the digraph is created. simple defaults to no.

  • title="</em><code>"</code></p> <p>Indicates the title of the image. This is used in the <code>alt</code> and <code>title</code> attributes of the image reference. This defaults to an empty string. Note that image maps may indicate a <code>title</code> string which will appear in tool-tips.</p> </li> <li> <p><code>width="</code><em><image_width></em><code>"</code></p> <p>Adds a <code>width</code> attribute to the image tags to enable control of the image rendering. This is useful for making sure the graphic fits into a certain space and works well for SVG rendered graphs.</p> </li> <li> <p><code>method="</code><em><Graphviz|Graphlib_Dot|PHP></em>`”</p> <p>Overrides the configured output generation method to use the one indicated. This is useful when the mechanism normally in use does not support a specific feature, or when developing new methods. Note that since this does not have the same tests that the settings page has it may fail in mysterious ways without letting you know that it did.</p> <p>In particular, note that the <code>Graphlib_Dot</code> method is <em>very</em> experimental at the moment.</p> </li> </ul> </div></div></div></div></div><div class="lg:col-span-4"><div class="px-0 py-3 sm:p-6 mb-0 sm:mb-0 mt-0 sm:mt-13.5 border-0 sm:border-t"><div class="mb-4"><span class="block text-sm font-medium text-gray-900 dark:text-white mb-1">Active installations</span><span class="text-xl sm:text-2xl font-bold text-gray-900 dark:text-white">50+</span></div><div class="mb-4"><span class="block text-sm font-medium text-gray-900 dark:text-white mb-1">Weekly downloads</span><div class="flex items-center justify-between mb-2"><span class="text-xl sm:text-2xl font-bold text-gray-900 dark:text-white">11</span><span class="text-xs sm:text-sm font-medium text-red-600 dark:text-red-400 flex items-center"><svg class="w-3 h-3 sm:w-4 sm:h-4 mr-1" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M19 14l-7 7m0 0l-7-7m7 7V3"></path></svg>-26.67%<span class="ml-1 hidden sm:inline">(1 week)</span></span></div><div class="h-10 sm:h-12 flex items-center w-full"><svg width="100%" height="32" viewBox="0 0 220 32" preserveAspectRatio="none" class="w-full h-8"><polyline fill="none" stroke="#6366f1" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" points="0,25.6 1.2359550561797752,19.2 2.4719101123595504,19.2 3.7078651685393256,25.6 4.943820224719101,32 6.179775280898876,32 7.415730337078651,32 8.651685393258427,25.6 9.887640449438202,12.8 11.123595505617978,25.6 12.359550561797752,19.2 13.595505617977528,32 14.831460674157302,32 16.06741573033708,32 17.303370786516854,32 18.539325842696627,25.6 19.775280898876403,25.6 21.01123595505618,19.2 22.247191011235955,32 23.48314606741573,6.399999999999999 24.719101123595504,25.6 25.95505617977528,32 27.191011235955056,12.8 28.426966292134832,32 29.662921348314605,25.6 30.898876404494384,32 32.13483146067416,32 33.37078651685393,32 34.60674157303371,32 35.842696629213485,32 37.078651685393254,12.8 38.31460674157304,12.8 39.550561797752806,25.6 40.78651685393259,25.6 42.02247191011236,32 43.258426966292134,25.6 44.49438202247191,25.6 45.73033707865169,32 46.96629213483146,6.399999999999999 48.20224719101124,32 49.43820224719101,25.6 50.67415730337079,32 51.91011235955056,25.6 53.146067415730336,32 54.38202247191011,25.6 55.61797752808989,32 56.853932584269664,32 58.08988764044943,32 59.32584269662921,19.2 60.56179775280899,25.6 61.79775280898877,32 63.03370786516854,32 64.26966292134831,32 65.50561797752809,32 66.74157303370787,19.2 67.97752808988764,25.6 69.21348314606742,12.8 70.4494382022472,32 71.68539325842697,25.6 72.92134831460673,32 74.15730337078651,19.2 75.3932584269663,25.6 76.62921348314607,25.6 77.86516853932584,25.6 79.10112359550561,32 80.33707865168539,25.6 81.57303370786518,32 82.80898876404494,25.6 84.04494382022472,32 85.28089887640449,25.6 86.51685393258427,32 87.75280898876404,32 88.98876404494382,32 90.2247191011236,25.6 91.46067415730337,32 92.69662921348313,32 93.93258426966293,25.6 95.1685393258427,25.6 96.40449438202248,25.6 97.64044943820224,25.6 98.87640449438202,32 100.11235955056179,6.399999999999999 101.34831460674158,25.6 102.58426966292134,25.6 103.82022471910112,25.6 105.0561797752809,32 106.29213483146067,32 107.52808988764045,25.6 108.76404494382022,32 110,19.2 111.23595505617978,25.6 112.47191011235955,25.6 113.70786516853933,32 114.94382022471912,25.6 116.17977528089887,19.2 117.41573033707864,32 118.65168539325842,32 119.88764044943821,19.2 121.12359550561798,32 122.35955056179776,25.6 123.59550561797754,19.2 124.83146067415731,32 126.06741573033707,32 127.30337078651685,32 128.53932584269663,25.6 129.77528089887642,25.6 131.01123595505618,12.8 132.24719101123597,32 133.48314606741573,32 134.71910112359552,32 135.95505617977528,25.6 137.19101123595505,32 138.42696629213484,19.2 139.6629213483146,19.2 140.8988764044944,25.6 142.13483146067415,25.6 143.37078651685394,32 144.60674157303373,32 145.84269662921346,32 147.07865168539325,25.6 148.31460674157302,19.2 149.5505617977528,25.6 150.7865168539326,25.6 152.02247191011236,32 153.25842696629215,19.2 154.4943820224719,32 155.73033707865167,32 156.96629213483146,32 158.20224719101122,32 159.43820224719101,19.2 160.67415730337078,32 161.91011235955057,25.6 163.14606741573036,32 164.38202247191012,25.6 165.61797752808988,32 166.85393258426964,25.6 168.08988764044943,32 169.32584269662922,19.2 170.56179775280899,32 171.79775280898878,32 173.03370786516854,19.2 174.26966292134833,32 175.5056179775281,19.2 176.74157303370785,25.6 177.97752808988764,19.2 179.2134831460674,32 180.4494382022472,32 181.68539325842698,32 182.92134831460675,25.6 184.15730337078654,19.2 185.39325842696627,25.6 186.62921348314606,6.399999999999999 187.86516853932585,25.6 189.1011235955056,19.2 190.3370786516854,12.8 191.57303370786516,12.8 192.80898876404495,6.399999999999999 194.04494382022472,25.6 195.28089887640448,12.8 196.51685393258427,32 197.75280898876403,12.8 198.98876404494382,12.8 200.22471910112358,6.399999999999999 201.46067415730337,0 202.69662921348316,12.8 203.93258426966293,12.8 205.1685393258427,25.6 206.40449438202245,12.8 207.64044943820224,19.2 208.87640449438203,12.8 210.1123595505618,25.6 211.34831460674158,19.2 212.58426966292134,25.6 213.82022471910113,12.8 215.0561797752809,25.6 216.29213483146066,19.2 217.52808988764045,25.6 218.7640449438202,25.6 220,19.2"></polyline></svg></div></div><div class="space-y-3 sm:space-y-4"><div class="flex justify-between"><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-300">Version</span><span class="text-xs sm:text-sm font-medium text-gray-900 dark:text-white">1.19</span></div><div class="flex justify-between"><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-300">Last updated</span><span class="text-xs sm:text-sm font-medium text-gray-900 dark:text-white">6/23/2019</span></div><div class="flex justify-between"><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-300">WordPress version</span><span class="text-xs sm:text-sm font-medium text-gray-900 dark:text-white">4.2.0</span></div><div class="flex justify-between"><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-300">Tested up to</span><span class="text-xs sm:text-sm font-medium text-gray-900 dark:text-white">5.2.21</span></div></div><div class="mt-4 sm:mt-6 pt-4 sm:pt-6 border-t"><div class="mb-2 sm:mb-3"><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-300">Tags</span></div><div class="flex flex-wrap gap-1.5 sm:gap-2"><span data-slot="badge" class="inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs px-2 py-1">diagram</span><span data-slot="badge" class="inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs px-2 py-1">flirble</span><span data-slot="badge" class="inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs px-2 py-1">graph</span><span data-slot="badge" class="inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs px-2 py-1">graphviz</span><span data-slot="badge" class="inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs px-2 py-1">network</span></div></div></div></div></div></div><div class="mt-4 sm:mt-6 lg:mt-8"><div class="mb-10 px-0 py-3"><div class="p-0 py-0"><h2 class="text-xl font-semibold text-gray-900 dark:text-white mb-6">Related Plugins</h2><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"><div class="group relative flex flex-col p-6 bg-white hover:bg-zinc-50 dark:bg-zinc-900 rounded-xl border border-zinc-300 dark:border-zinc-700 hover:border-primary/60 transition-colors"><a class="flex-1" href="/multisite-post-cloner"><div class="flex items-start gap-4"><div class="w-14 h-14 mt-1 relative flex-shrink-0 overflow-hidden rounded-lg"><img alt="Multisite Post Cloner logo" loading="lazy" width="56" height="56" decoding="async" data-nimg="1" class="rounded-lg object-fill" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAhEAACAQMDBQAAAAAAAAAAAAABAgMABAUGIWGRkqGx0f/EABUBAQEAAAAAAAAAAAAAAAAAAAMF/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAECEgMRkf/aAAwDAQACEQMRAD8AltJagyeH0AthI5xdrLcNM91BF5pX2HaH9bcfaSXWGaRmknyJckliyjqTzSlT54b6bk+h0R//2Q=='/%3E%3C/svg%3E")" src="https://ps.w.org/multisite-post-cloner/assets/icon-128x128.jpg?rev=3194090"/></div><div class="flex-1 min-w-0"><h3 class="text-lg font-semibold text-zinc-900 dark:text-zinc-100 truncate">Multisite Post Cloner</h3><p class="text-sm text-zinc-700 dark:text-zinc-300 mt-1 line-clamp-2">Multisite Post Cloner allows you to clone posts and pages across sites in your WordPress multisite network.</p></div></div></a><div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div><div class="flex items-center justify-between mt-auto"><div class="flex items-center gap-1 text-sm text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column-increasing w-4 h-4" aria-hidden="true"><line x1="12" x2="12" y1="20" y2="10"></line><line x1="18" x2="18" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="16"></line></svg><span>0+</span></div><div class="flex items-center gap-2"><button data-slot="button" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3">Install Now</button></div></div></div><div class="group relative flex flex-col p-6 bg-white hover:bg-zinc-50 dark:bg-zinc-900 rounded-xl border border-zinc-300 dark:border-zinc-700 hover:border-primary/60 transition-colors"><a class="flex-1" href="/wha-area-charts"><div class="flex items-start gap-4"><div class="w-14 h-14 mt-1 relative flex-shrink-0 overflow-hidden rounded-lg"><img alt="Area Chart logo" loading="lazy" width="56" height="56" decoding="async" data-nimg="1" class="rounded-lg object-fill" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAhEAACAQMDBQAAAAAAAAAAAAABAgMABAUGIWGRkqGx0f/EABUBAQEAAAAAAAAAAAAAAAAAAAMF/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAECEgMRkf/aAAwDAQACEQMRAD8AltJagyeH0AthI5xdrLcNM91BF5pX2HaH9bcfaSXWGaRmknyJckliyjqTzSlT54b6bk+h0R//2Q=='/%3E%3C/svg%3E")" src="https://ps.w.org/wha-area-charts/assets/icon-256x256.png?rev=2169228"/></div><div class="flex-1 min-w-0"><h3 class="text-lg font-semibold text-zinc-900 dark:text-zinc-100 truncate">Area Chart</h3><p class="text-sm text-zinc-700 dark:text-zinc-300 mt-1 line-clamp-2">An area chart or area graph displays graphically quantitative data. It is based on the line chart. The area between axis and line are commonly emphasi …</p></div></div></a><div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div><div class="flex items-center justify-between mt-auto"><div class="flex items-center gap-1 text-sm text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column-increasing w-4 h-4" aria-hidden="true"><line x1="12" x2="12" y1="20" y2="10"></line><line x1="18" x2="18" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="16"></line></svg><span>0+</span></div><div class="flex items-center gap-2"><button data-slot="button" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3">Install Now</button></div></div></div><div class="group relative flex flex-col p-6 bg-white hover:bg-zinc-50 dark:bg-zinc-900 rounded-xl border border-zinc-300 dark:border-zinc-700 hover:border-primary/60 transition-colors"><a class="flex-1" href="/multisite-new-user-form"><div class="flex items-start gap-4"><div class="w-14 h-14 mt-1 relative flex-shrink-0 overflow-hidden rounded-lg"><img alt="Multisite New User Form logo" loading="lazy" width="56" height="56" decoding="async" data-nimg="1" class="rounded-lg object-fill" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAhEAACAQMDBQAAAAAAAAAAAAABAgMABAUGIWGRkqGx0f/EABUBAQEAAAAAAAAAAAAAAAAAAAMF/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAECEgMRkf/aAAwDAQACEQMRAD8AltJagyeH0AthI5xdrLcNM91BF5pX2HaH9bcfaSXWGaRmknyJckliyjqTzSlT54b6bk+h0R//2Q=='/%3E%3C/svg%3E")" src="https://ps.w.org/multisite-new-user-form/assets/icon-128x128.png?rev=1843839"/></div><div class="flex-1 min-w-0"><h3 class="text-lg font-semibold text-zinc-900 dark:text-zinc-100 truncate">Multisite New User Form</h3><p class="text-sm text-zinc-700 dark:text-zinc-300 mt-1 line-clamp-2">This plugin allows you to create users with custom password on multisite website.</p></div></div></a><div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div><div class="flex items-center justify-between mt-auto"><div class="flex items-center gap-1 text-sm text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column-increasing w-4 h-4" aria-hidden="true"><line x1="12" x2="12" y1="20" y2="10"></line><line x1="18" x2="18" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="16"></line></svg><span>0+</span></div><div class="flex items-center gap-2"><button data-slot="button" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3">Install Now</button></div></div></div></div></div></div></div></div></div><!--$--><!--/$--></main><footer class="w-full "><div class="container mx-auto px-6 pt-3"><div class="text-center py-4 text-sm text-muted-foreground"><p>Plugin0 is not affiliated with, endorsed, or sponsored by WordPress® or WordPress.org. WordPress is a registered trademark of the WordPress Foundation.</p></div><div class="py-16 flex items-start justify-between bg-zinc-100 dark:bg-zinc-900 px-12 rounded-lg"><div class="flex flex-col gap-6"><span class="w-10 h-10" role="img"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 170 170" fill="none" class="w-full h-full" aria-hidden="true"><path d="M110.072 41.8828H131.525V105.979H110.072V125.075H68.7559V147H37.9893V23.9355H110.072V41.8828ZM68.7559 60.7139V88.2969H98.1953V60.7139H68.7559Z" fill="light"></path></svg><span class="sr-only"></span></span><div class="flex items-center gap-6 pl-1"><a target="_blank" class="text-muted-foreground hover:text-foreground transition-colors" href="https://x.com/plugin_zero"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a target="_blank" class=" text-muted-foreground hover:text-foreground transition-colors" href="https://www.facebook.com/pluginzero"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path></svg></a></div></div><div class="grid grid-cols-3 gap-24"></div></div><div class="py-4 flex items-center justify-between px-4"><div class="flex items-center gap-2 text-sm text-gray-400"><span>© <!-- -->2025<!-- --> Plugin0</span></div></div></div></footer></main><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/_next/static/chunks/webpack-4e55111a4c88ad8a.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[51362,[\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"979\",\"static/chunks/979-a1513fc8bab0bb9f.js\",\"177\",\"static/chunks/app/layout-facad2f3aeef53ad.js\"],\"ThemeProvider\"]\n3:I[89070,[\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"979\",\"static/chunks/979-a1513fc8bab0bb9f.js\",\"177\",\"static/chunks/app/layout-facad2f3aeef53ad.js\"],\"SWRProvider\"]\n4:I[87555,[],\"\"]\n5:I[31295,[],\"\"]\n6:I[47864,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"901\",\"static/chunks/app/(plugins)/layout-4bfcff1a47458368.js\"],\"Header\"]\n7:I[6874,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"459\",\"static/chunks/459-c4c6cd13258832b2.js\",\"322\",\"static/chunks/322-663675799d2960db.js\",\"381\",\"static/chunks/381-9d7e023ba955831f.js\",\"682\",\"static/chunks/app/(plugins)/%5Bslug%5D/page-c2e6878998fc792d.js\"],\"\"]\n8:I[56671,[\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"979\",\"static/chunks/979-a1513fc8bab0bb9f.js\",\"177\",\"static/chunks/app/layout-facad2f3aeef53ad.js\"],\"Toaster\"]\n9:I[503,[\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"979\",\"static/chunks/979-a1513fc8bab0bb9f.js\",\"177\",\"static/chunks/app/layout-facad2f3aeef53ad.js\"],\"ScreenSizeIndicator\"]\na:I[69243,[\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"979\",\"static/chunks/979-a1513fc8bab0bb9f.js\",\"177\",\"static/chunks/app/layout-facad2f3aeef53ad.js\"],\"\"]\n10:I[28393,[],\"\"]\n11:I[5552,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"901\",\"static/chunks/app/(plugins)/layout-4bfcff1a47458368.js\"],\"ThemedLogo\"]\n12:I[83315,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"901\",\"static/chunks/app/(plugins)/layout-4bfcff1a47458368.js\"],\"ThemeSwitcher\"]\n14:I[59665,[],\"OutletBoundary\"]\n16:I[74911,[],\"AsyncMetadataOutlet\"]\n18:I[59665,[],\"ViewportBoundary\"]\n1a:I[59665,[],\"MetadataBoundary\"]\n1b:\"$Sreact.suspense\"\n:HL[\"/_next/static/media/569ce4b8f30dc480-s.p.woff2\",\"fon"])</script><script>self.__next_f.push([1,"t\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/fded1358013dc048-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/251fc395c8093e34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"puR4QHrCELohC_kt28cb_\",\"p\":\"\",\"c\":[\"\",\"tfo-graphviz\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(plugins)\",{\"children\":[[\"slug\",\"tfo-graphviz\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/251fc395c8093e34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_5cfdac __variable_9a8899 __variable_f98467 antialiased\",\"children\":[[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"storageKey\":\"plugin0-theme\",\"enableColorScheme\":true,\"children\":[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex-1 flex items-center justify-center px-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-6xl font-bold text-foreground mb-4\",\"children\":\"404\"}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold text-muted-foreground mb-6\",\"children\":\"Page Not Found\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-8\",\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"$L7\",null,{\"href\":\"/\",\"children\":\"Return Home\",\"data-slot\":\"button\",\"className\":\"inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 shrink-0 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-10 rounded-md px-6 has-[\u003esvg]:px-4\",\"ref\":null}]]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L8\",null,{\"position\":\"bottom-center\"}],[\"$\",\"$L9\",null,{}]]}]}],[\"$\",\"$La\",null,{\"id\":\"hotjar-script\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function(h,o,t,j,a,r){\\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\\n h._hjSettings={hjid:6437097,hjsv:6};\\n a=o.getElementsByTagName('head')[0];\\n r=o.createElement('script');r.async=1;\\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\\n a.appendChild(r);\\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\\n \"}}],[[\"$\",\"$La\",null,{\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-93Z5NPS5ZK\",\"strategy\":\"afterInteractive\"}],[\"$\",\"$La\",null,{\"id\":\"google-analytics\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-93Z5NPS5ZK', {\\n page_title: document.title,\\n page_location: window.location.href,\\n });\\n \"}}]]]}]}]]}],{\"children\":[\"(plugins)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[[\"$\",\"$L6\",null,{}],[\"$\",\"main\",null,{\"className\":\"\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"w-full \",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-6 pt-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-center py-4 text-sm text-muted-foreground\",\"children\":[\"$\",\"p\",null,{\"children\":\"Plugin0 is not affiliated with, endorsed, or sponsored by WordPress® or WordPress.org. WordPress is a registered trademark of the WordPress Foundation.\"}]}],\"$Lb\",\"$Lc\"]}]}]]]}],{\"children\":[[\"slug\",\"tfo-graphviz\",\"d\"],\"$Ld\",{\"children\":[\"__PAGE__\",\"$Le\",{},null,false]},null,false]},null,false]},null,false],\"$Lf\",false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"s\":false,\"S\":false}\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"div\",null,{\"className\":\"py-16 flex items-start justify-between bg-zinc-100 dark:bg-zinc-900 px-12 rounded-lg\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-6\",\"children\":[[\"$\",\"$L11\",null,{\"className\":\"w-10 h-10\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6 pl-1\",\"children\":[[\"$\",\"$L7\",null,{\"target\":\"_blank\",\"href\":\"https://x.com/plugin_zero\",\"className\":\"text-muted-foreground hover:text-foreground transition-colors\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"}]}]}],[\"$\",\"$L7\",null,{\"target\":\"_blank\",\"href\":\"https://www.facebook.com/pluginzero\",\"className\":\" text-muted-foreground hover:text-foreground transition-colors\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"}]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-3 gap-24\"}]]}]\n"])</script><script>self.__next_f.push([1,"c:[\"$\",\"div\",null,{\"className\":\"py-4 flex items-center justify-between px-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-sm text-gray-400\",\"children\":[\"$\",\"span\",null,{\"children\":[\"© \",2025,\" Plugin0\"]}]}],[\"$\",\"$L12\",null,{}]]}]\nd:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\ne:[\"$\",\"$1\",\"c\",{\"children\":[\"$L13\",null,[\"$\",\"$L14\",null,{\"children\":[\"$L15\",[\"$\",\"$L16\",null,{\"promise\":\"$@17\"}]]}]]}]\nf:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1b\",null,{\"fallback\":null,\"children\":\"$L1c\"}]}]}]]}]\n19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n15:null\n"])</script><script>self.__next_f.push([1,"1d:I[33063,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"459\",\"static/chunks/459-c4c6cd13258832b2.js\",\"322\",\"static/chunks/322-663675799d2960db.js\",\"381\",\"static/chunks/381-9d7e023ba955831f.js\",\"682\",\"static/chunks/app/(plugins)/%5Bslug%5D/page-c2e6878998fc792d.js\"],\"Image\"]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"TFO Graphviz\\\",\\\"operatingSystem\\\":\\\"WordPress\\\",\\\"applicationCategory\\\":[\\\"WebApplication\\\",\\\"DeveloperApplication\\\"],\\\"softwareVersion\\\":\\\"1.19\\\",\\\"dateModified\\\":\\\"2019-06-23T00:00:00.000000Z\\\",\\\"url\\\":\\\"https://plugin0.com/tfo-graphviz\\\",\\\"fileFormat\\\":\\\"application/zip\\\",\\\"downloadUrl\\\":\\\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.19.zip\\\",\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0.00\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"url\\\":\\\"https://plugin0.com/tfo-graphviz\\\"},\\\"aggregateRating\\\":{\\\"@type\\\":\\\"AggregateRating\\\",\\\"ratingValue\\\":100,\\\"reviewCount\\\":0,\\\"bestRating\\\":5,\\\"worstRating\\\":1},\\\"interactionStatistic\\\":{\\\"@type\\\":\\\"InteractionCounter\\\",\\\"interactionType\\\":\\\"https://schema.org/DownloadAction\\\",\\\"userInteractionCount\\\":50},\\\"image\\\":\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-1.png?rev=2110965\\\",\\\"description\\\":\\\"Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.)\\\",\\\"softwareRequirements\\\":\\\"WordPress 4.2.0+ | PHP 7.4+\\\"}\"}}],[\"$\",\"div\",null,{\"className\":\"min-h-screen py-4 md:py-8 lg:py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-5 md:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6 lg:gap-8 items-center justify-center py-8 sm:py-12 lg:py-18 pb-0 sm:pb-10 lg:pb-14\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 sm:gap-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mt-8 md:mt-0 text-xs sm:text-sm text-gray-500 dark:text-gray-400\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"hover:underline\",\"children\":\"Home\"}],\" \",[\"$\",\"span\",null,{\"className\":\"mx-1 sm:mx-2\",\"children\":\"›\"}],[\"$\",\"$L7\",null,{\"href\":\"/explore\",\"className\":\"hover:underline\",\"children\":\"Plugins\"}],\" \",[\"$\",\"span\",null,{\"className\":\"mx-1 sm:mx-2\",\"children\":\"›\"}],[\"$\",\"span\",null,{\"className\":\"capitalize\",\"children\":\"tfo graphviz\"}]]}],[\"$\",\"div\",null,{\"className\":\"py-4 sm:py-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 sm:gap-6 items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col sm:flex-row gap-4 items-start sm:items-center w-full\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-16 h-16 sm:w-20 sm:h-20 relative flex items-center justify-center flex-shrink-0\",\"children\":[\"$\",\"$L1d\",null,{\"src\":\"https://ps.w.org/tfo-graphviz/assets/icon-256x256.png?rev=2110976\",\"alt\":\"TFO Graphviz logo\",\"width\":128,\"height\":128,\"className\":\"rounded-lg object-contain\"}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col min-w-0 flex-1 gap-2 md:gap-1\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-xl sm:text-2xl font-bold text-gray-900 dark:text-white break-words\",\"children\":\"TFO Graphviz\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-gray-600 dark:text-gray-300\",\"children\":[\"by \",[\"$\",\"span\",null,{\"className\":\"underline\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003ca href=\\\"https://profiles.wordpress.org/chrisy/\\\"\u003eChris Luke\u003c/a\u003e\"}}],\" on WordPress.org\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full\",\"children\":[[\"$\",\"p\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.)\"},\"className\":\"text-gray-700 dark:text-gray-200 mb-4 text-sm sm:text-base\"}],[\"$\",\"div\",null,{\"className\":\"border-b py-3 flex items-center space-x-4 sm:space-x-6 text-xs sm:text-sm text-gray-600 dark:text-gray-300 mb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center space-x-1\",\"children\":[[[\"$\",\"svg\",\"0\",{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-star w-3 h-3 sm:w-4 sm:h-4 fill-yellow-400 text-yellow-400\",\"aria-hidden\":\"true\",\"children\":[\"$L1e\",\"$undefined\"]}],\"$L1f\",\"$L20\",\"$L21\",\"$L22\"],\"$L23\"]}]}],\"$L24\"]}]]}]}]]}],\"$L25\"]}],\"$L26\",\"$L27\"]}]}]]\n"])</script><script>self.__next_f.push([1,"28:I[60642,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"459\",\"static/chunks/459-c4c6cd13258832b2.js\",\"322\",\"static/chunks/322-663675799d2960db.js\",\"381\",\"static/chunks/381-9d7e023ba955831f.js\",\"682\",\"static/chunks/app/(plugins)/%5Bslug%5D/page-c2e6878998fc792d.js\"],\"InstallButton\"]\n29:I[12440,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"459\",\"static/chunks/459-c4c6cd13258832b2.js\",\"322\",\"static/chunks/322-663675799d2960db.js\",\"381\",\"static/chunks/381-9d7e023ba955831f.js\",\"682\",\"static/chunks/app/(plugins)/%5Bslug%5D/page-c2e6878998fc792d.js\"],\"default\"]\n2a:I[74373,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"459\",\"static/chunks/459-c4c6cd13258832b2.js\",\"322\",\"static/chunks/322-663675799d2960db.js\",\"381\",\"static/chunks/381-9d7e023ba955831f.js\",\"682\",\"static/chunks/app/(plugins)/%5Bslug%5D/page-c2e6878998fc792d.js\"],\"PluginTabs\"]\n31:I[68313,[\"598\",\"static/chunks/598-1f0d86392e05d813.js\",\"749\",\"static/chunks/749-b4e5962b73086a1b.js\",\"671\",\"static/chunks/671-a5f23158e8e0d2d7.js\",\"459\",\"static/chunks/459-c4c6cd13258832b2.js\",\"322\",\"static/chunks/322-663675799d2960db.js\",\"381\",\"static/chunks/381-9d7e023ba955831f.js\",\"682\",\"static/chunks/app/(plugins)/%5Bslug%5D/page-c2e6878998fc792d.js\"],\"PluginCard\"]\n1e:[\"$\",\"path\",\"r04s7s\",{\"d\":\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"}]\n"])</script><script>self.__next_f.push([1,"1f:[\"$\",\"svg\",\"1\",{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-star w-3 h-3 sm:w-4 sm:h-4 fill-yellow-400 text-yellow-400\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"r04s7s\",{\"d\":\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"20:[\"$\",\"svg\",\"2\",{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-star w-3 h-3 sm:w-4 sm:h-4 fill-yellow-400 text-yellow-400\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"r04s7s\",{\"d\":\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"21:[\"$\",\"svg\",\"3\",{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-star w-3 h-3 sm:w-4 sm:h-4 fill-yellow-400 text-yellow-400\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"r04s7s\",{\"d\":\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"22:[\"$\",\"svg\",\"4\",{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-star w-3 h-3 sm:w-4 sm:h-4 fill-yellow-400 text-yellow-400\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"r04s7s\",{\"d\":\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"23:[\"$\",\"span\",null,{\"className\":\"ml-1\",\"children\":[\"(\",2,\")\"]}]\n"])</script><script>self.__next_f.push([1,"24:[\"$\",\"div\",null,{\"className\":\"flex flex-col sm:flex-row gap-3 sm:gap-4 mt-4\",\"children\":[[\"$\",\"$L28\",null,{\"size\":\"lg\",\"pluginName\":\"TFO Graphviz\",\"siteName\":\"example.com\",\"className\":\"bg-black dark:bg-white text-white dark:text-black hover:bg-gray-800 dark:hover:bg-gray-200 w-full sm:w-auto\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-2 sm:gap-3 w-full sm:w-auto\",\"children\":[[\"$\",\"button\",null,{\"data-slot\":\"button\",\"className\":\"inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md has-[\u003esvg]:px-4 flex-1 sm:flex-none px-3 sm:px-4\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-heart w-4 h-4 sm:mr-1\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"c3ymky\",{\"d\":\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"Favorite\"}]]}],[\"$\",\"button\",null,{\"data-slot\":\"button\",\"className\":\"inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md has-[\u003esvg]:px-4 flex-1 sm:flex-none px-3 sm:px-4\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-share2 lucide-share-2 w-4 h-4 sm:mr-1\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"gq8acd\",{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"}],[\"$\",\"circle\",\"w7nqdw\",{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"}],[\"$\",\"circle\",\"1xt0gg\",{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"}],[\"$\",\"line\",\"47mynk\",{\"x1\":\"8.59\",\"x2\":\"15.42\",\"y1\":\"13.51\",\"y2\":\"17.49\"}],[\"$\",\"line\",\"1n3mei\",{\"x1\":\"15.41\",\"x2\":\"8.59\",\"y1\":\"6.51\",\"y2\":\"10.49\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"Share\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.19.zip\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-download w-4 h-4 sm:mr-1\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"ih7n3h\",{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}],[\"$\",\"polyline\",\"2ggqvy\",{\"points\":\"7 10 12 15 17 10\"}],[\"$\",\"line\",\"1vk2je\",{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"15\",\"y2\":\"3\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"Download\"}]],\"data-slot\":\"button\",\"className\":\"inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md has-[\u003esvg]:px-4 flex-1 sm:flex-none px-3 sm:px-4\",\"ref\":null}]]}]]}]\n"])</script><script>self.__next_f.push([1,"25:[\"$\",\"div\",null,{\"children\":[\"$\",\"$L29\",null,{\"screenshots\":[{\"src\":\"https://ps.w.org/tfo-graphviz/assets/screenshot-1.png?rev=2110965\",\"caption\":\"Virtual Disk Stack\",\"id\":\"1\"},{\"src\":\"https://ps.w.org/tfo-graphviz/assets/screenshot-2.png?rev=2110965\",\"caption\":\"State machine\",\"id\":\"2\"},{\"src\":\"https://ps.w.org/tfo-graphviz/assets/screenshot-3.png?rev=2110965\",\"caption\":\"Example page\",\"id\":\"3\"}],\"pluginName\":\"TFO Graphviz\"}]}]\n2b:T16c1,"])</script><script>self.__next_f.push([1,"\u003cp\u003e\u003ca href=\"http://www.graphviz.org/\" rel=\"nofollow ugc\"\u003eGraphviz\u003c/a\u003e is a powerful tool for visualizing network and tree structures that connect objects.\u003c/p\u003e\n\u003cp\u003eThis WordPress plugin provides a shortcode mechanism to create Graphviz graphics within blogs, including image map generation and most other Graphviz features.\u003c/p\u003e\n\u003ch4\u003eHow to use TFO Graphviz\u003c/h4\u003e\n\u003cp\u003eThe shortcode syntax is:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz \u0026lt;options\u0026gt;]\n \u0026lt;DOT code\u0026gt;\n[/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWhere \u003ccode\u003e\u0026lt;options\u0026gt;\u003c/code\u003e is anything from this list. All are entirely optional:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eclass=\"\u003c/code\u003e\u003cem\u003e\u0026lt;css_class\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAdds an extra CSS class name (or names) to the \u003ccode\u003eimg\u003c/code\u003e tag of the rendered graph. This is in addition to the \u003ccode\u003egraphviz\u003c/code\u003e class that is already applied.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eemitjs=\"yes|no\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eOverride the global setting that controls whether JavaScript is emitted as necessary. Typically this JavaScript is only produced when rendering SVG output and is intended to ensure SVG images work on most browsers. However this can sometimes be undesirable and thus this option gives some control over this.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eheight=\"\u003c/code\u003e\u003cem\u003e\u0026lt;image_height\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAdds a \u003ccode\u003eheight\u003c/code\u003e attribute to the image tags to enable control of the image rendering. This is useful for making sure the graphic fits into a certain space and works well for SVG rendered graphs.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ehref=\"self|\u003c/code\u003e\u003cem\u003e\u0026lt;URL\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eEncompasses the generated image with a link either to the image itself (with the \u003ccode\u003eself\u003c/code\u003e value) or to the provided URL. If the option is empty (for example, \u003ccode\u003ehref=\"\"\u003c/code\u003e) then no link is generated. This is the default.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eid=\"\u003c/code\u003e\u003cem\u003e\u0026lt;id\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eProvides the identifier used to link the generated image to an image map. If you use the \u003ccode\u003esimple\u003c/code\u003e option then it also provides the name of the generated DOT graph container (since Graphviz uses this to generate the image map). If not given then an identifier is generated with the form \u003ccode\u003etfo_graphviz_N\u003c/code\u003e where \u003cem\u003eN\u003c/em\u003e is an integer that starts at one when the plugin is loaded and is incremented with use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eimap=\"yes|no\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eGraphviz can generate image maps using any URL\u0026#8217;s given in the DOT code so that clicking on objects in the resultant image will direct a web browser to a new page. The effect of this option is to both instruct Graphviz to generate a client-side image map and to also insert that map into the generated HTML. It will use the \u003ccode\u003eid\u003c/code\u003e value as the name of the map (see the \u003ccode\u003eid\u003c/code\u003e option for details). \u003ccode\u003eimap\u003c/code\u003e defaults to \u003ccode\u003eno\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eTake note that the \u003ccode\u003eid\u003c/code\u003e value specified in the shortcode tag must match the name of the graph inside your DOT; the HTML for the image map is generated by Graphviz using the name of the graph as the map id and name. This plugin uses the \u003ccode\u003eid\u003c/code\u003e specified in the shortcode tag to link the image to the map and thus these values need to match.\u003c/p\u003e\n\u003cp\u003eFor example, note that \u003ccode\u003emymap\u003c/code\u003e is both the \u003ccode\u003eid\u003c/code\u003e and the graph name:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz imap=\"yes\" title=\"This is my map\" id=\"mymap\"]\ndigraph mymap {\n input[shape=\"box\", style=\"rounded\", label=\"My label\", URL=\"/myurl\"];\n}\n[/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf you do not give the graph any name at all the results are undefined. Some versions of Graphviz use the string \u003ccode\u003e%3\u003c/code\u003e as the identifier in the map but this may not be universally true.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003elang=\"\u0026lt;dot|neato|twopi|circo|fdp\u0026gt;\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eSpecifies the particular Graphviz interpreter to use. The options are \u003ccode\u003edot\u003c/code\u003e, \u003ccode\u003eneato\u003c/code\u003e, \u003ccode\u003etwopi\u003c/code\u003e, \u003ccode\u003ecirco\u003c/code\u003e and \u003ccode\u003efdp\u003c/code\u003e. The default is \u003ccode\u003edot\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eoutput=\"\u0026lt;png|gif|jpg|svg\u0026gt;\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIndicates the desired image format. Defaults to \u003ccode\u003epng\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esimple=\"yes|no\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003esimple\u003c/code\u003e option provides a very basic DOT wrapper around your code such that the following is possible:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz simple=\"yes\"] a -\u0026gt; b -\u0026gt; c; [/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe generated code would look like:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003edigraph tfo_graphviz_1 {\n a -\u0026gt; b -\u0026gt; c;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the \u003ccode\u003eid\u003c/code\u003e option for a description of how the name of the \u003ccode\u003edigraph\u003c/code\u003e is created. \u003ccode\u003esimple\u003c/code\u003e defaults to \u003ccode\u003eno\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003etitle=\"\u003c/code\u003e\u003cem\u003e\u0026lt;title\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIndicates the title of the image. This is used in the \u003ccode\u003ealt\u003c/code\u003e and \u003ccode\u003etitle\u003c/code\u003e attributes of the image reference. This defaults to an empty string. Note that image maps may indicate a \u003ccode\u003etitle\u003c/code\u003e string which will appear in tool-tips.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ewidth=\"\u003c/code\u003e\u003cem\u003e\u0026lt;image_width\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAdds a \u003ccode\u003ewidth\u003c/code\u003e attribute to the image tags to enable control of the image rendering. This is useful for making sure the graphic fits into a certain space and works well for SVG rendered graphs.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003emethod=\"\u003c/code\u003e\u003cem\u003e\u0026lt;Graphviz|Graphlib_Dot|PHP\u0026gt;\u003c/em\u003e`\u0026#8221;\u003c/p\u003e\n\u003cp\u003eOverrides the configured output generation method to use the one indicated. This is useful when the mechanism normally in use does not support a specific feature, or when developing new methods. Note that since this does not have the same tests that the settings page has it may fail in mysterious ways without letting you know that it did.\u003c/p\u003e\n\u003cp\u003eIn particular, note that the \u003ccode\u003eGraphlib_Dot\u003c/code\u003e method is \u003cem\u003every\u003c/em\u003e experimental at the moment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"])</script><script>self.__next_f.push([1,"2c:T16c1,"])</script><script>self.__next_f.push([1,"\u003cp\u003e\u003ca href=\"http://www.graphviz.org/\" rel=\"nofollow ugc\"\u003eGraphviz\u003c/a\u003e is a powerful tool for visualizing network and tree structures that connect objects.\u003c/p\u003e\n\u003cp\u003eThis WordPress plugin provides a shortcode mechanism to create Graphviz graphics within blogs, including image map generation and most other Graphviz features.\u003c/p\u003e\n\u003ch4\u003eHow to use TFO Graphviz\u003c/h4\u003e\n\u003cp\u003eThe shortcode syntax is:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz \u0026lt;options\u0026gt;]\n \u0026lt;DOT code\u0026gt;\n[/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWhere \u003ccode\u003e\u0026lt;options\u0026gt;\u003c/code\u003e is anything from this list. All are entirely optional:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eclass=\"\u003c/code\u003e\u003cem\u003e\u0026lt;css_class\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAdds an extra CSS class name (or names) to the \u003ccode\u003eimg\u003c/code\u003e tag of the rendered graph. This is in addition to the \u003ccode\u003egraphviz\u003c/code\u003e class that is already applied.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eemitjs=\"yes|no\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eOverride the global setting that controls whether JavaScript is emitted as necessary. Typically this JavaScript is only produced when rendering SVG output and is intended to ensure SVG images work on most browsers. However this can sometimes be undesirable and thus this option gives some control over this.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eheight=\"\u003c/code\u003e\u003cem\u003e\u0026lt;image_height\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAdds a \u003ccode\u003eheight\u003c/code\u003e attribute to the image tags to enable control of the image rendering. This is useful for making sure the graphic fits into a certain space and works well for SVG rendered graphs.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ehref=\"self|\u003c/code\u003e\u003cem\u003e\u0026lt;URL\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eEncompasses the generated image with a link either to the image itself (with the \u003ccode\u003eself\u003c/code\u003e value) or to the provided URL. If the option is empty (for example, \u003ccode\u003ehref=\"\"\u003c/code\u003e) then no link is generated. This is the default.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eid=\"\u003c/code\u003e\u003cem\u003e\u0026lt;id\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eProvides the identifier used to link the generated image to an image map. If you use the \u003ccode\u003esimple\u003c/code\u003e option then it also provides the name of the generated DOT graph container (since Graphviz uses this to generate the image map). If not given then an identifier is generated with the form \u003ccode\u003etfo_graphviz_N\u003c/code\u003e where \u003cem\u003eN\u003c/em\u003e is an integer that starts at one when the plugin is loaded and is incremented with use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eimap=\"yes|no\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eGraphviz can generate image maps using any URL\u0026#8217;s given in the DOT code so that clicking on objects in the resultant image will direct a web browser to a new page. The effect of this option is to both instruct Graphviz to generate a client-side image map and to also insert that map into the generated HTML. It will use the \u003ccode\u003eid\u003c/code\u003e value as the name of the map (see the \u003ccode\u003eid\u003c/code\u003e option for details). \u003ccode\u003eimap\u003c/code\u003e defaults to \u003ccode\u003eno\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eTake note that the \u003ccode\u003eid\u003c/code\u003e value specified in the shortcode tag must match the name of the graph inside your DOT; the HTML for the image map is generated by Graphviz using the name of the graph as the map id and name. This plugin uses the \u003ccode\u003eid\u003c/code\u003e specified in the shortcode tag to link the image to the map and thus these values need to match.\u003c/p\u003e\n\u003cp\u003eFor example, note that \u003ccode\u003emymap\u003c/code\u003e is both the \u003ccode\u003eid\u003c/code\u003e and the graph name:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz imap=\"yes\" title=\"This is my map\" id=\"mymap\"]\ndigraph mymap {\n input[shape=\"box\", style=\"rounded\", label=\"My label\", URL=\"/myurl\"];\n}\n[/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf you do not give the graph any name at all the results are undefined. Some versions of Graphviz use the string \u003ccode\u003e%3\u003c/code\u003e as the identifier in the map but this may not be universally true.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003elang=\"\u0026lt;dot|neato|twopi|circo|fdp\u0026gt;\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eSpecifies the particular Graphviz interpreter to use. The options are \u003ccode\u003edot\u003c/code\u003e, \u003ccode\u003eneato\u003c/code\u003e, \u003ccode\u003etwopi\u003c/code\u003e, \u003ccode\u003ecirco\u003c/code\u003e and \u003ccode\u003efdp\u003c/code\u003e. The default is \u003ccode\u003edot\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eoutput=\"\u0026lt;png|gif|jpg|svg\u0026gt;\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIndicates the desired image format. Defaults to \u003ccode\u003epng\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esimple=\"yes|no\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003esimple\u003c/code\u003e option provides a very basic DOT wrapper around your code such that the following is possible:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz simple=\"yes\"] a -\u0026gt; b -\u0026gt; c; [/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe generated code would look like:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003edigraph tfo_graphviz_1 {\n a -\u0026gt; b -\u0026gt; c;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the \u003ccode\u003eid\u003c/code\u003e option for a description of how the name of the \u003ccode\u003edigraph\u003c/code\u003e is created. \u003ccode\u003esimple\u003c/code\u003e defaults to \u003ccode\u003eno\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003etitle=\"\u003c/code\u003e\u003cem\u003e\u0026lt;title\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIndicates the title of the image. This is used in the \u003ccode\u003ealt\u003c/code\u003e and \u003ccode\u003etitle\u003c/code\u003e attributes of the image reference. This defaults to an empty string. Note that image maps may indicate a \u003ccode\u003etitle\u003c/code\u003e string which will appear in tool-tips.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ewidth=\"\u003c/code\u003e\u003cem\u003e\u0026lt;image_width\u0026gt;\u003c/em\u003e\u003ccode\u003e\"\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAdds a \u003ccode\u003ewidth\u003c/code\u003e attribute to the image tags to enable control of the image rendering. This is useful for making sure the graphic fits into a certain space and works well for SVG rendered graphs.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003emethod=\"\u003c/code\u003e\u003cem\u003e\u0026lt;Graphviz|Graphlib_Dot|PHP\u0026gt;\u003c/em\u003e`\u0026#8221;\u003c/p\u003e\n\u003cp\u003eOverrides the configured output generation method to use the one indicated. This is useful when the mechanism normally in use does not support a specific feature, or when developing new methods. Note that since this does not have the same tests that the settings page has it may fail in mysterious ways without letting you know that it did.\u003c/p\u003e\n\u003cp\u003eIn particular, note that the \u003ccode\u003eGraphlib_Dot\u003c/code\u003e method is \u003cem\u003every\u003c/em\u003e experimental at the moment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"])</script><script>self.__next_f.push([1,"2d:T16f6,"])</script><script>self.__next_f.push([1,"\n\u003ch4\u003eWhat is Graphviz?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003e\u003ca href=\"http://www.graphviz.org/\" rel=\"nofollow ugc\"\u003eGraphviz\u003c/a\u003e is a way of generating visualisations of [structural relationships between objects. Almost any kind of diagram where [something \u003cem\u003econnects\u003c/em\u003e to something else can be drawn and automatically laid [out using the language DOT.\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4\u003eHow do I use this plugin?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eUse the \u003ccode\u003e[graphviz]\u003c/code\u003e shortcode. Details are in the \u003cem\u003eDescription\u003c/em\u003e section.\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4\u003eHow to I write DOT?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eThe online documentation for \u003ca href=\"http://www.graphviz.org/\" rel=\"nofollow ugc\"\u003eGraphviz\u003c/a\u003e is terse and not especially helpful, in particular the \u003ca href=\"http://www.graphviz.org/doc/info/lang.html\" rel=\"nofollow ugc\"\u003eDOT language\u003c/a\u003e page is only helpful if you happen to be able to read an approximation of \u003ca href=\"http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form\" rel=\"nofollow ugc\"\u003eBNF\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThere are however several other introductions to Graphviz and DOT, including \u003ca href=\"http://linuxdevcenter.com/pub/a/linux/2004/05/06/graphviz_dot.html\" rel=\"nofollow ugc\"\u003ean excerpt on the O\u0026#8217;Reilly LinuxDevCenter.com site\u003c/a\u003e. Another approach would be to look at the examples in the \u003ca href=\"http://www.graphviz.org/Gallery.php\" rel=\"nofollow ugc\"\u003eGraphviz gallery\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eUsers should note that DOT syntax varies between Graphviz processors and also between versions of those processors. If in doubt, find an example and experiment with it.\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4\u003eWhere can I see examples?\u003c/h4\u003e\n\u003cp\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://blog.flirble.org/2010/11/12/graphviz-demo/\" rel=\"nofollow ugc\"\u003ehttp://blog.flirble.org/2010/11/12/graphviz-demo/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blog.flirble.org/2015/11/15/adding-svg-support-tfo-graphviz/\" rel=\"nofollow ugc\"\u003ehttp://blog.flirble.org/2015/11/15/adding-svg-support-tfo-graphviz/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blog.flirble.org/2019/06/22/gv-example-state-machine/\" rel=\"nofollow ugc\"\u003ehttp://blog.flirble.org/2019/06/22/gv-example-state-machine/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blog.flirble.org/2019/06/22/gv-example-various-graphs/\" rel=\"nofollow ugc\"\u003ehttp://blog.flirble.org/2019/06/22/gv-example-various-graphs/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\u003ch4\u003eCan I manipulate the rendered graph using CSS in my WordPress theme?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eThe \u003ccode\u003eimg\u003c/code\u003e elements are tagged with \u0026#8216;\u003ccode\u003eclass=\"graphviz\"\u003c/code\u003e\u0026#8216;. Additionally, you can add \u003ccode\u003eclass=\"myclass\"\u003c/code\u003e to the shortcode to add additional classes to the \u003ccode\u003eimg\u003c/code\u003e tag.\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4\u003eHow can I make my graph have a transparent background?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eAdd the tag \u003ccode\u003ebgcolor=\"transparent\"\u003c/code\u003e to the root graph node. For example placing \u003ccode\u003egraph [bgcolor=\"transparent\"]\u003c/code\u003e near the top like this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[graphviz]\ndigraph test {\n graph [bgcolor=\"transparent\"]\n a1 -\u0026gt; a2 -\u0026gt; a3 -\u0026gt; a1;\n}\n[/graphviz]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/p\u003e\n\u003ch4\u003eNothing is being rendered, maybe my DOT is broken?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eIf you\u0026#8217;re using a local Graphviz renderer then errors from Graphviz should be presented where you expect the graph to appear. Note that because of how WordPress submits content to plugins the line numbering will not always match what you expect.\u003c/p\u003e\n\u003cp\u003eThe error message when using the \u003ccode\u003edot\u003c/code\u003e binary will contain the command line used as well as a line-numbered copy of the DOT that was used.\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4\u003eI\u0026#8217;m getting strange errors that make no sense, what gives?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eWordPress encodes HTML entities inside the shortcode block which this plugin attempts to demangle.\u003c/p\u003e\n\u003cp\u003eUnfortunately WordPress can also try to do smart character replacement, such as \u0026#8220;\u0026#8230;\u0026#8221; into a UNICODE ellipsis character. The Graphviz plugin contains a mapping of many of these back to their ASCII equivalents, but it may not be complete. Let us know if you think this is breaking your DOT. It\u0026#8217;s also possible that non-ASCII7 characters do strange things too.\u003c/p\u003e\n\u003cp\u003eAdding \u003ccode\u003edefine(\"TFO_GV_DEBUG\", true)\u003c/code\u003e to wp_config.php will cause the plugin to create some diagnostic files in your system \u003ccode\u003etmp\u003c/code\u003e directory. The file \u003ccode\u003epre-N.dot\u003c/code\u003e is the contents of the DOT as given to the plugin by WordPress, \u003ccode\u003epost-N.dot\u003c/code\u003e is the results of the plugin attempting to demangle it. The \u003ccode\u003eN\u003c/code\u003e is a number that is incremented for each shortcode section interpreted. The plugin does not clean these files up.\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4\u003eHow do I install the Graphviz program (not this plugin) locally?\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eThis depends on your local operating system. You will find some details at http://www.graphviz.org/Download.php but many systems also have it in their own package management system, for example this is package \u003ccode\u003egraphviz\u003c/code\u003e on Debian, Ubuntu and Fedora systems.\u003c/p\u003e\n\u003cp\u003eThere are currently two ways to use a local installation of Graphviz. The settings page will only show options for those methods that are actually available and configured correctly.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eUsing a local Graphviz installation and the \u003ccode\u003edot\u003c/code\u003e binary. You configure the path to this binary on the admin settings page of the plugin.\u003c/li\u003e\n\u003cli\u003eUsing PHP bindings to the Graphviz library. This requires that \u003ccode\u003egv.php\u003c/code\u003e is available.\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/p\u003e\n\u003ch4\u003eI\u0026#8217;ve installed the PHP bindings but Graphviz doesn\u0026#8217;t work!\u003c/h4\u003e\n\u003cp\u003e\n\u003cp\u003eThis requires that \u003ccode\u003egv.php\u003c/code\u003e is available and that the associated module is either already loaded or loadable with \u003ccode\u003edl()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe use of \u003ccode\u003edl()\u003c/code\u003e is often disabled in \u003ccode\u003ephp.ini\u003c/code\u003e (since it can have security implications) and doesn\u0026#8217;t work on multithreaded webservers; it\u0026#8217;s entirely disabled in modern Apache2 httpd modules.\u003c/p\u003e\n\u003cp\u003eFor these cases you must ensure the library is loaded with an entry like \u003ccode\u003eextension=gv.so\u003c/code\u003e or similar somewhere in the PHP configuration.\u003c/p\u003e\n\u003c/p\u003e\n\n"])</script><script>self.__next_f.push([1,"2e:T14dc,"])</script><script>self.__next_f.push([1,"\u003ch4\u003e1.19\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eThe method override was not working as expected if you fully qualified the method name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.18\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eThe hash that is used to name the generated output for caching was not including all the options for generation; this meant that changing things like the GraphViz language from \u0026#8220;dot\u0026#8221; to something else or changing the image size was not re-renerating the output.\u003c/li\u003e\n\u003cli\u003eRemoved all references to the defunct \u0026#8216;remote\u0026#8217; method.\u003c/li\u003e\n\u003cli\u003eAdd a mechanism for a method to produce its content inline, not just by URL.\u003c/li\u003e\n\u003cli\u003eExperiment with the Graphlib-Dot JavaScript library. See \u003ca href=\"https://github.com/dagrejs/graphlib-dot/wiki\" rel=\"nofollow ugc\"\u003ehttps://github.com/dagrejs/graphlib-dot/wiki\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003emethod\u003c/code\u003e attribute that allows overriding the generation method.\u003c/li\u003e\n\u003cli\u003eBetter reporting on the admin page when a generation module is not available.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.17\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHTML decode the content; WP now seems to encode HTML entities between our tags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.16\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eclass\u003c/code\u003e attribute to the shortcode to enable adding CSS classes to the \u003ccode\u003eimg\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eMake the test graph on the admin page have a transparent background.\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003eemitjs\u003c/code\u003e attribute.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.15\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eValidate graph language and output format.\u003c/li\u003e\n\u003cli\u003eSome sanity checking in the PHP bindings method.\u003c/li\u003e\n\u003cli\u003eDocument the need to specify both a shortcode \u003ccode\u003eid\u003c/code\u003e and a DOT graph name.\u003c/li\u003e\n\u003cli\u003eTested up to WP 4.7.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.14\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFinally worked out how to disable wptexturize! Less demangling now required.\u003c/li\u003e\n\u003cli\u003eAdd an option to control whether we ever emit JavaScript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.13\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBetter diagnostic output for when running \u003ccode\u003edot\u003c/code\u003e doesn\u0026#8217;t work, including the command line used and adding the DOT as submitted, with line numbers. (Joachim Durchholz)\u003c/li\u003e\n\u003cli\u003eAdd more de-mangling rules, for smart quotes and ellipsis. (Joachim Durchholz)\u003c/li\u003e\n\u003cli\u003eImprove the newline de-mangling. (Joachim Durchholz)\u003c/li\u003e\n\u003cli\u003eAdd the SVG output format. See \u003ca href=\"http://blog.flirble.org/2015/11/15/adding-svg-support-tfo-graphviz/\" rel=\"nofollow ugc\"\u003ehttp://blog.flirble.org/2015/11/15/adding-svg-support-tfo-graphviz/\u003c/a\u003e for example. (Joachim Durchholz)\u003c/li\u003e\n\u003cli\u003eAdd a fix for when the required GV class isn\u0026#8217;t loadable, such as when GV gets upgraded on the system. (Sam Wilson)\u003c/li\u003e\n\u003cli\u003eInclude some JavaScript for when both an image map and width/height scaling is specified. This is required to scale the image map to whatever the image has been scaled to. Image map scaling code comes from https://github.com/davidjbradshaw/image-map-resizer\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.12\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclean_url()\u003c/code\u003e and \u003ccode\u003eattribute_escape()\u003c/code\u003e have both been deprecated. Migrate to \u003ccode\u003eesc_url()\u003c/code\u003e and esc_attr()`. (Sam Wilson)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.11\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated constructor definitions. (Sam Wilson)\u003c/li\u003e\n\u003cli\u003eTesting against 4.3.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.10\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRequire at least WP 4.2 now.\u003c/li\u003e\n\u003cli\u003eFix use of \u003ccode\u003eadd_query_arg()\u003c/code\u003e to escape its output; a possible XSS vector.\u003c/li\u003e\n\u003cli\u003eAdded GPL v2 license information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.9\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eMake some debugging output conditional.\u003c/li\u003e\n\u003cli\u003eFix where that debugging output is stored. (Sam Wilson)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.8\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix a packaging error in 1.7.\u003c/li\u003e\n\u003cli\u003eFix use of hardcoded \u0026#8220;/tmp\u0026#8221; path. (Sam Wilson)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.7\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eTest upto WP 4.2.2.\u003c/li\u003e\n\u003cli\u003eChange an \u003ccode\u003eexec(\"mv...\")\u003c/code\u003e to using \u003ccode\u003erename()\u003c/code\u003e instead. (Sam Wilson)\u003c/li\u003e\n\u003cli\u003eCode documentation improvement.\u003c/li\u003e\n\u003cli\u003eSome reformatting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.6\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix some cosmetic documentation issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.5\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate documentation for using the PHP gv bindings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWordPress 4.0 support.\u003c/li\u003e\n\u003cli\u003eFix for PHP Graphviz module loading; newer PHP\u0026#8217;s don\u0026#8217;t allow dl() at all in some cases, we should therefore detect this.\u003c/li\u003e\n\u003cli\u003eUse WP_Error properly.\u003c/li\u003e\n\u003cli\u003eLiberal use of try/catch to detect runtime issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes; version bump for the later 3.x series.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved leftover diagnostic code in PHP render class (which was appearing in posts!)\u003c/li\u003e\n\u003cli\u003eAdded remote Graphviz rendering support. Note that this is still young and will add a mark to the graph indicating it was generated by this plugin.\u003c/li\u003e\n\u003cli\u003eTested on WordPress 3.0.2 and 3.0.3.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for locally installed PHP bindings to the Graphviz library. This only works if PHP either allows dl() to load a module or gv.so/dll is staticly configured to load in php.ini.\u003c/li\u003e\n\u003cli\u003eMade render module selection somewhat more robust.\u003c/li\u003e\n\u003cli\u003eAttempt to create our wp-content/tfo-graphviz directory if it doesn\u0026#8217;t already exist.\u003c/li\u003e\n\u003cli\u003eBetter (as in, \u0026#8220;any at all\u0026#8221;) error generation in the shortcode handler.\u003c/li\u003e\n\u003cli\u003eAdd content expiration \u0026#8211; configurable. Will remove files from the wp-content/tfo-graphviz directory, but only if the threshold is \u0026gt;0 and older than the threshold.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003e1.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFirst release.\u003c/li\u003e\n\u003c/ul\u003e\n"])</script><script>self.__next_f.push([1,"2f:T57f,"])</script><script>self.__next_f.push([1,"\u003cdiv class=\"review\"\u003e\n\t\u003cdiv class=\"review-head\"\u003e\n\t\t\u003cdiv class=\"reviewer-info\"\u003e\n\t\t\t\u003cdiv class=\"review-title-section\"\u003e\n\t\t\t\t\u003ch4 class=\"review-title\"\u003eSimple, brilliant\u003c/h4\u003e\n\t\t\t\t\u003cdiv class=\"star-rating\"\u003e\n\t\t\t\t\u003cdiv class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"\u003e\u003cspan class=\"star dashicons dashicons-star-filled\"\u003e\u003c/span\u003e\u003cspan class=\"star dashicons dashicons-star-filled\"\u003e\u003c/span\u003e\u003cspan class=\"star dashicons dashicons-star-filled\"\u003e\u003c/span\u003e\u003cspan class=\"star dashicons dashicons-star-filled\"\u003e\u003c/span\u003e\u003cspan class=\"star dashicons dashicons-star-filled\"\u003e\u003c/span\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\t\u003cp class=\"reviewer\"\u003e\n\t\t\t\tBy \u003ca href=\"https://profiles.wordpress.org/richardfoley/\"\u003e\u003cimg alt='' src='https://secure.gravatar.com/avatar/9007ce330be50408d3ccbb6227689828d505a0d95f8d0bd66e5b598b95b0e3c6?s=16\u0026#038;d=monsterid\u0026#038;r=g' srcset='https://secure.gravatar.com/avatar/9007ce330be50408d3ccbb6227689828d505a0d95f8d0bd66e5b598b95b0e3c6?s=32\u0026#038;d=monsterid\u0026#038;r=g 2x' class='avatar avatar-16 photo' height='16' width='16' loading='lazy' decoding='async'/\u003e\u003c/a\u003e\u003ca href=\"https://profiles.wordpress.org/richardfoley/\" class=\"reviewer-name\"\u003eRichard Foley \u003csmall\u003e(richardfoley)\u003c/small\u003e\u003c/a\u003e on \u003cspan class=\"review-date\"\u003eSeptember 3, 2016\u003c/span\u003e\t\t\t\u003c/p\u003e\n\t\t\u003c/div\u003e\n\t\u003c/div\u003e\n\t\u003cdiv class=\"review-body\"\u003e\u003cp\u003eCool, and works out of the box!\n\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n"])</script><script>self.__next_f.push([1,"26:[\"$\",\"div\",null,{\"className\":\"mt-6 sm:mt-8 lg:mt-10 \",\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-12 \",\"children\":[[\"$\",\"div\",null,{\"className\":\"lg:col-span-8\",\"children\":[\"$\",\"$L2a\",null,{\"plugin\":{\"id\":\"tfo-graphviz\",\"title\":\"TFO Graphviz\",\"logo\":\"/plugins.png\",\"description\":\"$2b\",\"short_description\":\"Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.)\",\"activeInstalls\":\"50+\",\"activeInstallsRaw\":50,\"slug\":\"tfo-graphviz\",\"version\":\"1.19\",\"lastUpdated\":\"2019-06-23T00:00:00.000000Z\",\"requires\":\"4.2.0\",\"tested\":\"5.2.21\",\"rating\":100,\"numRatings\":2,\"downloadUrl\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.19.zip\",\"homepage\":\"http://blog.flirble.org/projects/graphviz/\",\"author\":\"\u003ca href=\\\"https://profiles.wordpress.org/chrisy/\\\"\u003eChris Luke\u003c/a\u003e\",\"tags\":[{\"value\":\"diagram\",\"name\":\"diagram\"},{\"value\":\"flirble\",\"name\":\"flirble\"},{\"value\":\"graph\",\"name\":\"graph\"},{\"value\":\"graphviz\",\"name\":\"graphviz\"},{\"value\":\"network\",\"name\":\"network\"}],\"screenshots\":\"$25:props:children:props:screenshots\",\"sections\":{\"description\":\"$2c\",\"installation\":\"\u003cp\u003eInstallation is simple. Either install from directly within WordPress or:\u003c/p\u003e\\n\u003col\u003e\\n\u003cli\u003eDownload and unzip the plugin to the \u003ccode\u003e/wp-content/plugins/tfo-graphviz\u003c/code\u003e directory within your WordPress installation.\u003c/li\u003e\\n\u003cli\u003eMake the directory \u003ccode\u003e/wp-content/tfo-graphviz\u003c/code\u003e and make it writable by the web server \u0026#8211; this is where generated images and image maps go.\u003c/li\u003e\\n\u003cli\u003eActivate the plugin through the \u0026#8216;Plugins\u0026#8217; menu in WordPress.\u003c/li\u003e\\n\u003cli\u003eChoose a generation method on the plugin settings page.\u003c/li\u003e\\n\u003cli\u003eUse the \u003ccode\u003e[graphviz]\u003c/code\u003e shortcode to generate graphs.\u003c/li\u003e\\n\u003c/ol\u003e\\n\u003cp\u003eYou need access to a Graphviz renderer:\u003c/p\u003e\\n\u003cul\u003e\\n\u003cli\u003eBy using a local installation of Graphviz and the \u003ccode\u003edot\u003c/code\u003e binary.\u003c/li\u003e\\n\u003cli\u003eBy using a local installation and PHP bindings to the library.\u003c/li\u003e\\n\u003c/ul\u003e\\n\u003cp\u003eSee the FAQ for more details on these options and http://www.graphviz.org/Download.php for details on installing Graphviz on your web server.\u003c/p\u003e\\n\",\"faq\":\"$2d\",\"changelog\":\"$2e\",\"screenshots\":\"\u003col\u003e\u003cli\u003e\u003ca href=\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-1.png?rev=2110965\\\"\u003e\u003cimg src=\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-1.png?rev=2110965\\\" alt=\\\"Virtual Disk Stack\\\"\u003e\u003c/a\u003e\u003cp\u003eVirtual Disk Stack\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-2.png?rev=2110965\\\"\u003e\u003cimg src=\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-2.png?rev=2110965\\\" alt=\\\"State machine\\\"\u003e\u003c/a\u003e\u003cp\u003eState machine\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-3.png?rev=2110965\\\"\u003e\u003cimg src=\\\"https://ps.w.org/tfo-graphviz/assets/screenshot-3.png?rev=2110965\\\" alt=\\\"Example page\\\"\u003e\u003c/a\u003e\u003cp\u003eExample page\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e\",\"reviews\":\"$2f\"},\"versions\":{\"1.0\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.0.zip\",\"1.1\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.1.zip\",\"1.10\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.10.zip\",\"1.11\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.11.zip\",\"1.12\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.12.zip\",\"1.13\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.13.zip\",\"1.14\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.14.zip\",\"1.15\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.15.zip\",\"1.16\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.16.zip\",\"1.17\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.17.zip\",\"1.18\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.18.zip\",\"1.19\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.19.zip\",\"1.2\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.2.zip\",\"1.3\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.3.zip\",\"1.4\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.4.zip\",\"1.5\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.5.zip\",\"1.6\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.6.zip\",\"1.7\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.7.zip\",\"1.8\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.8.zip\",\"1.9\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.1.9.zip\",\"trunk\":\"https://downloads.wordpress.org/plugin/tfo-graphviz.zip\"},\"downloads\":{\"2024-11-10\":\"1\",\"2024-11-11\":\"2\",\"2024-11-12\":\"2\",\"2024-11-13\":\"1\",\"2024-11-14\":0,\"2024-11-15\":0,\"2024-11-16\":0,\"2024-11-17\":\"1\",\"2024-11-18\":\"3\",\"2024-11-19\":\"1\",\"2024-11-20\":\"2\",\"2024-11-21\":0,\"2024-11-22\":0,\"2024-11-23\":0,\"2024-11-24\":0,\"2024-11-25\":\"1\",\"2024-11-26\":\"1\",\"2024-11-27\":\"2\",\"2024-11-28\":0,\"2024-11-29\":\"4\",\"2024-11-30\":\"1\",\"2024-12-01\":0,\"2024-12-02\":\"3\",\"2024-12-03\":0,\"2024-12-04\":\"1\",\"2024-12-05\":0,\"2024-12-06\":0,\"2024-12-07\":0,\"2024-12-08\":0,\"2024-12-09\":0,\"2024-12-10\":\"3\",\"2024-12-11\":\"3\",\"2024-12-12\":\"1\",\"2024-12-13\":\"1\",\"2024-12-14\":0,\"2024-12-15\":\"1\",\"2024-12-16\":\"1\",\"2024-12-17\":0,\"2024-12-18\":\"4\",\"2024-12-19\":0,\"2024-12-20\":\"1\",\"2024-12-21\":0,\"2024-12-22\":\"1\",\"2024-12-23\":0,\"2024-12-24\":\"1\",\"2024-12-25\":0,\"2024-12-26\":0,\"2024-12-27\":0,\"2024-12-28\":\"2\",\"2024-12-29\":\"1\",\"2024-12-30\":0,\"2024-12-31\":0,\"2025-01-01\":0,\"2025-01-02\":0,\"2025-01-03\":\"2\",\"2025-01-04\":\"1\",\"2025-01-05\":\"3\",\"2025-01-06\":0,\"2025-01-07\":\"1\",\"2025-01-08\":0,\"2025-01-09\":\"2\",\"2025-01-10\":\"1\",\"2025-01-11\":\"1\",\"2025-01-12\":\"1\",\"2025-01-13\":0,\"2025-01-14\":\"1\",\"2025-01-15\":0,\"2025-01-16\":\"1\",\"2025-01-17\":0,\"2025-01-18\":\"1\",\"2025-01-19\":0,\"2025-01-20\":0,\"2025-01-21\":0,\"2025-01-22\":\"1\",\"2025-01-23\":0,\"2025-01-24\":0,\"2025-01-25\":\"1\",\"2025-01-26\":\"1\",\"2025-01-27\":\"1\",\"2025-01-28\":\"1\",\"2025-01-29\":0,\"2025-01-30\":\"4\",\"2025-01-31\":\"1\",\"2025-02-01\":\"1\",\"2025-02-02\":\"1\",\"2025-02-03\":0,\"2025-02-04\":0,\"2025-02-05\":\"1\",\"2025-02-06\":0,\"2025-02-07\":\"2\",\"2025-02-08\":\"1\",\"2025-02-09\":\"1\",\"2025-02-10\":0,\"2025-02-11\":\"1\",\"2025-02-12\":\"2\",\"2025-02-13\":0,\"2025-02-14\":0,\"2025-02-15\":\"2\",\"2025-02-16\":0,\"2025-02-17\":\"1\",\"2025-02-18\":\"2\",\"2025-02-19\":0,\"2025-02-20\":0,\"2025-02-21\":0,\"2025-02-22\":\"1\",\"2025-02-23\":\"1\",\"2025-02-24\":\"3\",\"2025-02-25\":0,\"2025-02-26\":0,\"2025-02-27\":0,\"2025-02-28\":\"1\",\"2025-03-01\":0,\"2025-03-02\":\"2\",\"2025-03-03\":\"2\",\"2025-03-04\":\"1\",\"2025-03-05\":\"1\",\"2025-03-06\":0,\"2025-03-07\":0,\"2025-03-08\":0,\"2025-03-09\":\"1\",\"2025-03-10\":\"2\",\"2025-03-11\":\"1\",\"2025-03-12\":\"1\",\"2025-03-13\":0,\"2025-03-14\":\"2\",\"2025-03-15\":0,\"2025-03-16\":0,\"2025-03-17\":0,\"2025-03-18\":0,\"2025-03-19\":\"2\",\"2025-03-20\":0,\"2025-03-21\":\"1\",\"2025-03-22\":0,\"2025-03-23\":\"1\",\"2025-03-24\":0,\"2025-03-25\":\"1\",\"2025-03-26\":0,\"2025-03-27\":\"2\",\"2025-03-28\":0,\"2025-03-29\":0,\"2025-03-30\":\"2\",\"2025-03-31\":0,\"2025-04-01\":\"2\",\"2025-04-02\":\"1\",\"2025-04-03\":\"2\",\"2025-04-04\":0,\"2025-04-05\":0,\"2025-04-06\":0,\"2025-04-07\":\"1\",\"2025-04-08\":\"2\",\"2025-04-09\":\"1\",\"2025-04-10\":\"4\",\"2025-04-11\":\"1\",\"2025-04-12\":\"2\",\"2025-04-13\":\"3\",\"2025-04-14\":\"3\",\"2025-04-15\":\"4\",\"2025-04-16\":\"1\",\"2025-04-17\":\"3\",\"2025-04-18\":0,\"2025-04-19\":\"3\",\"2025-04-20\":\"3\",\"2025-04-21\":\"4\",\"2025-04-22\":\"5\",\"2025-04-23\":\"3\",\"2025-04-24\":\"3\",\"2025-04-25\":\"1\",\"2025-04-26\":\"3\",\"2025-04-27\":\"2\",\"2025-04-28\":\"3\",\"2025-04-29\":\"1\",\"2025-04-30\":\"2\",\"2025-05-01\":\"1\",\"2025-05-02\":\"3\",\"2025-05-03\":\"1\",\"2025-05-04\":\"2\",\"2025-05-05\":\"1\",\"2025-05-06\":\"1\",\"2025-05-07\":\"2\"},\"phpVersion\":false,\"icons\":{\"1x\":\"https://ps.w.org/tfo-graphviz/assets/icon-128x128.png?rev=2110976\",\"2x\":\"https://ps.w.org/tfo-graphviz/assets/icon-256x256.png?rev=2110976\"},\"related\":[{\"title\":\"Multisite Post Cloner\",\"short_description\":\"Multisite Post Cloner allows you to clone posts and pages across sites in your WordPress multisite network.\",\"original_slug\":\"multisite-post-cloner\",\"slug\":\"multisite-post-cloner\",\"version\":\"1.0.1\",\"last_updated\":\"2024-11-22T00:00:00.000000Z\",\"active_installs\":0,\"icons\":{\"1x\":\"https://ps.w.org/multisite-post-cloner/assets/icon-128x128.jpg?rev=3194090\"},\"synonyms\":[],\"tags\":{\"clone\":\"clone\",\"multisite\":\"multisite\",\"network\":\"network\",\"pages\":\"pages\",\"posts\":\"posts\"}},{\"title\":\"Area Chart\",\"short_description\":\"An area chart or area graph displays graphically quantitative data. It is based on the line chart. The area between axis and line are commonly emphasi \u0026hellip;\",\"original_slug\":\"wha-area-charts\",\"slug\":\"wha-area-charts\",\"version\":\"1.0.0\",\"last_updated\":\"2019-10-07T00:00:00.000000Z\",\"active_installs\":0,\"icons\":{\"1x\":\"https://ps.w.org/wha-area-charts/assets/icon-256x256.png?rev=2169228\",\"2x\":\"https://ps.w.org/wha-area-charts/assets/icon-256x256.png?rev=2169228\"},\"synonyms\":[],\"tags\":{\"area\":\"area\",\"areachart\":\"areachart\",\"chart\":\"chart\",\"graph\":\"graph\",\"line\":\"line\"}},{\"title\":\"Multisite New User Form\",\"short_description\":\"This plugin allows you to create users with custom password on multisite website.\",\"original_slug\":\"multisite-new-user-form\",\"slug\":\"multisite-new-user-form\",\"version\":\"1.0\",\"last_updated\":\"2018-03-20T00:00:00.000000Z\",\"active_installs\":0,\"icons\":{\"1x\":\"https://ps.w.org/multisite-new-user-form/assets/icon-128x128.png?rev=1843839\",\"2x\":\"https://ps.w.org/multisite-new-user-form/assets/icon-256x256.png?rev=1843839\"},\"synonyms\":[],\"tags\":{\"multisite\":\"multisite\",\"network\":\"network\",\"new\":\"new\",\"password\":\"password\",\"user\":\"user\"}},{\"title\":\"WP Super Network\",\"short_description\":\"Share content between sites and create offspring networks.\",\"original_slug\":\"wp-super-network\",\"slug\":\"wp-super-network\",\"version\":\"1.2.0\",\"last_updated\":\"2023-02-13T00:00:00.000000Z\",\"active_installs\":0,\"icons\":{\"1x\":\"https://ps.w.org/wp-super-network/assets/icon-128x128.png?rev=2864101\",\"2x\":\"https://ps.w.org/wp-super-network/assets/icon-256x256.png?rev=2864101\"},\"synonyms\":[],\"tags\":{\"move\":\"move\",\"multisite\":\"multisite\",\"network\":\"network\",\"share\":\"share\",\"sharing\":\"sharing\"}},{\"title\":\"Multisite Shared Blocks\",\"short_description\":\"Share blocks between network\u0026#039;s sites.\",\"original_slug\":\"multisite-shared-blocks\",\"slug\":\"multisite-shared-blocks\",\"version\":\"1.1.1\",\"last_updated\":\"2024-03-29T00:00:00.000000Z\",\"active_installs\":0,\"icons\":{\"1x\":\"https://ps.w.org/multisite-shared-blocks/assets/icon-128x128.png?rev=2795737\",\"2x\":\"https://ps.w.org/multisite-shared-blocks/assets/icon-256x256.png?rev=2795737\"},\"synonyms\":[],\"tags\":{\"block\":\"block\",\"gutenberg\":\"gutenberg\",\"multisite\":\"multisite\",\"network\":\"network\",\"share\":\"share\"}},{\"title\":\"WP Remote Request Check\",\"short_description\":\"Checks if the WordPress HTTP API is able to be used by making calls using wp_remote_request().\",\"original_slug\":\"wp-remote-request-check\",\"slug\":\"wp-remote-request-check\",\"version\":\"0.1\",\"last_updated\":\"2014-04-18T00:00:00.000000Z\",\"active_installs\":20,\"icons\":{\"default\":\"https://s.w.org/plugins/geopattern-icon/wp-remote-request-check.svg\"},\"synonyms\":[],\"tags\":{\"api\":\"api\",\"network\":\"network\",\"testing\":\"testing\"}},{\"title\":\"Exploded View Filter\",\"short_description\":\"Displays a diagram image with links to filter products.\",\"original_slug\":\"exploded-view-filter\",\"slug\":\"exploded-view-filter\",\"version\":\"1.0.0\",\"last_updated\":\"2024-11-15T00:00:00.000000Z\",\"active_installs\":10,\"icons\":{\"1x\":\"https://ps.w.org/exploded-view-filter/assets/icon-128x128.png?rev=2212280\",\"2x\":\"https://ps.w.org/exploded-view-filter/assets/icon-256x256.png?rev=2212280\"},\"synonyms\":[],\"tags\":{\"diagram\":\"diagram\",\"exploded-view\":\"exploded view\",\"product-filter\":\"product filter\"}},{\"title\":\"Bulk Marketpress Product Category Copier\",\"short_description\":\"This plugin allows you to bulk copy your marketpress product categories between sites on your network which have the marketpress plugin activated.\",\"original_slug\":\"marketpress-category-copier\",\"slug\":\"marketpress-category-copier\",\"version\":\"1.2.1\",\"last_updated\":\"2014-11-07T00:00:00.000000Z\",\"active_installs\":10,\"icons\":{\"default\":\"https://s.w.org/plugins/geopattern-icon/marketpress-category-copier.svg\"},\"synonyms\":[],\"tags\":{\"copier\":\"copier\",\"copy\":\"copy\",\"marketpress\":\"marketpress\",\"multisite\":\"multisite\",\"network\":\"network\"}},{\"title\":\"Plot Over Time\",\"short_description\":\"Uses the Google Chart Tools API for charting data in posts. Tracks up to 10 different data points, 4 chart types, \u0026amp; lots of customization.\",\"original_slug\":\"plot-over-time\",\"slug\":\"plot-over-time\",\"version\":\"1.0.0\",\"last_updated\":\"2011-11-22T00:00:00.000000Z\",\"active_installs\":10,\"icons\":{\"default\":\"https://s.w.org/plugins/geopattern-icon/plot-over-time.svg\"},\"synonyms\":[],\"tags\":{\"chart\":\"chart\",\"custom-fields\":\"custom fields\",\"google-chart-api\":\"google chart API\",\"graph\":\"graph\",\"weight-tracking\":\"weight tracking\"}},{\"title\":\"CPD-Journals\",\"short_description\":\"Turns a WordPress Multisite installation into a CPD (Continuous Professional Development) journal platform.\",\"original_slug\":\"cpd-journals\",\"slug\":\"cpd-journals\",\"version\":\"0.3\",\"last_updated\":\"2014-06-10T00:00:00.000000Z\",\"active_installs\":10,\"icons\":{\"default\":\"https://s.w.org/plugins/geopattern-icon/cpd-journals.svg\"},\"synonyms\":[],\"tags\":{\"continual-professional-development\":\"continual professional development\",\"cpd\":\"CPD\",\"multisite\":\"multisite\",\"network\":\"network\"}}],\"status\":\"draft\"}}]}],\"$L30\"]}]}]\n"])</script><script>self.__next_f.push([1,"27:[\"$\",\"div\",null,{\"className\":\"mt-4 sm:mt-6 lg:mt-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"mb-10 px-0 py-3\",\"children\":[\"$\",\"div\",null,{\"className\":\"p-0 py-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold text-gray-900 dark:text-white mb-6\",\"children\":\"Related Plugins\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\",\"children\":[[\"$\",\"$L31\",\"multisite-post-cloner\",{\"title\":\"Multisite Post Cloner\",\"logo\":\"https://ps.w.org/multisite-post-cloner/assets/icon-128x128.jpg?rev=3194090\",\"description\":\"Multisite Post Cloner allows you to clone posts and pages across sites in your WordPress multisite network.\",\"activeInstalls\":\"0+\",\"slug\":\"multisite-post-cloner\"}],[\"$\",\"$L31\",\"wha-area-charts\",{\"title\":\"Area Chart\",\"logo\":\"https://ps.w.org/wha-area-charts/assets/icon-256x256.png?rev=2169228\",\"description\":\"An area chart or area graph displays graphically quantitative data. It is based on the line chart. The area between axis and line are commonly emphasi \u0026hellip;\",\"activeInstalls\":\"0+\",\"slug\":\"wha-area-charts\"}],[\"$\",\"$L31\",\"multisite-new-user-form\",{\"title\":\"Multisite New User Form\",\"logo\":\"https://ps.w.org/multisite-new-user-form/assets/icon-128x128.png?rev=1843839\",\"description\":\"This plugin allows you to create users with custom password on multisite website.\",\"activeInstalls\":\"0+\",\"slug\":\"multisite-new-user-form\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"32:T1008,"])</script><script>self.__next_f.push([1,"0,25.6 1.2359550561797752,19.2 2.4719101123595504,19.2 3.7078651685393256,25.6 4.943820224719101,32 6.179775280898876,32 7.415730337078651,32 8.651685393258427,25.6 9.887640449438202,12.8 11.123595505617978,25.6 12.359550561797752,19.2 13.595505617977528,32 14.831460674157302,32 16.06741573033708,32 17.303370786516854,32 18.539325842696627,25.6 19.775280898876403,25.6 21.01123595505618,19.2 22.247191011235955,32 23.48314606741573,6.399999999999999 24.719101123595504,25.6 25.95505617977528,32 27.191011235955056,12.8 28.426966292134832,32 29.662921348314605,25.6 30.898876404494384,32 32.13483146067416,32 33.37078651685393,32 34.60674157303371,32 35.842696629213485,32 37.078651685393254,12.8 38.31460674157304,12.8 39.550561797752806,25.6 40.78651685393259,25.6 42.02247191011236,32 43.258426966292134,25.6 44.49438202247191,25.6 45.73033707865169,32 46.96629213483146,6.399999999999999 48.20224719101124,32 49.43820224719101,25.6 50.67415730337079,32 51.91011235955056,25.6 53.146067415730336,32 54.38202247191011,25.6 55.61797752808989,32 56.853932584269664,32 58.08988764044943,32 59.32584269662921,19.2 60.56179775280899,25.6 61.79775280898877,32 63.03370786516854,32 64.26966292134831,32 65.50561797752809,32 66.74157303370787,19.2 67.97752808988764,25.6 69.21348314606742,12.8 70.4494382022472,32 71.68539325842697,25.6 72.92134831460673,32 74.15730337078651,19.2 75.3932584269663,25.6 76.62921348314607,25.6 77.86516853932584,25.6 79.10112359550561,32 80.33707865168539,25.6 81.57303370786518,32 82.80898876404494,25.6 84.04494382022472,32 85.28089887640449,25.6 86.51685393258427,32 87.75280898876404,32 88.98876404494382,32 90.2247191011236,25.6 91.46067415730337,32 92.69662921348313,32 93.93258426966293,25.6 95.1685393258427,25.6 96.40449438202248,25.6 97.64044943820224,25.6 98.87640449438202,32 100.11235955056179,6.399999999999999 101.34831460674158,25.6 102.58426966292134,25.6 103.82022471910112,25.6 105.0561797752809,32 106.29213483146067,32 107.52808988764045,25.6 108.76404494382022,32 110,19.2 111.23595505617978,25.6 112.47191011235955,25.6 113.70786516853933,32 114.94382022471912,25.6 116.17977528089887,19.2 117.41573033707864,32 118.65168539325842,32 119.88764044943821,19.2 121.12359550561798,32 122.35955056179776,25.6 123.59550561797754,19.2 124.83146067415731,32 126.06741573033707,32 127.30337078651685,32 128.53932584269663,25.6 129.77528089887642,25.6 131.01123595505618,12.8 132.24719101123597,32 133.48314606741573,32 134.71910112359552,32 135.95505617977528,25.6 137.19101123595505,32 138.42696629213484,19.2 139.6629213483146,19.2 140.8988764044944,25.6 142.13483146067415,25.6 143.37078651685394,32 144.60674157303373,32 145.84269662921346,32 147.07865168539325,25.6 148.31460674157302,19.2 149.5505617977528,25.6 150.7865168539326,25.6 152.02247191011236,32 153.25842696629215,19.2 154.4943820224719,32 155.73033707865167,32 156.96629213483146,32 158.20224719101122,32 159.43820224719101,19.2 160.67415730337078,32 161.91011235955057,25.6 163.14606741573036,32 164.38202247191012,25.6 165.61797752808988,32 166.85393258426964,25.6 168.08988764044943,32 169.32584269662922,19.2 170.56179775280899,32 171.79775280898878,32 173.03370786516854,19.2 174.26966292134833,32 175.5056179775281,19.2 176.74157303370785,25.6 177.97752808988764,19.2 179.2134831460674,32 180.4494382022472,32 181.68539325842698,32 182.92134831460675,25.6 184.15730337078654,19.2 185.39325842696627,25.6 186.62921348314606,6.399999999999999 187.86516853932585,25.6 189.1011235955056,19.2 190.3370786516854,12.8 191.57303370786516,12.8 192.80898876404495,6.399999999999999 194.04494382022472,25.6 195.28089887640448,12.8 196.51685393258427,32 197.75280898876403,12.8 198.98876404494382,12.8 200.22471910112358,6.399999999999999 201.46067415730337,0 202.69662921348316,12.8 203.93258426966293,12.8 205.1685393258427,25.6 206.40449438202245,12.8 207.64044943820224,19.2 208.87640449438203,12.8 210.1123595505618,25.6 211.34831460674158,19.2 212.58426966292134,25.6 213.82022471910113,12.8 215.0561797752809,25.6 216.29213483146066,19.2 217.52808988764045,25.6 218.7640449438202,25.6 220,19.2"])</script><script>self.__next_f.push([1,"30:[\"$\",\"div\",null,{\"className\":\"lg:col-span-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"px-0 py-3 sm:p-6 mb-0 sm:mb-0 mt-0 sm:mt-13.5 border-0 sm:border-t\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block text-sm font-medium text-gray-900 dark:text-white mb-1\",\"children\":\"Active installations\"}],[\"$\",\"span\",null,{\"className\":\"text-xl sm:text-2xl font-bold text-gray-900 dark:text-white\",\"children\":\"50+\"}]]}],[\"$\",\"div\",null,{\"className\":\"mb-4\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block text-sm font-medium text-gray-900 dark:text-white mb-1\",\"children\":\"Weekly downloads\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between mb-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl sm:text-2xl font-bold text-gray-900 dark:text-white\",\"children\":\"11\"}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm font-medium text-red-600 dark:text-red-400 flex items-center\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"w-3 h-3 sm:w-4 sm:h-4 mr-1\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19 14l-7 7m0 0l-7-7m7 7V3\"}]}],\"-26.67%\",[\"$\",\"span\",null,{\"className\":\"ml-1 hidden sm:inline\",\"children\":\"(1 week)\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"h-10 sm:h-12 flex items-center w-full\",\"children\":[\"$\",\"svg\",null,{\"width\":\"100%\",\"height\":32,\"viewBox\":\"0 0 220 32\",\"preserveAspectRatio\":\"none\",\"className\":\"w-full h-8\",\"children\":[\"$\",\"polyline\",null,{\"fill\":\"none\",\"stroke\":\"#6366f1\",\"strokeWidth\":2,\"strokeLinejoin\":\"round\",\"strokeLinecap\":\"round\",\"points\":\"$32\"}]}]}]]}],\"$L33\",\"$L34\"]}]}]\n"])</script><script>self.__next_f.push([1,"35:I[38175,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"33:[\"$\",\"div\",null,{\"className\":\"space-y-3 sm:space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-300\",\"children\":\"Version\"}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm font-medium text-gray-900 dark:text-white\",\"children\":\"1.19\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-300\",\"children\":\"Last updated\"}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm font-medium text-gray-900 dark:text-white\",\"children\":\"6/23/2019\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-300\",\"children\":\"WordPress version\"}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm font-medium text-gray-900 dark:text-white\",\"children\":\"4.2.0\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-300\",\"children\":\"Tested up to\"}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm font-medium text-gray-900 dark:text-white\",\"children\":\"5.2.21\"}]]}],false]}]\n"])</script><script>self.__next_f.push([1,"34:[\"$\",\"div\",null,{\"className\":\"mt-4 sm:mt-6 pt-4 sm:pt-6 border-t\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 sm:mb-3\",\"children\":[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-300\",\"children\":\"Tags\"}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-1.5 sm:gap-2\",\"children\":[[\"$\",\"span\",\"diagram\",{\"data-slot\":\"badge\",\"className\":\"inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [\u0026\u003esvg]:size-3 gap-1 [\u0026\u003esvg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs px-2 py-1\",\"children\":\"diagram\"}],[\"$\",\"span\",\"flirble\",{\"data-slot\":\"badge\",\"className\":\"inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [\u0026\u003esvg]:size-3 gap-1 [\u0026\u003esvg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs px-2 py-1\",\"children\":\"flirble\"}],[\"$\",\"span\",\"graph\",{\"data-slot\":\"badge\",\"className\":\"inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [\u0026\u003esvg]:size-3 gap-1 [\u0026\u003esvg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs px-2 py-1\",\"children\":\"graph\"}],[\"$\",\"span\",\"graphviz\",{\"data-slot\":\"badge\",\"className\":\"inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [\u0026\u003esvg]:size-3 gap-1 [\u0026\u003esvg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs px-2 py-1\",\"children\":\"graphviz\"}],[\"$\",\"span\",\"network\",{\"data-slot\":\"badge\",\"className\":\"inline-flex items-center justify-center rounded-md border font-medium w-fit whitespace-nowrap shrink-0 [\u0026\u003esvg]:size-3 gap-1 [\u0026\u003esvg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs px-2 py-1\",\"children\":\"network\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"TFO Graphviz | Plugin0\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.) Install instantly with Plugin0\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Chris Luke\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"WordPress feature creation,plugin discovery,instant plugin installation,AI-driven WordPress tools,admin tools,top-rated plugins,prompt-based feature building,WordPress,plugins,WordPress plugins,plugin discovery,plugin installation,AI,feature building\"}],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"Chris Luke\"}],[\"$\",\"meta\",\"5\",{\"name\":\"publisher\",\"content\":\"Chris Luke\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://plugin0.com/plugins/tfo-graphviz\"}],[\"$\",\"meta\",\"8\",{\"name\":\"google-site-verification\",\"content\":\"cGFLcdOMAmaJKXXXr5CObqEvWlgvUUxvU9S2W9YTFmY\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:title\",\"content\":\"TFO Graphviz - Plugin0\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:description\",\"content\":\"Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.)\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:url\",\"content\":\"https://plugin0.com/plugins/tfo-graphviz\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://plugin0.com/tfo-graphviz/opengraph-image-njautl?64227194df88ed4a\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:creator\",\"content\":\"Chris Luke\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:title\",\"content\":\"TFO Graphviz - Plugin0\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:description\",\"content\":\"Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features (depending on the generation method in use.)\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://plugin0.com/tfo-graphviz/twitter-image-njautl?75084c9f569c72b3\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"24\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"27\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"$L35\",\"28\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"1c:\"$17:metadata\"\n"])</script></body></html>