<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://camp2.rectangle.zone/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raul</id>
	<title>The Wiki Camp 2 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://camp2.rectangle.zone/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raul"/>
	<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/wiki/Special:Contributions/Raul"/>
	<updated>2026-06-05T08:56:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65586</id>
		<title>Tutorial/Graphs</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65586"/>
		<updated>2023-04-09T05:55:42Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#css:&lt;br /&gt;
.mw-content-ltr .mw-collapsible-toggle{float:none;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Graphs are these crazy little things that can create javascript canvas, which makes them much more powerful than HTML or CSS or modules.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Graphs are created using JSON text inside of a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag, using the [https://github.com/nyurik/vega/wiki/ Vega 2.0] data visualization language.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
There are three types of properties that are most important for making a graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039; are objects drawn on the graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039; take user input to make the graph interactive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039; can be used to store information, [[okin|akin]] to variables.&lt;br /&gt;
&lt;br /&gt;
Expand the text for a more detailed overview.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; - to draw marks, they must be given properties such as color, position, etc. When specifying a property, you should say whether it will be given to the object when it&#039;s first drawn (&#039;&#039;enter&#039;&#039;), recalculated every time it&#039;s drawn (&#039;&#039;update&#039;&#039;), when the mark is hovered over (&#039;&#039;hover&#039;&#039;), or when the mark is removed (&#039;&#039;exit&#039;&#039;).&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Streams&#039;&#039;&#039; - short for &amp;quot;event streams&amp;quot; pick up input like mouse clicks, keyboard presses, etc.&lt;br /&gt;
*&#039;&#039;&#039;Expressions&#039;&#039;&#039; - the value of the signal is set by an expression. Expressions use &lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Data Transform&#039;&#039;&#039; - data can be altered by applying different transforms to it, like filtering out certain values, sorting data, performing math on the data, etc.&lt;br /&gt;
*&#039;&#039;&#039;Streaming Data&#039;&#039;&#039; - data can also be &#039;&#039;&#039;modified&#039;&#039;&#039; by inserting and removing data points, or toggling whether they are including in a data set. The modified points are determined by a signal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example: Rectangle==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Let&#039;s draw a rectangle. Here is the starting point.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every graph is contained between the &amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;&amp;lt;/graph&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Then comes the JSON object which will contain all the data in our graph. JSON objects are wrapped in {} braces and contain a list of key-value pairs like this &amp;lt;syntaxhighlight&amp;gt;&amp;quot;key&amp;quot;:&amp;quot;value&amp;quot;&amp;lt;/syntaxhighlight&amp;gt; In this case, the first key is &amp;quot;width&amp;quot; and its value is 200. In general, a key is a string, and the value can be a string, a number, an array, or another JSON object. A list of keys/values are separated by commas, and the last doesn&#039;t have a comma.&lt;br /&gt;
&lt;br /&gt;
The height and width here determine the size of the graph.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we add a key &amp;quot;&#039;&#039;&#039;marks&#039;&#039;&#039;&amp;quot; with an array value. Each entry of the array will be an object providing instructions on how to draw something to the screen. Also remember to add the comma to the &amp;quot;height&amp;quot; line now, since it&#039;s no longer the end of the list!&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are more key/value pairs, inside the first object of the marks array. We set the name of the object to &amp;quot;square,&amp;quot; and declare that it should be a rectangle. Other types of mark include symbols, paths, arcs, areas, lines, rules, text, and groups. Now we need to describe how to draw the rectangle, using a number of &amp;quot;properties.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Since graphs are interactive, we need to say immediately whether a property of the rectangle will change and have to be updated. These will go in the &amp;quot;update&amp;quot; section. Others can go in &amp;quot;enter,&amp;quot; and get looked at when the rectangle is first drawn, but not ever again.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
First we&#039;d like to set the width of the rectangle. This is done with the key &amp;quot;width&amp;quot; and a value which is another object. This object is called a value reference and has a key named &amp;quot;value&amp;quot; with the value 50. If you simply set &amp;quot;width&amp;quot;:50 then the rectangle won&#039;t render. You need the value reference.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we set the height and the x-/y-position of the rectangle. Remember that the x- and y- coordinates start counting from the top left corner, unlike regular Cartesian coordinates. The x-value increases going to the right, but the y-value increases going down.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The last step is to set the fill color of the rectangle. Check out your graph! If it&#039;s not showing up, double check for missing/extra commas, and square brackets that should be braces (or vice versa).&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example: Clicking==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
To add interactivity to our graph, we&#039;re going to introduce &#039;&#039;&#039;signals&#039;&#039;&#039;. A signal is a variable that responds to user input. If another value is set equal to a signal, then it updates whenever the signal updates. We&#039;re going to set the fill color of our rectangle equal to a signal so that when we click, it turns red.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
It starts out the same way, but instead of marks we&#039;re going to define an array of signals. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We&#039;ll give the signal a name, and then create a &#039;&#039;&#039;streams&#039;&#039;&#039; array. Streams are what will allow us to capture the mouse clicking. Each object in the array will need to have a &amp;quot;type&amp;quot; which describes what input to record, and an &amp;quot;expr&amp;quot; expression to determine what its updated value should be.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The type is given in two parts: the first describes which object will watch for events, and the second describes what events to watch out for. &amp;quot;window:mousedown&amp;quot; records any time the mouse is pressed down anywhere on the page (window). Besides mousedown, there are other events for keyboard presses, mouse dragging, scrolling, double clicking, as well touch screen events for mobile devices. Besides window, other objects could be all marks of a certain type e.g. &amp;quot;rect:mousedown&amp;quot; or a mark with a specific name e.g. &amp;quot;@square:mousedown&amp;quot; (the @ is required for names). It could even be a CSS selector for an element on the page, e.g. &amp;quot;#header:mousedown&amp;quot; for an HTML element with id &amp;quot;header.&amp;quot; If the first half is omitted entirely, then it tracks events anywhere in the graph window e.g. &amp;quot;mousedown.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If the mouse is pressed down, the &amp;quot;clicked&amp;quot; signal is set equal to \&amp;quot;red.\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Since the expression is wrapped in quotes, and we want the value to be &amp;quot;red&amp;quot; (a string), then we need to escape the inner quotes. This can also be done with single quotes, i.e. &amp;quot;expr&amp;quot;:&amp;quot;&#039;red&#039;&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We&#039;ll add another object to our set of streams. This one will watch for any time the mouse is released anywhere on the website, and it sets &amp;quot;clicked&amp;quot; equal to &amp;quot;steelblue.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we add back our rectangle.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we set the value of our rectangle&#039;s &amp;quot;fill&amp;quot; to be the &amp;quot;clicked&amp;quot; signal. Whenever a mouse is pressed or released on the window, &amp;quot;clicked&amp;quot; will update, and so will the color of the rectangle. The {&amp;quot;signal&amp;quot;:&amp;quot;name&amp;quot;} object is another kind of value reference.&lt;br /&gt;
&lt;br /&gt;
However, we still have a problem. When the program is first run, the signal &amp;quot;clicked&amp;quot; isn&#039;t set to anything. It only updates when the status of the mouse updates, and it has no idea whether the mouse is up or down when the graph starts.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last step is to create an &amp;quot;init&amp;quot; property of the stream, which sets signal initially. The value isn&#039;t an expression, so it doesn&#039;t need to have escaped quotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example 3: Data==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Let&#039;s add some data...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is another one of these [https://github.com/vega/vega2-docs/wiki/Visualization top-level properties] which is an array of objects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[5, 10, 15, 25, 50]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can give the data a name, as well as some values. Here&#039;s another way to provide values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[{&amp;quot;hi&amp;quot;:5},{&amp;quot;hi&amp;quot;:&amp;quot;word&amp;quot;},{&amp;quot;hi&amp;quot;:10}]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This makes a list of 3 data points (each one can also be called a datum, a row, or a record). They are each an object, and each has a key called &amp;quot;hi.&amp;quot; This is called the field, or column. The value of that key could be a number, string, or another data set. All data in Vega comes as a list of objects (rows), and each row has a key/value pair for every field (column). When we created the data list before from just numbers, the program automatically assigned these numbers to a field named &amp;quot;data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;hi&amp;quot;:5, &amp;quot;lala&amp;quot;:1},&lt;br /&gt;
        {&amp;quot;hi&amp;quot;:&amp;quot;word&amp;quot;, &amp;quot;lala&amp;quot;:5},&lt;br /&gt;
        {&amp;quot;hi&amp;quot;:{&amp;quot;bye&amp;quot;:4, &amp;quot;bye&amp;quot;:3, &amp;quot;bye&amp;quot;:&amp;quot;word&amp;quot;}, &amp;quot;lala&amp;quot;:8}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another example of a data set. This time, each data point has two fields: &amp;quot;hi&amp;quot; and &amp;quot;lala.&amp;quot; The value of &amp;quot;hi&amp;quot; in the last row is another data set with 3 rows and a field called &amp;quot;bye.&amp;quot; Also note that Vega randomly assigns each data point an ID, in a field called &amp;quot;_id&amp;quot; which is automatically generated and different each time the program runs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
      &lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the data we&#039;ll actually be using. It has three fields called &amp;quot;x,&amp;quot; &amp;quot;y,&amp;quot; and &amp;quot;message.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We also create an array of &#039;&#039;&#039;data transforms&#039;&#039;&#039;. These describe operations that can be performed on data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are many [https://github.com/vega/vega2-docs/wiki/Data-Transforms types] of data transforms. The most useful is probably formula, which will allow us to use expressions to change data. Other useful transforms include filter, which removes any data that doesn&#039;t satisfy a test condition, and lookup, which imports data points from another data set based on matching data.&lt;br /&gt;
&lt;br /&gt;
Here, the &#039;&#039;type&#039;&#039; of data transform is formula, and it will update the values of the &#039;&#039;field&#039;&#039; &amp;quot;x.&amp;quot; The &#039;&#039;expression&#039;&#039; will return the datum&#039;s &amp;quot;x&amp;quot; field added to 5. The object &amp;quot;datum&amp;quot; stores the key/value pairs for each field in the current data point. For example, if we kept the &#039;&#039;type&#039;&#039; and &#039;&#039;field&#039;&#039; the same, but changed the &#039;&#039;expr&#039;&#039; to &amp;quot;datum.message + &#039; hello&#039;&amp;quot; then the data would look like this after the transform:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&amp;quot;x&amp;quot;:&amp;quot;we hello&amp;quot;, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
{&amp;quot;x&amp;quot;:&amp;quot;seals hello&amp;quot;, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
{&amp;quot;x&amp;quot;:&amp;quot;three hello&amp;quot;, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Expressions also have access to the names of signals. To see this, let&#039;s add back our signal from the last example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we&#039;re going to create another formula transform.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This formula creates a new field called &amp;quot;color&amp;quot; and for each data point sets it to the value of the signal &amp;quot;clicked.&amp;quot; Every time &amp;quot;clicked&amp;quot; updates, this formula will be recalculated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we&#039;re going to create another formula transform.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We&#039;re going to create a new kind of mark this time, for displaying text. The text will be drawn using data from our data set, so we need to tell it where our data is.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;}&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;from&amp;quot; property is used to do this, and its value is a reference to our data named &amp;quot;table.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;},&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We start filling in the properties for each text object. Instead of specifying an x-value using a direct value like {&amp;quot;value&amp;quot;:5}, we use a different kind of value reference. {&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;} tells the program to use the &amp;quot;x&amp;quot; field in the &amp;quot;table&amp;quot; data set we gave earlier. A new &amp;quot;text&amp;quot; mark will be created for every row in the &amp;quot;table&amp;quot; data set, and its &amp;quot;x&amp;quot; value will be the &amp;quot;x&amp;quot; value of the corresponding row.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;},&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;y&amp;quot;},&lt;br /&gt;
          &amp;quot;text&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;message&amp;quot;}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We fill in the other properties for our text. The &amp;quot;text&amp;quot; property determines what the text will say. Note that &amp;quot;height&amp;quot; and &amp;quot;width&amp;quot; aren&#039;t required, since they&#039;re determined by the text. The &amp;quot;fill&amp;quot; property is placed in the &amp;quot;update&amp;quot; section, since the &amp;quot;clicked&amp;quot; signal will change the value of the &amp;quot;color&amp;quot; field.&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;},&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;y&amp;quot;},&lt;br /&gt;
          &amp;quot;text&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;message&amp;quot;}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Animations==&lt;br /&gt;
When making games with graphs, it&#039;d be nice to have the graph update graphics even when no user input is being given. For example, if we were making Snake, we&#039;d want the snake to continue heading straight when no keys are being pressed. The problem is that, as far as I can tell, Vega only updates the graph when a signal updates. In the current version of Vega (version 5) this isn&#039;t a problem, because it has a timer signal, but this doesn&#039;t exist in Vega 2.0 (what the wiki graph extension uses). Here are some attempts to get animations to work.&lt;br /&gt;
&lt;br /&gt;
===STRATEGY 1 - MOUSEOVER===&lt;br /&gt;
One of the events you can use in [https://github.com/vega/vega2-docs/wiki/Signals#event-stream-values streams] is called &amp;quot;mouseover&amp;quot; and activates when the mouse first moves on top of an element (the page, the graph, a symbol, etc.) The opposite of &amp;quot;mouseover&amp;quot; is &amp;quot;mouseout,&amp;quot; when the mouse leaves the element.&lt;br /&gt;
&lt;br /&gt;
One idea is to have a symbol record mouseover and mouseout events. Then, shrink or move the symbol when mouseover happens so that the mouse isn&#039;t over it anymore, and undo the change on mouseout. This would cause the mouse to alternate being on/off the symbol every frame, producing a signal that updates every frame. This signal could then be used as a clock to update every other part of the graph game.&lt;br /&gt;
&lt;br /&gt;
The problem is that even if the mouse changes its status of being on/off the element, &amp;quot;mouseover&amp;quot; and &amp;quot;mouseout&amp;quot; events only happen when the mouse actually moves. If the mouse is stationary neither gets triggered.&lt;br /&gt;
&lt;br /&gt;
===STRATEGY 2 - SIGNAL LOOP===&lt;br /&gt;
[https://github.com/vega/vega2-docs/wiki/Signals#expression-values Remember] that a signal is set by an expression, and that expressions can use signals in their evaluation. What if there was a signal evaluated itself in order to set its own value? Or if two signals alternately set the value of the other? This would again produce a signal clock which could be used  in expressions elsewhere in the program.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning. The following code will cause an infinite loop.&#039;&#039;&#039; You can try with the [http://vega.github.io/vega-editor/?mode=vega Vega editor] in a private browsing window and the tab will freeze. See [https://camp2.rectangle.zone/index.php?title=Graph/Guide#troubleshooting troubleshooting] for more info.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clock&amp;quot;,&lt;br /&gt;
      &amp;quot;expr&amp;quot;:&amp;quot;clock ? false : true&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Signals can be set by an expression even with no &amp;quot;streams&amp;quot; array. A stream defined this way won&#039;t update unless there&#039;s a signal in the expression definition. Here, the expression uses the value of the signal itself. The expression takes the form of a [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator ternary operator]. In a ternary operator, the part before the question mark is tested to see if it&#039;s [[ture]] or [[flase]]. If it&#039;s true, the value of &amp;quot;clock&amp;quot; is set to the part after the question mark but before the colon. If it&#039;s false, then the value of &amp;quot;clock&amp;quot; is set to the part after the colon.&lt;br /&gt;
&lt;br /&gt;
So, the clock signal starts out with no value. [https://developer.mozilla.org/en-US/docs/Glossary/Falsy Javascript evaluates this as &amp;quot;false&amp;quot;], and sets &amp;quot;clock&amp;quot; equal to the part after the colon, which is &amp;quot;true.&amp;quot; Since the &amp;quot;clock&amp;quot; signal just updated, any expression using that signal is run again, including the definition of &amp;quot;clock.&amp;quot; This time, &amp;quot;clock&amp;quot; is false , so it&#039;s set equal to the part before the colon, &amp;quot;false.&amp;quot; It loops forever, like that [[paradox]] about &amp;quot;this sentence is false.&amp;quot; If we had other code in the graph, it would never be run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning: infinite loop.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clock1&amp;quot;,&lt;br /&gt;
      &amp;quot;expr&amp;quot;:&amp;quot;clock2 ? false : true&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clock2&amp;quot;&lt;br /&gt;
      &amp;quot;expr&amp;quot;:&amp;quot;clock1&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here&#039;s another attempt at the same thing. The thinking is that using two signals relying on each other would avoid the infinite loop problem. For example, &amp;quot;clock1&amp;quot; might run first and be set to &amp;quot;true,&amp;quot; since &amp;quot;clock2&amp;quot; isn&#039;t defined. Then &amp;quot;clock2&amp;quot; would be set to &amp;quot;true.&amp;quot; Then the program might continue to run the rest of the graph code, and when it comes to &amp;quot;clock1&amp;quot; on the next pass, it gets set to &amp;quot;false.&amp;quot; And so on...&lt;br /&gt;
&lt;br /&gt;
This is not what happens. There is no &amp;quot;next pass,&amp;quot; since graph code will only run once unless a signal updates. In our example, when &amp;quot;clock2&amp;quot; is set to &amp;quot;true,&amp;quot; it immediately updates all expressions containing &amp;quot;clock2.&amp;quot; This means it goes back to the &amp;quot;clock1&amp;quot; definition and updates &amp;quot;clock1.&amp;quot; Which updates &amp;quot;clock2&amp;quot; which updates &amp;quot;clock1&amp;quot; which updates...&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a fact about signals. If after an update they have the same value as before, then they don&#039;t cause expressions that use them to reevaluate (if you want them to anyway, you can add &amp;quot;verbose&amp;quot;:&amp;quot;true&amp;quot; to the signal definition). Can this be used to make a clock? I can&#039;t think of a way myself, mostly because of the following problem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clock1&amp;quot;,&lt;br /&gt;
      &amp;quot;expr&amp;quot;:&amp;quot;clock2 ? false : true&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clock2&amp;quot;&lt;br /&gt;
      &amp;quot;expr&amp;quot;:&amp;quot;clock1 ? false : true&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code runs fine! The values update like this:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
clock1: null -&amp;gt; true&lt;br /&gt;
clock2: null -&amp;gt; false&lt;br /&gt;
clock1: true -&amp;gt; true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In the last step, clock1 doesn&#039;t change its value, so it doesn&#039;t update clock2. So, there aren&#039;t any infinite loops. However, this means the graph only makes one pass through the code. After the clock signals settle on their values, they never update again and so the rest of the program never updates, either.&lt;br /&gt;
&lt;br /&gt;
===STRATEGY 3: DATA LOOP===&lt;br /&gt;
Expressions are able to use a number of functions. [https://github.com/vega/vega2-docs/wiki/Expressions#functions Here&#039;s a list]. These even include time functions! For example, now() returns the unix timestamp up to milliseconds. This is so frustrating, because they will only run once on each update, so I don&#039;t know how to make use of them. The function I want to focus on is indata(), which searches to see if a value is in a data table. For example, indata(&amp;quot;table&amp;quot;,5,&amp;quot;numbers&amp;quot;) will search the data set &amp;quot;table&amp;quot; for the value 5 in the &amp;quot;numbers&amp;quot; field. If it finds a match, it returns true.&lt;br /&gt;
&lt;br /&gt;
Now [https://github.com/vega/vega2-docs/wiki/Expressions#functions recall] that some data transforms are able to use expressions to modify data (&amp;quot;formula,&amp;quot; for example). The idea for this strategy is to make another clock. One half is a signal, which will update a data set. The other half is the data set, which will update the signal.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clock&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:0,&lt;br /&gt;
      &amp;quot;expr&amp;quot;:&amp;quot;indata(&#039;table&#039;,0,&#039;data&#039;) ? 1 : 0&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[1],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;data&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clock&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We start with a &amp;quot;clock&amp;quot; signal equal to 0, and a &amp;quot;table&amp;quot; data set with a single value 1 in the field &amp;quot;data&amp;quot; (set automatically by Vega). The idea is that when the formula transform runs, the single data value will be set to &amp;quot;clock,&amp;quot; which is 0. Then the signal will check whether there&#039;s a 0 in the table, which there is now. So &amp;quot;clock&amp;quot; gets set to the 1 part of the ternary operator. Then the data value gets set to &amp;quot;clock,&amp;quot; which is 1 this time. It&#039;ll be another clock loop. Maybe if we use the &amp;quot;data&amp;quot; section this time, the &amp;quot;marks&amp;quot; code will be able to run before the &amp;quot;signal&amp;quot; is updated, and we&#039;ll get a loop that doesn&#039;t freeze everything.&lt;br /&gt;
&lt;br /&gt;
Well it turns out that a data table doesn&#039;t behave like a signal, because it doesn&#039;t update every expression that calls &amp;quot;indata()&amp;quot; on it. So this code only runs once. &amp;quot;clock&amp;quot; gets set to 0 and the data value gets set to &amp;quot;clock,&amp;quot; and then that&#039;s it.&lt;br /&gt;
&lt;br /&gt;
If reference another signal in the definition of the &amp;quot;clock&amp;quot; signal, we could get &amp;quot;clock&amp;quot; to run again on the updated table. But this presents the same problem as in the previous section, with the signal loops. If we use &amp;quot;clock&amp;quot; in its own definition, then &amp;quot;clock&amp;quot; will recurse on itself forever, and if we use a new signal, then either both loop each other forever, or they both run only once.&lt;br /&gt;
&lt;br /&gt;
===STRATEGY 4: FORCE TRANSFORM===&lt;br /&gt;
&lt;br /&gt;
Have you gone through the example graphs in the Vega editor? One of them is called [http://vega.github.io/vega-editor/?mode=vega&amp;amp;spec=force_drag force_drag] and shows an interactive web of nodes. When you click on a node, you can drag it and the rest of the web will react in a realistic way. When you release the node, it will settle back into place. The graph will continue to animate it settling even when you&#039;re not interacting with any of the nodes or otherwise giving it input. &lt;br /&gt;
&lt;br /&gt;
This effect is possible with the use of a data transform called [https://github.com/vega/vega2-docs/wiki/Data-Transforms#-force &amp;quot;force&amp;quot;], which takes two data sets: a set of nodes and a set of edges. It runs a physics simulation and outputs two extra fields onto the nodes set, which are the x- and y-positions of each node. These can be used to draw corresponding marks onto the graph. If the setting &amp;quot;interactive&amp;quot;:&amp;quot;true&amp;quot; is set on the data transform, then Vega will continue to update the x- and y-positions every frame. So far, this is the only example I know of in Vega 2.0 where things will update without a signal changing.&lt;br /&gt;
&lt;br /&gt;
In non-interactive mode, the graph will run the simulation for a certain number of iterations, set by the user. Only after it&#039;s finished will it run the rest of the graph code. In interactive mode, the simulation and the graphics run at the same time, however it has a maximum amount of time it will spend running the simulation, which cannot be changed. I think it&#039;s around a second.&lt;br /&gt;
&lt;br /&gt;
The transform also takes an &amp;quot;active&amp;quot; property. This selects a node in the data set whose position can be adjusted, which will optionally reset the simulation timer.&lt;br /&gt;
&lt;br /&gt;
How can we use this information to create a clock that lasts forever? I don&#039;t know, really. Here are some strange things I&#039;ve noticed, though.&lt;br /&gt;
&lt;br /&gt;
*If I put a formula transform after the force transform that sets all the layout_x coordinates to 0, it doesn&#039;t do anything&lt;br /&gt;
*It&#039;s possible to define data transforms in the marks section by describing them in the &amp;quot;from&amp;quot; property. I had a symbol in marks to draw the nodes, and it updated its position every frame to match the nodes data set. I applied a transform that halved every layout_x value, and it worked, but only on the first frame. The symbols were fixed in their first positions, only with half x-coordinates, while all the other marks continued to animate (it&#039;s normal for data transforms made for a specific mark not to affect the original data set used for another mark, although I don&#039;t know why the symbols I tested stopped receiving updates when I did a transform.)&lt;br /&gt;
*The debug screen shows a single, unchanging set of values for the nodes array. These values are the positions of the nodes after the simulation has finished running.&lt;br /&gt;
&lt;br /&gt;
===OTHER STRATEGIES===&lt;br /&gt;
These are just some ideas I&#039;ve tried. I don&#039;t know what the actual solution is, I just think it&#039;d be crazy if there wasn&#039;t one! Some other ideas...&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/vega/vega2-docs/wiki/Marks#top-level-mark-properties documentation] for marks describes a &amp;quot;delay&amp;quot; property. &amp;quot;The translation delay, in milliseconds, for mark updates. The delay can be set in conjunction with the backing data (possibly through a scale transform) to provide staggered animations.&amp;quot; I haven&#039;t gotten this to work, but it sounds pretty good, although a little strange. Animations would be calculated in advance, and only shown after a delay. If this were used in the snake game example, you would have it so that game animates the snake going along based on the last input it received, only animating a little forward movement at a time. Internally, the game would have calculated where you would run into and die if you didn&#039;t give any further inputs. It would delay showing this until either you died that way, or you made some input to turn and it would calculate a new death trajectory. Cool!&lt;br /&gt;
&lt;br /&gt;
[https://github.com/vega/vega2-docs/wiki/Expressions Expressions] just use javascript, although you&#039;re restricted in what features you can use. If it were possible to execute arbitrary javascript code in graphs, this would probably be the way to do it. I don&#039;t know how realistic that is.&lt;br /&gt;
&lt;br /&gt;
I think I have already missed a lot. I wanted to type this up and was hoping that putting ideas into words would help me find something I overlooked. I hope when you read this you&#039;re doing it aggressively, looking for loopholes and things I got wrong. That&#039;s all for now, thanks for reading.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section id=&amp;quot;troubleshooting&amp;quot;&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
The [http://vega.github.io/vega-editor/ online Vega editor] is kinda annoying because it doesn&#039;t tell you what you did wrong besides small typos. Here is a list of things to check if your graph isn&#039;t working.&lt;br /&gt;
&lt;br /&gt;
Simple typos.&lt;br /&gt;
*Every item in a list must have a comma after it.&lt;br /&gt;
*The last item in a list can&#039;t have a comma after it.&lt;br /&gt;
*Are any colons placed inside strings? &amp;lt;code&amp;gt;&amp;quot;width:&amp;quot;50&amp;lt;/code&amp;gt; will give an error.&lt;br /&gt;
*Strings inside of strings should be placed inside single quotes, not double quotes.&lt;br /&gt;
*Be careful with terms that are written with square brackets, with braces around individual items. For example, &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[{...}]&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:&amp;lt;nowiki&amp;gt;{{...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[...]&amp;lt;/code&amp;gt;&lt;br /&gt;
*Pay attention to whether important terms are singular or plural. Plural: &amp;quot;data,&amp;quot; &amp;quot;marks,&amp;quot; &amp;quot;signals,&amp;quot; &amp;quot;streams.&amp;quot; Singular: &amp;quot;transform,&amp;quot; &amp;quot;modify.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Other.&lt;br /&gt;
*Are there any mark properties given directly? For example, putting &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:50&amp;lt;/code&amp;gt; will produce an error, when it should be &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&amp;lt;/code&amp;gt;&lt;br /&gt;
*If marks use data, make sure to set &amp;quot;from&amp;quot; correctly. If I&#039;m importing a data set named &amp;quot;table&amp;quot; then use I&#039;ll use &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;} rather than just &amp;quot;from&amp;quot;:&amp;quot;table&amp;quot;&lt;br /&gt;
*Make sure that the variables used in an expression exist. For example, when the program first starts running, some signals may not have a value (usually if they don&#039;t have an &amp;quot;init&amp;quot;), so expressions may behave strangely.&lt;br /&gt;
*If you need your mark to respond to input, any properties that change must be put in the &amp;quot;update&amp;quot; section instead of &amp;quot;enter!&amp;quot;&lt;br /&gt;
*The editor saves your code (I think when you run it), and runs it when you first load the website. So if your program gets caught in an infinite loop, you need to clear cookies on the site to use it again. This will remove all your code. If you think your program might loop, you should save it in another document first.&lt;br /&gt;
*Make sure to test your program often!&lt;br /&gt;
&lt;br /&gt;
Additionally, the vega editor has a [http://vega.github.io/vega-tutorials/debugging/ debug screen]. I don&#039;t know all the details yet, but I think it doesn&#039;t appear unless your program has marks that use a data field (AKA they use &amp;quot;from&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65485</id>
		<title>Tutorial/Graphs</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65485"/>
		<updated>2023-04-09T01:41:01Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#css:&lt;br /&gt;
.mw-content-ltr .mw-collapsible-toggle{float:none;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Graphs are these crazy little things that can create javascript canvas, which makes them much more powerful than HTML or CSS or modules.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Graphs are created using JSON text inside of a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag, using the [https://github.com/nyurik/vega/wiki/ Vega 2.0] data visualization language.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
There are three types of properties that are most important for making a graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039; are objects drawn on the graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039; take user input to make the graph interactive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039; can be used to store information, [[okin|akin]] to variables.&lt;br /&gt;
&lt;br /&gt;
Expand the text for a more detailed overview.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; - to draw marks, they must be given properties such as color, position, etc. When specifying a property, you should say whether it will be given to the object when it&#039;s first drawn (&#039;&#039;enter&#039;&#039;), recalculated every time it&#039;s drawn (&#039;&#039;update&#039;&#039;), when the mark is hovered over (&#039;&#039;hover&#039;&#039;), or when the mark is removed (&#039;&#039;exit&#039;&#039;).&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Streams&#039;&#039;&#039; - short for &amp;quot;event streams&amp;quot; pick up input like mouse clicks, keyboard presses, etc.&lt;br /&gt;
*&#039;&#039;&#039;Expressions&#039;&#039;&#039; - the value of the signal is set by an expression. Expressions use &lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Data Transform&#039;&#039;&#039; - data can be altered by applying different transforms to it, like filtering out certain values, sorting data, performing math on the data, etc.&lt;br /&gt;
*&#039;&#039;&#039;Streaming Data&#039;&#039;&#039; - data can also be &#039;&#039;&#039;modified&#039;&#039;&#039; by inserting and removing data points, or toggling whether they are including in a data set. The modified points are determined by a signal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example: Rectangle==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Let&#039;s draw a rectangle. Here is the starting point.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every graph is contained between the &amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;&amp;lt;/graph&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Then comes the JSON object which will contain all the data in our graph. JSON objects are wrapped in {} braces and contain a list of key-value pairs like this &amp;lt;syntaxhighlight&amp;gt;&amp;quot;key&amp;quot;:&amp;quot;value&amp;quot;&amp;lt;/syntaxhighlight&amp;gt; In this case, the first key is &amp;quot;width&amp;quot; and its value is 200. In general, a key is a string, and the value can be a string, a number, an array, or another JSON object. A list of keys/values are separated by commas, and the last doesn&#039;t have a comma.&lt;br /&gt;
&lt;br /&gt;
The height and width here determine the size of the graph.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we add a key &amp;quot;&#039;&#039;&#039;marks&#039;&#039;&#039;&amp;quot; with an array value. Each entry of the array will be an object providing instructions on how to draw something to the screen. Also remember to add the comma to the &amp;quot;height&amp;quot; line now, since it&#039;s no longer the end of the list!&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are more key/value pairs, inside the first object of the marks array. We set the name of the object to &amp;quot;square,&amp;quot; and declare that it should be a rectangle. Other types of mark include symbols, paths, arcs, areas, lines, rules, text, and groups. Now we need to describe how to draw the rectangle, using a number of &amp;quot;properties.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Since graphs are interactive, we need to say immediately whether a property of the rectangle will change and have to be updated. These will go in the &amp;quot;update&amp;quot; section. Others can go in &amp;quot;enter,&amp;quot; and get looked at when the rectangle is first drawn, but not ever again.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
First we&#039;d like to set the width of the rectangle. This is done with the key &amp;quot;width&amp;quot; and a value which is another object. This object is called a value reference and has a key named &amp;quot;value&amp;quot; with the value 50. If you simply set &amp;quot;width&amp;quot;:50 then the rectangle won&#039;t render. You need the value reference.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we set the height and the x-/y-position of the rectangle. Remember that the x- and y- coordinates start counting from the top left corner, unlike regular Cartesian coordinates. The x-value increases going to the right, but the y-value increases going down.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The last step is to set the fill color of the rectangle. Check out your graph! If it&#039;s not showing up, double check for missing/extra commas, and square brackets that should be braces (or vice versa).&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example: Clicking==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
To add interactivity to our graph, we&#039;re going to introduce &#039;&#039;&#039;signals&#039;&#039;&#039;. A signal is a variable that responds to user input. If another value is set equal to a signal, then it updates whenever the signal updates. We&#039;re going to set the fill color of our rectangle equal to a signal so that when we click, it turns red.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
It starts out the same way, but instead of marks we&#039;re going to define an array of signals. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We&#039;ll give the signal a name, and then create a &#039;&#039;&#039;streams&#039;&#039;&#039; array. Streams are what will allow us to capture the mouse clicking. Each object in the array will need to have a &amp;quot;type&amp;quot; which describes what input to record, and an &amp;quot;expr&amp;quot; expression to determine what its updated value should be.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The type is given in two parts: the first describes which object will watch for events, and the second describes what events to watch out for. &amp;quot;window:mousedown&amp;quot; records any time the mouse is pressed down anywhere on the page (window). Besides mousedown, there are other events for keyboard presses, mouse dragging, scrolling, double clicking, as well touch screen events for mobile devices. Besides window, other objects could be all marks of a certain type e.g. &amp;quot;rect:mousedown&amp;quot; or a mark with a specific name e.g. &amp;quot;@square:mousedown&amp;quot; (the @ is required for names). It could even be a CSS selector for an element on the page, e.g. &amp;quot;#header:mousedown&amp;quot; for an HTML element with id &amp;quot;header.&amp;quot; If the first half is omitted entirely, then it tracks events anywhere in the graph window e.g. &amp;quot;mousedown.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If the mouse is pressed down, the &amp;quot;clicked&amp;quot; signal is set equal to \&amp;quot;red.\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Since the expression is wrapped in quotes, and we want the value to be &amp;quot;red&amp;quot; (a string), then we need to escape the inner quotes. This can also be done with single quotes, i.e. &amp;quot;expr&amp;quot;:&amp;quot;&#039;red&#039;&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We&#039;ll add another object to our set of streams. This one will watch for any time the mouse is released anywhere on the website, and it sets &amp;quot;clicked&amp;quot; equal to &amp;quot;steelblue.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we add back our rectangle.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we set the value of our rectangle&#039;s &amp;quot;fill&amp;quot; to be the &amp;quot;clicked&amp;quot; signal. Whenever a mouse is pressed or released on the window, &amp;quot;clicked&amp;quot; will update, and so will the color of the rectangle. The {&amp;quot;signal&amp;quot;:&amp;quot;name&amp;quot;} object is another kind of value reference.&lt;br /&gt;
&lt;br /&gt;
However, we still have a problem. When the program is first run, the signal &amp;quot;clicked&amp;quot; isn&#039;t set to anything. It only updates when the status of the mouse updates, and it has no idea whether the mouse is up or down when the graph starts.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last step is to create an &amp;quot;init&amp;quot; property of the stream, which sets signal initially. The value isn&#039;t an expression, so it doesn&#039;t need to have escaped quotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example 3: Data==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Let&#039;s add some data...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is another one of these [https://github.com/vega/vega2-docs/wiki/Visualization top-level properties] which is an array of objects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[5, 10, 15, 25, 50]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can give the data a name, as well as some values. Here&#039;s another way to provide values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[{&amp;quot;hi&amp;quot;:5},{&amp;quot;hi&amp;quot;:&amp;quot;word&amp;quot;},{&amp;quot;hi&amp;quot;:10}]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This makes a list of 3 data points (each one can also be called a datum, a row, or a record). They are each an object, and each has a key called &amp;quot;hi.&amp;quot; This is called the field, or column. The value of that key could be a number, string, or another data set. All data in Vega comes as a list of objects (rows), and each row has a key/value pair for every field (column). When we created the data list before from just numbers, the program automatically assigned these numbers to a field named &amp;quot;data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;hi&amp;quot;:5, &amp;quot;lala&amp;quot;:1},&lt;br /&gt;
        {&amp;quot;hi&amp;quot;:&amp;quot;word&amp;quot;, &amp;quot;lala&amp;quot;:5},&lt;br /&gt;
        {&amp;quot;hi&amp;quot;:{&amp;quot;bye&amp;quot;:4, &amp;quot;bye&amp;quot;:3, &amp;quot;bye&amp;quot;:&amp;quot;word&amp;quot;}, &amp;quot;lala&amp;quot;:8}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another example of a data set. This time, each data point has two fields: &amp;quot;hi&amp;quot; and &amp;quot;lala.&amp;quot; The value of &amp;quot;hi&amp;quot; in the last row is another data set with 3 rows and a field called &amp;quot;bye.&amp;quot; Also note that Vega randomly assigns each data point an ID, in a field called &amp;quot;_id&amp;quot; which is automatically generated and different each time the program runs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
      &lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the data we&#039;ll actually be using. It has three fields called &amp;quot;x,&amp;quot; &amp;quot;y,&amp;quot; and &amp;quot;message.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We also create an array of &#039;&#039;&#039;data transforms&#039;&#039;&#039;. These describe operations that can be performed on data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are many [https://github.com/vega/vega2-docs/wiki/Data-Transforms types] of data transforms. The most useful is probably formula, which will allow us to use expressions to change data. Other useful transforms include filter, which removes any data that doesn&#039;t satisfy a test condition, and lookup, which imports data points from another data set based on matching data.&lt;br /&gt;
&lt;br /&gt;
Here, the &#039;&#039;type&#039;&#039; of data transform is formula, and it will update the values of the &#039;&#039;field&#039;&#039; &amp;quot;x.&amp;quot; The &#039;&#039;expression&#039;&#039; will return the datum&#039;s &amp;quot;x&amp;quot; field added to 5. The object &amp;quot;datum&amp;quot; stores the key/value pairs for each field in the current data point. For example, if we kept the &#039;&#039;type&#039;&#039; and &#039;&#039;field&#039;&#039; the same, but changed the &#039;&#039;expr&#039;&#039; to &amp;quot;datum.message + &#039; hello&#039;&amp;quot; then the data would look like this after the transform:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{&amp;quot;x&amp;quot;:&amp;quot;we hello&amp;quot;, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
{&amp;quot;x&amp;quot;:&amp;quot;seals hello&amp;quot;, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
{&amp;quot;x&amp;quot;:&amp;quot;three hello&amp;quot;, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Expressions also have access to the names of signals. To see this, let&#039;s add back our signal from the last example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we&#039;re going to create another formula transform.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This formula creates a new field called &amp;quot;color&amp;quot; and for each data point sets it to the value of the signal &amp;quot;clicked.&amp;quot; Every time &amp;quot;clicked&amp;quot; updates, this formula will be recalculated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now we&#039;re going to create another formula transform.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We&#039;re going to create a new kind of mark this time, for displaying text. The text will be drawn using data from our data set, so we need to tell it where our data is.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;}&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;from&amp;quot; property is used to do this, and its value is a reference to our data named &amp;quot;table.&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;},&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We start filling in the properties for each text object. Instead of specifying an x-value using a direct value like {&amp;quot;value&amp;quot;:5}, we use a different kind of value reference. {&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;} tells the program to use the &amp;quot;x&amp;quot; field in the &amp;quot;table&amp;quot; data set we gave earlier. A new &amp;quot;text&amp;quot; mark will be created for every row in the &amp;quot;table&amp;quot; data set, and its &amp;quot;x&amp;quot; value will be the &amp;quot;x&amp;quot; value of the corresponding row.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;},&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;y&amp;quot;},&lt;br /&gt;
          &amp;quot;text&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;message&amp;quot;}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We fill in the other properties for our text. The &amp;quot;text&amp;quot; property determines what the text will say. Note that &amp;quot;height&amp;quot; and &amp;quot;width&amp;quot; aren&#039;t required, since they&#039;re determined by the text. The &amp;quot;fill&amp;quot; property is placed in the &amp;quot;update&amp;quot; section, since the &amp;quot;clicked&amp;quot; signal will change the value of the &amp;quot;color&amp;quot; field.&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;init&amp;quot;:&amp;quot;steelblue&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;red\&amp;quot;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;\&amp;quot;steelblue\&amp;quot;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;data&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;table&amp;quot;,&lt;br /&gt;
      &amp;quot;values&amp;quot;:[&lt;br /&gt;
        {&amp;quot;x&amp;quot;:5, &amp;quot;y&amp;quot;:5, &amp;quot;message&amp;quot;:&amp;quot;we&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:25, &amp;quot;y&amp;quot;:30, &amp;quot;message&amp;quot;:&amp;quot;seals&amp;quot;},&lt;br /&gt;
        {&amp;quot;x&amp;quot;:50, &amp;quot;y&amp;quot;:90, &amp;quot;message&amp;quot;:&amp;quot;three&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;transform&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;datum.x + 5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;formula&amp;quot;,&lt;br /&gt;
          &amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;clicked&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;messages&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;},&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;x&amp;quot;},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;y&amp;quot;},&lt;br /&gt;
          &amp;quot;text&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;message&amp;quot;}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;field&amp;quot;:&amp;quot;color&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
The [http://vega.github.io/vega-editor/ online Vega editor] is kinda annoying because it doesn&#039;t tell you what you did wrong besides small typos. Here is a list of things to check if your graph isn&#039;t working.&lt;br /&gt;
&lt;br /&gt;
Simple typos.&lt;br /&gt;
*Every item in a list must have a comma after it.&lt;br /&gt;
*The last item in a list can&#039;t have a comma after it.&lt;br /&gt;
*Are any colons placed inside strings? &amp;lt;code&amp;gt;&amp;quot;width:&amp;quot;50&amp;lt;/code&amp;gt; will give an error.&lt;br /&gt;
*Strings inside of strings should be placed inside single quotes, not double quotes.&lt;br /&gt;
*Be careful with terms that are written with square brackets, with braces around individual items. For example, &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[{...}]&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:&amp;lt;nowiki&amp;gt;{{...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[...]&amp;lt;/code&amp;gt;&lt;br /&gt;
*Pay attention to whether important terms are singular or plural. Plural: &amp;quot;data,&amp;quot; &amp;quot;marks,&amp;quot; &amp;quot;signals,&amp;quot; &amp;quot;streams.&amp;quot; Singular: &amp;quot;transform,&amp;quot; &amp;quot;modify.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Other.&lt;br /&gt;
*Are there any mark properties given directly? For example, putting &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:50&amp;lt;/code&amp;gt; will produce an error, when it should be &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&amp;lt;/code&amp;gt;&lt;br /&gt;
*If marks use data, make sure to set &amp;quot;from&amp;quot; correctly. If I&#039;m importing a data set named &amp;quot;table&amp;quot; then use I&#039;ll use &amp;quot;from&amp;quot;:{&amp;quot;data&amp;quot;:&amp;quot;table&amp;quot;} rather than just &amp;quot;from&amp;quot;:&amp;quot;table&amp;quot;&lt;br /&gt;
*Make sure that the variables used in an expression exist. For example, when the program first starts running, some signals may not have a value (usually if they don&#039;t have an &amp;quot;init&amp;quot;), so expressions may behave strangely.&lt;br /&gt;
*If you need your mark to respond to input, any properties that change must be put in the &amp;quot;update&amp;quot; section instead of &amp;quot;enter!&amp;quot;&lt;br /&gt;
*The editor saves your code (I think when you run it), and runs it when you first load the website. So if your program gets caught in an infinite loop, you need to clear cookies on the site to use it again. This will remove all your code. If you think your program might loop, you should save it in another document first.&lt;br /&gt;
*Make sure to test your program often!&lt;br /&gt;
&lt;br /&gt;
Additionally, the vega editor has a [http://vega.github.io/vega-tutorials/debugging/ debug screen]. I don&#039;t know all the details yet, but I think it doesn&#039;t appear unless your program has marks that use a data field (AKA they use &amp;quot;from&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65180</id>
		<title>Tutorial/Graphs</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65180"/>
		<updated>2023-04-08T04:09:43Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graphs are these crazy little things that can create javascript canvas, which makes them much more powerful than HTML or CSS or modules.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Graphs are created using JSON text inside of a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag, using the [https://github.com/nyurik/vega/wiki/ Vega 2.0] data visualization language.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
There are three types of properties that are most important for making a graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039; are objects drawn on the graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039; take user input to make the graph interactive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039; can be used to store information, [[okin|akin]] to variables.&lt;br /&gt;
&lt;br /&gt;
Expand the text for a more detailed overview.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; - to draw marks, they must be given properties such as color, position, etc. When specifying a property, you should say whether it will be given to the object when it&#039;s first drawn (&#039;&#039;enter&#039;&#039;), recalculated every time it&#039;s drawn (&#039;&#039;update&#039;&#039;), when the mark is hovered over (&#039;&#039;hover&#039;&#039;), or when the mark is removed (&#039;&#039;exit&#039;&#039;).&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Streams&#039;&#039;&#039; - short for &amp;quot;event streams&amp;quot; pick up input like mouse clicks, keyboard presses, etc.&lt;br /&gt;
*&#039;&#039;&#039;Expressions&#039;&#039;&#039; - the value of the signal is set by an expression. Expressions use &lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Data Transform&#039;&#039;&#039; - data can be altered by applying different transforms to it, like filtering out certain values, sorting data, performing math on the data, etc.&lt;br /&gt;
*&#039;&#039;&#039;Streaming Data&#039;&#039;&#039; - data can also be &#039;&#039;&#039;modified&#039;&#039;&#039; by inserting and removing data points, or toggling whether they are including in a data set. The modified points are determined by a signal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example: Rectangle==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s draw a rectangle. Here is the starting point.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every graph is contained between the &amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;&amp;lt;/graph&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Then comes the JSON object which will contain all the data in our graph. JSON objects are wrapped in {} braces and contain a list of key-value pairs like this &amp;lt;source&amp;gt;&amp;quot;key&amp;quot;:&amp;quot;value&amp;quot;&amp;lt;/source&amp;gt; In this case, the first key is &amp;quot;width&amp;quot; and its value is 200. In general, a key is a string, and the value can be a string, a number, an array, or another JSON object. A list of keys/values are separated by commas, and the last doesn&#039;t have a comma.&lt;br /&gt;
&lt;br /&gt;
The height and width here determine the size of the graph.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we add a key &amp;quot;&#039;&#039;&#039;marks&#039;&#039;&#039;&amp;quot; with an array value. Each entry of the array will be an object providing instructions on how to draw something to the screen. Also remember to add the comma to the &amp;quot;height&amp;quot; line now, since it&#039;s no longer the end of the list!&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are more key/value pairs, inside the first object of the marks array. We set the name of the object to &amp;quot;square,&amp;quot; and declare that it should be a rectangle. Other types of mark include symbols, paths, arcs, areas, lines, rules, text, and groups. Now we need to describe how to draw the rectangle, using a number of &amp;quot;properties.&amp;quot;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Since graphs are interactive, we need to say immediately whether a property of the rectangle will change and have to be updated. These will go in the &amp;quot;update&amp;quot; section. Others can go in &amp;quot;enter,&amp;quot; and get looked at when the rectangle is first drawn, but not ever again.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
First we&#039;d like to set the width of the rectangle. This is done with the key &amp;quot;width&amp;quot; and a value which is another object. This object is called a value reference and has a key named &amp;quot;value&amp;quot; with the value 50. If you simply set &amp;quot;width&amp;quot;:50 then the rectangle won&#039;t render. You need the value reference.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Now we set the height and the x-/y-position of the rectangle. Remember that the x- and y- coordinates start counting from the top left corner, unlike regular Cartesian coordinates. The x-value increases going to the right, but the y-value increases going down.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The last step is to set the fill color of the rectangle. Check out your graph! If it&#039;s not showing up, double check for missing/extra commas, and square brackets that should be braces (or vice versa).&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example: Clicking==&lt;br /&gt;
To add interactivity to our graph, we&#039;re going to introduce &#039;&#039;&#039;signals&#039;&#039;&#039;. A signal is a variable that responds to user input. If another value is set equal to a signal, then it updates whenever the signal updates. We&#039;re going to set the fill color of our rectangle equal to a signal so that when we click, it turns red.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
It starts out the same way, but instead of marks we&#039;re going to define an array of signals. &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll give the signal a name, and then create a &#039;&#039;&#039;streams&#039;&#039;&#039; array. Streams are what will allow us to capture the mouse clicking. Each object in the array will need to have a &amp;quot;type&amp;quot; which describes what input to record, and an &amp;quot;expr&amp;quot; expression to determine what its updated value should be.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The type is given in two parts: the first describes which object will watch for events, and the second describes what events to watch out for. &amp;quot;window:mousedown&amp;quot; records any time the mouse is pressed down anywhere on the page (window). Besides mousedown, there are other events for keyboard presses, mouse dragging, scrolling, double clicking, as well touch screen events for mobile devices. Besides window, other objects could be all marks of a certain type e.g. &amp;quot;rect:mousedown&amp;quot; or a mark with a specific name e.g. &amp;quot;@square:mousedown&amp;quot; (the @ is required for names). It could even be a CSS selector for an element on the page, e.g. &amp;quot;#header:mousedown&amp;quot; for an HTML element with id &amp;quot;header.&amp;quot; If the first half is omitted entirely, then it tracks events anywhere in the graph window e.g. &amp;quot;mousedown.&amp;quot;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;red&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the mouse is pressed down, the &amp;quot;clicked&amp;quot; signal is set equal to &amp;quot;red.&amp;quot; We&#039;ll see more examples of expressions later. &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;red&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;steelblue&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll add another object to our set of streams. This one will watch for any time the mouse is released anywhere on the website, and it sets &amp;quot;clicked&amp;quot; equal to &amp;quot;steelblue.&amp;quot;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;red&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;steelblue&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Now we add back our rectangle.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;signals&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;clicked&amp;quot;,&lt;br /&gt;
      &amp;quot;streams&amp;quot;:[&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mousedown&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;red&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;:&amp;quot;window:mouseup&amp;quot;,&lt;br /&gt;
          &amp;quot;expr&amp;quot;:&amp;quot;steelblue&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;signal&amp;quot;:&amp;quot;clicked&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The last step is to set the value of our rectangle&#039;s &amp;quot;fill&amp;quot; to be the &amp;quot;clicked&amp;quot; signal. Whenever a mouse is pressed or released on the window, &amp;quot;clicked&amp;quot; will update, and so will the color of the rectangle. The {&amp;quot;signal&amp;quot;:&amp;quot;name&amp;quot;} object is another kind of value reference.&lt;br /&gt;
&lt;br /&gt;
...Uhh so I guess this code doesn&#039;t actually work. I&#039;ll figure out why later. I always just use production rules rather than {&amp;quot;signal&amp;quot;:&amp;quot;name&amp;quot;} and that seems to work fine.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
The [http://vega.github.io/vega-editor/ online Vega editor] is kinda annoying because it doesn&#039;t tell you what you did wrong besides small typos. Here is a list of things to check if your graph isn&#039;t working.&lt;br /&gt;
&lt;br /&gt;
Simple typos.&lt;br /&gt;
*Every item in a list must have a comma after it.&lt;br /&gt;
*The last item in a list can&#039;t have a comma after it.&lt;br /&gt;
*Are any colons placed inside strings? &amp;lt;code&amp;gt;&amp;quot;width:&amp;quot;50&amp;lt;/code&amp;gt; will give an error.&lt;br /&gt;
*Strings inside of strings should be placed inside single quotes, not double quotes.&lt;br /&gt;
*Be careful with terms that are written with square brackets, with braces around individual items. For example, &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[{...}]&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:&amp;lt;nowiki&amp;gt;{{...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[...]&amp;lt;/code&amp;gt;&lt;br /&gt;
*Pay attention to whether important terms are singular or plural. Plural: &amp;quot;data,&amp;quot; &amp;quot;marks,&amp;quot; &amp;quot;signals,&amp;quot; &amp;quot;streams.&amp;quot; Singular: &amp;quot;transform,&amp;quot; &amp;quot;modify.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Other.&lt;br /&gt;
*Are there any mark properties given directly? For example, putting &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:50&amp;lt;/code&amp;gt; will produce an error, when it should be &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&amp;lt;/code&amp;gt;&lt;br /&gt;
*Make sure that the variables used in an expression exist. For example, when the program first starts running, some signals may not have a value (usually if they don&#039;t have an &amp;quot;init&amp;quot;), so expressions may behave strangely.&lt;br /&gt;
*If you need your mark to respond to input, any properties that change must be put in the &amp;quot;update&amp;quot; section instead of &amp;quot;enter!&amp;quot;&lt;br /&gt;
*The editor saves your code (I think when you run it), and runs it when you first load the website. So if your program gets caught in an infinite loop, you need to clear cookies on the site to use it again. This will remove all your code. If you think your program might loop, you should save it in another document first.&lt;br /&gt;
*Make sure to test your program often!&lt;br /&gt;
&lt;br /&gt;
Additionally, the vega editor has a [http://vega.github.io/vega-tutorials/debugging/ debug screen]. I don&#039;t know all the details yet, but I think it doesn&#039;t appear unless your program has marks that use a data field (AKA they use &amp;quot;from&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65145</id>
		<title>Tutorial/Graphs</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65145"/>
		<updated>2023-04-08T03:24:29Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graphs are these crazy little things that can create javascript canvas, which makes them much more powerful than HTML or CSS or even modules.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Graphs are created using JSON text inside of a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag, using the [https://github.com/nyurik/vega/wiki/ Vega 2.0] data visualization language.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
There are three types of properties that are most important for making a graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039; are objects drawn on the graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039; take user input to make the graph interactive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039; can be used to store information, [[okin|akin]] to variables.&lt;br /&gt;
&lt;br /&gt;
Expand the text for a more detailed overview.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; - to draw marks, they must be given properties such as color, position, etc. When specifying a property, you should say whether it will be given to the object when it&#039;s first drawn (&#039;&#039;enter&#039;&#039;), recalculated every time it&#039;s drawn (&#039;&#039;update&#039;&#039;), when the mark is hovered over (&#039;&#039;hover&#039;&#039;), or when the mark is removed (&#039;&#039;exit&#039;&#039;).&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Streams&#039;&#039;&#039; - short for &amp;quot;event streams&amp;quot; pick up input like mouse clicks, keyboard presses, etc.&lt;br /&gt;
*&#039;&#039;&#039;Expressions&#039;&#039;&#039; - the value of the signal is set by an expression. Expressions use &lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Data Transform&#039;&#039;&#039; - data can be altered by applying different transforms to it, like filtering out certain values, sorting data, performing math on the data, etc.&lt;br /&gt;
*&#039;&#039;&#039;Streaming Data&#039;&#039;&#039; - data can also be &#039;&#039;&#039;modified&#039;&#039;&#039; by inserting and removing data points, or toggling whether they are including in a data set. The modified points are determined by a signal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Example: Rectangle==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s draw a rectangle. Here is the starting point.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every graph is contained between the &amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;&amp;lt;/graph&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Then comes the JSON object which will contain all the data in our graph. JSON objects are wrapped in {} braces and contain a list of key-value pairs like this &amp;lt;source&amp;gt;&amp;quot;key&amp;quot;:&amp;quot;value&amp;quot;&amp;lt;/source&amp;gt; In this case, the first key is &amp;quot;width&amp;quot; and its value is 200. In general, a key is a string, and the value can be a string, a number, an array, or another JSON object. A list of keys/values are separated by commas, and the last doesn&#039;t have a comma.&lt;br /&gt;
&lt;br /&gt;
The height and width here determine the size of the graph.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we add a key &amp;quot;marks&amp;quot; with an array value. Each entry of the array will be an object providing instructions on how to draw something to the screen. Also remember to add the comma to the &amp;quot;height&amp;quot; line now, since it&#039;s no longer the end of the list!&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are more key/value pairs, inside the first object of the marks array. We set the name of the object to &amp;quot;square,&amp;quot; and declare that it should be a rectangle. Other types of mark include symbols, paths, arcs, areas, lines, rules, text, and groups. Now we need to describe how to draw the rectangle, using a number of &amp;quot;properties.&amp;quot;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Since graphs are interactive, we need to say immediately whether a property of the rectangle will change and have to be updated. These will go in the &amp;quot;update&amp;quot; section. Others can go in &amp;quot;enter,&amp;quot; and get looked at when the rectangle is first drawn, but not ever again.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
First we&#039;d like to set the width of the rectangle. This is done with the key &amp;quot;width&amp;quot; and a value which is another object. This object is called a value reference and has a key named &amp;quot;value&amp;quot; with the value 50. If you simply set &amp;quot;width&amp;quot;:50 then the rectangle won&#039;t render. You need the value reference.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Now we set the height and the x-/y-position of the rectangle. Remember that the x- and y- coordinates start counting from the top left corner, unlike regular Cartesian coordinates. The x-value increases going to the right, but the y-value increases going down.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The last step is to set the fill color of the rectangle. Check out your graph! If it&#039;s not showing up, double check for missing/extra commas, and square brackets that should be braces (or vice versa).&lt;br /&gt;
&amp;lt;graph&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;width&amp;quot;:200,&lt;br /&gt;
  &amp;quot;height&amp;quot;:200,&lt;br /&gt;
  &amp;quot;marks&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;name&amp;quot;:&amp;quot;square&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;:&amp;quot;rect&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:{&lt;br /&gt;
        &amp;quot;enter&amp;quot;:{&lt;br /&gt;
          &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;height&amp;quot;:{&amp;quot;value&amp;quot;:50},&lt;br /&gt;
          &amp;quot;x&amp;quot;:{&amp;quot;value&amp;quot;:20},&lt;br /&gt;
          &amp;quot;y&amp;quot;:{&amp;quot;value&amp;quot;:30}&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;update&amp;quot;:{&lt;br /&gt;
          &amp;quot;fill&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;steelblue&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/graph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example: Clicking==&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
The [http://vega.github.io/vega-editor/ online Vega editor] is kinda annoying because it doesn&#039;t tell you what you did wrong besides small typos. Here is a list of things to check if your graph isn&#039;t working.&lt;br /&gt;
&lt;br /&gt;
Simple typos.&lt;br /&gt;
*Every item in a list must have a comma after it.&lt;br /&gt;
*The last item in a list can&#039;t have a comma after it.&lt;br /&gt;
*Are any colons placed inside strings? &amp;lt;code&amp;gt;&amp;quot;width:&amp;quot;50&amp;lt;/code&amp;gt; will give an error.&lt;br /&gt;
*Strings inside of strings should be placed inside single quotes, not double quotes.&lt;br /&gt;
*Be careful with terms that are written with square brackets, with braces around individual items. For example, &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[{...}]&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:&amp;lt;nowiki&amp;gt;{{...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;data&amp;quot;:[...]&amp;lt;/code&amp;gt;&lt;br /&gt;
*Pay attention to whether important terms are singular or plural. Plural: &amp;quot;data,&amp;quot; &amp;quot;marks,&amp;quot; &amp;quot;signals,&amp;quot; &amp;quot;streams.&amp;quot; Singular: &amp;quot;transform,&amp;quot; &amp;quot;modify.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Other.&lt;br /&gt;
*Are there any mark properties given directly? For example, putting &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:50&amp;lt;/code&amp;gt; will produce an error, when it should be &amp;lt;code&amp;gt;&amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&amp;lt;/code&amp;gt;&lt;br /&gt;
*Make sure that the variables used in an expression exist. For example, when the program first starts running, some signals may not have a value (usually if they don&#039;t have an &amp;quot;init&amp;quot;), so expressions may behave strangely.&lt;br /&gt;
*If you need your mark to respond to input, any properties that change must be put in the &amp;quot;update&amp;quot; section instead of &amp;quot;enter!&amp;quot;&lt;br /&gt;
*The editor saves your code (I think when you run it), and runs it when you first load the website. So if your program gets caught in an infinite loop, you need to clear cookies on the site to use it again. This will remove all your code. If you think your program might loop, you should save it in another document first.&lt;br /&gt;
*Make sure to test your program often!&lt;br /&gt;
&lt;br /&gt;
Additionally, the vega editor has a [http://vega.github.io/vega-tutorials/debugging/ debug screen]. I don&#039;t know all the details yet, but I think it doesn&#039;t appear unless your program has marks that use a data field (AKA they use &amp;quot;from&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65114</id>
		<title>Tutorial/Graphs</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Tutorial/Graphs&amp;diff=65114"/>
		<updated>2023-04-08T02:38:29Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;Graphs are these crazy little things that can create javascript canvas, which makes them much more powerful than HTML or CSS or even modules.  ==Introduction== Graphs are crea...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Graphs are these crazy little things that can create javascript canvas, which makes them much more powerful than HTML or CSS or even modules.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Graphs are created using JSON text inside of a &amp;lt;nowiki&amp;gt;&amp;lt;graph&amp;gt;&amp;lt;/nowiki&amp;gt; tag, using the [https://github.com/nyurik/vega/wiki/ Vega 2.0] data visualization language.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
There are three types of properties that are most important for making a graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039; are objects drawn on the graph.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039; take user input to make the graph interactive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039; can be used to store information, [[okin|akin]] to variables.&lt;br /&gt;
&lt;br /&gt;
Here is a more detailed overview:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Marks&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; - to draw marks, they must be given properties such as color, position, etc. When specifying a property, you should say whether it will be given to the object when it&#039;s first drawn (&#039;&#039;enter&#039;&#039;), recalculated every time it&#039;s drawn (&#039;&#039;update&#039;&#039;), when the mark is hovered over (&#039;&#039;hover&#039;&#039;), or when the mark is removed (&#039;&#039;exit&#039;&#039;).&lt;br /&gt;
&#039;&#039;&#039;Signals&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Streams&#039;&#039;&#039; - short for &amp;quot;event streams&amp;quot; pick up input like mouse clicks, keyboard presses, etc.&lt;br /&gt;
*&#039;&#039;&#039;Expressions&#039;&#039;&#039; - the value of the signal is set by an expression. Expressions use &lt;br /&gt;
&#039;&#039;&#039;Data&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Data Transform&#039;&#039;&#039; - data can be altered by applying different transforms to it, like filtering out certain values, sorting data, performing math on the data, etc.&lt;br /&gt;
*&#039;&#039;&#039;Streaming Data&#039;&#039;&#039; - data can also be &#039;&#039;&#039;modified&#039;&#039;&#039; by inserting and removing data points, or toggling whether they are including in a data set. The modified points are determined by a signal.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
The [http://vega.github.io/vega-editor/ online Vega editor] is kinda annoying because it doesn&#039;t tell you what you did wrong besides small typos. Here is a list of things to check if your graph isn&#039;t working.&lt;br /&gt;
&lt;br /&gt;
Simple typos.&lt;br /&gt;
*Every item in a list must have a comma after it.&lt;br /&gt;
*The last item in a list can&#039;t have a comma after it.&lt;br /&gt;
*Are any colons placed inside strings? &amp;quot;width:&amp;quot;50 will give an error.&lt;br /&gt;
*Strings inside of strings should be placed inside single quotes, not double quotes.&lt;br /&gt;
*Be careful with terms that are written with square brackets, with braces around individual items. For example, &amp;quot;data&amp;quot;:[{...}] instead of &amp;quot;data&amp;quot;:&amp;lt;nowiki&amp;gt;{{...}}&amp;lt;/nowiki&amp;gt; or &amp;quot;data&amp;quot;:[...]&lt;br /&gt;
*Pay attention to whether important terms are singular or plural. Plural: &amp;quot;data,&amp;quot; &amp;quot;marks,&amp;quot; &amp;quot;signals,&amp;quot; &amp;quot;streams.&amp;quot; Singular: &amp;quot;transform,&amp;quot; &amp;quot;modify.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Other.&lt;br /&gt;
*Are there any mark properties given directly? For example, putting &amp;quot;width&amp;quot;:50 will produce an error, when it should be &amp;quot;width&amp;quot;:{&amp;quot;value&amp;quot;:50}&lt;br /&gt;
*Make sure that the variables used in an expression exist. For example, when the program first starts running, some signals may not have a value (usually if they don&#039;t have an &amp;quot;init&amp;quot;), so expressions may behave strangely.&lt;br /&gt;
*If you need your mark to respond to input, any properties that change must be put in the &amp;quot;update&amp;quot; section instead of &amp;quot;enter!&amp;quot;&lt;br /&gt;
*The editor saves your code (I think when you run it), and runs it when you first load the website. So if your program gets caught in an infinite loop, you need to clear cookies on the site to use it again. This will remove all your code. If you think your program might loop, you should save it in another document first.&lt;br /&gt;
*Make sure to test your program often!&lt;br /&gt;
&lt;br /&gt;
Additionally, the vega editor has a [http://vega.github.io/vega-tutorials/debugging/ debug screen]. I don&#039;t know all the details yet, but I think it doesn&#039;t appear unless your program has marks that use a data field (AKA they use &amp;quot;from&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User_talk:FallingPineapples/What_if_a_graph_kept_asking_for_more_memory%3F&amp;diff=64829</id>
		<title>User talk:FallingPineapples/What if a graph kept asking for more memory?</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User_talk:FallingPineapples/What_if_a_graph_kept_asking_for_more_memory%3F&amp;diff=64829"/>
		<updated>2023-04-07T20:57:54Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;Hi mysterious graph user... can I ask you a graph question...  Right now my graphs can&amp;#039;t update unless I get an input in &amp;#039;streams&amp;#039;. I&amp;#039;d like them to update continuously, so I...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi mysterious graph user... can I ask you a graph question...&lt;br /&gt;
&lt;br /&gt;
Right now my graphs can&#039;t update unless I get an input in &#039;streams&#039;. I&#039;d like them to update continuously, so I can animate stuff and update things on their own. How do I do this? I&#039;ve tried a bunch of hare-brained schemes already. I guess having two signals that call each other to be like a clock doesn&#039;t work, cause they call each other recursively and it freezes. Same if instead one half of the clock is a data set that updates using a signal, and the signal is defined using indata() on that data set. Maybe it&#039;d work if the signal used data transformed in the marks section, but I guess signals can&#039;t use indata() on that data? Anyway, my best bet seems to be by using the force data transform, in interactive mode. I&#039;m pretty sure this works, although I haven&#039;t worked out all the details yet.&lt;br /&gt;
&lt;br /&gt;
But there must be a simpler way! Am I missing something obvious? -[[User:Raul|Raul]] ([[User talk:Raul|talk]]) 20:57, 7 April 2023 (UTC)&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=List_of_Hills_to_Die_On_(Expanded_3rd_Edition)&amp;diff=63605</id>
		<title>List of Hills to Die On (Expanded 3rd Edition)</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=List_of_Hills_to_Die_On_(Expanded_3rd_Edition)&amp;diff=63605"/>
		<updated>2023-04-06T04:03:50Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Calm Hill.jpg|thumb]][[File:Scary Hill.webp|thumb]][[File:Hill4..png|thumb]] [[File:Silenthill.jpg|thumb]][[File:Hill3.png|thumb|Final boss.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Hank_Hill|Final boss.]]&lt;br /&gt;
[[Category:Lists]][[Category:Death]]&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Silenthill.jpg&amp;diff=63603</id>
		<title>File:Silenthill.jpg</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Silenthill.jpg&amp;diff=63603"/>
		<updated>2023-04-06T04:03:01Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Category:Unimportant_pages&amp;diff=63592</id>
		<title>Category:Unimportant pages</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Category:Unimportant_pages&amp;diff=63592"/>
		<updated>2023-04-06T03:58:39Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NerpaPunch Award|Brick}}&lt;br /&gt;
&lt;br /&gt;
meh&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=INTerpalore_Media&amp;diff=62525</id>
		<title>INTerpalore Media</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=INTerpalore_Media&amp;diff=62525"/>
		<updated>2023-04-05T03:10:48Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Girl||bg}}{{ReLogo|INTerpalore Media Logo (March 2022).png|140px|-180|-125}}&amp;lt;font face=&amp;quot;Comfortaa&amp;quot;&amp;gt;&lt;br /&gt;
[[File:INTerpalore Logo (November 2022).png|thumb]]&lt;br /&gt;
[[File:INTerpalore Media Logo (March 2022).png|thumb|INTerpalore&#039;s channel logo.]]&lt;br /&gt;
[[File:Nerpalore.png|thumb|Hidden and when the fedex logo :astonished:]]&lt;br /&gt;
&#039;&#039;&#039;INTerpalore Media&#039;&#039;&#039;, or simply known as &#039;&#039;&#039;INTerpalore&#039;&#039;&#039;, is an indie media group created by Jordan Baumann.&lt;br /&gt;
&lt;br /&gt;
== Characters ==&lt;br /&gt;
&lt;br /&gt;
These include, but are not limited to:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Blue Raspberry]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Grape Juice]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Lego Brick]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Pluggy]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Cherry]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Licorice]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Tacky]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Shieldy]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Meteoroid]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Globe]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Tangeriney&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Doorknob&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BSB&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Darty&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;s&amp;gt;Whiffle Ball&amp;lt;/s&amp;gt; WPB&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Protony&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Neutrony&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Barny&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lemony&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limey&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Rainbow&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Green Triangle&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Yellow Circle&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Blue Square&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[:File:Sprolt3_transparent.png|this robotic creature]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{clear}}{{Another timeline|images=yes}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@INTerpaloreMedia INTerpalore on YouTube]&lt;br /&gt;
[[Category:Suspicious]]&lt;br /&gt;
[[Category:INTerpalore]]&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Nerpalore.png&amp;diff=62518</id>
		<title>File:Nerpalore.png</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Nerpalore.png&amp;diff=62518"/>
		<updated>2023-04-05T03:07:47Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Category:Pages_containing_tobacco&amp;diff=62274</id>
		<title>Category:Pages containing tobacco</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Category:Pages_containing_tobacco&amp;diff=62274"/>
		<updated>2023-04-05T00:03:04Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;Toba&amp;lt;nowiki/&amp;gt;cco is a delightful little form of nico&amp;lt;nowiki/&amp;gt;tine that gives a character the following status buffs: *&amp;#039;&amp;#039;Takes the Edge Off&amp;#039;&amp;#039; - All n...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Toba_Aquarium|Toba]]&amp;lt;nowiki/&amp;gt;cco is a delightful little form of [[Niko|nico]]&amp;lt;nowiki/&amp;gt;tine that gives a character the following status buffs:&lt;br /&gt;
*&#039;&#039;Takes the Edge Off&#039;&#039; - All negative status effects (nervousness, nausea, cowardice, etc.) are removed.&lt;br /&gt;
*&#039;&#039;Smoke break&#039;&#039; - The character is immune to damage for the following turn. May be used once per battle.&lt;br /&gt;
*&#039;&#039;Tar&#039;&#039; - The character gets tar into their lungs&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Category:Liminal_spaces&amp;diff=62273</id>
		<title>Category:Liminal spaces</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Category:Liminal_spaces&amp;diff=62273"/>
		<updated>2023-04-04T23:52:27Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;300px  A liminal space is an international office of the Limbus Company.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ishmael.png|300px]]&lt;br /&gt;
&lt;br /&gt;
A liminal space is an international office of the [[Limbus Company]].&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Mark_Genuine%27s_Funeral_2&amp;diff=61889</id>
		<title>Mark Genuine&#039;s Funeral 2</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Mark_Genuine%27s_Funeral_2&amp;diff=61889"/>
		<updated>2023-04-04T01:37:15Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;well THAT just happened.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Want to escape [[:Category:Eliminated_(official)|hell]]? [[Mark_Genuine&#039;s_Funeral|Die]]! Want to [https://camp2.rectangle.zone/index.php?title=Mark_Genuine&#039;s_Funeral_2 die]? Escape [[:Category:Autoeliminated_(official)|hell]]!&lt;br /&gt;
&lt;br /&gt;
[[File:Damnfire.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Deadmark.jpg]][[User:Airy|Airy]] ([[User talk:Airy|talk]]) 01:27, 4 April 2023 (UTC)&lt;br /&gt;
{{Talk:Mark Genuine&#039;s Funeral 2}}&lt;br /&gt;
&lt;br /&gt;
== Mark Genuine Song ==&lt;br /&gt;
Mark&lt;br /&gt;
&lt;br /&gt;
Mark Genuine&lt;br /&gt;
&lt;br /&gt;
Make my heart shake up like gelatin&lt;br /&gt;
&lt;br /&gt;
Crying tears on a bridge again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark&lt;br /&gt;
&lt;br /&gt;
Mark your heart&lt;br /&gt;
&lt;br /&gt;
Is like a boulder from the sky&lt;br /&gt;
&lt;br /&gt;
Oh it always makes me cry...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MARK&lt;br /&gt;
&lt;br /&gt;
Why did you have to leave&lt;br /&gt;
&lt;br /&gt;
It makes my poor heart seize&lt;br /&gt;
&lt;br /&gt;
Up and yell into the night....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark&lt;br /&gt;
&lt;br /&gt;
Genuine&lt;br /&gt;
&lt;br /&gt;
TOnight&lt;br /&gt;
&lt;br /&gt;
I must dine&lt;br /&gt;
&lt;br /&gt;
Alone, at your grave&lt;br /&gt;
&lt;br /&gt;
With flowers above your name...&lt;br /&gt;
[[Category:Even Better Sequels]]&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Teto_Kasane&amp;diff=61345</id>
		<title>Teto Kasane</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Teto_Kasane&amp;diff=61345"/>
		<updated>2023-04-02T04:05:40Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Kasane Teto&amp;#039;&amp;#039;&amp;#039; (Japanese: くそーテト) is a voicebank for the UTAU singing synthesizer program.  {{Infobox character|name=Teto Kasane|image=File:Teto.we...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Kasane Teto&#039;&#039;&#039; ([[Japan|Japanese]]: くそーテト) is a voicebank for the [[UTAU]] singing synthesizer program. &lt;br /&gt;
{{Infobox character|name=Teto Kasane|image=[[File:Teto.webp|200px]]}}&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
There are many singing synthesizers, such as Vocaloid, UTAU, Synth V, and even etc. Vocaloid was promoted as a paid alternative to free software like UTAU. You may know some Vocaloid. [[Miku|Hatune Miku]]. Or you may not.&lt;br /&gt;
&lt;br /&gt;
These soft [[Morshu|wares]] allow you to sing with the voices of digital creatures, like Teto. Voices have different types called &#039;&#039;&#039;voicebanks&#039;&#039;&#039;, also known as &#039;&#039;&#039;clumps&#039;&#039;&#039;. Teto has many voicebanks including CVC, Whisper, English, or I&#039;m Feeling Lucky. Teto&#039;s voicebanks are available for download on the world wide web. [https://kasaneteto.jp/en-voicebank.html]&lt;br /&gt;
&lt;br /&gt;
=== Explain CVC ===&lt;br /&gt;
Voiced banks come in many ways by letters of C and V. C means calm and V means vicious. A CV bank is calmy vicious, while a CVC bank is viciously calmy vicious. Most English voice banks are CVVC. Simply put, this means it&#039;s hard to tell if a sentence is calmy vicious or viciously calm. This quality is called &#039;&#039;&#039;passion-aggresion&#039;&#039;&#039; and is a key feature of all languages, not just [[English]] and Japanese.&lt;br /&gt;
&lt;br /&gt;
When a voicebank alternates too quickly between calm and vicious, the result is an audible growl. Users of digital singing programs compete to produce realistic growls, instead of harvesting or building structures. Selfish? Well, I think so.&lt;br /&gt;
&lt;br /&gt;
==Creation and Rise to Superstardom==&lt;br /&gt;
On April 1st, 2008, a vocaloid{{Wrong}} was [[🐣|born]]! Kasane Teto was developed by Crypton Future Media{{Wrong}}SEGA{{Wrong}}TWINDRILL in response to an [[April Fools&#039; Day]] prank devised by Vocaloid fans. Kasane&#039;s Teto&#039;s name can be diffcult especially if you are not used to meeting new people. Here is a breakdown.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Kasane&#039;&#039; (&amp;lt;ruby&amp;gt;重&amp;lt;rt&amp;gt;kas&amp;lt;/rt&amp;gt;&amp;lt;/ruby&amp;gt;&amp;lt;ruby&amp;gt;音&amp;lt;rt&amp;gt;ane&amp;lt;/rt&amp;gt;&amp;lt;/ruby&amp;gt;) means &amp;quot;Heavy Sound&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Teto&#039;&#039; is short for &amp;quot;potato&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Her first song was Song of the Eared Robot by Mimirobo-P.[https://www.youtube.com/watch?v=EsZKJD-6S4k]. Since then, she has enjoyed many hit songs like Teto Territory[https://www.youtube.com/watch?v=JALbemLw3G4], Triple Baka[https://www.youtube.com/watch?v=n5n7CSGPzqw], and Ochame Kinou (Fukkireta)[https://www.youtube.com/watch?v=kuNixp-wvWM], all by producer LamazeP.&lt;br /&gt;
&lt;br /&gt;
Teto garnered much of her initial success on the nefarious website [[Niko|Niko Niko Douga]]. This is a Japanese video streaming site best known for establishing the [[Abyssal_World|deep, dark web]] and for its sinister banner ads. One advertisement targeted towards teenage users offered 2 weeks of free cigarettes for every purchase of its anti-malware software. This was part of a larger campaign that ran through 2008 called &amp;quot;Niko Niko nicotine,&amp;quot; intended to reverse declining tobacco sales. &amp;quot;At the time, NNN was a commercial failure&amp;quot; says former Niko Niko Douga CEO [[Gus Fring]], &amp;quot;but sometimes you have to lose a battle to win the war.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Design &amp;amp; Appearance==&lt;br /&gt;
&lt;br /&gt;
Teto wears gray outfit with pink highlights, consisting of a skirt and sleeveless collared shirt, with the [[arm thingy|arm thingies]]. She also has long black boots and a pink [[belt thingy]]. She has pink hair which she wears in two coiled pigtails which resemble drills. Her drills in English go &#039;&#039;VRRRRRRRRRRRR&#039;&#039;; however in Japanese, well they go &#039;&#039;GYUIIIIIIIIIIIIN&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In [[dog|dogs]], 7 years are commonly called 1 year. In Teto, years are called 0.5years. This is because of [[chimera]]. You see, Teto is one. A chimera is an almost entirely mythological creature with the front half of a chimera and the back half of a chimera.&lt;br /&gt;
&lt;br /&gt;
Teto gains chimera wings, which are like [[Damn Seal|devil]] wings, which are like bat wings. She cannot fly, on account of bats are the only true flying [[mammal|mammals]]. Too bad!&lt;br /&gt;
&lt;br /&gt;
On her left arm is a tattoo reading &amp;quot;0401&amp;quot; (you know... her birthday... April 1st... do I have to [[s]][[p]][[e]][[l]][[l]] it out???). She acquired this tattoo while in prison for wire frauf.&lt;br /&gt;
&lt;br /&gt;
==How to Make a Tattoo Gun in Prison==&lt;br /&gt;
&lt;br /&gt;
The following is an excerpt from Teto&#039;s memoir, &#039;&#039;Dreams of Our Generation&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;Expand passage&amp;quot;&amp;gt;&lt;br /&gt;
{{Blockquote|text=&lt;br /&gt;
&#039;&#039;Chapter 8. How to Make a Tattoo Gun in Prison&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
&lt;br /&gt;
*An electric toothbrush.&lt;br /&gt;
*Tape&lt;br /&gt;
*A metal spoon.&lt;br /&gt;
*Pen (ballpoint)&lt;br /&gt;
*Fingernail clippers&lt;br /&gt;
*A paperclip&lt;br /&gt;
*Pen (retractable)&lt;br /&gt;
*A lighter&lt;br /&gt;
&lt;br /&gt;
Tissues or Toilet Paper&lt;br /&gt;
&lt;br /&gt;
The crafting recipes for these materials are available in the appendix.&lt;br /&gt;
&lt;br /&gt;
#Take apart the toothbrush and identify the battery housing and motor.&lt;br /&gt;
#Remove the small gear from the end of the motor shaft. You may need to use a tool such as a knife.&lt;br /&gt;
#Bend the spoon into an L-shape and tape one end going up the side of the motor.&lt;br /&gt;
#Use the fingernail clippers to remove the ball from the end of the ballpoint pen.&lt;br /&gt;
#Disassemble the ballpoint pen. Remove and completely drain the ink cartridge, and clean the tip of the pen. Set both of them aside for now. &lt;br /&gt;
#Take the hollowed-out pen casing and cut it in half.&lt;br /&gt;
#Now tape one of the halves to the other end of the bent spoon.&lt;br /&gt;
#Use a 1cm section of the remaining half casing, and pinch one end flat. Slide this end onto the electric motor&#039;s shaft, and then slip a 1cm section of paperclip between the motor shaft and the casing.&lt;br /&gt;
#Disassemble the retractable pen and locate its spring. Stretch the spring out as far as possible by hand, and then continue stretching over the flame of your lighter. This allows you to completely straighten the spring. While straightening, be careful not to let the spring stay in the flame for too long.&lt;br /&gt;
#Allow the spring to linger in the flame and pull sharply from both ends. This will break the spring in half and leave a sharp point, which will be the needle of the tattoo gun.&lt;br /&gt;
#Wrap the needle in tissue and thread it through the pen casing (the half attached to the spoon). The tissue will absorb unwanted lateral motion of the needle as it goes back and forth through the casing.&lt;br /&gt;
#Bend the back part of the needle into a loop, so that it hooks around the motor shaft.&lt;br /&gt;
#Attach the motor part of this assembly to the conductive material of the toothbrush&#039;s battery housing, so that the motor runs. Fasten with tape.&lt;br /&gt;
&lt;br /&gt;
The tattoo gun has no on/off switch and will run continuously as long as the battery housing is connected to the other components. Therefore, make sure everything is in order before you begin tattooing. Sanitize the needle thoroughly before use, using your lighter flame and rubbing alcohol. In the final stages of construction, ensure the needle is just long enough to pierce the skin. Any more length will just lead to unnecessary pain. And believe me, this will be painful.&lt;br /&gt;
&lt;br /&gt;
Last chapter I detailed the various ways to craft tattoo ink. Next chapter will cover the tattooing process and the standard methods to ward off infection.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Relationships ==&lt;br /&gt;
Miku - Marry&lt;br /&gt;
&lt;br /&gt;
Luka - Kiss&lt;br /&gt;
&lt;br /&gt;
GUMI - Kill&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.mw-content-ltr .mw-collapsible-toggle{&lt;br /&gt;
float:none;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Teto.webp&amp;diff=61343</id>
		<title>File:Teto.webp</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Teto.webp&amp;diff=61343"/>
		<updated>2023-04-02T03:55:20Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Module:Sandbox/Raul&amp;diff=60815</id>
		<title>Module:Sandbox/Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Module:Sandbox/Raul&amp;diff=60815"/>
		<updated>2023-04-01T07:13:59Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
function p.hello (frame) return &amp;quot;Hello, world!&amp;quot; end&lt;br /&gt;
function p.multiReturn(frame) return &amp;quot;Hello, world!&amp;quot;,&amp;quot;Goodbye, world!&amp;quot; end&lt;br /&gt;
function p.tableReturn(frame) mw.logObject({3, 4, 5, 6}) return mw.getLogBuffer() end&lt;br /&gt;
function p.functionReturn(frame) return function(a,b) return &amp;quot;five&amp;quot; end end&lt;br /&gt;
function p.loggy (frame)&lt;br /&gt;
	mw.logObject(frame.args)&lt;br /&gt;
	mw.logObject(mw.getCurrentFrame())&lt;br /&gt;
	mw.logObject(frame:getParent().args)&lt;br /&gt;
	mw.logObject(frame:getTitle())&lt;br /&gt;
	return mw.getLogBuffer() end&lt;br /&gt;
function p.testExpand (frame) return frame:expandTemplate{title=&amp;quot;=&amp;quot;, args={}} end&lt;br /&gt;
function p.newpara (frame)&lt;br /&gt;
	local para = mw.html.create(&amp;quot;p&amp;quot;)&lt;br /&gt;
	para:wikitext(&amp;quot;100% homemade&amp;quot;) return tostring(para) end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Module:Sandbox/Raul&amp;diff=60814</id>
		<title>Module:Sandbox/Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Module:Sandbox/Raul&amp;diff=60814"/>
		<updated>2023-04-01T07:01:09Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
function p.hello (frame) return &amp;quot;Hello, world!&amp;quot; end&lt;br /&gt;
function p.multiReturn(frame) return &amp;quot;Hello, world!&amp;quot;,&amp;quot;Goodbye, world!&amp;quot; end&lt;br /&gt;
function p.tableReturn(frame) return {3, 4, 5, 6} end&lt;br /&gt;
function p.functionReturn(frame) return function(a,b) return &amp;quot;five&amp;quot; end end&lt;br /&gt;
function p.loggy (frame)&lt;br /&gt;
	mw.logObject((frame.args))&lt;br /&gt;
	mw.logObject(mw.getCurrentFrame())&lt;br /&gt;
	mw.logObject(frame:getParent().args)&lt;br /&gt;
	mw.logObject(frame:getTitle())&lt;br /&gt;
	return mw.getLogBuffer() end&lt;br /&gt;
function p.testExpand (frame) return frame:expandTemplate{title=&amp;quot;=&amp;quot;, args={}} end&lt;br /&gt;
function p.newpara (frame)&lt;br /&gt;
	local para = mw.html.create(&amp;quot;p&amp;quot;)&lt;br /&gt;
	para:wikitext(&amp;quot;100% homemade&amp;quot;) return tostring(para) end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Module:Sandbox/Raul&amp;diff=60813</id>
		<title>Module:Sandbox/Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Module:Sandbox/Raul&amp;diff=60813"/>
		<updated>2023-04-01T06:54:30Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;local p = {} function p.hello (frame) return &amp;quot;Hello, world!&amp;quot; end function p.multiReturn(frame) return &amp;quot;Hello, world!&amp;quot;,&amp;quot;Goodbye, world!&amp;quot; end function p.tableReturn(frame) retur...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
function p.hello (frame) return &amp;quot;Hello, world!&amp;quot; end&lt;br /&gt;
function p.multiReturn(frame) return &amp;quot;Hello, world!&amp;quot;,&amp;quot;Goodbye, world!&amp;quot; end&lt;br /&gt;
function p.tableReturn(frame) return {3, 4, 5, 6} end&lt;br /&gt;
function p.functionReturn(frame) return function(a,b) return &amp;quot;five&amp;quot; end end&lt;br /&gt;
function p.loggy (frame)&lt;br /&gt;
	mw.logObject((frame.args))&lt;br /&gt;
	mw.logObject(mw.getCurrentFrame())&lt;br /&gt;
	mw.logObject(frame:getParent().args)&lt;br /&gt;
	mw.logObject(frame:getTitle())&lt;br /&gt;
	return getLogBuffer() end&lt;br /&gt;
function p.testExpand (frame) return expandTemplate{title=&amp;quot;=&amp;quot;, args={}} end&lt;br /&gt;
function p.newpara (frame) local para = mw.html.create(&amp;quot;p&amp;quot;) p:wikitext(&amp;quot;100% homemade&amp;quot;) return tostring(para) end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=San_Francisco&amp;diff=60808</id>
		<title>San Francisco</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=San_Francisco&amp;diff=60808"/>
		<updated>2023-04-01T06:07:39Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;San Francisco, officially th[[Euler&#039;s Number|e]] City and County of San Francisco, is a commercial and cultural center in Northern [[California]]. The city proper is the ???th most populous in the United States, and the most populous in California, with 8 residents as of 2021. This also means that the entire population of California currently resides in San Francisco, at least we think so.&lt;br /&gt;
&lt;br /&gt;
San Francisco and the surrounding [[Baaaaaaay Area]] (of the greater [[Specific Ocean]]) are a global center of whatever is popular in San Francisco.&lt;br /&gt;
&lt;br /&gt;
=== Notable Residents ===&lt;br /&gt;
[[Jeff Plecak]]&lt;br /&gt;
[[Category:California]]&lt;br /&gt;
[[Category:Locations]]&lt;br /&gt;
[[Category:Articles created in August 2022]]&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Reply&amp;diff=60460</id>
		<title>Template:Youtube Reply</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Reply&amp;diff=60460"/>
		<updated>2023-03-31T05:15:22Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;See &amp;lt;nowiki&amp;gt;{{Template:Youtube Comment}}&amp;lt;/nowiki&amp;gt; for how to use.&amp;lt;/noinclude&amp;gt;&amp;lt;onlyinclude&amp;gt;{{#vardefine:replyCount{{#var:threadCount}}|{{#varexists:replyCount{{#var:threadCount}}|{{#expr:{{#var:replyCount{{#var:threadCount}}}}+1}}|1}}}}{{#ifeq:{{#var:replyCount{{#var:threadCount}}}}|1|&amp;lt;div class=&amp;quot;youtube-replies youtube-dropdown mw-customtoggle-{{#var:threadCount}}&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;youtube-replies-arrow&amp;quot;&amp;gt;[[File:Ytreply.png|24px]]&amp;lt;/span&amp;gt; {{#var_final:replyCount{{#var:threadCount}}|1}} replies&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-replies youtube-comment mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-{{#var:threadCount}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author {{#if:{{{isOP|{{{7|}}}}}}|youtube-op|}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{#if:{{{timeAgo|{{{5|}}}}}}|{{{timeAgo|{{{5}}}}}}|1 day ago}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Reply&amp;diff=60459</id>
		<title>Template:Youtube Reply</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Reply&amp;diff=60459"/>
		<updated>2023-03-31T05:12:51Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;See &amp;lt;nowiki&amp;gt;{{Template:Youtube Comment}}&amp;lt;/nowiki&amp;gt; for how to use.&amp;lt;/noinclude&amp;gt;&amp;lt;onlyinclude&amp;gt;{{#vardefine:replyCount{{#var:threadCount}}|{{#varexists:replyCount{{#var:threadCount}}|{{#expr:{{#var:replyCount{{#var:threadCount}}}}+1}}|1}}}}{{#ifeq:{{#var:replyCount{{#var:threadCount}}}}|1|&amp;lt;div class=&amp;quot;youtube-replies youtube-dropdown mw-customtoggle-{{#var:threadCount}}&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;youtube-replies-arrow&amp;quot;&amp;gt;[[File:Ytreply.png|24px]]&amp;lt;/span&amp;gt; {{#var_final:replyCount{{#var:threadCount}}|1}} replies&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-replies youtube-comment mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-{{#var:threadCount}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{#if:{{{timeAgo|{{{5|}}}}}}|{{{timeAgo|{{{5}}}}}}|1 day ago}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60458</id>
		<title>Template:Youtube Comment</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60458"/>
		<updated>2023-03-31T05:12:36Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;There are two youtube comment templates, &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;. They both take the same parameters:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=|pfp=|content=|numLikes=|timeAgo=|isPinned=|isOP=|isHearted=|opPfp=}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
{{Youtube Reply|Spike||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
# &amp;quot;name&amp;quot; is the username in the comment. Defaults to &amp;quot;[[Anonymous]]&amp;quot; if this parameter isn&#039;t given.&lt;br /&gt;
# &amp;quot;pfp&amp;quot; is the profile picture of the comment. You should include the file type here, like &amp;quot;pfp=Melonponsuke.png&amp;quot; with the &amp;quot;.png&amp;quot; included! If this parameter isn&#039;t given, then the template will default to Dia&amp;quot;name&amp;quot;.png, using the first parameter. So, if you choose not to include this term, you should make sure that the Dia file [[Category:Pages_with_broken_file_links|exists]].&lt;br /&gt;
# &amp;quot;content&amp;quot; is the body of the youtube comment.&lt;br /&gt;
# &amp;quot;numLikes&amp;quot; is the number of likes the comment has. If this isn&#039;t given, then nothing will display between the dislike and like button.&lt;br /&gt;
# &amp;quot;timeAgo&amp;quot; is the text saying when the comment was written. If this isn&#039;t given, then it defaults to &amp;quot;1 [[Like_a_day|day]] ago&amp;quot;&lt;br /&gt;
** &amp;quot;numLikes&amp;quot; and &amp;quot;timeAgo&amp;quot; can really be whatever text you want, [[Schrödinger&#039;s_silly|if]] you&#039;re feeling silly.&lt;br /&gt;
# &amp;quot;isPinned&amp;quot; determines whether the youtube comment is pinned. It becomes true whenever ANY text is given, so if you don&#039;t want the comment pinned you should leave this parameter [[Silence|empty]]. This can even be given to a &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
# &amp;quot;isOP&amp;quot; specifies whether the username should be highlighted, like Youtube does with comments written by the video uploader. It becomes true whenever ANY text is given.&lt;br /&gt;
# &amp;quot;isHearted&amp;quot; specifies whether the comment should appear with a [[Valentine&#039;s_Day|heart]] given by the video uploader. It becomes true whenver ANY text is given.&lt;br /&gt;
# &amp;quot;opPfp&amp;quot; is the profile picture of the video uploader, which appears when they give a comment a heart. Don&#039;t forget to include the file type! This parameter won&#039;t be used unless you&#039;ve given &amp;quot;isHearted&amp;quot; a value. If &amp;quot;isHearted&amp;quot; is set but not &amp;quot;opPfp&amp;quot;, then a default Youtube [[avatar]] will be used.&lt;br /&gt;
&lt;br /&gt;
The above example was generated like this:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|Spike||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comments vs. Replies===&lt;br /&gt;
The difference between &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt; is that replies are indented, and hidden behind a &amp;quot;show replies&amp;quot; collapsible. The purpose of having two different templates is so that all the replies to a single comment can be collapsed and expanded independently of other replies to other comments. Separate templates also allows the collapsible toggle to count and display the number of replies. &#039;&#039;&#039;There must be a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt;placed before any &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;, or else the replies will break.&#039;&#039;&#039; All replies appearing after a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; will behave as part of the same thread until the next &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; is placed. Be aware of this if you put other stuff between the individual replies.&lt;br /&gt;
&lt;br /&gt;
If you find any errors, please let [[User:Raul|me]] know! Thank you!&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{#vardefine:threadCount|{{#varexists:threadCount|{{#expr:{{#var:threadCount}}+1}}|1}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-comment&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author {{#if:{{{isOP|{{{7|}}}}}}|youtube-op|}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{#if:{{{timeAgo|{{{5|}}}}}}|{{{timeAgo|{{{5}}}}}}|1 day ago}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;{{#css:&lt;br /&gt;
.youtube-comment p{margin:0px;}&lt;br /&gt;
.youtube-comment{&lt;br /&gt;
font-family:&amp;quot;Roboto&amp;quot;,&amp;quot;Arial&amp;quot;,sans-serif;&lt;br /&gt;
font-size:0.875rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.25rem;&lt;br /&gt;
max-width:500px;&lt;br /&gt;
display:flex;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pfp{&lt;br /&gt;
min-width:40px;&lt;br /&gt;
width: 40px;&lt;br /&gt;
height: 40px;&lt;br /&gt;
border-radius:50%;&lt;br /&gt;
margin-right:16px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pin{&lt;br /&gt;
margin-left:-2px;&lt;br /&gt;
margin-right:4px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-author{&lt;br /&gt;
font-size:0.8125rem;&lt;br /&gt;
font-height:1.125rem;&lt;br /&gt;
font-weight:600;&lt;br /&gt;
color:#0f0f0f;&lt;br /&gt;
}&lt;br /&gt;
.youtube-op{&lt;br /&gt;
height:20px;&lt;br /&gt;
margin-bottom:2px;&lt;br /&gt;
border-radius:12px;&lt;br /&gt;
padding:0 6px;&lt;br /&gt;
background-color:#888888;&lt;br /&gt;
color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
.date{padding-left:4px}&lt;br /&gt;
.date:hover{color:#0f0f0f}&lt;br /&gt;
&lt;br /&gt;
.youtube-pinned, .youtube-signature{&lt;br /&gt;
color: #606060;&lt;br /&gt;
font-size:0.75rem;&lt;br /&gt;
font-height:1.125rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:baseline;&lt;br /&gt;
margin-bottom:1px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pinned{margin-bottom:8px;}&lt;br /&gt;
.youtube-pinned a{&lt;br /&gt;
color: #606060;&lt;br /&gt;
text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
.youtube-signature{margin-bottom:2px;}&lt;br /&gt;
&lt;br /&gt;
.youtube-status{&lt;br /&gt;
margin-top:4px;&lt;br /&gt;
min-height:16px;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.youtube-like,.youtube-dislike{&lt;br /&gt;
width:32px;&lt;br /&gt;
height:32px&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.youtube-like{&lt;br /&gt;
margin-left:-8px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-dislike{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op{&lt;br /&gt;
margin: 10px;&lt;br /&gt;
width: 14px;&lt;br /&gt;
height: 14px;&lt;br /&gt;
border-radius:50%;&lt;br /&gt;
overflow: hidden;&lt;br /&gt;
border: 1px solid white;&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op p a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op p a img{vertical-align:top;}&lt;br /&gt;
.youtube-heart-heart{&lt;br /&gt;
position:absolute;&lt;br /&gt;
right:3px;&lt;br /&gt;
bottom:4px;&lt;br /&gt;
width:15px;&lt;br /&gt;
height:15px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.youtube-reply-prompt{&lt;br /&gt;
font-weight:500;&lt;br /&gt;
color:#0f0f0f;&lt;br /&gt;
margin-left:8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.youtube-replies{margin-left:56px;}&lt;br /&gt;
&lt;br /&gt;
.youtube-dropdown{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
border-radius:18px;&lt;br /&gt;
color:#065fd4;&lt;br /&gt;
font-size:14px;&lt;br /&gt;
font-weight:600;&lt;br /&gt;
line-height:36px;&lt;br /&gt;
height:36px;&lt;br /&gt;
padding: 0 12px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-replies-arrow{&lt;br /&gt;
margin-left:-8px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-dropdown:hover{background-color:#def1ff}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60448</id>
		<title>Template:Youtube Comment</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60448"/>
		<updated>2023-03-31T05:00:21Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;There are two youtube comment templates, &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;. They both take the same parameters:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=|pfp=|content=|numLikes=|timeAgo=|isPinned=|isOP=|isHearted=|opPfp=}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
{{Youtube Reply|Spike||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
# &amp;quot;name&amp;quot; is the username in the comment. Defaults to &amp;quot;[[Anonymous]]&amp;quot; if this parameter isn&#039;t given.&lt;br /&gt;
# &amp;quot;pfp&amp;quot; is the profile picture of the comment. You should include the file type here, like &amp;quot;pfp=Melonponsuke.png&amp;quot; with the &amp;quot;.png&amp;quot; included! If this parameter isn&#039;t given, then the template will default to Dia&amp;quot;name&amp;quot;.png, using the first parameter. So, if you choose not to include this term, you should make sure that the Dia file [[Category:Pages_with_broken_file_links|exists]].&lt;br /&gt;
# &amp;quot;content&amp;quot; is the body of the youtube comment.&lt;br /&gt;
# &amp;quot;numLikes&amp;quot; is the number of likes the comment has. If this isn&#039;t given, then nothing will display between the dislike and like button.&lt;br /&gt;
# &amp;quot;timeAgo&amp;quot; is the text saying when the comment was written. If this isn&#039;t given, then it defaults to &amp;quot;1 [[Like_a_day|day]] ago&amp;quot;&lt;br /&gt;
** &amp;quot;numLikes&amp;quot; and &amp;quot;timeAgo&amp;quot; can really be whatever text you want, [[Schrödinger&#039;s_silly|if]] you&#039;re feeling silly.&lt;br /&gt;
# &amp;quot;isPinned&amp;quot; determines whether the youtube comment is pinned. It becomes true whenever ANY text is given, so if you don&#039;t want the comment pinned you should leave this parameter [[Silence|empty]]. This can even be given to a &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
# &amp;quot;isOP&amp;quot; specifies whether the username should be highlighted, like Youtube does with comments written by the video uploader. It becomes true whenever ANY text is given.&lt;br /&gt;
# &amp;quot;isHearted&amp;quot; specifies whether the comment should appear with a [[Valentine&#039;s_Day|heart]] given by the video uploader. It becomes true whenver ANY text is given.&lt;br /&gt;
# &amp;quot;opPfp&amp;quot; is the profile picture of the video uploader, which appears when they give a comment a heart. Don&#039;t forget to include the file type! This parameter won&#039;t be used unless you&#039;ve given &amp;quot;isHearted&amp;quot; a value. If &amp;quot;isHearted&amp;quot; is set but not &amp;quot;opPfp&amp;quot;, then a default Youtube [[avatar]] will be used.&lt;br /&gt;
&lt;br /&gt;
The above example was generated like this:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|Spike||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comments vs. Replies===&lt;br /&gt;
The difference between &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt; is that replies are indented, and hidden behind a &amp;quot;show replies&amp;quot; collapsible. The purpose of having two different templates is so that all the replies to a single comment can be collapsed and expanded independently of other replies to other comments. Separate templates also allows the collapsible toggle to count and display the number of replies. &#039;&#039;&#039;There must be a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt;placed before any &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;, or else the replies will break.&#039;&#039;&#039; All replies appearing after a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; will behave as part of the same thread until the next &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; is placed. Be aware of this if you put other stuff between the individual replies.&lt;br /&gt;
&lt;br /&gt;
If you find any errors, please let [[User:Raul|me]] know! Thank you!&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{#vardefine:threadCount|{{#varexists:threadCount|{{#expr:{{#var:threadCount}}+1}}|1}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-comment&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author {{#if:{{{isOP|{{{7|}}}}}}|youtube-op|}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{{timeAgo|{{{5|1 day ago}}}}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;{{#css:&lt;br /&gt;
.youtube-comment p{margin:0px;}&lt;br /&gt;
.youtube-comment{&lt;br /&gt;
font-family:&amp;quot;Roboto&amp;quot;,&amp;quot;Arial&amp;quot;,sans-serif;&lt;br /&gt;
font-size:0.875rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.25rem;&lt;br /&gt;
max-width:500px;&lt;br /&gt;
display:flex;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pfp{&lt;br /&gt;
min-width:40px;&lt;br /&gt;
width: 40px;&lt;br /&gt;
height: 40px;&lt;br /&gt;
border-radius:50%;&lt;br /&gt;
margin-right:16px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pin{&lt;br /&gt;
margin-left:-2px;&lt;br /&gt;
margin-right:4px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-author{&lt;br /&gt;
font-size:0.8125rem;&lt;br /&gt;
font-height:1.125rem;&lt;br /&gt;
font-weight:600;&lt;br /&gt;
color:#0f0f0f;&lt;br /&gt;
}&lt;br /&gt;
.youtube-op{&lt;br /&gt;
height:20px;&lt;br /&gt;
margin-bottom:2px;&lt;br /&gt;
border-radius:12px;&lt;br /&gt;
padding:0 6px;&lt;br /&gt;
background-color:#888888;&lt;br /&gt;
color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
.date{padding-left:4px}&lt;br /&gt;
.date:hover{color:#0f0f0f}&lt;br /&gt;
&lt;br /&gt;
.youtube-pinned, .youtube-signature{&lt;br /&gt;
color: #606060;&lt;br /&gt;
font-size:0.75rem;&lt;br /&gt;
font-height:1.125rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:baseline;&lt;br /&gt;
margin-bottom:1px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pinned{margin-bottom:8px;}&lt;br /&gt;
.youtube-pinned a{&lt;br /&gt;
color: #606060;&lt;br /&gt;
text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
.youtube-signature{margin-bottom:2px;}&lt;br /&gt;
&lt;br /&gt;
.youtube-status{&lt;br /&gt;
margin-top:4px;&lt;br /&gt;
min-height:16px;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.youtube-like,.youtube-dislike{&lt;br /&gt;
width:32px;&lt;br /&gt;
height:32px&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.youtube-like{&lt;br /&gt;
margin-left:-8px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-dislike{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op{&lt;br /&gt;
margin: 10px;&lt;br /&gt;
width: 14px;&lt;br /&gt;
height: 14px;&lt;br /&gt;
border-radius:50%;&lt;br /&gt;
overflow: hidden;&lt;br /&gt;
border: 1px solid white;&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op p a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op p a img{vertical-align:top;}&lt;br /&gt;
.youtube-heart-heart{&lt;br /&gt;
position:absolute;&lt;br /&gt;
right:3px;&lt;br /&gt;
bottom:4px;&lt;br /&gt;
width:15px;&lt;br /&gt;
height:15px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.youtube-reply-prompt{&lt;br /&gt;
font-weight:500;&lt;br /&gt;
color:#0f0f0f;&lt;br /&gt;
margin-left:8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.youtube-replies{margin-left:56px;}&lt;br /&gt;
&lt;br /&gt;
.youtube-dropdown{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
border-radius:18px;&lt;br /&gt;
color:#065fd4;&lt;br /&gt;
font-size:14px;&lt;br /&gt;
font-weight:600;&lt;br /&gt;
line-height:36px;&lt;br /&gt;
height:36px;&lt;br /&gt;
padding: 0 12px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-replies-arrow{&lt;br /&gt;
margin-left:-8px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-dropdown:hover{background-color:#def1ff}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60447</id>
		<title>Template:Youtube Comment</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60447"/>
		<updated>2023-03-31T04:57:44Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;There are two youtube comment templates, &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;. They both take the same parameters:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=|pfp=|content=|numLikes=|timeAgo=|isPinned=|isOP=|isHearted=|opPfp=}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|SPIKE||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
# &amp;quot;name&amp;quot; is the username in the comment. Defaults to &amp;quot;[[Anonymous]]&amp;quot; if this parameter isn&#039;t given.&lt;br /&gt;
# &amp;quot;pfp&amp;quot; is the profile picture of the comment. You should include the file type here, like &amp;quot;pfp=Melonponsuke.png&amp;quot; with the &amp;quot;.png&amp;quot; included! If this parameter isn&#039;t given, then the template will default to Dia&amp;quot;name&amp;quot;.png, using the first parameter. So, if you choose not to include this term, you should make sure that the Dia file [[Category:Pages_with_broken_file_links|exists]].&lt;br /&gt;
# &amp;quot;content&amp;quot; is the body of the youtube comment.&lt;br /&gt;
# &amp;quot;numLikes&amp;quot; is the number of likes the comment has. If this isn&#039;t given, then nothing will display between the dislike and like button.&lt;br /&gt;
# &amp;quot;timeAgo&amp;quot; is the text saying when the comment was written. If this isn&#039;t given, then it defaults to &amp;quot;1 [[Like_a_day|day]] ago&amp;quot;&lt;br /&gt;
** &amp;quot;numLikes&amp;quot; and &amp;quot;timeAgo&amp;quot; can really be whatever text you want, [[Schrödinger&#039;s_silly|if]] you&#039;re feeling silly.&lt;br /&gt;
# &amp;quot;isPinned&amp;quot; determines whether the youtube comment is pinned. It becomes true whenever ANY text is given, so if you don&#039;t want the comment pinned you should leave this parameter [[Silence|empty]]. This can even be given to a &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
# &amp;quot;isOP&amp;quot; specifies whether the username should be highlighted, like Youtube does with comments written by the video uploader. It becomes true whenever ANY text is given.&lt;br /&gt;
# &amp;quot;isHearted&amp;quot; specifies whether the comment should appear with a [[Valentine&#039;s_Day|heart]] given by the video uploader. It becomes true whenver ANY text is given.&lt;br /&gt;
# &amp;quot;opPfp&amp;quot; is the profile picture of the video uploader, which appears when they give a comment a heart. Don&#039;t forget to include the file type! This parameter won&#039;t be used unless you&#039;ve given &amp;quot;isHearted&amp;quot; a value. If &amp;quot;isHearted&amp;quot; is set but not &amp;quot;opPfp&amp;quot;, then a default Youtube [[avatar]] will be used.&lt;br /&gt;
&lt;br /&gt;
The above example was generated like this:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|SPIKE||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comments vs. Replies===&lt;br /&gt;
The difference between &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt; is that replies are indented, and hidden behind a &amp;quot;show replies&amp;quot; collapsible. The purpose of having two different templates is so that all the replies to a single comment can be collapsed and expanded independently of other replies to other comments. Separate templates also allows the collapsible toggle to count and display the number of replies. &#039;&#039;&#039;There must be a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt;placed before any &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;, or else the replies will break.&#039;&#039;&#039; All replies appearing after a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; will behave as part of the same thread until the next &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; is placed. Be aware of this if you put other stuff between the individual replies.&lt;br /&gt;
&lt;br /&gt;
If you find any errors, please let [[User:Raul|me]] know! Thank you!&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{#vardefine:threadCount|{{#varexists:threadCount|{{#expr:{{#var:threadCount}}+1}}|1}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-comment&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author {{#if:{{{isOP|{{{7|}}}}}}|youtube-op|}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{{timeAgo|{{{5|1 day ago}}}}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;{{#css:&lt;br /&gt;
.youtube-comment p{margin:0px;}&lt;br /&gt;
.youtube-comment{&lt;br /&gt;
font-family:&amp;quot;Roboto&amp;quot;,&amp;quot;Arial&amp;quot;,sans-serif;&lt;br /&gt;
font-size:0.875rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.25rem;&lt;br /&gt;
max-width:500px;&lt;br /&gt;
display:flex;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pfp{&lt;br /&gt;
min-width:40px;&lt;br /&gt;
width: 40px;&lt;br /&gt;
height: 40px;&lt;br /&gt;
border-radius:50%;&lt;br /&gt;
margin-right:16px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pin{&lt;br /&gt;
margin-left:-2px;&lt;br /&gt;
margin-right:4px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-author{&lt;br /&gt;
font-size:0.8125rem;&lt;br /&gt;
font-height:1.125rem;&lt;br /&gt;
font-weight:600;&lt;br /&gt;
color:#0f0f0f;&lt;br /&gt;
}&lt;br /&gt;
.youtube-op{&lt;br /&gt;
height:20px;&lt;br /&gt;
margin-bottom:2px;&lt;br /&gt;
border-radius:12px;&lt;br /&gt;
padding:0 6px;&lt;br /&gt;
background-color:#888888;&lt;br /&gt;
color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
.date{padding-left:4px}&lt;br /&gt;
.date:hover{color:#0f0f0f}&lt;br /&gt;
&lt;br /&gt;
.youtube-pinned, .youtube-signature{&lt;br /&gt;
color: #606060;&lt;br /&gt;
font-size:0.75rem;&lt;br /&gt;
font-height:1.125rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:baseline;&lt;br /&gt;
margin-bottom:1px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-pinned{margin-bottom:8px;}&lt;br /&gt;
.youtube-pinned a{&lt;br /&gt;
color: #606060;&lt;br /&gt;
text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
.youtube-signature{margin-bottom:2px;}&lt;br /&gt;
&lt;br /&gt;
.youtube-status{&lt;br /&gt;
margin-top:4px;&lt;br /&gt;
min-height:16px;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.youtube-like,.youtube-dislike{&lt;br /&gt;
width:32px;&lt;br /&gt;
height:32px&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.youtube-like{&lt;br /&gt;
margin-left:-8px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-dislike{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op{&lt;br /&gt;
margin: 10px;&lt;br /&gt;
width: 14px;&lt;br /&gt;
height: 14px;&lt;br /&gt;
border-radius:50%;&lt;br /&gt;
overflow: hidden;&lt;br /&gt;
border: 1px solid white;&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op p a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.youtube-heart-op p a img{vertical-align:top;}&lt;br /&gt;
.youtube-heart-heart{&lt;br /&gt;
position:absolute;&lt;br /&gt;
right:3px;&lt;br /&gt;
bottom:4px;&lt;br /&gt;
width:15px;&lt;br /&gt;
height:15px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.youtube-reply-prompt{&lt;br /&gt;
font-weight:500;&lt;br /&gt;
color:#0f0f0f;&lt;br /&gt;
margin-left:8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.youtube-replies{margin-left:56px;}&lt;br /&gt;
&lt;br /&gt;
.youtube-dropdown{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
border-radius:18px;&lt;br /&gt;
color:#065fd4;&lt;br /&gt;
font-size:14px;&lt;br /&gt;
font-weight:600;&lt;br /&gt;
line-height:36px;&lt;br /&gt;
height:36px;&lt;br /&gt;
padding: 0 12px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-replies-arrow{&lt;br /&gt;
margin-left:-8px;&lt;br /&gt;
}&lt;br /&gt;
.youtube-dropdown:hover{background-color:#def1ff}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60446</id>
		<title>Template:Youtube Comment</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Comment&amp;diff=60446"/>
		<updated>2023-03-31T04:56:45Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;&amp;lt;noinclude&amp;gt;There are two youtube comment templates, &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;. They both take the same parameters: &amp;lt;nowiki&amp;gt; {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;There are two youtube comment templates, &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;. They both take the same parameters:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=|pfp=|content=|numLikes=|timeAgo=|isPinned=|isOP=|isHearted=|opPfp=}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|SPIKE||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
# &amp;quot;name&amp;quot; is the username in the comment. Defaults to &amp;quot;[[Anonymous]]&amp;quot; if this parameter isn&#039;t given.&lt;br /&gt;
# &amp;quot;pfp&amp;quot; is the profile picture of the comment. You should include the file type here, like &amp;quot;pfp=Melonponsuke.png&amp;quot; with the &amp;quot;.png&amp;quot; included! If this parameter isn&#039;t given, then the template will default to Dia&amp;quot;name&amp;quot;.png, using the first parameter. So, if you choose not to include this term, you should make sure that the Dia file [[Category:Pages_with_broken_file_links|exists]].&lt;br /&gt;
# &amp;quot;content&amp;quot; is the body of the youtube comment.&lt;br /&gt;
# &amp;quot;numLikes&amp;quot; is the number of likes the comment has. If this isn&#039;t given, then nothing will display between the dislike and like button.&lt;br /&gt;
# &amp;quot;timeAgo&amp;quot; is the text saying when the comment was written. If this isn&#039;t given, then it defaults to &amp;quot;1 [[Like_a_day|day]] ago&amp;quot;&lt;br /&gt;
** &amp;quot;numLikes&amp;quot; and &amp;quot;timeAgo&amp;quot; can really be whatever text you want, [[Schrödinger&#039;s_silly|if]] you&#039;re feeling silly.&lt;br /&gt;
# &amp;quot;isPinned&amp;quot; determines whether the youtube comment is pinned. It becomes true whenever ANY text is given, so if you don&#039;t want the comment pinned you should leave this parameter [[Silence|empty]]. This can even be given to a &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
# &amp;quot;isOP&amp;quot; specifies whether the username should be highlighted, like Youtube does with comments written by the video uploader. It becomes true whenever ANY text is given.&lt;br /&gt;
# &amp;quot;isHearted&amp;quot; specifies whether the comment should appear with a [[Valentine&#039;s_Day|heart]] given by the video uploader. It becomes true whenver ANY text is given.&lt;br /&gt;
# &amp;quot;opPfp&amp;quot; is the profile picture of the video uploader, which appears when they give a comment a heart. Don&#039;t forget to include the file type! This parameter won&#039;t be used unless you&#039;ve given &amp;quot;isHearted&amp;quot; a value. If &amp;quot;isHearted&amp;quot; is set but not &amp;quot;opPfp&amp;quot;, then a default Youtube [[avatar]] will be used.&lt;br /&gt;
&lt;br /&gt;
The above example was generated like this:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{{Youtube Comment|name=Spike|pfp=|content=DUDES. TAS IN THE TITLE MEANS TOOL-ASSISTED SPEEDRUN. I DON&#039;T THINK A HUMAN COULD DO THIS.|numLikes=26|timeAgo=1 week ago|isPinned=true|isOP=1|isHearted=|opPfp=}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|name=Englishcreamcakes|pfp=Melonponsuke.png|content=I vote pencil shee never got a vote.|numLikes=38,022|timeAgo=12 years ago|isPinned=|isOP=|isHearted=1|opPfp=DiaSpike.png}}&lt;br /&gt;
&lt;br /&gt;
{{Youtube Reply|SPIKE||WHO ARE YOU TALKING TO||||true||}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comments vs. Replies===&lt;br /&gt;
The difference between &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt; is that replies are indented, and hidden behind a &amp;quot;show replies&amp;quot; collapsible. The purpose of having two different templates is so that all the replies to a single comment can be collapsed and expanded independently of other replies to other comments. Separate templates also allows the collapsible toggle to count and display the number of replies. &#039;&#039;&#039;There must be a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt;placed before any &amp;lt;nowiki&amp;gt;{{Youtube Reply}}&amp;lt;/nowiki&amp;gt;, or else the replies will break.&#039;&#039;&#039; All replies appearing after a &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; will behave as part of the same thread until the next &amp;lt;nowiki&amp;gt;{{Youtube Comment}}&amp;lt;/nowiki&amp;gt; is placed. Be aware of this if you put other stuff between the individual replies.&lt;br /&gt;
&lt;br /&gt;
If you find any errors, please let [[User:Raul|me]] know! Thank you!&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{#vardefine:threadCount|{{#varexists:threadCount|{{#expr:{{#var:threadCount}}+1}}|1}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-comment&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author {{#if:{{{isOP|{{{7|}}}}}}|youtube-op|}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{{timeAgo|{{{5|1 day ago}}}}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Youtube_Reply&amp;diff=60445</id>
		<title>Template:Youtube Reply</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Youtube_Reply&amp;diff=60445"/>
		<updated>2023-03-31T04:55:17Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;&amp;lt;noinclude&amp;gt;See &amp;lt;nowiki&amp;gt;{{Template:Youtube Comment}}&amp;lt;/nowiki&amp;gt; for how to use.&amp;lt;/noinclude&amp;gt;{{#vardefine:replyCount{{#var:threadCount}}|{{#varexists:replyCount{{#var:threadCount}}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;See &amp;lt;nowiki&amp;gt;{{Template:Youtube Comment}}&amp;lt;/nowiki&amp;gt; for how to use.&amp;lt;/noinclude&amp;gt;{{#vardefine:replyCount{{#var:threadCount}}|{{#varexists:replyCount{{#var:threadCount}}|{{#expr:{{#var:replyCount{{#var:threadCount}}}}+1}}|1}}}}&lt;br /&gt;
{{#ifeq:{{#var:replyCount{{#var:threadCount}}}}|1|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-replies youtube-dropdown mw-customtoggle-{{#var:threadCount}}&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;youtube-replies-arrow&amp;quot;&amp;gt;[[File:Ytreply.png|24px]]&amp;lt;/span&amp;gt; {{#var_final:replyCount{{#var:threadCount}}|1}} replies&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-replies youtube-comment mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-{{#var:threadCount}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Ytpurple.jpg}}}}|x40px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
{{#if:{{{isPinned|{{{6|}}}}}}|&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pinned&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-pin&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytpin.png|12px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Pinniped|Pinned]] comment&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-signature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-author&amp;quot;&amp;gt;&lt;br /&gt;
{{{name|{{{1|Anonymous}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;{{{timeAgo|{{{5|1 day ago}}}}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-content&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-like&amp;quot;&amp;gt;[[File:Ytlike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{numLikes|{{{4|}}}}}}|&amp;lt;span style=&amp;quot;margin-right:8px&amp;quot;&amp;gt;{{{numLikes|{{{4}}}}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-dislike&amp;quot;&amp;gt;[[File:Ytdislike.png|24px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{isHearted|{{{8|}}}}}}|&amp;lt;div class=&amp;quot;youtube-heart-op&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{opPfp|{{{9|Ytpurple.jpg}}}}}}|x14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;youtube-heart-heart&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Ytheart.png|15px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;youtube-reply-prompt&amp;quot;&amp;gt;Reply&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=60197</id>
		<title>User:Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=60197"/>
		<updated>2023-03-30T06:19:40Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raul Wikicamp 2 User:Raul rectangle.zone Userwiki:Raul on The Wiki Camp 2 ==&lt;br /&gt;
It rhymes with Paul...&lt;br /&gt;
[[File:Latexdeck.png|alt=|thumb|360x360px|My (non-competition) character, latexdeck]]&lt;br /&gt;
RaulEndy#7456 on discord.&lt;br /&gt;
&lt;br /&gt;
I like object shows and math and webcomics and traditional drawing and anime and et and cetera. I only joined after challenge 4 ended, but I hope I can help out by making cool articles and stuff.&lt;br /&gt;
&lt;br /&gt;
=== Check out my templates ===&lt;br /&gt;
&lt;br /&gt;
{{Mbox|||text=&#039;&#039;This list is incomplete. You can&#039;t help by expanding it. Only I can do that, obv.&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
[[Template:Tumblr]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Latexdeck.png&amp;diff=60194</id>
		<title>File:Latexdeck.png</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Latexdeck.png&amp;diff=60194"/>
		<updated>2023-03-30T06:03:56Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=60192</id>
		<title>Template:Tumblr</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=60192"/>
		<updated>2023-03-30T06:02:13Z</updated>

		<summary type="html">&lt;p&gt;Raul: final...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are three Tumblr templates: Tumblr (the container), Tumblr Post (for individual posts), and Tumblr Ask (for ask posts).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki style=&amp;quot;color:#AA4A44&amp;quot;&amp;gt;{{Tumblr|tags=|numNotes=|post=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki style=&amp;quot;color:#228B22&amp;quot;&amp;gt;{{Tumblr Post|name=|pfp=|content=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki style=&amp;quot;color:#000080&amp;quot;&amp;gt;{{Tumblr Ask|name=|pfp=|content=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr Post}} and {{Tumblr Ask}} need to be placed inside {{Tumblr}}&amp;lt;/nowiki&amp;gt; or else they won&#039;t look right&lt;br /&gt;
&lt;br /&gt;
If you find any errors, please let [[User:Raul|me]] know!&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
{{Tumblr|tags=no further comment|numNotes=126|post={{Tumblr Post|name=Waldorf|pfp=DiaWaldorf.png|content={{Tumblr Ask|name=Statler|pfp=DiaStatler.png|content=I heard that one Tumblr user liked to steal old bones.}}{{Tumblr Ask|Waldorf||Now the only old bones around here are you and me!}}&amp;lt;br&amp;gt;Oh ho ho ho!}}{{Tumblr Post|microplasticlover|Tumblranon.png|this site is free y&#039;all}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|tags=no further comment|numNotes=126|post={{Tumblr Post|name=Waldorf|pfp=DiaWaldorf.png|content={{Tumblr Ask|name=Statler|pfp=DiaStatler.png|content=I heard that one Tumblr user liked to steal old bones.}}{{Tumblr Ask|Waldorf||Now the only old bones around here are you and me!}}&amp;lt;br&amp;gt;Oh ho ho ho!}}{{Tumblr Post|microplasticlover|Tumblranon.png|this site is free y&#039;all}}}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Here is the same command, expanded for readability.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{{Tumblr|tags=no further comment|numNotes=126|post=&lt;br /&gt;
&lt;br /&gt;
  {{Tumblr Post|name=Waldorf|pfp=DiaWaldorf.png|content=&lt;br /&gt;
 &lt;br /&gt;
     {{Tumblr Ask|name=Statler|pfp=DiaStatler.png|content=I heard that one Tumblr user liked to steal old bones.}}&lt;br /&gt;
     &lt;br /&gt;
     {{Tumblr Ask|Waldorf||Now the only old bones around here are you and me!}}&lt;br /&gt;
     &lt;br /&gt;
     Oh ho ho ho!&lt;br /&gt;
     &lt;br /&gt;
  }}   &lt;br /&gt;
  &lt;br /&gt;
  {{Tumblr Post|microplasticlover|Tumblranon.png|this site is free y&#039;all}}&lt;br /&gt;
  &lt;br /&gt;
}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;tags&amp;quot; is a list of words separated by spaces.&lt;br /&gt;
* &amp;quot;numNotes&amp;quot; is the number of notes the post has.&lt;br /&gt;
* You can place as many &amp;lt;nowiki&amp;gt;{{Tumblr Post}}&amp;lt;/nowiki&amp;gt; templates as you want within the &amp;quot;post&amp;quot; parameter of &amp;lt;nowiki&amp;gt;{{Tumblr}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
** If you just want one &amp;lt;nowiki&amp;gt;{{Tumblr Post}}&amp;lt;/nowiki&amp;gt; then the [[#Shortened_Forms|shortened form]] of &amp;lt;nowiki&amp;gt;{{Tumblr}}&amp;lt;/nowiki&amp;gt; may be more convenient.&lt;br /&gt;
* &amp;quot;name&amp;quot; is the username&lt;br /&gt;
* &amp;quot;pfp&amp;quot; is a link to a profile picture image. Make sure to include the file type! For example, pfp=Melonponsuke.png&lt;br /&gt;
** In any of the templates, if &amp;quot;name&amp;quot; is provided but not &amp;quot;pfp&amp;quot;, then the post will use File:Dia&amp;quot;name&amp;quot;.png instead. If this file doesn&#039;t exist, then you should fill out that parameter with &amp;quot;Tumblranon.png&amp;quot; or something similar.&lt;br /&gt;
* You can place as many &amp;lt;nowiki&amp;gt;{{Tumblr Ask}}&amp;lt;/nowiki&amp;gt; templates as you want within the &amp;quot;content&amp;quot; parameter of &amp;lt;nowiki&amp;gt;{{Tumblr Post}}&amp;lt;/nowiki&amp;gt;, however Tumblr only uses one question at a time.&lt;br /&gt;
** There&#039;s also a [[#Shortened_Forms|shortened form]] for if you have just one ask and one answer.&lt;br /&gt;
&lt;br /&gt;
== Shortened Forms ==&lt;br /&gt;
&lt;br /&gt;
In the shorthand forms, the &amp;quot;post&amp;quot; parameter of &amp;lt;nowiki&amp;gt;{{Template}}&amp;lt;/nowiki&amp;gt; must be blank for it to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shortened form for a single post.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tumblr|tags|numNotes|post|name|pfp|content}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Tumblr|tags|numNotes|{{Tumblr Post|name|pfp|content}}}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shortened form for a single ask post.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tumblr|tags|numNotes|post|name|pfp|content|asker|askPfp|ask}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Tumblr|tags|numNotes|{{Tumblr Post|name|pfp|content|asker|askPfp|ask}}}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which is the same as&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Tumblr|tags|numNotes|{{Tumblr Post|name|pfp|content{{Tumblr Ask|asker|askPfp|ask}}}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the template that results from all blank parameters: &amp;lt;nowiki&amp;gt;{{Tumblr|||||||||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
{{{post|{{{3|{{Tumblr Post|{{{name|{{{4|}}}}}}|{{{pfp|{{{5|}}}}}}|{{{content|{{{6|}}}}}}|{{{asker|{{{7|}}}}}}|{{{askPfp|{{{8|}}}}}}|{{{ask|{{{9|}}}}}}}}}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{tags|{{{1|}}}}}}|&amp;lt;span&amp;gt;{{#replace:{{{tags|{{{1|}}}}}}| |&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{2|&amp;lt;br&amp;gt;}}}}}} {{#if:{{{numNotes|{{{2|}}}}}}| {{PLURAL: {{{numNotes|{{{2|}}}}}}|note|notes}}|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
word-wrap:break-word;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header a, .tumblr-post-header a:visited, .tumblr-post-header a.new:visited{&lt;br /&gt;
color: inherit;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header p{max-width:465px;}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags span:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags span::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags span{margin-right: 5px;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
max-width:382px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Ask&amp;diff=60186</id>
		<title>Template:Tumblr Ask</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Ask&amp;diff=60186"/>
		<updated>2023-03-30T05:48:47Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
See [[Template:Tumblr]] for explanation on how to use.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}|x25px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=60183</id>
		<title>Template:Tumblr</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=60183"/>
		<updated>2023-03-30T05:25:23Z</updated>

		<summary type="html">&lt;p&gt;Raul: nearly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
There are three Tumblr templates: Tumblr (the container), Tumblr Post (for individual posts), and Tumblr Ask (for ask posts).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki style=&amp;quot;color:#AA4A44&amp;quot;&amp;gt;{{Tumblr|tags=|numNotes=|post=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki style=&amp;quot;color:#228B22&amp;quot;&amp;gt;{{Tumblr Post|name=|pfp=|content=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki style=&amp;quot;color:#000080&amp;quot;&amp;gt;{{Tumblr Ask|name=|pfp=|content=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr Post}} and {{Tumblr Ask}} need to be placed inside {{Tumblr}}&amp;lt;/nowiki&amp;gt; or else they won&#039;t look right&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
{{Tumblr|tags=no further comment|numNotes=126|content={{Tumblr Post|name=Waldorf|pfp=DiaWaldorf.png|content={{Tumblr Ask|name=Statler|pfp=DiaStatler.png|content=I heard that one Tumblr user liked to steal old bones.}}{{Tumblr Ask|name=Waldorf||Now the only old bones around here are you and me!}}&amp;lt;br&amp;gt;Oh ho ho ho!}}{{Tumblr Post|microplasticlover||this site is free y&#039;all}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|tags=no further comment|numNotes=126|content={{Tumblr Post|name=Waldorf|pfp=DiaWaldorf.png|content={{Tumblr Ask|name=Statler|pfp=DiaStatler.png|content=I heard that one Tumblr user liked to steal old bones.}}{{Tumblr Ask|name=Waldorf||Now the only old bones around here are you and me!}}&amp;lt;br&amp;gt;Oh ho ho ho!}}{{Tumblr Post|microplasticlover||this site is free y&#039;all}}}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Here is the same command, expanded for readability.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
{{Tumblr|tags=no further comment|numNotes=126|content=&lt;br /&gt;
&lt;br /&gt;
  {{Tumblr Post|name=Waldorf|pfp=DiaWaldorf.png|content=&lt;br /&gt;
 &lt;br /&gt;
     {{Tumblr Ask|name=Statler|pfp=DiaStatler.png|content=I heard that one Tumblr user liked to steal old bones.}}&lt;br /&gt;
     &lt;br /&gt;
     {{Tumblr Ask|Waldorf||Now the only old bones around here are you and me!}}&lt;br /&gt;
     &lt;br /&gt;
     Oh ho ho ho!&lt;br /&gt;
     &lt;br /&gt;
  }}   &lt;br /&gt;
  &lt;br /&gt;
  {{Tumblr Post|microplasticlover||this site is free y&#039;all}}&lt;br /&gt;
  &lt;br /&gt;
}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;tags&amp;quot; is a list of words separated by spaces.&lt;br /&gt;
* &amp;quot;numNotes&amp;quot; is the number of notes the post has.&lt;br /&gt;
* You can place as many &amp;lt;nowiki&amp;gt;{{Tumblr Post}}&amp;lt;/nowiki&amp;gt; templates as you want within the &amp;quot;post&amp;quot; parameter of &amp;lt;nowiki&amp;gt;{{Tumblr}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
** If you just want one &amp;lt;nowiki&amp;gt;{{Tumblr Post}}&amp;lt;/nowiki&amp;gt; then the [[#Shortened_Forms|shortened form]] of &amp;lt;nowiki&amp;gt;{{Tumblr}}&amp;lt;/nowiki&amp;gt; may be more convenient.&lt;br /&gt;
* &amp;quot;name&amp;quot; is the username&lt;br /&gt;
* &amp;quot;pfp&amp;quot; is a link to a profile picture image. Make sure to include the file type! For example, pfp=Melonponsuke.png&lt;br /&gt;
** In any of the templates, if &amp;quot;name&amp;quot; is provided but not &amp;quot;pfp&amp;quot;, then the post will try to use File:Dia&amp;quot;name&amp;quot;.png (if it exists).&lt;br /&gt;
** Otherwise, if no &amp;quot;pfp&amp;quot; parameter is given, it will use the Tumblr anonymous profile picture. The username will be &amp;quot;Anonymous&amp;quot; if there&#039;s no &amp;quot;name&amp;quot;.&lt;br /&gt;
* You can place as many &amp;lt;nowiki&amp;gt;{{Tumblr Ask}}&amp;lt;/nowiki&amp;gt; templates as you want within the &amp;quot;content&amp;quot; parameter of &amp;lt;nowiki&amp;gt;{{Tumblr Post}}&amp;lt;/nowiki&amp;gt;, however Tumblr only uses one question at a time.&lt;br /&gt;
** There&#039;s also a [[#Shortened_Forms|shortened form]] for if you have just one ask and one answer.&lt;br /&gt;
&lt;br /&gt;
== Shortened Forms ==&lt;br /&gt;
&lt;br /&gt;
In the shorthand forms, the &amp;quot;post&amp;quot; parameter of &amp;lt;nowiki&amp;gt;{{Template}}&amp;lt;/nowiki&amp;gt; must be blank for it to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shortened form for a single post.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tumblr|tags|numNotes|post|name|pfp|content}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Tumblr|tags|numNotes|{{Tumblr Post|name|pfp|content}}}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shortened form for a single ask post.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tumblr|tags|numNotes|post|name|pfp|content|asker|askPfp|ask}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Tumblr|tags|numNotes|{{Tumblr Post|name|pfp|content|asker|askPfp|ask}}}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which is the same as&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{Tumblr|tags|numNotes|{{Tumblr Post|name|pfp|content{{Tumblr Ask|asker|askPfp|ask}}}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the template that results from all blank parameters: &amp;lt;nowiki&amp;gt;{{Tumblr|||||||||}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
{{{post|{{{3|{{Tumblr Post|{{{name|{{{4|}}}}}}|{{{pfp|{{{5|}}}}}}|{{{content|{{{6|}}}}}}|{{{asker|{{{7|}}}}}}|{{{askPfp|{{{8|}}}}}}|{{{ask|{{{9|}}}}}}}}}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{1|}}}}}}| |&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{2|&amp;lt;br&amp;gt;}}}}}} {{#if:{{{numNotes|{{{2|}}}}}}| {{PLURAL: {{{numNotes|{{{2|}}}}}}|note|notes}}|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
word-wrap:break-word;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header a{&lt;br /&gt;
color: inherit;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header p{max-width:465px;}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
max-width:382px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=60180</id>
		<title>Template:Tumblr Post</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=60180"/>
		<updated>2023-03-30T05:22:42Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
See [[Template:Tumblr]] for explanation on how to use.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}|x25px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;[[{{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#if:{{{ask|{{{6|{{{asker|{{{4|{{{askPfp|{{{5|}}}}}}}}}}}}}}}}}}|{{Tumblr Ask|{{{asker|{{{4}}}}}}|{{{askPfp|{{{5}}}}}}|{{{ask|{{{6}}}}}}}}}}{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Ask&amp;diff=60179</id>
		<title>Template:Tumblr Ask</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Ask&amp;diff=60179"/>
		<updated>2023-03-30T05:22:13Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
See [[Template:Tumblr]] for explanation on how to use.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
{{{content|{{{3|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{2|}}}}}}|{{{pfp|{{{2}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}|x25px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Ask&amp;diff=59994</id>
		<title>Template:Tumblr Ask</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Ask&amp;diff=59994"/>
		<updated>2023-03-30T00:32:36Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{3|}}}}}}|{{{pfp|{{{3}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}|x25px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=59992</id>
		<title>Template:Tumblr</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=59992"/>
		<updated>2023-03-30T00:18:13Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Tumblr}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
{{{post|{{{1|{{Tumblr Post|{{{name|{{{4|}}}}}}|{{{content|{{{5|}}}}}}|{{{pfp|{{{6|}}}}}}}}}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{2|}}}}}}| |&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{3|&amp;lt;br&amp;gt;}}}}}} {{#if:{{{numNotes|{{{3|}}}}}}| {{PLURAL: {{{numNotes|{{{3|}}}}}}|note|notes}}|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
word-wrap:break-word;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header a{&lt;br /&gt;
color: inherit;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header p{max-width:465px;}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
max-width:382px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=59991</id>
		<title>Template:Tumblr Post</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=59991"/>
		<updated>2023-03-30T00:17:37Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Tumblr Post}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{3|}}}}}}|{{{pfp|{{{3}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}|x25px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;[[{{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=59990</id>
		<title>Template:Tumblr Post</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=59990"/>
		<updated>2023-03-30T00:13:07Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Tumblr Post}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{#if:{{{pfp|{{{3|}}}}}}|{{{pfp|{{{3}}}}}}|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}|x25px|link={{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;[[{{#if:{{{name|{{{1|}}}}}}|{{{name|{{{1}}}}}}|Anonymous}}]]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Void&amp;diff=59811</id>
		<title>Template:Void</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Void&amp;diff=59811"/>
		<updated>2023-03-29T05:05:55Z</updated>

		<summary type="html">&lt;p&gt;Raul: don&amp;#039;t know if this will work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=59810</id>
		<title>Template:Tumblr Post</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr_Post&amp;diff=59810"/>
		<updated>2023-03-29T04:43:33Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Tumblr Post}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x25px|link={{{name|{{{1|Anonymous}}}}}}]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;[[{{{name|{{{1|Anonymous}}}}}}]]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=59809</id>
		<title>Template:Tumblr</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=Template:Tumblr&amp;diff=59809"/>
		<updated>2023-03-29T04:41:26Z</updated>

		<summary type="html">&lt;p&gt;Raul: wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Tumblr}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
{{{content|{{{1|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{2|}}}}}}| |&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{3|&amp;lt;br&amp;gt;}}}}}} {{#if:{{{numNotes|{{{3|}}}}}}| {{PLURAL: {{{numNotes|{{{3|}}}}}}|note|notes}}|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
word-wrap:break-word;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header a{&lt;br /&gt;
color: inherit;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header p{max-width:465px;}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
max-width:382px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59801</id>
		<title>User:Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59801"/>
		<updated>2023-03-29T04:29:57Z</updated>

		<summary type="html">&lt;p&gt;Raul: template test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Welcome to the realm ==&lt;br /&gt;
[[File:Vacuum Tube.png|frame|right|Vacuum Tuby :)]]&lt;br /&gt;
RaulEndy#7456 on discord.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x) = x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Test&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
[[Damn Seal|Test]]&lt;br /&gt;
&lt;br /&gt;
[http://crouton.net]&lt;br /&gt;
&lt;br /&gt;
*Hi&lt;br /&gt;
*Hi&lt;br /&gt;
#Hi&lt;br /&gt;
#Hi&lt;br /&gt;
[[File:Tinyreblog.png|14px|link=Michigan]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|name=|content=|pfp=|tags=|numNotes=|asker=|ask=|askPfp=|answer=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x25px|link={{{name|{{{1|Anonymous}}}}}}]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;[[{{{name|{{{1|Anonymous}}}}}}]]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Also, [[buy my stuff]]!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{4|}}}}}}| |&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{5|&amp;lt;br&amp;gt;}}}}}} {{#if:{{{numNotes|{{{5|}}}}}}| {{PLURAL: {{{numNotes|{{{5|}}}}}}|note|notes}}|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{asker|{{{6|Anonymous}}}}}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
&lt;br /&gt;
{{{ask|{{{7|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{askPfp|{{{8|{{#if:{{{asker|{{{6|}}}}}}|Dia{{{asker|{{{6}}}}}}.png|Tumblranon.png}}}}}}}}|x40px|link={{{asker|{{{6|Anonymous}}}}}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{name|{{{1|Anonymous}}}}}}&amp;lt;/span&amp;gt; answered:&lt;br /&gt;
&lt;br /&gt;
{{{answer|{{{9|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x40px|link={{{name|{{{1|Anonymous}}}}}}]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WTF guys?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
SSSSSSSSSS&lt;br /&gt;
&lt;br /&gt;
AAAAaaaaaa&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
34 notes&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
Test!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
word-wrap:break-word;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header a{&lt;br /&gt;
color: inherit;&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post-header p{max-width:465px;}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
max-width:382px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59779</id>
		<title>User:Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59779"/>
		<updated>2023-03-29T03:16:54Z</updated>

		<summary type="html">&lt;p&gt;Raul: template testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Welcome to the realm ==&lt;br /&gt;
[[File:Vacuum Tube.png|frame|right|Vacuum Tuby :)]]&lt;br /&gt;
RaulEndy#7456 on discord.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x) = x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Test&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
[[Damn Seal|Test]]&lt;br /&gt;
&lt;br /&gt;
[http://crouton.net]&lt;br /&gt;
&lt;br /&gt;
*Hi&lt;br /&gt;
*Hi&lt;br /&gt;
#Hi&lt;br /&gt;
#Hi&lt;br /&gt;
[[File:Tinyreblog.png|14px|link=Michigan]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|name=|content=|pfp=|tags=|numNotes=|asker=|ask=|askPfp=|answer=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;{{{name|{{{1|Anonymous}}}}}}&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Also, [[buy my stuff]]!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{4|}}}}}}|&amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;|&amp;lt;br&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{5|&amp;lt;br&amp;gt;}}}}}} {{#if:{{{numNotes|{{{5|}}}}}}| {{PLURAL: {{{numNotes|{{{5|}}}}}}|note|notes}}|}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{asker|{{{6|Anonymous}}}}}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
&lt;br /&gt;
{{{ask|{{{7|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{askPfp|{{{8|{{#if:{{{asker|{{{6|}}}}}}|Dia{{{asker|{{{6}}}}}}.png|Tumblranon.png}}}}}}}}|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{name|{{{1|}}}}}}&amp;lt;/span&amp;gt; answered:&lt;br /&gt;
&lt;br /&gt;
{{{answer|{{{9|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WTF guys?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
SSSSSSSSSS&lt;br /&gt;
&lt;br /&gt;
AAAAaaaaaa&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
34 notes&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
Test!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59771</id>
		<title>User:Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59771"/>
		<updated>2023-03-29T03:01:36Z</updated>

		<summary type="html">&lt;p&gt;Raul: template testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Welcome to the realm ==&lt;br /&gt;
[[File:Vacuum Tube.png|frame|right|Vacuum Tuby :)]]&lt;br /&gt;
RaulEndy#7456 on discord.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x) = x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Test&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
[[Damn Seal|Test]]&lt;br /&gt;
&lt;br /&gt;
[http://crouton.net]&lt;br /&gt;
&lt;br /&gt;
*Hi&lt;br /&gt;
*Hi&lt;br /&gt;
#Hi&lt;br /&gt;
#Hi&lt;br /&gt;
[[File:Tinyreblog.png|14px|link=Michigan]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|name=|content=|pfp=|tags=|numNotes=|asker=|ask=|askPfp=|answer=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;{{{name|{{{1|Anonymous}}}}}}&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Also, [[buy my stuff]]!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{4|}}}}}}| |&amp;lt;br&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{5|&amp;lt;br&amp;gt;}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{asker|{{{6|Anonymous}}}}}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
&lt;br /&gt;
{{{ask|{{{7|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{askPfp|{{{8|{{#if:{{{asker|{{{6|}}}}}}|Dia{{{asker|{{{6}}}}}}.png|Tumblranon.png}}}}}}}}|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{name|{{{1|}}}}}}&amp;lt;/span&amp;gt; answered:&lt;br /&gt;
{{{answer|{{{9|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WTF guys?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
SSSSSSSSSS&lt;br /&gt;
&lt;br /&gt;
AAAAaaaaaa&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
34 notes&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
Test!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59769</id>
		<title>User:Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59769"/>
		<updated>2023-03-29T02:59:47Z</updated>

		<summary type="html">&lt;p&gt;Raul: template testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Welcome to the realm ==&lt;br /&gt;
[[File:Vacuum Tube.png|frame|right|Vacuum Tuby :)]]&lt;br /&gt;
RaulEndy#7456 on discord.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x) = x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Test&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
[[Damn Seal|Test]]&lt;br /&gt;
&lt;br /&gt;
[http://crouton.net]&lt;br /&gt;
&lt;br /&gt;
*Hi&lt;br /&gt;
*Hi&lt;br /&gt;
#Hi&lt;br /&gt;
#Hi&lt;br /&gt;
[[File:Tinyreblog.png|14px|link=Michigan]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|name=|content=|pfp=|tags=|numNotes=|asker=|ask=|askPfp=|answer=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;{{{name|{{{1|Anonymous}}}}}}&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Also, [[buy my stuff]]!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{4|}}}}}}| |&amp;lt;br&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{5|&amp;lt;br&amp;gt;}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{asker|{{{6|Anonymous}}}}}}&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
&lt;br /&gt;
{{{ask|{{{7|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{askPfp|{{{8|{{#if:{{{asker|{{{6|}}}}}}|Dia{{{asker|{{{6}}}}}}.png|Tumblranon.png}}}}}}}}|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;{{{name{{{1|}}}}}}&amp;lt;/span&amp;gt; answered:&lt;br /&gt;
{{{answer{{{9|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WTF guys?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
SSSSSSSSSS&lt;br /&gt;
&lt;br /&gt;
AAAAaaaaaa&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
34 notes&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
Test!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=There_there&amp;diff=59651</id>
		<title>There there</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=There_there&amp;diff=59651"/>
		<updated>2023-03-29T00:43:56Z</updated>

		<summary type="html">&lt;p&gt;Raul: Created page with &amp;quot;{{Quote|Shhhh. Sh sh sh. It&amp;#039;s okay.|The comforting dog}} == Crying shame == &amp;lt;div style=&amp;quot;position:relative;&amp;quot;&amp;gt; waaah.. &amp;lt;div style=&amp;quot;position: ab...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quote|Shhhh. Sh sh sh. It&#039;s okay.|The comforting dog}}&lt;br /&gt;
== Crying shame ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:So stupid.png|left|frame|waaah..]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;position: absolute; left:300px; top:85px;&amp;quot;&amp;gt;[[File:Buddypaw.png|150px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative; clear:right; float:right;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Creyes.png|right|frameless]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;position: absolute; left:265px; top:20px;&amp;quot;&amp;gt;[[File:Buddypaw.png|100px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
This is so [[Sad|sads]]...&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative; clear:right; float:right;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Waaaaaaaaaaaaaa.png|right|frameless]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;position: absolute; left:220px; top:105px;&amp;quot;&amp;gt;[[File:Buddypaw.png|100px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Satus: Feeling [[blue]].&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:500%&amp;quot;&amp;gt;&lt;br /&gt;
{{Loop|30|😭}}&amp;lt;/span&amp;gt;&lt;br /&gt;
[[Category:Seals]]&lt;br /&gt;
[[Category:Ugly]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;&amp;quot;&amp;gt;&lt;br /&gt;
{{Dia|Bloomsad|I dont want my mom to get old}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;position: absolute; top:40px; left:75px;&amp;quot;&amp;gt;[[File:Buddypaw.png|50px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Buddy.png&amp;diff=59634</id>
		<title>File:Buddy.png</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Buddy.png&amp;diff=59634"/>
		<updated>2023-03-29T00:11:09Z</updated>

		<summary type="html">&lt;p&gt;Raul: Batch Upload.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Buddypaw.png&amp;diff=59633</id>
		<title>File:Buddypaw.png</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Buddypaw.png&amp;diff=59633"/>
		<updated>2023-03-29T00:11:08Z</updated>

		<summary type="html">&lt;p&gt;Raul: Batch Upload.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59615</id>
		<title>User:Raul</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=User:Raul&amp;diff=59615"/>
		<updated>2023-03-28T23:06:19Z</updated>

		<summary type="html">&lt;p&gt;Raul: testing template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Welcome to the realm ==&lt;br /&gt;
[[File:Vacuum Tube.png|frame|right|Vacuum Tuby :)]]&lt;br /&gt;
RaulEndy#7456 on discord.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x) = x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Test&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
[[Damn Seal|Test]]&lt;br /&gt;
&lt;br /&gt;
[http://crouton.net]&lt;br /&gt;
&lt;br /&gt;
*Hi&lt;br /&gt;
*Hi&lt;br /&gt;
#Hi&lt;br /&gt;
#Hi&lt;br /&gt;
[[File:Tinyreblog.png|14px|link=Michigan]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Tumblr|name=|content=|pfp=|tags=|numNotes=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:{{{pfp|{{{3|{{#if:{{{name|{{{1|}}}}}}|Dia{{{name|{{{1}}}}}}.png|Tumblranon.png}}}}}}}}|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;{{{name|{{{1|Anonymous}}}}}}&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{content|{{{2|}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Also, [[buy my stuff]]!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
{{#replace:{{{tags|{{{4|}}}}}}| |&amp;lt;br&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
{{{numNotes|{{{5|}}}}}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|x24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|x24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-post-header&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x25px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tinyreblog&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tinyreblog.png|14px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;TheDeviousSeal32&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;follow&amp;quot;&amp;gt;Follow&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;Anonymous&amp;lt;/span&amp;gt; asked:&lt;br /&gt;
&lt;br /&gt;
Yeah, I actually had a question about-&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Tumblranon.png|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-weight:700&amp;quot;&amp;gt;Non-anonymous&amp;lt;/span&amp;gt; answered:&lt;br /&gt;
&lt;br /&gt;
START!!!&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-tail&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-ask-pfp&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Nojustno.png|x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WTF guys?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-tags&amp;quot;&amp;gt;&lt;br /&gt;
SSSSSSSSSS&lt;br /&gt;
&lt;br /&gt;
AAAAaaaaaa&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-footer&amp;quot;&amp;gt;&lt;br /&gt;
34 notes&lt;br /&gt;
&amp;lt;div class=&amp;quot;tumblr-icons&amp;quot;&amp;gt;&lt;br /&gt;
[[File:TumblrShare.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Reblog.png|24px]]&lt;br /&gt;
&lt;br /&gt;
[[File:TumblrHeart.png|24px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
Test!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#css:&lt;br /&gt;
.tumblr{&lt;br /&gt;
box-shadow: 0 0 0 1px rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
max-width: 540px;&lt;br /&gt;
background-color: #ffffff;&lt;br /&gt;
font-family: &amp;quot;Favorit&amp;quot;,&amp;quot;Helvetica Neue&amp;quot;,&amp;quot;HelveticaNeue&amp;quot;,Helvetica,Arial,sans-serif;&lt;br /&gt;
}&lt;br /&gt;
.tumblr &amp;gt; div{&lt;br /&gt;
padding-left: 20px;&lt;br /&gt;
padding-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-post{&lt;br /&gt;
margin-top: 15px;&lt;br /&gt;
margin-bottom: 15px;&lt;br /&gt;
padding-top: 15px;&lt;br /&gt;
line-height: 1.5;&lt;br /&gt;
border-top: 1px solid rgba(0,0,0,0.13);&lt;br /&gt;
position:relative;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-pfp{&lt;br /&gt;
width:25px;&lt;br /&gt;
height:25px;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
margin-right: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-pfp p{&lt;br /&gt;
margin:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-post:first-child{border-top: none;}&lt;br /&gt;
.tumblr-post:first-child .tumblr-tinyreblog{display:none;}&lt;br /&gt;
&lt;br /&gt;
.tumblr-tinyreblog{&lt;br /&gt;
width:14px;&lt;br /&gt;
height:14px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:calc(38px);&lt;br /&gt;
left: 36px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog p{margin: 0px;}&lt;br /&gt;
.tumblr-tinyreblog a{&lt;br /&gt;
display:inline-block;&lt;br /&gt;
height:100%;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tinyreblog img{vertical-align:top;}&lt;br /&gt;
.tumblr-post-header{&lt;br /&gt;
font-weight:700;&lt;br /&gt;
font-size:.875rem;&lt;br /&gt;
display:flex;&lt;br /&gt;
align-items:center;&lt;br /&gt;
}&lt;br /&gt;
.follow{&lt;br /&gt;
margin-left: 7px;&lt;br /&gt;
color: rgb(0,184,255);&lt;br /&gt;
}&lt;br /&gt;
.follow:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags, .tumblr-footer {&lt;br /&gt;
color: rgb(0, 0, 0, .65);&lt;br /&gt;
font-size: .875rem;&lt;br /&gt;
margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-tags p{display:inline;}&lt;br /&gt;
.tumblr-tags p:hover{text-decoration:underline;}&lt;br /&gt;
.tumblr-tags p::before{content:&amp;quot;#&amp;quot;;}&lt;br /&gt;
.tumblr-tags{margin-bottom: -6px;}&lt;br /&gt;
.tumblr-footer{&lt;br /&gt;
font-weight: 700;&lt;br /&gt;
display: flex;&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
align-items: center;&lt;br /&gt;
margin-top: 25px;&lt;br /&gt;
padding: 3px 0px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-icons p{&lt;br /&gt;
width:48px;&lt;br /&gt;
height:48px;&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tumblr-ask{&lt;br /&gt;
display:flex;&lt;br /&gt;
padding-left:20px;&lt;br /&gt;
padding-right:20px;&lt;br /&gt;
padding-bottom:10px;&lt;br /&gt;
margin-top:15px;&lt;br /&gt;
margin-bottom:10px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box{&lt;br /&gt;
background-color: rgba(0,0,0,0.07);&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-grow:1;&lt;br /&gt;
position:relative;&lt;br /&gt;
padding: 15px 20px 18px 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p:first-child{&lt;br /&gt;
color: rgba(0,0,0,0.65);&lt;br /&gt;
font-size:0.546875 rem;&lt;br /&gt;
font-weight:400;&lt;br /&gt;
line-height:1.5;&lt;br /&gt;
margin-bottom: 20px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-box p{&lt;br /&gt;
color: #000000;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-tail{&lt;br /&gt;
box-sizing:border-box;&lt;br /&gt;
width:8px;&lt;br /&gt;
height:17px;&lt;br /&gt;
border-top: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-bottom: 8px solid rgba(0,0,0,0);&lt;br /&gt;
border-left: 8px solid rgba(0,0,0,0.07);&lt;br /&gt;
position:absolute;&lt;br /&gt;
top:10px;&lt;br /&gt;
right:-8px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp{&lt;br /&gt;
height:40px;&lt;br /&gt;
width:40px;&lt;br /&gt;
overflow:hidden;&lt;br /&gt;
border-radius:3px;&lt;br /&gt;
flex-shrink:0;&lt;br /&gt;
align-self:flex-start;&lt;br /&gt;
margin-left:18px;&lt;br /&gt;
}&lt;br /&gt;
.tumblr-ask-pfp p{margin: 0px;}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
	<entry>
		<id>https://camp2.rectangle.zone/index.php?title=File:Ytreply.png&amp;diff=59595</id>
		<title>File:Ytreply.png</title>
		<link rel="alternate" type="text/html" href="https://camp2.rectangle.zone/index.php?title=File:Ytreply.png&amp;diff=59595"/>
		<updated>2023-03-28T21:19:31Z</updated>

		<summary type="html">&lt;p&gt;Raul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
</feed>