User:Vanisaac/scripts/TartanBuilder
Appearance
< User:Vanisaac | scripts
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]- 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
{{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]- 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.