User:Vanisaac/scripts/TartanBuilder

TartanBuilder is a WP:userscript designed to use the  parameter of the  template to create a compact SVG image of a tartan pattern. The script itself can be found at User:Vanisaac/scripts/TartanBuilder.js.

Creation history
Below is the build history of the userscript project.

June 21, 2020

 * Created Tartan_test.svg file with Notepad++ to describe a tartan pattern as simply as possible, with as small a file size as possible. The resulting SVG encoded the Black Watch tartan, and had the following properties:
 * Size: 1185 bytes (further optimization reduced file size to 1122 bytes)
 * Total lines of code: 31
 * 22 lines of code, 617 bytes for general tartan rendering and SVG overhead
 * 9 lines of code (3 per color), 505 bytes total for thread patterns, color specification, and per color rendering
 * Sett pattern statistics:
 * ~ 160 bytes per color, depending on complexity of sett
 * Two lines of code per color vary only in the  attribute
 * Third line of code fully specifies the color and pattern of that color's threadcount
 * Four parameters specify every other aspect of presentation - image size and zoom/thread size


 * The SVG specification-valid version of Tartan_test.svg was completed on June 22, and rendered in Firefox. However, changes needed to be made for deficiencies in Wikipedia librsvg-library interpreting parameters stroke-dasharray and maskUnits.

June 24, 2020

 * Final Tartan_test.svg version, with no errors by librsvg, uploaded at File:SVG Black Watch Tartan test file.svg. Assistance by User:Redrose64 in tracking down librsvg bugs.
 * Initial outreach: posted a message to WT:WikiProject JavaScript asking for examples of other scripts interacting with template parameters.
 * Created basic template:Infobox tartan for interaction with the userscript.
 * Template codifies regularized filenames for tartan pattern images, and identifies breadth of sett pattern syntax (Single upper or lower-case letters for colors followed by thread count, spaces between threads optional, no other characters allowed in sett description)
 * Documenting Infobox tartan template at

June 25, 2020

 * Built initial JavaScript logic for translating tartan sett threadcount into dasharrays. Need to investigate I/O methods to properly debug.

July 6, 2020

 * Completed I/O to create initial test tartan files File:Tartan Buchanan +b18g46k6b18k6y40k6y40k6b18k6r40w6r40k6b18k6g46.svg and File:Tartan Black Watch b24k4b4k4b4k20g24k6g24k20b22k4b4.svg. Continuing to explore I/O methods and file creation in JavaScript.