From c4185489577f8b4c13e07bdb7cdbbb4b6051ce3f Mon Sep 17 00:00:00 2001 From: Aki Van Ness Date: Sun, 10 Mar 2024 06:45:43 -0700 Subject: [PATCH] docs: updated docs to use differed URLs in markdown links and also updated the comparison table --- docs/applets/api/index.md | 8 ++-- docs/applets/api/repl.md | 9 ---- docs/applets/index.md | 11 +++-- docs/faq.md | 10 ++++- docs/getting_started.md | 5 ++- docs/hardware/index.md | 15 +++++-- docs/hardware/rev1.md | 2 +- docs/index.md | 86 +++++++++++++++++++++++++-------------- docs/install.md | 24 ++++++++--- docs/introduction.md | 25 ++++++++---- docs/library/index.md | 7 +++- docs/mascot.md | 18 +++++--- 12 files changed, 147 insertions(+), 73 deletions(-) delete mode 100644 docs/applets/api/repl.md diff --git a/docs/applets/api/index.md b/docs/applets/api/index.md index b7b35fbe..d5ed020d 100644 --- a/docs/applets/api/index.md +++ b/docs/applets/api/index.md @@ -4,7 +4,6 @@ :hidden: cli -repl applet device ``` @@ -15,9 +14,9 @@ Flesh this out The following APIs are available for use within Squishy applets. They allow the applet to register various components with the Squishy framework, such as the -[CLI](./cli.md), or the [REPL](./repl.md). Out of the three subsystems, only the CLI is mandatory, the GUI and REPL are optional. +[CLI]. Out of the three subsystems, only the CLI is mandatory, the GUI and REPL are optional. -For details on how to write Squishy applets, see the [Applets Tutorial](../../tutorials/applets/index.md) for a walk-through. +For details on how to write Squishy applets, see the [Applets Tutorial] for a walk-through. ## Applet Search Locations @@ -47,3 +46,6 @@ The second location Squishy searches for applets in is partially platform depend ``` + +[Applets Tutorial]: ../../tutorials/applets/index.md +[CLI]: ./cli.md diff --git a/docs/applets/api/repl.md b/docs/applets/api/repl.md deleted file mode 100644 index bb92f78d..00000000 --- a/docs/applets/api/repl.md +++ /dev/null @@ -1,9 +0,0 @@ -# Squishy Applet: REPL API - -```{toctree} -:hidden: -``` - -```{todo} -Write this section. -``` diff --git a/docs/applets/index.md b/docs/applets/index.md index 66a6b7b2..19d52c4f 100644 --- a/docs/applets/index.md +++ b/docs/applets/index.md @@ -13,11 +13,16 @@ Flesh this section out ``` -Squishy allows for the development of modular pieces of combined code and [Torii HDL](https://github.com/shrine-maiden-heavy-industries/torii-hdl) gateware called an applet. It gives Squishy it's functionality and allows for the extension of said functionality and/or entirely new custom functionality. +Squishy allows for the development of modular pieces of combined code and [Torii HDL] gateware called an applet. It gives Squishy it's functionality and allows for the extension of said functionality and/or entirely new custom functionality. -There are currently two built-in applets, the [analyzer](./analyzer.md), and [taperipper](./taperipper.md) applets. With more built-in applets are planned for the future. +There are currently two built-in applets, the [analyzer], and [taperipper]applets. With more built-in applets are planned for the future. Squishy allows you to run your own custom applets, any python packages in the `SQUISHY_APPLETS` directory are attempted to be loaded as an applet, and then exposed to the user to allow them to invoke. -For more details on custom applets, see the [Custom Applet](../tutorials/applets/index.md) tutorial for a walkthrough of developing your own Squishy applet. +For more details on custom applets, see the [Custom Applet] tutorial for a walkthrough of developing your own Squishy applet. + +[Custom Applet]: ../tutorials/applets/index.md +[analyzer]: ./analyzer.md +[taperipper]: ./taperipper.md +[Torii HDL]: https://github.com/shrine-maiden-heavy-industries/torii-hdl diff --git a/docs/faq.md b/docs/faq.md index b23cae67..e8bc18c3 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,10 +1,16 @@ # Frequently Asked Questions -The following are some commonly asked questions, while this section is not exhaustive it will be updated when appropriate. For more specific questions, please join the IRC channel [#squishy on libera.chat](https://web.libera.chat/#squishy) or use the [GitHub Discussions](https://github.com/squishy-scsi/squishy/discussions). +The following are some commonly asked questions, while this section is not exhaustive it will be updated when appropriate. For more specific questions, please join the IRC channel [#squishy on libera.chat] or use the [GitHub Discussions]. ## Why Does Squishy not have a Discord? Squishy likes to do things out in the open, this means that Discords model of walled-off communities is not conducive to how we want to do things. In addition to this, there is a trend to moving documentation away from things like Wiki's and websites into Discord servers, which causes that information to no longer be publicly accessible, this is a huge problem when it comes to things like Open Source projects such as Squishy. -All in all, to make things easier on both the maintainers and community members, we are staying away from Discord for the forseeable future. We have an IRC chanel for developer talk and general chatting, and for everything else we have the [GitHub Discussions](https://github.com/squishy-scsi/squishy/discussions), Issue tracker, and this website. +All in all, to make things easier on both the maintainers and community members, we are staying away from Discord for the forseeable future. We have an IRC chanel for developer talk and general chatting, and for everything else we have the [GitHub Discussions], [Issue tracker], and this website. + + + +[#squishy on libera.chat]: https://web.libera.chat/#squishy +[GitHub Discussions]: https://github.com/squishy-scsi/squishy/discussions, +[Issue tracker]: https://github.com/squishy-scsi/squishy/issues diff --git a/docs/getting_started.md b/docs/getting_started.md index 30253825..a3886a8c 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -6,7 +6,7 @@ # Getting Started -To get started with Squishy, first follow the [installation](install.md) instructions before you continue. +To get started with Squishy, first follow the [installation] instructions before you continue. ## Connecting the Hardware @@ -20,3 +20,6 @@ Write this section ```{todo} Write this section ``` + + +[installation]: ./install.md diff --git a/docs/hardware/index.md b/docs/hardware/index.md index b9b4f400..f3b5e4fa 100644 --- a/docs/hardware/index.md +++ b/docs/hardware/index.md @@ -21,7 +21,7 @@ Both the revision and the release level start at 0, and increment by one. If the The format follows the `rev<#>[.#]` format, where `rev<#>` is the hardware revision and `[.#]` is the release level. so the following string, `rev8.3` is hardware revision 8, release 3. -Currently there are two hardware releases [`rev1`](./rev1.md) and [`rev2`](./rev2.md), see each page for details on each respective hardware revision. +Currently there are two hardware releases [`rev1`] and [`rev2`], see each page for details on each respective hardware revision. @@ -32,7 +32,7 @@ There are two main ways to get squishy hardware, buying it, or building it. ### Buying Hardware ```{note} -As of 2022-04-24, Squishy hardware is not available for sale, however, once engineering and validation of Revision 2 is completed, rev2 units are expected to be available to purchase. +As of 2024-03-10, Squishy hardware is not available for sale, however, once engineering and validation of Revision 2 is completed, rev2 units are expected to be available to purchase. ``` ### Building Hardware @@ -43,9 +43,16 @@ The smallest parts are 0402 and all revisions contain at least one large BGA par ### Provisioning the Hardware -If you buy a pre-built Squishy, it will already be provisioned, but in case something goes catastrophically wrong with an update, or you build your own hardware, see the section on [provisioning](../tutorials/provisioning.md) to learn how to provision new hardware or re-provision existing hardware. +If you buy a pre-built Squishy, it will already be provisioned, but in case something goes catastrophically wrong with an update, or you build your own hardware, see the section on [provisioning] to learn how to provision new hardware or re-provision existing hardware. ### Work-In-Progress Hardware -The hardware is always a work in progress, you can view a live rendering of the WIP hardware in your web browser [here](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fsquishy-scsi%2Fhardware%2Ftree%2Fmain%2Fboards%2Fsquishy), thanks to [KiCanvas](https://kicanvas.org). +The hardware is always a work in progress, you can view a live rendering of the WIP hardware in your web browser [here](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fsquishy-scsi%2Fhardware%2Ftree%2Fmain%2Fboards%2Fsquishy), thanks to [KiCanvas]. + + +[provisioning]: ../tutorials/provisioning.md +[`rev1`]: ./rev1.md +[`rev2`]: ./rev2.md +[here]: https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fsquishy-scsi%2Fhardware%2Ftree%2Fmain%2Fboards%2Fsquishy +[KiCanvas]: https://kicanvas.org diff --git a/docs/hardware/rev1.md b/docs/hardware/rev1.md index 4ce9a56d..eb078a5a 100644 --- a/docs/hardware/rev1.md +++ b/docs/hardware/rev1.md @@ -4,7 +4,7 @@ Flesh this section out ``` ```{warning} -This hardware revision has [errata](#errata)! +This hardware revision should be considered non-functional and is kept in the documentation for historical purposes only. ``` diff --git a/docs/index.md b/docs/index.md index db25535c..c780635b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -27,62 +27,88 @@ Hardware :figwidth: 350px ``` -This is the documentation for [Squishy](https://github.com/squishy-scsi/squishy) and it's supporting components, as well as a collection of guides and tutorials for the Squishy ecosystem. +This is the documentation for [Squishy] and it's supporting components, as well as a collection of guides and tutorials for the Squishy ecosystem. ## What Squishy Isn't It's important to detail what Squishy isn't, as it differs a lot from other devices intended to interact with older SCSI systems. -Squishy is not *only* a disk emulator like the [BlueSCSI](https://scsi.blue/) or the [SCSI2SD](https://www.codesrc.com/mediawiki/index.php?title=SCSI2SD). It is also not *only* a SCSI to USB Mass storage adapter. +Squishy is not *only* a disk emulator like the [BlueSCSI] or the [SCSI2SD]. It is also not *only* a SCSI to USB Mass storage adapter. Squishy is not a *specialized* device targeting only a single aspect of the SCSI ecosystem, nor targeting only a single platform. ## What Squishy Is -Squishy is a platform, it allows you to accomplish almost any goal you wish to that involves a SCSI bus. It can do things as mundane as emulating a SCSI hard drive, but also you can use it to [sniff, analyze, and reply SCSI bus traffic](./applets/analyzer.md), or even [boot a modern system from 9-track tape](./applets/taperipper.md). +Squishy is a platform, it allows you to accomplish almost any goal you wish to that involves a SCSI bus. It can do things as mundane as emulating a SCSI hard drive, but also you can use it to [sniff, analyze, and replay SCSI bus traffic], or even [boot a modern system from 9-track tape]. -It is comprised of a [gateware](./library/gateware/index.md) and [python](./library/python/index.md) library as well as a [hardware](./hardware/index.md) platform that acts as a bridge between the software and SCSI bus. Squishy allows for powerful and flexible control over all things SCSI, and using its [powerful applet system](./applets/index.md) it gives that power to you. +It is comprised of a [gateware] and [python] library as well as a [hardware] platform that acts as a bridge between the software and SCSI bus. Squishy allows for powerful and flexible control over all things SCSI, and using its [powerful applet system] it gives that power to you. -For a more detailed introduction to Squishy and it's components, see the [Introduction](./introduction.md) section of the documentation. Then, when you're ready visit the [Getting Started](./getting_started.md) section to get up an running. +For a more detailed introduction to Squishy and it's components, see the [Introduction] section of the documentation. Then, when you're ready visit the [Getting Started] section to get up an running. -Squishy is entirely open source, and under permissive licenses. The full source code, gateware, firmware, and hardware designs are available on [GitHub](https://github.com/squishy-scsi/squishy). +Squishy is entirely open source, and under permissive licenses. The full source code, gateware, firmware, and hardware designs are available on [GitHub]. ## Comparison -| | [Squishy](https://scsi.moe) | [BlueSCSI](https://scsi.blue/) | [SCSI2SD](https://www.codesrc.com/mediawiki/index.php/SCSI2SD) | [PiSCSI](https://github.com/PiSCSI/piscsi) | -|-----------------------|----------------|----------------|---------|--------------------| -| Has a cute mascot | Yes | No | No | No | -| Device Emulation | Yes | Yes | Yes | Yes | -| Non-Storage Emulation | Yes | No | No | Yes1 | -| Initiator Emulation | Yes | No | No | Yes1 | -| Passive Bus Tapping | Yes | No | No | Yes | -| Fully Open Source | Yes | No2 | No | No2 | -| SCSI-1 Support | Yes | No | No | No | -| SCSI-2 Support | Yes | Yes? | Yes | Yes | -| SCSI-3 Support | Yes | No | No | No | -| HVD Support | Yes | No | No | No | -| LVD Support | Yes | No | No | No | -| SE Support | Yes | Yes | Yes | Yes | -| Fastest Bus Speed | Nyoomie | ? | FAST10 | ? | -| Standalone | No3 | Yes | Yes | Yes | -| Cost | ? | ~50USD | ~98USD | ~45USD4 | +| | [Squishy] | [BlueSCSI] | [SCSI2SD] | [PiSCSI] | +|-----------------------|------------------------|-----------------|-----------|--------------------| +| Has a cute mascot | Yes | No | No | No | +| Device Emulation | Yes | Yes | Yes | Yes | +| Non-Storage Emulation | Yes | Yes1 | No | Yes2 | +| Initiator Emulation | Yes | Yes | No | Yes2 | +| Passive Bus Tapping | Yes | No? | No | Yes | +| Fully Open Source | Yes | Yes | No | No3 | +| SCSI-1 Support | Yes | Yes | No | No | +| SCSI-2 Support | Yes | Yes | Yes | Yes | +| SCSI-3 Support | Yes | No | No | No | +| HVD Support | Yes | No | No | No | +| LVD Support | Yes | No | No | No | +| SE Support | Yes | Yes | Yes | Yes | +| Fastest Bus Speed | ULTRA3204,5 | FAST10 | FAST10 | FAST10? | +| Standalone | No6 | Yes | Yes | Yes | +| Cost | ?7 | ~50USD | ~98USD | ~50USD8 | -**1:** PiSCSI allows you to write Linux userspace software via an API. +**1:** Only supports DaynaPORT emulation. -**2:** The adapter board is Open Source, but the main compute element is not. +**2:** PiSCSI allows you to write Linux userspace software via an API. -**3:** Squishy requires USB power for operation, therefore it is considered to always be tethered. +**3:** The adapter board is Open Source, but the main compute element is not. + +**4:** Depends on the SCSI PHY Module and interface adapter. + +**5:** Only ULTRA320 SCSI speeds are guaranteed, however, depending on the silicon lottery ULTRA640 may be achievable. + +**6:** Squishy requires USB power for operation, therefore it is considered to always be tethered. + +**7:** Due to the hardware not being 100% complete an accurate cost is not available yet. + +**8:** This includes only the PiSCSI interface itself, and not the needed RaspberryPi SOM as well. -**4:** This includes only the PiSCSI interface itself, and not the needed RaspberryPi SOM as well. ## Community -Squishy has a dedicated IRC channel, [#squishy on libera.chat](https://web.libera.chat/#squishy). Join to ask questions, discuss ongoing development, or just hang out. +Squishy has a dedicated IRC channel, [#squishy on libera.chat]. Join to ask questions, discuss ongoing development, or just hang out. -There are also [GitHub Discussions](https://github.com/squishy-scsi/squishy/discussions) enabled on the repository if you have any questions or comments. +There are also [GitHub Discussions] enabled on the repository if you have any questions or comments. ```{note} -Squishy does not have an official discord, nor any endorsed discord servers, for an explanation as to why, see the [F.A.Q.](./faq.md) +Squishy does not have an official discord, nor any endorsed discord servers, for an explanation as to why, see the [F.A.Q.] +``` +[sniff, analyze, and replay SCSI bus traffic]: ./applets/analyzer.md +[boot a modern system from 9-track tape]: ./applets/taperipper.md +[gateware]: ./library/gateware/index.md +[python]: ./library/python/index.md +[hardware]: ./hardware/index.md +[powerful applet system]: ./applets/index.md +[Introduction]: ./introduction.md +[Getting Started]: ./getting_started.md +[GitHub]: https://github.com/squishy-scsi/squishy +[Squishy]: https://github.com/squishy-scsi/squishy +[BlueSCSI]: https://scsi.blue/ +[SCSI2SD]: https://www.codesrc.com/mediawiki/index.php/SCSI2SD +[PiSCSI]: https://github.com/PiSCSI/piscsi +[#squishy on libera.chat]: https://web.libera.chat/#squishy +[GitHub Discussions]: https://github.com/squishy-scsi/squishy/discussions +[F.A.Q.]: ./faq.md diff --git a/docs/install.md b/docs/install.md index 097e1d0a..130ea2be 100644 --- a/docs/install.md +++ b/docs/install.md @@ -4,21 +4,21 @@ The following instructions are a work-in-progress and may not be entirely up to date. ``` -Squishy is a python application that can be installed via [`pip`](https://pypi.org/project/pip/), either from the [git repository](https://github.com/squishy-scsi/squishy) or via a [wheel](https://pypi.org/project/wheel/) package. +Squishy is a python application that can be installed via [`pip`], either from the [git repository] or via a [wheel] package. ## System Requirements -Squishy is officially supported on most Linux distributions, the primary one being [Arch Linux](https://archlinux.org/) and variants there of ([Manjaro](https://manjaro.org/), etc.). However other Linux distributions are supported as well. +Squishy is officially supported on most Linux distributions, the primary one being [Arch Linux] and variants there of. However other Linux distributions are supported as well. Support for Microsoft Windows is preliminary, and due to lack of testing and development resources official support is currently not possible. But effort to make it as painless as possible to use on this platform is in-progress. Support for Apple macOS is also unofficial, however due to its similarity to Linux and Unix-like operating systems, using Squishy on macOS should be just as painless as it is on Linux. Official support for macOS and other BSD-Family operating systems is planned. -Regardless of the operating system, there are some core dependencies that Squishy requires. This includes Python >= 3.10, [Yosys](https://github.com/YosysHQ/yosys) >= 0.38, and [nextpnr](https://github.com/YosysHQ/nextpnr) >= 0.7. +Regardless of the operating system, there are some core dependencies that Squishy requires. This includes Python >= 3.10, [Yosys] >= 0.38, and [nextpnr] >= 0.7. -Squishy has been tested with [CPython](https://www.python.org/), but might possibly run under [PyPy](https://www.pypy.org/). +Squishy has been tested with [CPython], but might possibly run under [PyPy]. ## Installing Prerequisites @@ -114,7 +114,7 @@ You can then activate the virtual environment with: ### Installing Yosys and nextpnr -Next, you need to install [`yosys`](https://github.com/YosysHQ/yosys) and [`nextpnr`](https://github.com/YosysHQ/nextpnr) onto your system if it is not there already. +Next, you need to install [`yosys`] and [`nextpnr`] onto your system if it is not there already. #### Native Install @@ -213,4 +213,16 @@ After that, check to make sure you have the `squishy` command: (squishy.venv) $ squishy --help ``` -Now you can view the [Getting Started](./getting_started.md) page and start to use Squishy. +Now you can view the [Getting Started] page and start to use Squishy. + +[`pip`]: https://pypi.org/project/pip/ +[git repository]: https://github.com/squishy-scsi/squishy +[wheel]: https://pypi.org/project/wheel/ +[Arch Linux]: https://archlinux.org/ +[Yosys]: https://github.com/YosysHQ/yosys +[nextpnr]: https://github.com/YosysHQ/nextpnr +[CPython]: https://www.python.org/ +[PyPy]: https://www.pypy.org/ +[`yosys`]: https://github.com/YosysHQ/yosys +[`nextpnr`]: https://github.com/YosysHQ/nextpnr +[Getting Started]: ./getting_started.md diff --git a/docs/introduction.md b/docs/introduction.md index 745c3c42..3207784d 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -6,7 +6,7 @@ Flesh this section out Squishy is a set of utilities, gateware, and hardware for interacting with and developing things related to SCSI. -Once you've read the sections below and are ready to get started, see the [Installation](./install.md) and the [Getting Started](./getting_started.md) sections. +Once you've read the sections below and are ready to get started, see the [Installation] and the [Getting Started] sections. ## Overview @@ -24,21 +24,32 @@ The Squishy hardware is a bespoke physical interface into the world of SCSI. Out Combined with the software, it provides and out-of-the box way of inspecting traffic on a SCSI bus, as well as capturing the traffic for analysis or even replay! -With the power of [Torii](https://github.com/shrine-maiden-heavy-industries/torii-hdl), you can also write your own [applets](./applets/index.md) to do things such as emulate devices, or hosts, or anything else you could imagine. +With the power of [Torii], you can also write your own [applets] to do things such as emulate devices, or hosts, or anything else you could imagine. -For more information on the Squishy hardware, see the [Hardware](./hardware/index.md) section in the documentation. +For more information on the Squishy hardware, see the [Hardware] section in the documentation. ## Software -The Squishy software is a set of utilities that allows for interacting with the Squishy hardware, and a [Python library](./library/python/index.md) that allows for developers of Squishy applets and other applications to parse SCSI traffic and interact with SCSI devices. +The Squishy software is a set of utilities that allows for interacting with the Squishy hardware, and a [Python library] that allows for developers of Squishy applets and other applications to parse SCSI traffic and interact with SCSI devices. -For more information on the software, see the [CLI](./cli.md) section as well as the Python library documentation. +For more information on the software, see the [CLI] section as well as the Python library documentation. ## Gateware The Squishy gateware works in combination with the hardware to allow for the rapid and flexible development of devices that can be used to interact with various SCSI devices. -The [gateware library](./library/gateware/index.md) allows for applets to be built on the Squishy platform, and for other devices that wish to leverage SCSI in some aspect of their design to do so with [Torii HDL](https://github.com/shrine-maiden-heavy-industries/torii-hdl). +The [gateware library] allows for applets to be built on the Squishy platform, and for other devices that wish to leverage SCSI in some aspect of their design to do so with [Torii]. -For more information, see the gateware library documentation. +For more information, see the [gateware library] documentation. + + + +[Installation]: ./install.md +[Getting Started]: ./getting_started.md +[Torii]: https://github.com/shrine-maiden-heavy-industries/torii-hdl +[applets]: ./applets/index.md +[Hardware]: ./hardware/index.md +[Python library]: ./library/python/index.md +[CLI]: ./cli.md +[gateware library]: ./library/gateware/index.md diff --git a/docs/library/index.md b/docs/library/index.md index 058f2d17..44c9e75b 100644 --- a/docs/library/index.md +++ b/docs/library/index.md @@ -9,6 +9,9 @@ python/index Squishy, along with being a standalone tool, is also an Torii HDL gateware library for interacting with SCSI, as well as a Python library for dealing with SCSI packets. -The [Gateware](./gateware/index.md) documentation details all of the Torii HDL elaboratables and support code needed to integrate SCSI into your own Torii based project. +The [Gateware] documentation details all of the Torii HDL elaboratables and support code needed to integrate SCSI into your own Torii based project. -The [Python](./python/index.md) documentation details all of the modules and support code for dealing with SCSI traffic on the host side, allow you to build python scripts that can interact with SCSI devices easily. +The [Python] documentation details all of the modules and support code for dealing with SCSI traffic on the host side, allow you to build python scripts that can interact with SCSI devices easily. + +[Gateware]: ./gateware/index.md +[Python]: ./python/index.md diff --git a/docs/mascot.md b/docs/mascot.md index 5408aa73..c0011b7e 100644 --- a/docs/mascot.md +++ b/docs/mascot.md @@ -24,14 +24,22 @@ She was known for helping the locals with her wisdom in the past. Nowadays her s ```{image} ../contrib/img/sachi/electrichearts_20220325A_sachi_yellow_english.png ``` -Full-resolution images with and without transparent backgrounds can be downloaded from the [GitHub Repository](https://github.com/squishy-scsi/squishy/tree/main/) in the [`etc/img/sachi`](https://github.com/squishy-scsi/squishy/tree/main/contrib/img/sachi) directory. +Full-resolution images with and without transparent backgrounds can be downloaded from the [GitHub Repository] in the [`etc/img/sachi`] directory. ## License -Sachi was designed and illustrated by the amazing [Tyson Tan (tysontan.com)](https://tysontan.com). He provides mascot design service for free and open source software projects, free of charge, under free license. +Sachi was designed and illustrated by the amazing [Tyson Tan (tysontan.com)]. He provides mascot design service for free and open source software projects, free of charge, under free license. -She is dual-licensed under the [BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html) and the Creative Commons [CC-BY-SA](https://creativecommons.org/licenses/by-sa/2.0/) +She is dual-licensed under the [BSD-3-Clause] and the Creative Commons [CC-BY-SA] -The full text of the [BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html) can be found in the [LICENSE.software](https://github.com/squishy-scsi/squishy/tree/main/LICENSE.software) file in the root of the repository +The full text of the [BSD-3-Clause] can be found in the [LICENSE.software] file in the root of the repository -The full text of the Creative Commons [CC-BY-SA](https://creativecommons.org/licenses/by-sa/2.0/) can be found in the [LICENSE.docs](https://github.com/squishy-scsi/squishy/tree/main/LICENSE.docs) file in the root of the repository +The full text of the Creative Commons [CC-BY-SA] can be found in the [LICENSE.docs] file in the root of the repository + +[GitHub Repository]: https://github.com/squishy-scsi/squishy/tree/main/ +[`etc/img/sachi`]: https://github.com/squishy-scsi/squishy/tree/main/contrib/img/sachi +[Tyson Tan (tysontan.com)]: https://tysontan.com +[BSD-3-Clause]: https://spdx.org/licenses/BSD-3-Clause.html +[LICENSE.software]: https://github.com/squishy-scsi/squishy/tree/main/LICENSE.software +[CC-BY-SA]: https://creativecommons.org/licenses/by-sa/2.0/ +[LICENSE.docs]: https://github.com/squishy-scsi/squishy/tree/main/LICENSE.docs