{"id":5263,"date":"2026-08-30T12:40:37","date_gmt":"2026-08-30T03:40:37","guid":{"rendered":"https:\/\/donguri3.net\/server-tech\/minecraft-whiteboard-table-tag-2\/"},"modified":"2026-08-30T12:40:38","modified_gmt":"2026-08-30T03:40:38","slug":"minecraft-whiteboard-table-tag","status":"publish","type":"post","link":"https:\/\/donguri3.net\/en\/server-tech\/minecraft\/minecraft-whiteboard-table-tag\/","title":{"rendered":"Added &#8220;Tables&#8221; to the Minecraft (Paper) Whiteboard Plugin"},"content":{"rendered":"<p>The Whiteboard plugin developed at Nando Kobo is a plugin designed to bring &#8220;whiteboards where you can write text&#8221; directly into the world of Minecraft.<\/p>\n<p>By posting text, you can easily share things like:<\/p>\n<ul>\n<li>Today&#8217;s to-do lists<\/li>\n<li>Command notes<\/li>\n<li>Mission explanations for kids<\/li>\n<\/ul>\n<p>in-game, which is super convenient.<\/p>\n<p>However, as I continued to use it more and more, there was a feature I desperately started wanting:<\/p>\n<p>I wanted to display things in a table format rather than just bullet points.<\/p>\n<h2>Where Bullet Points Just Wasn&#8217;t Enough<\/h2>\n<p>Up until now, since Whiteboard is text-based,<br \/>\nif you wanted to display a &#8220;Mission List,&#8221; you had to write it something like this:<\/p>\n<ul>\n<li>#1 Build a house (Level 1)<\/li>\n<li>#2 Build an animal statue (Level 1)<\/li>\n<li>#3 Build a mini racetrack (Level 2)<\/li>\n<\/ul>\n<p>However, when actually playing with kids, I noticed a few things I wanted:<\/p>\n<ul>\n<li>I want to sort them by level<\/li>\n<li>I want to show &#8220;whether it has been completed or not&#8221; at the same time<\/li>\n<li>I want to visually compare them at a glance<\/li>\n<\/ul>\n<p>With bullet points, the moment you put a lot of information in, it tends to get vertically long,<br \/>\nand there&#8217;s a limit to how many items can be displayed at once.<\/p>\n<p>So I thought, &#8220;It would be much simpler if I just turned it into a table.&#8221;<\/p>\n<h2>What I Did This Time: Recognizing the table Tag<\/h2>\n<p>Therefore, I added a feature to the Whiteboard plugin that:<\/p>\n<ul>\n<li>Reads HTML &lt;table&gt; tags and renders them as a simple table on the whiteboard.<\/li>\n<\/ul>\n<p>The mechanism is roughly like this:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;table&gt;\n&lt;tr&gt;&lt;th&gt;#&lt;\/th&gt;&lt;th&gt;Goal&lt;\/th&gt;&lt;th&gt;Level&lt;\/th&gt;&lt;\/tr&gt;\n&lt;tr&gt;&lt;td&gt;1&lt;\/td&gt;&lt;td&gt;Build a house&lt;\/td&gt;&lt;td&gt;1&lt;\/td&gt;&lt;\/tr&gt;\n&lt;tr&gt;&lt;td&gt;2&lt;\/td&gt;&lt;td&gt;Build an animal statue&lt;\/td&gt;&lt;td&gt;1&lt;\/td&gt;&lt;\/tr&gt;\n&lt;\/table&gt;<\/pre>\n<ol>\n<li data-start=\"1230\" data-end=\"1289\">\n<p data-start=\"1233\" data-end=\"1289\">When you write the book&#8217;s contents into the Whiteboard, the plugin combines all pages of the book to retrieve them as text.<\/p>\n<\/li>\n<li data-start=\"1291\" data-end=\"1357\">\n<p data-start=\"1294\" data-end=\"1357\">Edit that text using Codex, parse <code data-start=\"1314\" data-end=\"1334\">&lt;table&gt;...&lt;\/table&gt;<\/code>, and break it down into rows and columns.<\/p>\n<\/li>\n<li data-start=\"1359\" data-end=\"1471\">\n<p data-start=\"1362\" data-end=\"1408\">For rendering on the Whiteboard, display it as a <strong data-start=\"1381\" data-end=\"1397\">|-delimited simple table<\/strong>.<\/p>\n<\/li>\n<\/ol>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">|#|Goal|Level|\n|1|Build a house|1|\n|2|Build an animal statue|1|<\/pre>\n<p>Currently, it doesn&#8217;t draw &#8220;boxed borders&#8221; as graphical shapes,<br \/>\ninstead treating it as a text-based table.<\/p>\n<p>Even so, just being able to see &#8220;rows&#8221; and &#8220;columns&#8221; at a glance rather than a &#8220;long, trailing vertical list&#8221; has made it much easier to read.<\/p>\n<h2>How It Is Actually Used (Making a Mission List into a Table)<\/h2>\n<p>Speaking of the current mission, you can use it like this:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">&lt;table&gt;\n&lt;tr&gt;&lt;th&gt;#&lt;\/th&gt;&lt;th&gt;Goal&lt;\/th&gt;&lt;th&gt;Level&lt;\/th&gt;&lt;\/tr&gt;\n&lt;tr&gt;&lt;td&gt;1&lt;\/td&gt;&lt;td&gt;Build a house (Free theme)&lt;\/td&gt;&lt;td&gt;1&lt;\/td&gt;&lt;\/tr&gt;\n&lt;tr&gt;&lt;td&gt;2&lt;\/td&gt;&lt;td&gt;Build animal\/mob statues&lt;\/td&gt;&lt;td&gt;1&lt;\/td&gt;&lt;\/tr&gt;\n&lt;tr&gt;&lt;td&gt;3&lt;\/td&gt;&lt;td&gt;Mini racetrack (Short course)&lt;\/td&gt;&lt;td&gt;1-2&lt;\/td&gt;&lt;\/tr&gt;\n&lt;tr&gt;&lt;td&gt;4&lt;\/td&gt;&lt;td&gt;Creature habitat series&lt;\/td&gt;&lt;td&gt;1-2&lt;\/td&gt;&lt;\/tr&gt;\n&lt;\/table&gt;<\/pre>\n<p>When you write this in a book and post it on the Whiteboard,<\/p>\n<p>the goals and levels line up horizontally.<br \/>\nThe Issue of Books Not Fitting on a Single Page<\/p>\n<p>Since Minecraft books have a character limit per page,<br \/>\nit&#8217;s completely normal for a single table not to fit on just one page.<\/p>\n<p>To handle this, the Whiteboard side:<\/p>\n<ul>\n<li>Concatenates all pages of the book before parsing them.<\/li>\n<\/ul>\n<p>Because of this,<\/p>\n<ul>\n<li>Even if a &lt;table&gt; ends at the bottom of the first page<\/li>\n<li>And &lt;tr&gt;&#8230;&lt;\/tr&gt; continues onto the second page,<\/li>\n<\/ul>\n<p>it can be handled as a single table without any issues.<\/p>\n<p>The writer simply needs to do what feels natural: &#8220;If you run out of space, continue to the next page.&#8221;<\/p>\n<p><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2408\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26.png\" alt=\"Minecraft (Paper) Whiteboard Plugin Tables\" width=\"858\" height=\"508\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26.png 858w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26-300x178.png 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26-768x455.png 768w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26-530x314.png 530w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26-565x335.png 565w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26-710x420.png 710w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/12\/faa37f9a8250749b1468472008f1be26-725x429.png 725w\" sizes=\"(max-width: 858px) 100vw, 858px\" \/><\/a><\/p>\n<h2>Summary: Being Able to Draw Tables Vastly Expands Whiteboard Use Cases<\/h2>\n<ul>\n<li>Added HTML &lt;table&gt; tag support to the Whiteboard plugin, allowing tables written in Minecraft books to be displayed as simple tables on the whiteboard.<\/li>\n<li>While Minecraft books have character limits per page, treating the entire contents of the book as a single block of text allows multi-page tables to be handled seamlessly.<\/li>\n<li>As a result, information that naturally forms tables, such as:\n<ul>\n<li>Mission lists<\/li>\n<li>Level charts<\/li>\n<li>Incentive and progress management<\/li>\n<\/ul>\n<p>can now be brought directly into the Minecraft world.<\/p>\n<\/li>\n<\/ul>\n<p>It&#8217;s still a simple implementation, but just being able to handle &#8220;tables&#8221; feels like it greatly expands the potential use cases for the whiteboard.<\/p>\n<p>Moving forward, while actually playing with the kids, I plan to:<\/p>\n<ul>\n<li>See what kinds of tables are convenient<\/li>\n<li>Figure out how complex of a layout might be needed<\/li>\n<\/ul>\n<p>and quietly expand features as they become necessary.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Whiteboard plugin developed at Nando Kobo is a plugin designed to bring &#8220;whiteboards where you can w [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":2408,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"en_US","_original_post":"https:\/\/donguri3.net\/?p=2407","footnotes":""},"categories":[1168],"tags":[836,884,880,179,885,893,875,867,865,331],"class_list":["post-5263","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-minecraft","tag-minecraft","tag-paper","tag-spigot","tag-179","tag-885","tag-893","tag-875","tag-867","tag-865","tag-331","en-US"],"_links":{"self":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/comments?post=5263"}],"version-history":[{"count":1,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5263\/revisions"}],"predecessor-version":[{"id":5266,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5263\/revisions\/5266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media\/2408"}],"wp:attachment":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media?parent=5263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/categories?post=5263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/tags?post=5263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}