User:Vanisaac/scripts/TartanBuilder

From Wikipedia, the free encyclopedia

TartanBuilder is a WP:userscript designed to use the sett parameter of the {{Infobox tartan}} 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[edit]

Below is the build history of the userscript project.

Initial build[edit]

June 21, 2020[edit]

  • 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 ID 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[edit]

  • 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 {{Infobox tartan/doc}}

June 25, 2020[edit]

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

July 6, 2020[edit]