diff --git a/3d-printers/index.html b/3d-printers/index.html index 66c60e8..3fcae69 100644 --- a/3d-printers/index.html +++ b/3d-printers/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/AGENTS.md b/AGENTS.md index 30347ea..4718427 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,6 +18,7 @@ This is the static website for Protospace, a non-profit makerspace in Calgary, A - `/index.html` - `/about/index.html` - `/the-space/index.html` + - `/tools/index.html` - `/join-us/index.html` - `/contact/index.html` - `/wood-shop/index.html` @@ -67,7 +68,7 @@ Keep source code pleasant for humans to read and edit. When adding or editing a page, match the existing structure: -- Header with Protospace logo and links to About, Spaces, Membership, Wiki, Portal, and Contact +- Header with Protospace logo and links to About, Spaces, Tools, Membership, Wiki, Portal, and Contact - Main page content with one meaningful `

` - Sidebar containing the current open-house information, address, parking details, map iframe, and search control where applicable - Footer containing YouTube, FAQ, and Facebook links diff --git a/about/index.html b/about/index.html index 8c4bb76..7cd2674 100644 --- a/about/index.html +++ b/about/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/assets/tools/100.jpg b/assets/tools/100.jpg new file mode 100644 index 0000000..1c3ccf0 Binary files /dev/null and b/assets/tools/100.jpg differ diff --git a/assets/tools/101.jpg b/assets/tools/101.jpg new file mode 100644 index 0000000..3462dbe Binary files /dev/null and b/assets/tools/101.jpg differ diff --git a/assets/tools/104.jpg b/assets/tools/104.jpg new file mode 100644 index 0000000..e47bbdc Binary files /dev/null and b/assets/tools/104.jpg differ diff --git a/assets/tools/106.jpg b/assets/tools/106.jpg new file mode 100644 index 0000000..753f9a2 Binary files /dev/null and b/assets/tools/106.jpg differ diff --git a/assets/tools/107.jpg b/assets/tools/107.jpg new file mode 100644 index 0000000..b03f196 Binary files /dev/null and b/assets/tools/107.jpg differ diff --git a/assets/tools/11.jpg b/assets/tools/11.jpg new file mode 100644 index 0000000..dd3e790 Binary files /dev/null and b/assets/tools/11.jpg differ diff --git a/assets/tools/111.jpg b/assets/tools/111.jpg new file mode 100644 index 0000000..3a7c1a5 Binary files /dev/null and b/assets/tools/111.jpg differ diff --git a/assets/tools/112.jpg b/assets/tools/112.jpg new file mode 100644 index 0000000..ed0ac6f Binary files /dev/null and b/assets/tools/112.jpg differ diff --git a/assets/tools/115.jpg b/assets/tools/115.jpg new file mode 100644 index 0000000..640ed8f Binary files /dev/null and b/assets/tools/115.jpg differ diff --git a/assets/tools/116.jpg b/assets/tools/116.jpg new file mode 100644 index 0000000..1b9bc3b Binary files /dev/null and b/assets/tools/116.jpg differ diff --git a/assets/tools/118.jpg b/assets/tools/118.jpg new file mode 100644 index 0000000..b236acd Binary files /dev/null and b/assets/tools/118.jpg differ diff --git a/assets/tools/12.jpg b/assets/tools/12.jpg new file mode 100644 index 0000000..dcecc40 Binary files /dev/null and b/assets/tools/12.jpg differ diff --git a/assets/tools/120.jpg b/assets/tools/120.jpg new file mode 100644 index 0000000..6784f56 Binary files /dev/null and b/assets/tools/120.jpg differ diff --git a/assets/tools/121.jpg b/assets/tools/121.jpg new file mode 100644 index 0000000..4639cb7 Binary files /dev/null and b/assets/tools/121.jpg differ diff --git a/assets/tools/127.jpg b/assets/tools/127.jpg new file mode 100644 index 0000000..c90d7a0 Binary files /dev/null and b/assets/tools/127.jpg differ diff --git a/assets/tools/128.jpg b/assets/tools/128.jpg new file mode 100644 index 0000000..5a1bb70 Binary files /dev/null and b/assets/tools/128.jpg differ diff --git a/assets/tools/129.jpg b/assets/tools/129.jpg new file mode 100644 index 0000000..c2881ca Binary files /dev/null and b/assets/tools/129.jpg differ diff --git a/assets/tools/130.jpg b/assets/tools/130.jpg new file mode 100644 index 0000000..5b0bdff Binary files /dev/null and b/assets/tools/130.jpg differ diff --git a/assets/tools/131.jpg b/assets/tools/131.jpg new file mode 100644 index 0000000..5f8f575 Binary files /dev/null and b/assets/tools/131.jpg differ diff --git a/assets/tools/132.jpg b/assets/tools/132.jpg new file mode 100644 index 0000000..43c4a65 Binary files /dev/null and b/assets/tools/132.jpg differ diff --git a/assets/tools/133.jpg b/assets/tools/133.jpg new file mode 100644 index 0000000..9682b8b Binary files /dev/null and b/assets/tools/133.jpg differ diff --git a/assets/tools/134.jpg b/assets/tools/134.jpg new file mode 100644 index 0000000..84f7188 Binary files /dev/null and b/assets/tools/134.jpg differ diff --git a/assets/tools/136.jpg b/assets/tools/136.jpg new file mode 100644 index 0000000..ad0fc83 Binary files /dev/null and b/assets/tools/136.jpg differ diff --git a/assets/tools/137.jpg b/assets/tools/137.jpg new file mode 100644 index 0000000..1d12857 Binary files /dev/null and b/assets/tools/137.jpg differ diff --git a/assets/tools/140.jpg b/assets/tools/140.jpg new file mode 100644 index 0000000..e0823ab Binary files /dev/null and b/assets/tools/140.jpg differ diff --git a/assets/tools/141.jpg b/assets/tools/141.jpg new file mode 100644 index 0000000..f7fe2a0 Binary files /dev/null and b/assets/tools/141.jpg differ diff --git a/assets/tools/143.png b/assets/tools/143.png new file mode 100644 index 0000000..84017e4 Binary files /dev/null and b/assets/tools/143.png differ diff --git a/assets/tools/144.jpg b/assets/tools/144.jpg new file mode 100644 index 0000000..1c506fc Binary files /dev/null and b/assets/tools/144.jpg differ diff --git a/assets/tools/147.jpg b/assets/tools/147.jpg new file mode 100644 index 0000000..ba1ff5d Binary files /dev/null and b/assets/tools/147.jpg differ diff --git a/assets/tools/148.jpg b/assets/tools/148.jpg new file mode 100644 index 0000000..45c239f Binary files /dev/null and b/assets/tools/148.jpg differ diff --git a/assets/tools/149.jpg b/assets/tools/149.jpg new file mode 100644 index 0000000..7059ce0 Binary files /dev/null and b/assets/tools/149.jpg differ diff --git a/assets/tools/15.jpg b/assets/tools/15.jpg new file mode 100644 index 0000000..4a1adeb Binary files /dev/null and b/assets/tools/15.jpg differ diff --git a/assets/tools/150.jpg b/assets/tools/150.jpg new file mode 100644 index 0000000..07283cc Binary files /dev/null and b/assets/tools/150.jpg differ diff --git a/assets/tools/153.jpg b/assets/tools/153.jpg new file mode 100644 index 0000000..ba42e5b Binary files /dev/null and b/assets/tools/153.jpg differ diff --git a/assets/tools/154.jpg b/assets/tools/154.jpg new file mode 100644 index 0000000..9d24cd9 Binary files /dev/null and b/assets/tools/154.jpg differ diff --git a/assets/tools/155.jpg b/assets/tools/155.jpg new file mode 100644 index 0000000..095fe6f Binary files /dev/null and b/assets/tools/155.jpg differ diff --git a/assets/tools/156.jpg b/assets/tools/156.jpg new file mode 100644 index 0000000..b3fbe47 Binary files /dev/null and b/assets/tools/156.jpg differ diff --git a/assets/tools/157.jpg b/assets/tools/157.jpg new file mode 100644 index 0000000..ed4255b Binary files /dev/null and b/assets/tools/157.jpg differ diff --git a/assets/tools/158.jpg b/assets/tools/158.jpg new file mode 100644 index 0000000..62239fa Binary files /dev/null and b/assets/tools/158.jpg differ diff --git a/assets/tools/159.jpg b/assets/tools/159.jpg new file mode 100644 index 0000000..22b5759 Binary files /dev/null and b/assets/tools/159.jpg differ diff --git a/assets/tools/16.jpg b/assets/tools/16.jpg new file mode 100644 index 0000000..d58ce6a Binary files /dev/null and b/assets/tools/16.jpg differ diff --git a/assets/tools/160.jpg b/assets/tools/160.jpg new file mode 100644 index 0000000..4c2d721 Binary files /dev/null and b/assets/tools/160.jpg differ diff --git a/assets/tools/161.jpg b/assets/tools/161.jpg new file mode 100644 index 0000000..33c0bc9 Binary files /dev/null and b/assets/tools/161.jpg differ diff --git a/assets/tools/162.jpeg b/assets/tools/162.jpeg new file mode 100644 index 0000000..b6232c4 Binary files /dev/null and b/assets/tools/162.jpeg differ diff --git a/assets/tools/163.jpg b/assets/tools/163.jpg new file mode 100644 index 0000000..ccf13ea Binary files /dev/null and b/assets/tools/163.jpg differ diff --git a/assets/tools/164.jpg b/assets/tools/164.jpg new file mode 100644 index 0000000..cf232d9 Binary files /dev/null and b/assets/tools/164.jpg differ diff --git a/assets/tools/165.jpg b/assets/tools/165.jpg new file mode 100644 index 0000000..d623d72 Binary files /dev/null and b/assets/tools/165.jpg differ diff --git a/assets/tools/166.jpg b/assets/tools/166.jpg new file mode 100644 index 0000000..6e97933 Binary files /dev/null and b/assets/tools/166.jpg differ diff --git a/assets/tools/167.jpg b/assets/tools/167.jpg new file mode 100644 index 0000000..b3c6121 Binary files /dev/null and b/assets/tools/167.jpg differ diff --git a/assets/tools/169.png b/assets/tools/169.png new file mode 100644 index 0000000..8924a7e Binary files /dev/null and b/assets/tools/169.png differ diff --git a/assets/tools/170.jpg b/assets/tools/170.jpg new file mode 100644 index 0000000..b5ef240 Binary files /dev/null and b/assets/tools/170.jpg differ diff --git a/assets/tools/171.jpg b/assets/tools/171.jpg new file mode 100644 index 0000000..a9b190b Binary files /dev/null and b/assets/tools/171.jpg differ diff --git a/assets/tools/172.jpg b/assets/tools/172.jpg new file mode 100644 index 0000000..57ac38e Binary files /dev/null and b/assets/tools/172.jpg differ diff --git a/assets/tools/173.png b/assets/tools/173.png new file mode 100644 index 0000000..b3c0354 Binary files /dev/null and b/assets/tools/173.png differ diff --git a/assets/tools/174.jpg b/assets/tools/174.jpg new file mode 100644 index 0000000..19406c5 Binary files /dev/null and b/assets/tools/174.jpg differ diff --git a/assets/tools/176.jpg b/assets/tools/176.jpg new file mode 100644 index 0000000..b0c0bc7 Binary files /dev/null and b/assets/tools/176.jpg differ diff --git a/assets/tools/177.jpg b/assets/tools/177.jpg new file mode 100644 index 0000000..44c9b9c Binary files /dev/null and b/assets/tools/177.jpg differ diff --git a/assets/tools/178.jpg b/assets/tools/178.jpg new file mode 100644 index 0000000..fbca6ba Binary files /dev/null and b/assets/tools/178.jpg differ diff --git a/assets/tools/179.jpg b/assets/tools/179.jpg new file mode 100644 index 0000000..e8d220c Binary files /dev/null and b/assets/tools/179.jpg differ diff --git a/assets/tools/18.jpg b/assets/tools/18.jpg new file mode 100644 index 0000000..713872e Binary files /dev/null and b/assets/tools/18.jpg differ diff --git a/assets/tools/180.jpg b/assets/tools/180.jpg new file mode 100644 index 0000000..1be5046 Binary files /dev/null and b/assets/tools/180.jpg differ diff --git a/assets/tools/181.jpeg b/assets/tools/181.jpeg new file mode 100644 index 0000000..e802ed9 Binary files /dev/null and b/assets/tools/181.jpeg differ diff --git a/assets/tools/182.jpg b/assets/tools/182.jpg new file mode 100644 index 0000000..2ce6be9 Binary files /dev/null and b/assets/tools/182.jpg differ diff --git a/assets/tools/183.png b/assets/tools/183.png new file mode 100644 index 0000000..cf3c146 Binary files /dev/null and b/assets/tools/183.png differ diff --git a/assets/tools/184.jpg b/assets/tools/184.jpg new file mode 100644 index 0000000..9666b11 Binary files /dev/null and b/assets/tools/184.jpg differ diff --git a/assets/tools/185.jpg b/assets/tools/185.jpg new file mode 100644 index 0000000..7d7d5fa Binary files /dev/null and b/assets/tools/185.jpg differ diff --git a/assets/tools/186.jpg b/assets/tools/186.jpg new file mode 100644 index 0000000..c5f3588 Binary files /dev/null and b/assets/tools/186.jpg differ diff --git a/assets/tools/187.png b/assets/tools/187.png new file mode 100644 index 0000000..5b021da Binary files /dev/null and b/assets/tools/187.png differ diff --git a/assets/tools/188.jpg b/assets/tools/188.jpg new file mode 100644 index 0000000..99980f1 Binary files /dev/null and b/assets/tools/188.jpg differ diff --git a/assets/tools/199.jpeg b/assets/tools/199.jpeg new file mode 100644 index 0000000..9f77a61 Binary files /dev/null and b/assets/tools/199.jpeg differ diff --git a/assets/tools/2.jpg b/assets/tools/2.jpg new file mode 100644 index 0000000..20d9817 Binary files /dev/null and b/assets/tools/2.jpg differ diff --git a/assets/tools/20.jpg b/assets/tools/20.jpg new file mode 100644 index 0000000..54826b3 Binary files /dev/null and b/assets/tools/20.jpg differ diff --git a/assets/tools/200.jpeg b/assets/tools/200.jpeg new file mode 100644 index 0000000..5cdbc82 Binary files /dev/null and b/assets/tools/200.jpeg differ diff --git a/assets/tools/201.jpeg b/assets/tools/201.jpeg new file mode 100644 index 0000000..ab94a51 Binary files /dev/null and b/assets/tools/201.jpeg differ diff --git a/assets/tools/202.jpeg b/assets/tools/202.jpeg new file mode 100644 index 0000000..43d1ea5 Binary files /dev/null and b/assets/tools/202.jpeg differ diff --git a/assets/tools/203.jpeg b/assets/tools/203.jpeg new file mode 100644 index 0000000..ed3a31a Binary files /dev/null and b/assets/tools/203.jpeg differ diff --git a/assets/tools/204.jpg b/assets/tools/204.jpg new file mode 100644 index 0000000..39dc32a Binary files /dev/null and b/assets/tools/204.jpg differ diff --git a/assets/tools/205.jpeg b/assets/tools/205.jpeg new file mode 100644 index 0000000..dcfb217 Binary files /dev/null and b/assets/tools/205.jpeg differ diff --git a/assets/tools/206.jpeg b/assets/tools/206.jpeg new file mode 100644 index 0000000..ff18813 Binary files /dev/null and b/assets/tools/206.jpeg differ diff --git a/assets/tools/207.jpeg b/assets/tools/207.jpeg new file mode 100644 index 0000000..a880562 Binary files /dev/null and b/assets/tools/207.jpeg differ diff --git a/assets/tools/208.jpeg b/assets/tools/208.jpeg new file mode 100644 index 0000000..8ecdb46 Binary files /dev/null and b/assets/tools/208.jpeg differ diff --git a/assets/tools/209.jpeg b/assets/tools/209.jpeg new file mode 100644 index 0000000..0f08859 Binary files /dev/null and b/assets/tools/209.jpeg differ diff --git a/assets/tools/210.jpeg b/assets/tools/210.jpeg new file mode 100644 index 0000000..6bac3bb Binary files /dev/null and b/assets/tools/210.jpeg differ diff --git a/assets/tools/211.jpeg b/assets/tools/211.jpeg new file mode 100644 index 0000000..e4e17fa Binary files /dev/null and b/assets/tools/211.jpeg differ diff --git a/assets/tools/212.jpeg b/assets/tools/212.jpeg new file mode 100644 index 0000000..3791e52 Binary files /dev/null and b/assets/tools/212.jpeg differ diff --git a/assets/tools/213.jpeg b/assets/tools/213.jpeg new file mode 100644 index 0000000..00ed6bf Binary files /dev/null and b/assets/tools/213.jpeg differ diff --git a/assets/tools/214.jpeg b/assets/tools/214.jpeg new file mode 100644 index 0000000..094052d Binary files /dev/null and b/assets/tools/214.jpeg differ diff --git a/assets/tools/215.jpeg b/assets/tools/215.jpeg new file mode 100644 index 0000000..8c2f1d9 Binary files /dev/null and b/assets/tools/215.jpeg differ diff --git a/assets/tools/216.jpeg b/assets/tools/216.jpeg new file mode 100644 index 0000000..517d2ab Binary files /dev/null and b/assets/tools/216.jpeg differ diff --git a/assets/tools/217.jpeg b/assets/tools/217.jpeg new file mode 100644 index 0000000..0134747 Binary files /dev/null and b/assets/tools/217.jpeg differ diff --git a/assets/tools/218.jpeg b/assets/tools/218.jpeg new file mode 100644 index 0000000..c1cc77c Binary files /dev/null and b/assets/tools/218.jpeg differ diff --git a/assets/tools/219.jpeg b/assets/tools/219.jpeg new file mode 100644 index 0000000..8a07d8e Binary files /dev/null and b/assets/tools/219.jpeg differ diff --git a/assets/tools/220.jpeg b/assets/tools/220.jpeg new file mode 100644 index 0000000..a84eb4c Binary files /dev/null and b/assets/tools/220.jpeg differ diff --git a/assets/tools/221.jpeg b/assets/tools/221.jpeg new file mode 100644 index 0000000..c1473ef Binary files /dev/null and b/assets/tools/221.jpeg differ diff --git a/assets/tools/222.jpeg b/assets/tools/222.jpeg new file mode 100644 index 0000000..53e2bcb Binary files /dev/null and b/assets/tools/222.jpeg differ diff --git a/assets/tools/223.jpeg b/assets/tools/223.jpeg new file mode 100644 index 0000000..ab58050 Binary files /dev/null and b/assets/tools/223.jpeg differ diff --git a/assets/tools/224.jpeg b/assets/tools/224.jpeg new file mode 100644 index 0000000..065d424 Binary files /dev/null and b/assets/tools/224.jpeg differ diff --git a/assets/tools/225.jpeg b/assets/tools/225.jpeg new file mode 100644 index 0000000..a6ff082 Binary files /dev/null and b/assets/tools/225.jpeg differ diff --git a/assets/tools/226.jpeg b/assets/tools/226.jpeg new file mode 100644 index 0000000..554db63 Binary files /dev/null and b/assets/tools/226.jpeg differ diff --git a/assets/tools/227.jpeg b/assets/tools/227.jpeg new file mode 100644 index 0000000..97a5f54 Binary files /dev/null and b/assets/tools/227.jpeg differ diff --git a/assets/tools/228.jpeg b/assets/tools/228.jpeg new file mode 100644 index 0000000..581f104 Binary files /dev/null and b/assets/tools/228.jpeg differ diff --git a/assets/tools/229.jpeg b/assets/tools/229.jpeg new file mode 100644 index 0000000..797b4b2 Binary files /dev/null and b/assets/tools/229.jpeg differ diff --git a/assets/tools/23.jpg b/assets/tools/23.jpg new file mode 100644 index 0000000..9d27501 Binary files /dev/null and b/assets/tools/23.jpg differ diff --git a/assets/tools/230.jpeg b/assets/tools/230.jpeg new file mode 100644 index 0000000..4719c36 Binary files /dev/null and b/assets/tools/230.jpeg differ diff --git a/assets/tools/25.jpg b/assets/tools/25.jpg new file mode 100644 index 0000000..e5e66f5 Binary files /dev/null and b/assets/tools/25.jpg differ diff --git a/assets/tools/26.jpg b/assets/tools/26.jpg new file mode 100644 index 0000000..04cfc06 Binary files /dev/null and b/assets/tools/26.jpg differ diff --git a/assets/tools/27.jpg b/assets/tools/27.jpg new file mode 100644 index 0000000..546c92d Binary files /dev/null and b/assets/tools/27.jpg differ diff --git a/assets/tools/28.jpg b/assets/tools/28.jpg new file mode 100644 index 0000000..d5fa4f4 Binary files /dev/null and b/assets/tools/28.jpg differ diff --git a/assets/tools/30.jpg b/assets/tools/30.jpg new file mode 100644 index 0000000..f35e857 Binary files /dev/null and b/assets/tools/30.jpg differ diff --git a/assets/tools/31.jpg b/assets/tools/31.jpg new file mode 100644 index 0000000..afb9220 Binary files /dev/null and b/assets/tools/31.jpg differ diff --git a/assets/tools/33.jpg b/assets/tools/33.jpg new file mode 100644 index 0000000..cc674aa Binary files /dev/null and b/assets/tools/33.jpg differ diff --git a/assets/tools/34.jpg b/assets/tools/34.jpg new file mode 100644 index 0000000..09e3dcb Binary files /dev/null and b/assets/tools/34.jpg differ diff --git a/assets/tools/37.jpg b/assets/tools/37.jpg new file mode 100644 index 0000000..ef65674 Binary files /dev/null and b/assets/tools/37.jpg differ diff --git a/assets/tools/39.jpg b/assets/tools/39.jpg new file mode 100644 index 0000000..0de5015 Binary files /dev/null and b/assets/tools/39.jpg differ diff --git a/assets/tools/40.jpg b/assets/tools/40.jpg new file mode 100644 index 0000000..1757bfb Binary files /dev/null and b/assets/tools/40.jpg differ diff --git a/assets/tools/42.jpg b/assets/tools/42.jpg new file mode 100644 index 0000000..cf32f3e Binary files /dev/null and b/assets/tools/42.jpg differ diff --git a/assets/tools/45.jpg b/assets/tools/45.jpg new file mode 100644 index 0000000..a17af5b Binary files /dev/null and b/assets/tools/45.jpg differ diff --git a/assets/tools/46.jpg b/assets/tools/46.jpg new file mode 100644 index 0000000..5aa7921 Binary files /dev/null and b/assets/tools/46.jpg differ diff --git a/assets/tools/47.jpg b/assets/tools/47.jpg new file mode 100644 index 0000000..a404a77 Binary files /dev/null and b/assets/tools/47.jpg differ diff --git a/assets/tools/48.jpg b/assets/tools/48.jpg new file mode 100644 index 0000000..746ebe7 Binary files /dev/null and b/assets/tools/48.jpg differ diff --git a/assets/tools/49.jpg b/assets/tools/49.jpg new file mode 100644 index 0000000..3b4e6f8 Binary files /dev/null and b/assets/tools/49.jpg differ diff --git a/assets/tools/51.jpg b/assets/tools/51.jpg new file mode 100644 index 0000000..335ee37 Binary files /dev/null and b/assets/tools/51.jpg differ diff --git a/assets/tools/53.jpg b/assets/tools/53.jpg new file mode 100644 index 0000000..1ce35ba Binary files /dev/null and b/assets/tools/53.jpg differ diff --git a/assets/tools/54.jpg b/assets/tools/54.jpg new file mode 100644 index 0000000..791aacb Binary files /dev/null and b/assets/tools/54.jpg differ diff --git a/assets/tools/56.jpg b/assets/tools/56.jpg new file mode 100644 index 0000000..276a927 Binary files /dev/null and b/assets/tools/56.jpg differ diff --git a/assets/tools/57.jpg b/assets/tools/57.jpg new file mode 100644 index 0000000..9bdd3e6 Binary files /dev/null and b/assets/tools/57.jpg differ diff --git a/assets/tools/61.jpg b/assets/tools/61.jpg new file mode 100644 index 0000000..1ff1789 Binary files /dev/null and b/assets/tools/61.jpg differ diff --git a/assets/tools/62.jpg b/assets/tools/62.jpg new file mode 100644 index 0000000..7598d0c Binary files /dev/null and b/assets/tools/62.jpg differ diff --git a/assets/tools/68.jpg b/assets/tools/68.jpg new file mode 100644 index 0000000..3cb9070 Binary files /dev/null and b/assets/tools/68.jpg differ diff --git a/assets/tools/69.jpg b/assets/tools/69.jpg new file mode 100644 index 0000000..cca002f Binary files /dev/null and b/assets/tools/69.jpg differ diff --git a/assets/tools/70.jpg b/assets/tools/70.jpg new file mode 100644 index 0000000..488d976 Binary files /dev/null and b/assets/tools/70.jpg differ diff --git a/assets/tools/72.jpg b/assets/tools/72.jpg new file mode 100644 index 0000000..5c5ed3e Binary files /dev/null and b/assets/tools/72.jpg differ diff --git a/assets/tools/75.jpg b/assets/tools/75.jpg new file mode 100644 index 0000000..c4fce46 Binary files /dev/null and b/assets/tools/75.jpg differ diff --git a/assets/tools/76.jpg b/assets/tools/76.jpg new file mode 100644 index 0000000..c5cbd57 Binary files /dev/null and b/assets/tools/76.jpg differ diff --git a/assets/tools/78.jpg b/assets/tools/78.jpg new file mode 100644 index 0000000..49a4c88 Binary files /dev/null and b/assets/tools/78.jpg differ diff --git a/assets/tools/79.jpg b/assets/tools/79.jpg new file mode 100644 index 0000000..d22b4b8 Binary files /dev/null and b/assets/tools/79.jpg differ diff --git a/assets/tools/8.jpg b/assets/tools/8.jpg new file mode 100644 index 0000000..9f5c228 Binary files /dev/null and b/assets/tools/8.jpg differ diff --git a/assets/tools/83.jpg b/assets/tools/83.jpg new file mode 100644 index 0000000..00f9541 Binary files /dev/null and b/assets/tools/83.jpg differ diff --git a/assets/tools/85.jpg b/assets/tools/85.jpg new file mode 100644 index 0000000..0e40c05 Binary files /dev/null and b/assets/tools/85.jpg differ diff --git a/assets/tools/88.jpg b/assets/tools/88.jpg new file mode 100644 index 0000000..02ea8ec Binary files /dev/null and b/assets/tools/88.jpg differ diff --git a/assets/tools/9.jpg b/assets/tools/9.jpg new file mode 100644 index 0000000..217a21d Binary files /dev/null and b/assets/tools/9.jpg differ diff --git a/assets/tools/92.jpg b/assets/tools/92.jpg new file mode 100644 index 0000000..2c04401 Binary files /dev/null and b/assets/tools/92.jpg differ diff --git a/assets/tools/93.jpg b/assets/tools/93.jpg new file mode 100644 index 0000000..db281e0 Binary files /dev/null and b/assets/tools/93.jpg differ diff --git a/assets/tools/94 b/assets/tools/94 new file mode 100644 index 0000000..9a6068d Binary files /dev/null and b/assets/tools/94 differ diff --git a/assets/tools/95.jpg b/assets/tools/95.jpg new file mode 100644 index 0000000..0ca275d Binary files /dev/null and b/assets/tools/95.jpg differ diff --git a/assets/tools/97.jpg b/assets/tools/97.jpg new file mode 100644 index 0000000..2772321 Binary files /dev/null and b/assets/tools/97.jpg differ diff --git a/assets/tools/98.jpg b/assets/tools/98.jpg new file mode 100644 index 0000000..7ced7c6 Binary files /dev/null and b/assets/tools/98.jpg differ diff --git a/assets/tools/99.jpg b/assets/tools/99.jpg new file mode 100644 index 0000000..4930386 Binary files /dev/null and b/assets/tools/99.jpg differ diff --git a/contact/index.html b/contact/index.html index 01ff550..2297885 100644 --- a/contact/index.html +++ b/contact/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/electronics-lab/index.html b/electronics-lab/index.html index ac8ca24..0c88e75 100644 --- a/electronics-lab/index.html +++ b/electronics-lab/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/export_tools.py b/export_tools.py new file mode 100644 index 0000000..d4fc90c --- /dev/null +++ b/export_tools.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +"""Export the Protospace Wiki tool catalog and its thumbnails. + +Usage: + python3 export_tools.py + +The wiki uses a small JavaScript challenge. The equivalent cookie is sent on +both the page request and each thumbnail request. +""" +from __future__ import annotations + +import json +import re +import sys +from html.parser import HTMLParser +from pathlib import Path +from urllib.parse import urljoin, urlparse +from urllib.request import Request, urlopen + +WIKI_URL = "https://wiki.protospace.ca/Tools_we_have" +WIKI_ROOT = "https://wiki.protospace.ca" +COOKIE = "human_check=verified" +ROOT = Path(__file__).resolve().parent +OUTPUT = ROOT / "tools.json" +IMAGE_DIR = ROOT / "assets" / "tools" + + +class ToolsParser(HTMLParser): + """Extract ordered category/gallery data from the MediaWiki HTML.""" + + def __init__(self) -> None: + super().__init__(convert_charrefs=True) + self.category: str | None = None + self.in_h2 = False + self.h2_text: list[str] = [] + self.item: dict | None = None + self.item_depth = 0 + self.anchor: dict | None = None + self.items: list[dict] = [] + + def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None: + attrs_dict = dict(attrs) + if tag == "h2": + self.in_h2 = True + self.h2_text = [] + elif tag == "li" and "gallerybox" in (attrs_dict.get("class") or "").split(): + self.item = {"category": self.category, "anchors": [], "src": None} + self.item_depth = 1 + elif self.item is not None and tag == "li": + self.item_depth += 1 + elif self.item is not None and tag == "a": + self.anchor = {"href": attrs_dict.get("href"), "text": []} + elif self.item is not None and tag == "img" and self.item["src"] is None: + self.item["src"] = attrs_dict.get("src") + + def handle_startendtag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None: + self.handle_starttag(tag, attrs) + self.handle_endtag(tag) + + def handle_endtag(self, tag: str) -> None: + if tag == "h2" and self.in_h2: + category = " ".join("".join(self.h2_text).split()) + if category and category.lower() != "contents": + self.category = category + self.in_h2 = False + elif tag == "a" and self.anchor is not None: + self.anchor["text"] = " ".join("".join(self.anchor["text"]).split()) + if self.item is not None: + self.item["anchors"].append(self.anchor) + self.anchor = None + elif tag == "li" and self.item is not None: + self.item_depth -= 1 + if self.item_depth == 0: + if self.item["category"] and self.item["category"].lower() != "removed equipment": + self.items.append(self.item) + self.item = None + + def handle_data(self, data: str) -> None: + if self.in_h2: + self.h2_text.append(data) + if self.anchor is not None: + self.anchor["text"].append(data) + + +def fetch(url: str) -> tuple[bytes, str]: + request = Request(url, headers={"Cookie": COOKIE, "User-Agent": "Protospace tools exporter/1.0"}) + with urlopen(request, timeout=30) as response: + content_type = response.headers.get_content_type() + return response.read(), content_type + + +def image_filename(src: str) -> str: + parts = [part for part in urlparse(src).path.split("/") if part] + # MediaWiki thumbnails end with e.g. 120px-182.jpg; the preceding part is + # the original filename and is stable even when thumbnail dimensions change. + if len(parts) >= 2: + return parts[-2] + return Path(parts[-1]).name + + +def main() -> int: + try: + page_bytes, content_type = fetch(WIKI_URL) + except Exception as exc: + print(f"Could not fetch {WIKI_URL}: {exc}", file=sys.stderr) + return 1 + if content_type != "text/html" or b"Verifying you are human" in page_bytes: + print("The wiki returned the human-verification page; check the cookie.", file=sys.stderr) + return 1 + + parser = ToolsParser() + parser.feed(page_bytes.decode("utf-8", errors="replace")) + IMAGE_DIR.mkdir(parents=True, exist_ok=True) + exported: list[dict[str, str]] = [] + skipped = 0 + + for raw in parser.items: + anchors = raw["anchors"] + name_anchor = next((a for a in anchors if "_ID:" in (a["href"] or "") or " ID:" in a["text"]), None) + name = name_anchor["text"] if name_anchor else "" + id_match = re.search(r"\bID:(\d+)\s*$", name) + photo_src = raw["src"] + if not name or not id_match or not photo_src: + skipped += 1 + continue + photo_url = urljoin(WIKI_ROOT, photo_src) + source_filename = image_filename(photo_url) + filename = f"{id_match.group(1)}{Path(source_filename).suffix.lower()}" + destination = IMAGE_DIR / filename + try: + image_bytes, image_type = fetch(photo_url) + if not image_type.startswith("image/") or not image_bytes: + raise ValueError(f"response was {image_type}, not an image") + destination.write_bytes(image_bytes) + except Exception as exc: + print(f"Skipping {name}: broken photo ({exc})", file=sys.stderr) + skipped += 1 + continue + + link = urljoin(WIKI_ROOT, name_anchor["href"]) + exported.append( + { + "ID": id_match.group(1), + "name": re.sub(r"\s*ID:\d+\s*$", "", name).strip(), + "photo file": f"/assets/tools/{filename}", + "link": link, + "category": raw["category"], + } + ) + + OUTPUT.write_text(json.dumps(exported, ensure_ascii=False, indent=2) + "\n") + print(f"Exported {len(exported)} tools to {OUTPUT}") + print(f"Skipped {skipped} tools without valid metadata or photos") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/index.html b/index.html index 76a256b..dd542b9 100644 --- a/index.html +++ b/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/join-us/index.html b/join-us/index.html index 7c76281..b28dc93 100644 --- a/join-us/index.html +++ b/join-us/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/laser-cutters/index.html b/laser-cutters/index.html index bbf5b90..8a91499 100644 --- a/laser-cutters/index.html +++ b/laser-cutters/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/llms.txt b/llms.txt index ce34c1a..1bf9168 100644 --- a/llms.txt +++ b/llms.txt @@ -7,6 +7,7 @@ - [Home](https://protospace.ca/): Overview of Protospace, its community, facilities, and membership. - [About Protospace](https://protospace.ca/about/): Background on Protospace, its volunteer-run community, mission, and how to visit. - [Spaces](https://protospace.ca/the-space/): Description of the facility, available areas, and member equipment. +- [Tools](https://protospace.ca/tools/): Current tool and equipment catalog, organized by category. - [Membership](https://protospace.ca/join-us/): Membership dues, benefits, process, duties, and frequently asked questions. - [Contact](https://protospace.ca/contact/): Contact information, address, parking, transit, and directions. diff --git a/metal-shop/index.html b/metal-shop/index.html index 3f95e1b..5f7bc5d 100644 --- a/metal-shop/index.html +++ b/metal-shop/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/sewing-room/index.html b/sewing-room/index.html index e36a51b..77b6e99 100644 --- a/sewing-room/index.html +++ b/sewing-room/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/sitemap.xml b/sitemap.xml index 9de5b83..760da5d 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -9,6 +9,9 @@ https://protospace.ca/the-space/ + + https://protospace.ca/tools/ + https://protospace.ca/join-us/ diff --git a/styles.css b/styles.css index 7a9e16b..55cc383 100644 --- a/styles.css +++ b/styles.css @@ -41,7 +41,6 @@ * { box-sizing: border-box; } -html, body { margin: 0; min-width: 320px; @@ -158,11 +157,17 @@ main h1 { } .entry h2, .entry h3 { - font: - 300 32px/1.2 "Yanone Kaffeesatz", - sans-serif; + font-family: "Yanone Kaffeesatz", sans-serif; + font-weight: 300; + line-height: 1.2; margin: 28px 0 12px; } +.entry h2 { + font-size: 32px; +} +.entry h3 { + font-size: 26px; +} .entry hr { border: 0; border-top: 1px solid #0002; @@ -353,6 +358,18 @@ footer p { .area-card:focus-visible img { transform: scale(1.04); } +@media (max-width: 820px) { + .tools-list h3 { + min-width: 0; + } + .tools-list h3 > span { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} + @media (max-width: 560px) { .area-grid { width: 80%; @@ -361,3 +378,70 @@ footer p { grid-template-columns: 1fr; } } + +.tools-toc { + margin: 32px 0; + padding: 16px 20px; + border: 1px solid #0002; + background: #fff8; +} +.tools-toc strong { + display: block; + margin-bottom: 8px; +} +.tools-toc ul { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 4px 24px; + margin: 0; + padding-left: 20px; +} +.tools-list h3 { + position: sticky; + top: 0; + z-index: 2; + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + margin-top: 48px; + padding: 10px 0; + background: var(--paper); + scroll-margin-top: 24px; +} +.category-back { + font: 16px/1.5 Lato, Arial, sans-serif; + white-space: nowrap; +} +.tools-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); + gap: 16px; +} +.tool-card.external { + display: flex; + flex-direction: column; + gap: 8px; + padding: 0 0 10px; + background: none; + border: 1px solid #0002; + color: var(--ink); + text-decoration: none; +} +.tool-card.external::after { + display: none; +} +.tool-card img { + width: 100%; + height: 170px; + object-fit: contain; + background: #eee; +} +.tool-card span { + padding: 0 10px; +} +@media (max-width: 820px) { + .tools-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} diff --git a/the-space/index.html b/the-space/index.html index 17437c6..78848f0 100644 --- a/the-space/index.html +++ b/the-space/index.html @@ -69,11 +69,12 @@ Protospace diff --git a/tools.json b/tools.json new file mode 100644 index 0000000..18f19a4 --- /dev/null +++ b/tools.json @@ -0,0 +1,1045 @@ +[ + { + "ID": "182", + "name": "3D Printer, FFF (Bambu Lab P1S)", + "photo file": "/assets/tools/182.jpg", + "link": "https://wiki.protospace.ca/3D_Printer,_FFF_(Bambu_Lab_P1S)_ID:182", + "category": "3D Printers" + }, + { + "ID": "159", + "name": "3D printer, resin (Anycubic Photon 5.5)", + "photo file": "/assets/tools/159.jpg", + "link": "https://wiki.protospace.ca/3D_printer,_resin_(Anycubic_Photon_5.5)_ID:159", + "category": "3D Printers" + }, + { + "ID": "170", + "name": "3D_printer, resin (ELEGOO Saturn)", + "photo file": "/assets/tools/170.jpg", + "link": "https://wiki.protospace.ca/3D_printer,_resin_(ELEGOO_Saturn)_ID:170", + "category": "3D Printers" + }, + { + "ID": "160", + "name": "Curing station (Anycubic Wash and Cure Machine)", + "photo file": "/assets/tools/160.jpg", + "link": "https://wiki.protospace.ca/Curing_station_(Anycubic_Wash_and_Cure_Machine)_ID:160", + "category": "3D Printers" + }, + { + "ID": "209", + "name": "Prusa XL 3D Printer (Prusa XL)", + "photo file": "/assets/tools/209.jpeg", + "link": "https://wiki.protospace.ca/Prusa_XL_3D_Printer_(Prusa_XL)_ID:209", + "category": "3D Printers" + }, + { + "ID": "210", + "name": "Cure and Wash Station (Elegoo Mercury Plus 3.0)", + "photo file": "/assets/tools/210.jpeg", + "link": "https://wiki.protospace.ca/Cure_and_Wash_Station_(Elegoo_Mercury_Plus_3.0)_ID:210", + "category": "3D Printers" + }, + { + "ID": "211", + "name": "Filament Dryer (Creality Space Pi Filament Dryer Plus)", + "photo file": "/assets/tools/211.jpeg", + "link": "https://wiki.protospace.ca/Filament_Dryer_(Creality_Space_Pi_Filament_Dryer_Plus)_ID:211", + "category": "3D Printers" + }, + { + "ID": "227", + "name": "3D Printer, Resin (Elegoo Saturn 4 Ultra 16K)", + "photo file": "/assets/tools/227.jpeg", + "link": "https://wiki.protospace.ca/3D_Printer,_Resin_(2025)_(Elegoo_Saturn_4_Ultra_16K)_ID:227", + "category": "3D Printers" + }, + { + "ID": "225", + "name": "UV flatbed printer (eufyMake E1 )", + "photo file": "/assets/tools/225.jpeg", + "link": "https://wiki.protospace.ca/UV_flatbed_printer_(eufyMake_E1_)_ID:225", + "category": "3D Printers" + }, + { + "ID": "178", + "name": "Thunder Nova 51 Laser", + "photo file": "/assets/tools/178.jpg", + "link": "https://wiki.protospace.ca/Thunder_Nova_51_Laser_ID:178", + "category": "Laser Cutters" + }, + { + "ID": "107", + "name": "Laser cutter (Trotec Speedy 300)", + "photo file": "/assets/tools/107.jpg", + "link": "https://wiki.protospace.ca/Laser_cutter_(Trotec_Speedy_300)_ID:107", + "category": "Laser Cutters" + }, + { + "ID": "224", + "name": "Laser cutter (xTool F2 Ultra 60W MOPA & 40W Diode Dual Laser Engraver)", + "photo file": "/assets/tools/224.jpeg", + "link": "https://wiki.protospace.ca/Laser_cutter_(xTool_F2_Ultra_60W_MOPA_%26_40W_Diode_Dual_Laser_Engraver)_ID:224", + "category": "Laser Cutters" + }, + { + "ID": "141", + "name": "CNC router, mini (TD 3040)", + "photo file": "/assets/tools/141.jpg", + "link": "https://wiki.protospace.ca/CNC_router,_mini_(TD_3040)_ID:141", + "category": "Wood/Plastic CNC's" + }, + { + "ID": "153", + "name": "CNC router, wood (Precix)", + "photo file": "/assets/tools/153.jpg", + "link": "https://wiki.protospace.ca/CNC_router,_wood_(Precix)_ID:153", + "category": "Wood/Plastic CNC's" + }, + { + "ID": "143", + "name": "CNC router, benchtop (SIENCI LongMill)", + "photo file": "/assets/tools/143.png", + "link": "https://wiki.protospace.ca/CNC_router,_benchtop_(SIENCI_LongMill)_ID:143", + "category": "Wood/Plastic CNC's" + }, + { + "ID": "8", + "name": "Floor jack, blue", + "photo file": "/assets/tools/8.jpg", + "link": "https://wiki.protospace.ca/Floor_jack,_blue_ID:8", + "category": "Automotive tools" + }, + { + "ID": "9", + "name": "Trolley jack and axle stand kit (Certified)", + "photo file": "/assets/tools/9.jpg", + "link": "https://wiki.protospace.ca/Trolley_jack_and_axle_stand_kit_(Certified)_ID:9", + "category": "Automotive tools" + }, + { + "ID": "11", + "name": "Socket set", + "photo file": "/assets/tools/11.jpg", + "link": "https://wiki.protospace.ca/Socket_set_ID:11", + "category": "Automotive tools" + }, + { + "ID": "162", + "name": "Bike stand (Feedback Sport)", + "photo file": "/assets/tools/162.jpeg", + "link": "https://wiki.protospace.ca/Bike_stand_(Feedback_Sport)_ID:162", + "category": "Automotive tools" + }, + { + "ID": "181", + "name": "Blind hole bearings removal slide hammer", + "photo file": "/assets/tools/181.jpeg", + "link": "https://wiki.protospace.ca/Blind_hole_bearings_removal_slide_hammer_ID:181", + "category": "Automotive tools" + }, + { + "ID": "229", + "name": "Bike Tools (Unknown make/model)", + "photo file": "/assets/tools/229.jpeg", + "link": "https://wiki.protospace.ca/Bike_Tools_(Unknown_make/model)_ID:229", + "category": "Automotive tools" + }, + { + "ID": "230", + "name": "Strut Spring Compressor (VEVOR YS-02)", + "photo file": "/assets/tools/230.jpeg", + "link": "https://wiki.protospace.ca/Strut_Spring_Compressor_(VEVOR_YS-02)_ID:230", + "category": "Automotive tools" + }, + { + "ID": "15", + "name": "Decade box, capacitance (Servomex Controls Decade Capacitor Type B)", + "photo file": "/assets/tools/15.jpg", + "link": "https://wiki.protospace.ca/Decade_box,_capacitance_(Servomex_Controls_Decade_Capacitor_Type_B)_ID:15", + "category": "Electronics equipment" + }, + { + "ID": "16", + "name": "Function generator (John's)", + "photo file": "/assets/tools/16.jpg", + "link": "https://wiki.protospace.ca/Function_generator_(John%27s)_ID:16", + "category": "Electronics equipment" + }, + { + "ID": "18", + "name": "Heat gun (Powerfist)", + "photo file": "/assets/tools/18.jpg", + "link": "https://wiki.protospace.ca/Heat_gun_(Powerfist)_ID:18", + "category": "Electronics equipment" + }, + { + "ID": "20", + "name": "Multimeter, digital (Pro.Point 8344665)", + "photo file": "/assets/tools/20.jpg", + "link": "https://wiki.protospace.ca/Multimeter,_digital_(Pro.Point_8344665)_ID:20", + "category": "Electronics equipment" + }, + { + "ID": "167", + "name": "Oscilloscope (Siglent SDS1104X-E)", + "photo file": "/assets/tools/167.jpg", + "link": "https://wiki.protospace.ca/Oscilloscope_(Siglent_SDS1104X-E)_ID:167", + "category": "Electronics equipment" + }, + { + "ID": "23", + "name": "Oscilloscope (Tektronix 2225)", + "photo file": "/assets/tools/23.jpg", + "link": "https://wiki.protospace.ca/Oscilloscope_(Tektronix_2225)_ID:23", + "category": "Electronics equipment" + }, + { + "ID": "25", + "name": "Oscilloscope, PC (Syscomp DSO-101)", + "photo file": "/assets/tools/25.jpg", + "link": "https://wiki.protospace.ca/Oscilloscope,_PC_(Syscomp_DSO-101)_ID:25", + "category": "Electronics equipment" + }, + { + "ID": "26", + "name": "Power supply, bench (GQ Electronics GQ-A305D)", + "photo file": "/assets/tools/26.jpg", + "link": "https://wiki.protospace.ca/Power_supply,_bench_(GQ_Electronics_GQ-A305D)_ID:26", + "category": "Electronics equipment" + }, + { + "ID": "27", + "name": "Power supply, bench, 500 V (Heathkit PS-3)", + "photo file": "/assets/tools/27.jpg", + "link": "https://wiki.protospace.ca/Power_supply,_bench,_500_V_(Heathkit_PS-3)_ID:27", + "category": "Electronics equipment" + }, + { + "ID": "28", + "name": "Power supply, bench, 2-channel (TENMA 72-7245)", + "photo file": "/assets/tools/28.jpg", + "link": "https://wiki.protospace.ca/Power_supply,_bench,_2-channel_(TENMA_72-7245)_ID:28", + "category": "Electronics equipment" + }, + { + "ID": "30", + "name": "Hot-air rework station (GQ Electronics 5200)", + "photo file": "/assets/tools/30.jpg", + "link": "https://wiki.protospace.ca/Hot-air_rework_station_(GQ_Electronics_5200)_ID:30", + "category": "Electronics equipment" + }, + { + "ID": "31", + "name": "Solder fume extractor (Metcal)", + "photo file": "/assets/tools/31.jpg", + "link": "https://wiki.protospace.ca/Solder_fume_extractor_(Metcal)_ID:31", + "category": "Electronics equipment" + }, + { + "ID": "33", + "name": "Waveform generator (Syscomp WGM-101)", + "photo file": "/assets/tools/33.jpg", + "link": "https://wiki.protospace.ca/Waveform_generator_(Syscomp_WGM-101)_ID:33", + "category": "Electronics equipment" + }, + { + "ID": "34", + "name": "Waveform monitor (Tektronix 1730)", + "photo file": "/assets/tools/34.jpg", + "link": "https://wiki.protospace.ca/Waveform_monitor_(Tektronix_1730)_ID:34", + "category": "Electronics equipment" + }, + { + "ID": "219", + "name": "ICrimp IWS-3220M", + "photo file": "/assets/tools/219.jpeg", + "link": "https://wiki.protospace.ca/ICrimp_IWS-3220M_ID:219", + "category": "Electronics equipment" + }, + { + "ID": "222", + "name": "USB Cable Tester (Treedix - TRX5-0816)", + "photo file": "/assets/tools/222.jpeg", + "link": "https://wiki.protospace.ca/USB_Cable_Tester_(Treedix_-_TRX5-0816)_ID:222", + "category": "Electronics equipment" + }, + { + "ID": "37", + "name": "Bandsaw, metal, horizontal", + "photo file": "/assets/tools/37.jpg", + "link": "https://wiki.protospace.ca/Bandsaw,_metal,_horizontal_ID:37", + "category": "Metalworking tools" + }, + { + "ID": "165", + "name": "Bandsaw, metal, horizontal (Westward UE-712)", + "photo file": "/assets/tools/165.jpg", + "link": "https://wiki.protospace.ca/Bandsaw,_metal,_horizontal_(Westward_UE-712)_ID:165", + "category": "Metalworking tools" + }, + { + "ID": "39", + "name": "Bench grinder (Powerfist)", + "photo file": "/assets/tools/39.jpg", + "link": "https://wiki.protospace.ca/Bench_grinder_(Powerfist)_ID:39", + "category": "Metalworking tools" + }, + { + "ID": "40", + "name": "Bench grinder (Trademaster PR14210)", + "photo file": "/assets/tools/40.jpg", + "link": "https://wiki.protospace.ca/Bench_grinder_(Trademaster_PR14210)_ID:40", + "category": "Metalworking tools" + }, + { + "ID": "42", + "name": "Drill press (Mastercraft)", + "photo file": "/assets/tools/42.jpg", + "link": "https://wiki.protospace.ca/Drill_press_(Mastercraft)_ID:42", + "category": "Metalworking tools" + }, + { + "ID": "45", + "name": "Foundry, propane", + "photo file": "/assets/tools/45.jpg", + "link": "https://wiki.protospace.ca/Foundry,_propane_ID:45", + "category": "Metalworking tools" + }, + { + "ID": "121", + "name": "Hydraulic press, 50-ton, electric", + "photo file": "/assets/tools/121.jpg", + "link": "https://wiki.protospace.ca/Hydraulic_press,_50-ton,_electric_ID:121", + "category": "Metalworking tools" + }, + { + "ID": "46", + "name": "Lathe, metal (Challenger 1660G)", + "photo file": "/assets/tools/46.jpg", + "link": "https://wiki.protospace.ca/Lathe,_metal_(Challenger_1660G)_ID:46", + "category": "Metalworking tools" + }, + { + "ID": "47", + "name": "Lathe, miniature (Taig Microlathe II)", + "photo file": "/assets/tools/47.jpg", + "link": "https://wiki.protospace.ca/Lathe,_miniature_(Taig_Microlathe_II)_ID:47", + "category": "Metalworking tools" + }, + { + "ID": "53", + "name": "Metal shear (Magnum)", + "photo file": "/assets/tools/53.jpg", + "link": "https://wiki.protospace.ca/Metal_shear_(Magnum)_ID:53", + "category": "Metalworking tools" + }, + { + "ID": "48", + "name": "Milling machine (ACRA AM4V)", + "photo file": "/assets/tools/48.jpg", + "link": "https://wiki.protospace.ca/Milling_machine_(ACRA_AM4V)_ID:48", + "category": "Metalworking tools" + }, + { + "ID": "49", + "name": "Milling machine, CNC (Tormach PCNC 1100)", + "photo file": "/assets/tools/49.jpg", + "link": "https://wiki.protospace.ca/Milling_machine,_CNC_(Tormach_PCNC_1100)_ID:49", + "category": "Metalworking tools" + }, + { + "ID": "173", + "name": "Plasma Cutter (Hypertherm, Powermax85)", + "photo file": "/assets/tools/173.png", + "link": "https://wiki.protospace.ca/Plasma_Cutter_(Hypertherm,_Powermax85)_ID:173", + "category": "Metalworking tools" + }, + { + "ID": "51", + "name": "Plasma cutter, huge (Powercut 1500)", + "photo file": "/assets/tools/51.jpg", + "link": "https://wiki.protospace.ca/Plasma_cutter,_huge_(Powercut_1500)_ID:51", + "category": "Metalworking tools" + }, + { + "ID": "54", + "name": "Vise, giant", + "photo file": "/assets/tools/54.jpg", + "link": "https://wiki.protospace.ca/Vise,_giant_ID:54", + "category": "Metalworking tools" + }, + { + "ID": "56", + "name": "Welding magnets", + "photo file": "/assets/tools/56.jpg", + "link": "https://wiki.protospace.ca/Welding_magnets_ID:56", + "category": "Metalworking tools" + }, + { + "ID": "163", + "name": "Pipe bender (Power Fist 12 ton hydraulic)", + "photo file": "/assets/tools/163.jpg", + "link": "https://wiki.protospace.ca/Pipe_bender_(Power_Fist_12_ton_hydraulic)_ID:163", + "category": "Metalworking tools" + }, + { + "ID": "180", + "name": "Metal Shear Brake Roll - (New Magnum 52)", + "photo file": "/assets/tools/180.jpg", + "link": "https://wiki.protospace.ca/Metal_Shear_Brake_Roll_-_(New_Magnum_52)_ID:180", + "category": "Metalworking tools" + }, + { + "ID": "187", + "name": "Welder, TIG, Everlast PowerTIG 250EX", + "photo file": "/assets/tools/187.png", + "link": "https://wiki.protospace.ca/Welder,_TIG,_Everlast_PowerTIG_250EX_ID:187", + "category": "Metalworking tools" + }, + { + "ID": "208", + "name": "MIG Welder (Millermatic 255)", + "photo file": "/assets/tools/208.jpeg", + "link": "https://wiki.protospace.ca/MIG_Welder_(Millermatic_255)_ID:208", + "category": "Metalworking tools" + }, + { + "ID": "171", + "name": "Wood Lathe, JET JWL-1236", + "photo file": "/assets/tools/171.jpg", + "link": "https://wiki.protospace.ca/Wood_Lathe,_JET_JWL-1236_ID:171", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "57", + "name": "Bandsaw, green", + "photo file": "/assets/tools/57.jpg", + "link": "https://wiki.protospace.ca/Bandsaw,_green_ID:57", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "61", + "name": "Drill, hand, corded, black (Jobmate)", + "photo file": "/assets/tools/61.jpg", + "link": "https://wiki.protospace.ca/Drill,_hand,_corded,_black_(Jobmate)_ID:61", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "62", + "name": "Drill, hand, corded, dark blue (Ryobi)", + "photo file": "/assets/tools/62.jpg", + "link": "https://wiki.protospace.ca/Drill,_hand,_corded,_dark_blue_(Ryobi)_ID:62", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "68", + "name": "Drill, hand, corded (Makita DP3720)", + "photo file": "/assets/tools/68.jpg", + "link": "https://wiki.protospace.ca/Drill,_hand,_corded_(Makita_DP3720)_ID:68", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "69", + "name": "Drill press, 8\" (Jobmate)", + "photo file": "/assets/tools/69.jpg", + "link": "https://wiki.protospace.ca/Drill_press,_8%22_(Jobmate)_ID:69", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "70", + "name": "Jigsaw, corded (Black & Decker)", + "photo file": "/assets/tools/70.jpg", + "link": "https://wiki.protospace.ca/Jigsaw,_corded_(Black_%26_Decker)_ID:70", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "72", + "name": "Jigsaw (Skil)", + "photo file": "/assets/tools/72.jpg", + "link": "https://wiki.protospace.ca/Jigsaw_(Skil)_ID:72", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "75", + "name": "Nailer, pneumatic, 2-in-1", + "photo file": "/assets/tools/75.jpg", + "link": "https://wiki.protospace.ca/Nailer,_pneumatic,_2-in-1_ID:75", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "76", + "name": "Plate joiner (Porter Cable 557)", + "photo file": "/assets/tools/76.jpg", + "link": "https://wiki.protospace.ca/Plate_joiner_(Porter_Cable_557)_ID:76", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "140", + "name": "Pocket hole jig (Kreg K3)", + "photo file": "/assets/tools/140.jpg", + "link": "https://wiki.protospace.ca/Pocket_hole_jig_(Kreg_K3)_ID:140", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "78", + "name": "Rotary tool, corded (Mastercraft)", + "photo file": "/assets/tools/78.jpg", + "link": "https://wiki.protospace.ca/Rotary_tool,_corded_(Mastercraft)_ID:78", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "79", + "name": "Rotary tool, cordless (Dremel)", + "photo file": "/assets/tools/79.jpg", + "link": "https://wiki.protospace.ca/Rotary_tool,_cordless_(Dremel)_ID:79", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "83", + "name": "Sander, belt (Makita 9402)", + "photo file": "/assets/tools/83.jpg", + "link": "https://wiki.protospace.ca/Sander,_belt_(Makita_9402)_ID:83", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "85", + "name": "Sander, detail (Ryobi)", + "photo file": "/assets/tools/85.jpg", + "link": "https://wiki.protospace.ca/Sander,_detail_(Ryobi)_ID:85", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "106", + "name": "Sander, drum (General International 15-250 M1)", + "photo file": "/assets/tools/106.jpg", + "link": "https://wiki.protospace.ca/Sander,_drum_(General_International_15-250_M1)_ID:106", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "88", + "name": "Sander, straight-line/orbital (Black & Decker Deluxe)", + "photo file": "/assets/tools/88.jpg", + "link": "https://wiki.protospace.ca/Sander,_straight-line/orbital_(Black_%26_Decker_Deluxe)_ID:88", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "92", + "name": "Thickness planer (Ryobi AP1301)", + "photo file": "/assets/tools/92.jpg", + "link": "https://wiki.protospace.ca/Thickness_planer_(Ryobi_AP1301)_ID:92", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "93", + "name": "Vacuum, sawdust (Craftex CX404)", + "photo file": "/assets/tools/93.jpg", + "link": "https://wiki.protospace.ca/Vacuum,_sawdust_(Craftex_CX404)_ID:93", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "94", + "name": "Vise, wood", + "photo file": "/assets/tools/94", + "link": "https://wiki.protospace.ca/Vise,_wood_ID:94", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "95", + "name": "Vise, wood (Travis's)", + "photo file": "/assets/tools/95.jpg", + "link": "https://wiki.protospace.ca/Vise,_wood_(Travis%27s)_ID:95", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "185", + "name": "Jointer, 6-Inch", + "photo file": "/assets/tools/185.jpg", + "link": "https://wiki.protospace.ca/Jointer,_6-Inch_ID:185", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "186", + "name": "Miter saw, compound, sliding (DeWalt)", + "photo file": "/assets/tools/186.jpg", + "link": "https://wiki.protospace.ca/Miter_saw,_compound,_sliding_(DeWalt)_ID:186", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "149", + "name": "Drill press, floor mounted, variable speed", + "photo file": "/assets/tools/149.jpg", + "link": "https://wiki.protospace.ca/Drill_press,_floor_mounted,_variable_speed_ID:149", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "164", + "name": "Handheld metal detector", + "photo file": "/assets/tools/164.jpg", + "link": "https://wiki.protospace.ca/Handheld_metal_detector_ID:164", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "172", + "name": "Table saw (SawStop)", + "photo file": "/assets/tools/172.jpg", + "link": "https://wiki.protospace.ca/Table_saw_(SawStop)_ID:172", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "174", + "name": "drying rack (coyle-made)", + "photo file": "/assets/tools/174.jpg", + "link": "https://wiki.protospace.ca/Drying_rack_(coyle-made)_ID:174", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "212", + "name": "Dovetail Jig (Leigh D4R Pro )", + "photo file": "/assets/tools/212.jpeg", + "link": "https://wiki.protospace.ca/Dovetail_Jig_(Leigh_D4R_Pro_)_ID:212", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "214", + "name": "Pen Blank Drilling Vise ()", + "photo file": "/assets/tools/214.jpeg", + "link": "https://wiki.protospace.ca/Pen_Blank_Drilling_Vise_()_ID:214", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "215", + "name": "Mini Wood Lathe (Craftex CT172)", + "photo file": "/assets/tools/215.jpeg", + "link": "https://wiki.protospace.ca/Mini_Wood_Lathe_(Craftex_CT172)_ID:215", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "216", + "name": "Turning Tool Set (Savannah Mini Carbide Turning Tool Set)", + "photo file": "/assets/tools/216.jpeg", + "link": "https://wiki.protospace.ca/Turning_Tool_Set_(Savannah_Mini_Carbide_Turning_Tool_Set)_ID:216", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "217", + "name": "Biscuit Joiner (Lamello Cobra Joiner, Model D 7640 H)", + "photo file": "/assets/tools/217.jpeg", + "link": "https://wiki.protospace.ca/Biscuit_Joiner_(Lamello_Cobra_Joiner,_Model_D_7640_H)_ID:217", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "218", + "name": "Belt Sander (Sears Craftsman, Model No. 315 11760)", + "photo file": "/assets/tools/218.jpeg", + "link": "https://wiki.protospace.ca/Belt_Sander_(Sears_Craftsman,_Model_No._315_11760)_ID:218", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "223", + "name": "Center Finder (Veritas)", + "photo file": "/assets/tools/223.jpeg", + "link": "https://wiki.protospace.ca/Center_Finder_(Veritas)_ID:223", + "category": "Woodworking and plasticworking tools" + }, + { + "ID": "120", + "name": "Sewing machine, domestic (Singer 1802)", + "photo file": "/assets/tools/120.jpg", + "link": "https://wiki.protospace.ca/Sewing_machine,_domestic_(Singer_1802)_ID:120", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "183", + "name": "Sewing Machine, Industrial Cylinder Arm Walking Foot, (Techsew TS-2750)", + "photo file": "/assets/tools/183.png", + "link": "https://wiki.protospace.ca/Sewing_Machine,_Industrial_Cylinder_Arm_Walking_Foot,_(Techsew_TS-2750)_ID:183", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "184", + "name": "Skiving Machine, Bell Knife, (Techsew SK-4)", + "photo file": "/assets/tools/184.jpg", + "link": "https://wiki.protospace.ca/Skiving_Machine,_Bell_Knife,_(Techsew_SK-4)_ID:184", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "147", + "name": "Sewing machine, industrial (Singer 211G155)", + "photo file": "/assets/tools/147.jpg", + "link": "https://wiki.protospace.ca/Sewing_machine,_industrial_(Singer_211G155)_ID:147", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "144", + "name": "Embroidery machine, CNC (Tajima TEJT II-C NEO 1501)", + "photo file": "/assets/tools/144.jpg", + "link": "https://wiki.protospace.ca/Embroidery_machine,_CNC_(Tajima_TEJT_II-C_NEO_1501)_ID:144", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "150", + "name": "Sewing/embroidery machine, computer controlled (Singer Futura CE-250)", + "photo file": "/assets/tools/150.jpg", + "link": "https://wiki.protospace.ca/Sewing/embroidery_machine,_computer_controlled_(Singer_Futura_CE-250)_ID:150", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "156", + "name": "Sewing machine, domestic (Janome HD-1000)", + "photo file": "/assets/tools/156.jpg", + "link": "https://wiki.protospace.ca/Sewing_machine,_domestic_(Janome_HD-1000)_ID:156", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "157", + "name": "Serger, 4 thread (Singer 14U34B)", + "photo file": "/assets/tools/157.jpg", + "link": "https://wiki.protospace.ca/Serger,_4_thread_(Singer_14U34B)_ID:157", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "158", + "name": "Serger, 4 thread, (Janome MyLock 634D)", + "photo file": "/assets/tools/158.jpg", + "link": "https://wiki.protospace.ca/Serger,_4_thread,_(Janome_MyLock_634D)_ID:158", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "148", + "name": "Vinyl cutter, big (Graphtec FC8000-75)", + "photo file": "/assets/tools/148.jpg", + "link": "https://wiki.protospace.ca/Vinyl_cutter,_big_(Graphtec_FC8000-75)_ID:148", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "154", + "name": "Heat press, digital (Geo Knight and Co Inc K20S)", + "photo file": "/assets/tools/154.jpg", + "link": "https://wiki.protospace.ca/Heat_press,_digital_(Geo_Knight_and_Co_Inc_K20S)_ID:154", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "155", + "name": "Heat press, auto release (Insta Graphic Systems 158)", + "photo file": "/assets/tools/155.jpg", + "link": "https://wiki.protospace.ca/Heat_press,_auto_release_(Insta_Graphic_Systems_158)_ID:155", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "166", + "name": "Printer, 44\" Large Format (HP DesignJet T1200),", + "photo file": "/assets/tools/166.jpg", + "link": "https://wiki.protospace.ca/Printer,_44%22_Large_Format_(HP_DesignJet_T1200),_ID:166", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "201", + "name": "Sheetfeed document and photo scanner (Fujitsu ScanSnap S1500)", + "photo file": "/assets/tools/201.jpeg", + "link": "https://wiki.protospace.ca/Sheetfeed_document_and_photo_scanner_(Fujitsu_ScanSnap_S1500)_ID:201", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "205", + "name": "Label Maker (Brother P-touch D610BT)", + "photo file": "/assets/tools/205.jpeg", + "link": "https://wiki.protospace.ca/Label_Maker_(Brother_P-touch_D610BT)_ID:205", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "221", + "name": "Inkjet printer (Epson Stylus Pro 3880)", + "photo file": "/assets/tools/221.jpeg", + "link": "https://wiki.protospace.ca/Inkjet_printer_(Epson_Stylus_Pro_3880)_ID:221", + "category": "Textile, Leather, Vinyl, and Media tools" + }, + { + "ID": "97", + "name": "Inspection mirror, 18\" gooseneck", + "photo file": "/assets/tools/97.jpg", + "link": "https://wiki.protospace.ca/Inspection_mirror,_18%22_gooseneck_ID:97", + "category": "Measuring and inspection tools" + }, + { + "ID": "98", + "name": "Magnifier lamp, large, with lid", + "photo file": "/assets/tools/98.jpg", + "link": "https://wiki.protospace.ca/Magnifier_lamp,_large,_with_lid_ID:98", + "category": "Measuring and inspection tools" + }, + { + "ID": "99", + "name": "Magnifier lamp, large, without lid", + "photo file": "/assets/tools/99.jpg", + "link": "https://wiki.protospace.ca/Magnifier_lamp,_large,_without_lid_ID:99", + "category": "Measuring and inspection tools" + }, + { + "ID": "100", + "name": "Magnifier lamp, small, with lid", + "photo file": "/assets/tools/100.jpg", + "link": "https://wiki.protospace.ca/Magnifier_lamp,_small,_with_lid_ID:100", + "category": "Measuring and inspection tools" + }, + { + "ID": "101", + "name": "Measuring tapes", + "photo file": "/assets/tools/101.jpg", + "link": "https://wiki.protospace.ca/Measuring_tapes_ID:101", + "category": "Measuring and inspection tools" + }, + { + "ID": "104", + "name": "Thermometer, infrared (H64)", + "photo file": "/assets/tools/104.jpg", + "link": "https://wiki.protospace.ca/Thermometer,_infrared_(H64)_ID:104", + "category": "Measuring and inspection tools" + }, + { + "ID": "203", + "name": "3D Scanner (Creality RaptorX)", + "photo file": "/assets/tools/203.jpeg", + "link": "https://wiki.protospace.ca/3D_Scanner_(Creality_RaptorX)_ID:203", + "category": "Measuring and inspection tools" + }, + { + "ID": "188", + "name": "Thermal camera, white ethernet camera, 320x240 (chinese camera)", + "photo file": "/assets/tools/188.jpg", + "link": "https://wiki.protospace.ca/Thermal_camera,_white_ethernet_camera,_320x240_(chinese_camera)_ID:188", + "category": "Measuring and inspection tools" + }, + { + "ID": "226", + "name": "3D Scanner Laptop (Razer RZ09-0410)", + "photo file": "/assets/tools/226.jpeg", + "link": "https://wiki.protospace.ca/3D_Scanner_Laptop_(Razer_RZ09-0410)_ID:226", + "category": "Measuring and inspection tools" + }, + { + "ID": "111", + "name": "Air compressor, 80-gallon (MAXair Premium)", + "photo file": "/assets/tools/111.jpg", + "link": "https://wiki.protospace.ca/Air_compressor,_80-gallon_(MAXair_Premium)_ID:111", + "category": "Miscellaneous tools" + }, + { + "ID": "204", + "name": "Paint Booth, Collapsible Painting booth V1.0, Pat Spencer's", + "photo file": "/assets/tools/204.jpg", + "link": "https://wiki.protospace.ca/Paint_Booth,_Collapsible_Painting_booth_V1.0,_Pat_Spencer%27s_ID:204", + "category": "Miscellaneous tools" + }, + { + "ID": "112", + "name": "Air compressor, silent", + "photo file": "/assets/tools/112.jpg", + "link": "https://wiki.protospace.ca/Air_compressor,_silent_ID:112", + "category": "Miscellaneous tools" + }, + { + "ID": "115", + "name": "Engraver", + "photo file": "/assets/tools/115.jpg", + "link": "https://wiki.protospace.ca/Engraver_ID:115", + "category": "Miscellaneous tools" + }, + { + "ID": "116", + "name": "Hand truck, red", + "photo file": "/assets/tools/116.jpg", + "link": "https://wiki.protospace.ca/Hand_truck,_red_ID:116", + "category": "Miscellaneous tools" + }, + { + "ID": "118", + "name": "Hot-wire foam cutter, tabletop, 14\"×12\"", + "photo file": "/assets/tools/118.jpg", + "link": "https://wiki.protospace.ca/Hot-wire_foam_cutter,_tabletop,_14%22%C3%9712%22_ID:118", + "category": "Miscellaneous tools" + }, + { + "ID": "127", + "name": "Oil can, blue", + "photo file": "/assets/tools/127.jpg", + "link": "https://wiki.protospace.ca/Oil_can,_blue_ID:127", + "category": "Miscellaneous tools" + }, + { + "ID": "128", + "name": "Painting tools", + "photo file": "/assets/tools/128.jpg", + "link": "https://wiki.protospace.ca/Painting_tools_ID:128", + "category": "Miscellaneous tools" + }, + { + "ID": "129", + "name": "Pinball machine (Williams Road Kings)", + "photo file": "/assets/tools/129.jpg", + "link": "https://wiki.protospace.ca/Pinball_machine_(Williams_Road_Kings)_ID:129", + "category": "Miscellaneous tools" + }, + { + "ID": "130", + "name": "Sandblasting cabinet, floor, blue (Powerfist)", + "photo file": "/assets/tools/130.jpg", + "link": "https://wiki.protospace.ca/Sandblasting_cabinet,_floor,_blue_(Powerfist)_ID:130", + "category": "Miscellaneous tools" + }, + { + "ID": "131", + "name": "Screwdriver magnetizer/demagnetizer (Wiha 40010)", + "photo file": "/assets/tools/131.jpg", + "link": "https://wiki.protospace.ca/Screwdriver_magnetizer/demagnetizer_(Wiha_40010)_ID:131", + "category": "Miscellaneous tools" + }, + { + "ID": "132", + "name": "Shop vacuum, orange", + "photo file": "/assets/tools/132.jpg", + "link": "https://wiki.protospace.ca/Shop_vacuum,_orange_ID:132", + "category": "Miscellaneous tools" + }, + { + "ID": "133", + "name": "Staple gun (Arrow T-18)", + "photo file": "/assets/tools/133.jpg", + "link": "https://wiki.protospace.ca/Staple_gun_(Arrow_T-18)_ID:133", + "category": "Miscellaneous tools" + }, + { + "ID": "134", + "name": "Vacuum cart", + "photo file": "/assets/tools/134.jpg", + "link": "https://wiki.protospace.ca/Vacuum_cart_ID:134", + "category": "Miscellaneous tools" + }, + { + "ID": "136", + "name": "Vacuum cleaner, portable", + "photo file": "/assets/tools/136.jpg", + "link": "https://wiki.protospace.ca/Vacuum_cleaner,_portable_ID:136", + "category": "Miscellaneous tools" + }, + { + "ID": "137", + "name": "Vacuum pump (Edwards SpeediVac ED200)", + "photo file": "/assets/tools/137.jpg", + "link": "https://wiki.protospace.ca/Vacuum_pump_(Edwards_SpeediVac_ED200)_ID:137", + "category": "Miscellaneous tools" + }, + { + "ID": "161", + "name": "Laminator (Scotch TL902)", + "photo file": "/assets/tools/161.jpg", + "link": "https://wiki.protospace.ca/Laminator_(Scotch_TL902)_ID:161", + "category": "Miscellaneous tools" + }, + { + "ID": "166", + "name": "Printer, 44\" Large Format (HP DesignJet T1200),", + "photo file": "/assets/tools/166.jpg", + "link": "https://wiki.protospace.ca/Printer,_44%22_Large_Format_(HP_DesignJet_T1200),_ID:166", + "category": "Miscellaneous tools" + }, + { + "ID": "169", + "name": "ADS-B Base Station, FlightAware,", + "photo file": "/assets/tools/169.png", + "link": "https://wiki.protospace.ca/ADS-B_Base_Station,_FlightAware,_ID:169", + "category": "Miscellaneous tools" + }, + { + "ID": "176", + "name": "Vending machine, pop (Vendo 576)", + "photo file": "/assets/tools/176.jpg", + "link": "https://wiki.protospace.ca/Vending_machine,_pop_(Vendo_576)_ID:176", + "category": "Miscellaneous tools" + }, + { + "ID": "177", + "name": "Vending machine, snacks (Crane 173)", + "photo file": "/assets/tools/177.jpg", + "link": "https://wiki.protospace.ca/Vending_machine,_snacks_(Crane_173)_ID:177", + "category": "Miscellaneous tools" + }, + { + "ID": "2", + "name": "3D printer, FFF (ORD Bot Hadron)", + "photo file": "/assets/tools/2.jpg", + "link": "https://wiki.protospace.ca/3D_printer,_FFF_(ORD_Bot_Hadron)_ID:2", + "category": "Miscellaneous tools" + }, + { + "ID": "12", + "name": "Oxygen concentrator (OGSI OG-15)", + "photo file": "/assets/tools/12.jpg", + "link": "https://wiki.protospace.ca/Oxygen_concentrator_(OGSI_OG-15)_ID:12", + "category": "Miscellaneous tools" + }, + { + "ID": "179", + "name": "Drying rack (coyle-made)", + "photo file": "/assets/tools/179.jpg", + "link": "https://wiki.protospace.ca/Drying_rack_(coyle-made)_ID:179", + "category": "Miscellaneous tools" + }, + { + "ID": "199", + "name": "Bicycle pump (Unknown make/model)", + "photo file": "/assets/tools/199.jpeg", + "link": "https://wiki.protospace.ca/Bicycle_pump_(Unknown_make/model)_ID:199", + "category": "Miscellaneous tools" + }, + { + "ID": "200", + "name": "Ultrasonic Cleaner (Unknown make/model)", + "photo file": "/assets/tools/200.jpeg", + "link": "https://wiki.protospace.ca/Ultrasonic_Cleaner_(Unknown_make/model)_ID:200", + "category": "Miscellaneous tools" + }, + { + "ID": "202", + "name": "Glass Grinder (Gryphette Diamond Grinder)", + "photo file": "/assets/tools/202.jpeg", + "link": "https://wiki.protospace.ca/Glass_Grinder_(Gryphette_Diamond_Grinder)_ID:202", + "category": "Miscellaneous tools" + }, + { + "ID": "206", + "name": "Hot Knife (250W AC Rotatable Electric Hot Knife)", + "photo file": "/assets/tools/206.jpeg", + "link": "https://wiki.protospace.ca/Hot_Knife_(250W_AC_Rotatable_Electric_Hot_Knife)_ID:206", + "category": "Miscellaneous tools" + }, + { + "ID": "207", + "name": "Hot-wire foam cutter (Proto-made)", + "photo file": "/assets/tools/207.jpeg", + "link": "https://wiki.protospace.ca/Hot-wire_foam_cutter_(Proto-made)_ID:207", + "category": "Miscellaneous tools" + }, + { + "ID": "213", + "name": "Dovetail Jig Router Bits (Leigh D4R Pro Router Bits)", + "photo file": "/assets/tools/213.jpeg", + "link": "https://wiki.protospace.ca/Dovetail_Jig_Router_Bits_(Leigh_D4R_Pro_Router_Bits)_ID:213", + "category": "Miscellaneous tools" + }, + { + "ID": "220", + "name": "Climbing Anchor Station (Unknown make/model)", + "photo file": "/assets/tools/220.jpeg", + "link": "https://wiki.protospace.ca/Climbing_Anchor_Station_(Unknown_make/model)_ID:220", + "category": "Miscellaneous tools" + }, + { + "ID": "228", + "name": "Electric Paint Remover (Black & Decker No. 5790-04)", + "photo file": "/assets/tools/228.jpeg", + "link": "https://wiki.protospace.ca/Electric_Paint_Remover_(Black_%26_Decker_No._5790-04)_ID:228", + "category": "Miscellaneous tools" + } +] diff --git a/tools/index.html b/tools/index.html new file mode 100644 index 0000000..59f7fe5 --- /dev/null +++ b/tools/index.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + Tools – Protospace + + + + + + +
+ +
+
+
+
+

Tools

+
+

+ Browse the tools and equipment available to Protospace members. This catalog follows the + categories and ordering on the Protospace Wiki. +

+ +
+

Loading tools…

+
+
+ +
+ +
+
+ + + + diff --git a/wood-shop/index.html b/wood-shop/index.html index ff457c1..e42271d 100644 --- a/wood-shop/index.html +++ b/wood-shop/index.html @@ -69,11 +69,12 @@ Protospace