Author | SHA1 | Message | Date |
---|---|---|---|
Abhas Abhinav | 6aefbf723d | Adds the generated site to the repo | 2 years ago |
Abhas Abhinav | 5763fce26e | Adds more details for the MH-USB documentations | 2 years ago |
Abhas Abhinav | 59852eb23b | Adds details about how to boot and use MH-USB | 2 years ago |
Abhas Abhinav | ffcb440200 | Adds a list of operating with their logos and screenshots | 2 years ago |
@ -0,0 +1,3 @@ | |||||
[Dolphin] | |||||
Timestamp=2022,1,15,10,56,58.357 | |||||
Version=4 |
@ -0,0 +1,4 @@ | |||||
[Dolphin] | |||||
Timestamp=2022,1,15,16,30,49.988 | |||||
Version=4 | |||||
ViewMode=1 |
@ -0,0 +1,10 @@ | |||||
# Advanced Usage | |||||
## Booting from another disk after booting with the MH-USB | |||||
## Customising boot parameters for an OS | |||||
## Accessing the Grub2 command-line | |||||
## Booting Haiku | |||||
@ -0,0 +1,108 @@ | |||||
# Troubleshooting & FAQs | |||||
## Boot Issues | |||||
### Help! The MH-USB won't boot! | |||||
First don't panic! :) | |||||
Try out the following steps: | |||||
1. If you insert the USB disk into a computer, does it show up? | |||||
A quick way to test this out on a GNU/Linux system would be to run `lsblk` | |||||
or check `dmesg`. | |||||
2. If the USB does not get detected, then it could either be an issue with | |||||
your USB disk. (Or, at times, the USB port / hub.) See if it gets detected | |||||
in other computers. Or change the USB port. Or try to use it without a USB | |||||
hub (if you're using one). | |||||
Still nothing? Do write in to us at <guide@mostlyharmless.io> with | |||||
"MH-USB" somewhere in the email subject and we'll help you out. | |||||
The [MH-USB discussion forum](https://ask.libre.support/c/usb/) is another | |||||
option. | |||||
3. If it does get detected, then try to mount the partition called "MH-USB". | |||||
It should get mounted just fine on any OS. If you're able to mount this | |||||
filesystem, check its contents. | |||||
4. If the contents are okay and readable, then its probably a Grub2 issue. | |||||
Unless you want to debug it and learn about Grub and Ventoy in this | |||||
process, that one option. | |||||
Otherwise, a simple solution might be to just | |||||
backup the contents of the USB disk and re-install the MH-USB software | |||||
using the scripts included with the source code. | |||||
### I'm unable to boot operating system X! | |||||
That could happen due to multiple reasons: | |||||
1. Its possible that the OS image on the disk has errors in it. The easiest | |||||
way to verify that is to calculate and verify its checksum. | |||||
2. When using SeaBIOS with Coreboot, it possible that the OS image might not | |||||
be able to initialise graphics mode and show its internal boot menu. Try | |||||
pressing the ++tab++ key twice to show boot options. | |||||
3. Does Ventoy include support for that operating system? The list of | |||||
supported (ie. tested out) operating systems is available here: | |||||
<https://www.ventoy.net/en/isolist.html> | |||||
If you still face problems, please do post on the [MH-USB discussion | |||||
forum](https://ask.libre.support/c/usb/) so that we can try to debug it | |||||
together. | |||||
### I formatted the disk by mistake and now it won't boot! | |||||
You can easily recreate the MH-USB on the USB disk (or, for that matter, any | |||||
USB disk out there!) by using the scripts provided with the source code. | |||||
## MH-USB Questions | |||||
### Can I use it as a portable storage device? | |||||
Yes - Sure. The reason the MH-USB partition is formatted as exFAT is so that | |||||
its possible to detect and use it on all operating systems. You can store any | |||||
data on it and use it to transfer files. | |||||
!!! warning | |||||
It is not safe to store important or private or sensitive data on a | |||||
portable USB disk. Please be careful. Consider encrypting the storage disk | |||||
if you need to secure the data stored on it. | |||||
### Does the MH-USB require upgrades? | |||||
Not really. The MH-USB is basically a Grub2 bootable disk which in turn loads | |||||
and boots up operating system images. In case there is a specific bug that | |||||
stops it from working, there isn't any real reason to upgrade Venoty/Grub. | |||||
However, if you are interested in contributing to the development effort or | |||||
further customising the MH-USB - that's a good reason to upgrade / update its | |||||
configuration. | |||||
### The MH-USB is slow! | |||||
Check the [performance benchmarks](/usb/internals/#dd-read-test) for the USB2 | |||||
model. Try to replicate them and see if your results come close to it. That | |||||
would indicate a limit of the USB disk's performance. | |||||
If you have a USB3 disk and connecting it to a USB2 port, that might result in | |||||
slower transfer speeds as well. Do check that out. | |||||
### I really like the 3D printed disk. How do I customise its looks? | |||||
Yes sure! By all means. The source code for the 3D printed enclosure is | |||||
included within the MH-USB source code. | |||||
If you need help with design, production, customisation or distribution, please | |||||
feel free to reach out. | |||||
### Can you send me a USB disk with the OS images I need? | |||||
MH-USB variants with custom images would require too much effort - unless what | |||||
you have is a volume requirement (ie. at least 100 units). You can make your | |||||
own custom USB disk very easily by adding the OS images of your choice and | |||||
customising the Grub2 theme. |
@ -1,11 +1,549 @@ | |||||
# The Mostly Harmless USB disk | # The Mostly Harmless USB disk | ||||
<figure style="margin:0"> | |||||
<img src="/images/usb/top.png" width="540" align="left" /> | |||||
<figcaption> | |||||
<figure style="display: table;"> | |||||
<img src="/images/usb/top.png" width="400"> | |||||
<figcaption style="display: table-caption; caption-side: bottom; | |||||
margin-top: 1em;"> | |||||
The answer to the ultimate free software problem: | The answer to the ultimate free software problem: | ||||
"How do I liberate or fix a computer when I don't always have a bootable USB disk handy?" | "How do I liberate or fix a computer when I don't always have a bootable USB disk handy?" | ||||
</figcaption> | </figcaption> | ||||
</figure> | </figure> | ||||
Details and rationale for the MH-USB: <https://mostlyharmless.io/usb/> | |||||
## Screen-share of the MH-USB | |||||
<figure> | |||||
<iframe width="560" height="315" sandbox="allow-same-origin | |||||
allow-scripts allow-popups" title="The Mostly Harmless USB Disk - Demo" | |||||
src="https://sovran.video/videos/embed/5f1c871e-d76b-4d26-bcfa-804de1c6fdcb?title=0&warningTitle=0" | |||||
frameborder="0" allowfullscreen></iframe> | |||||
</figure> | |||||
## Powered by [Ventoy](https://ventoy.net) | |||||
The main component of the MH-USB disk is the Ventoy bootloader - derived from Grub2. | |||||
<figure style="text-align: center"> | |||||
<a href="https://ventoy.net"> | |||||
<img src="/images/usb/icons/ventoy.png"> Ventoy | |||||
</a> | |||||
</figure> | |||||
- Website: <https://ventoy.net> | |||||
- Source code: <https://github.com/ventoy/Ventoy> | |||||
- Documentation: <https://ventoy.net/en/doc_start.html> | |||||
- License: **GPLv3+** - <https://ventoy.net/en/doc_license.html> | |||||
## Operating Systems | |||||
By default, the following operating systems are available for live boot or | |||||
installation: | |||||
<hr> | |||||
### Alpine | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/alpine.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Alpine Linux is a security-oriented, lightweight Linux distribution | |||||
based on musl libc and busybox. | |||||
Alpine Linux is an independent, non-commercial, general purpose | |||||
Linux distribution designed for power users who appreciate security, | |||||
simplicity and resource efficiency. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/alpine.png"> | |||||
</figure> | |||||
- Website: <https://www.alpinelinux.org/> | |||||
- OS Image: | |||||
<https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-standard-3.15.0-x86_64.iso> | |||||
- Path on USB: `/OS/alpine-standard-3.15.0-x86_64.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Debian GNU/Linux | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/debian.png"> | |||||
</figure> | |||||
!!! tlr "About" | |||||
Debian is a complete Free Operating System! Also known as Debian | |||||
GNU/Linux, it is a GNU/Linux distribution composed of free and | |||||
open-source software. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/debian.png"> | |||||
</figure> | |||||
- Website: <https://www.debian.org> | |||||
- OS Image: | |||||
<https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-11.2.0-amd64-cinnamon.iso> | |||||
- Path on USB: `/OS/debian-live-11.2.0-amd64-cinnamon.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Devuan GNU+Linux | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/devuan.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Devuan GNU+Linux is a fork of Debian without systemd that allows | |||||
users to reclaim control over their system by avoiding unnecessary | |||||
entanglements and ensuring Init Freedom. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/devuan.png"> | |||||
</figure> | |||||
- Website: <https://www.devuan.org> | |||||
- OS Image: | |||||
<https://mirror.ungleich.ch/mirror/devuan/devuan_chimaera/desktop-live/devuan_chimaera_4.0.0_amd64_desktop-live.iso> | |||||
- Path on USB: `/OS/devuan_chimaera_4.0.0_amd64_desktop-live.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Fedora | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/fedora.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Fedora Workstation is a polished, easy to use operating system for | |||||
laptop and desktop computers, with a complete set of tools for | |||||
developers and makers of all kinds. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/fedora.png"> | |||||
</figure> | |||||
- Website: <https://www.getfedora.org> | |||||
- OS Image: <https://download.fedoraproject.org/pub/fedora/linux/releases/35/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-35-1.2.iso> | |||||
- Path on USB: `/OS/Fedora-Workstation-Live-x86_64-35-1.2.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### GNU Guix | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/guix.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Guix is an advanced distribution of the GNU operating system | |||||
developed by the GNU Project—which respects the freedom of computer | |||||
users. | |||||
Guix supports transactional upgrades and roll-backs, | |||||
unprivileged package management, and more. When used as a standalone | |||||
distribution, Guix supports declarative system configuration for | |||||
transparent and reproducible operating systems. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/guix.png"> | |||||
</figure> | |||||
- Website: <https://guix.gnu.org> | |||||
- OS Image: | |||||
<https://ftp.gnu.org/gnu/guix/guix-system-install-1.3.0.x86_64-linux.iso> | |||||
- Path on USB: `/OS/guix-system-install-1.3.0.x86_64-linux.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Haiku | |||||
<figure> | |||||
> <img alt="image" src="/images/usb/screenshots/haiku-boot.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Haiku is an open-source operating system that specifically targets | |||||
personal computing. Inspired by the BeOS, Haiku is fast, simple to use, | |||||
easy to learn and yet very powerful. | |||||
Specifically targeting personal computing, Haiku is a fast, efficient, | |||||
simple to use, easy to learn, and yet very powerful system for computer | |||||
users of all levels. | |||||
Additionally, Haiku offers something over other | |||||
open source platforms which is quite unique: The project consists of a | |||||
single team writing everything from the kernel, drivers, userland | |||||
services, tool kit, and graphics stack to the included desktop | |||||
applications and preflets. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/haiku.png"> | |||||
</figure> | |||||
- Website: <https://www.haiku-os.org/> | |||||
- OS Image: | |||||
<https://cdn.haiku-os.org/haiku-release/r1beta3/haiku-r1beta3-x86_64-anyboot.iso> | |||||
- Path on USB: `/OS/haiku-r1beta3-x86_64-anyboot.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### LibreELEC | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/libreelec.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
LibreELEC is a lightweight ‘Just enough OS’ Linux distribution | |||||
purpose-built for Kodi on current and popular mediacentre hardware. | |||||
Kodi is a media center and entertainment hub that brings all your | |||||
digital media together into a beautiful and user friendly package. It is | |||||
100% free and open source, very customisable and runs on a wide variety | |||||
of devices. It is supported by a dedicated team of volunteers and a huge | |||||
community. | |||||
- Website: <https://libreelec.tv/> | |||||
- OS Image: | |||||
<https://releases.libreelec.tv/LibreELEC-Generic.x86_64-10.0.1.img.gz> | |||||
- Path on USB: `/OS/LibreELEC-Generic.x86_64-10.0.1.img` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Manjaro | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/manjaro.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Manjaro is a user-friendly Linux distribution based on the | |||||
independently developed Arch operating system. Within the Linux | |||||
community, Arch itself is renowned for being an exceptionally fast, | |||||
powerful, and lightweight distribution that provides access to the very | |||||
latest cutting edge - and bleeding edge - software. | |||||
Developed in Austria, France, and Germany, Manjaro provides all the | |||||
benefits of the Arch operating system combined with a focus on | |||||
user-friendliness and accessibility. Manjaro follows Archlinux and | |||||
officially only offers a 64 bit version. Manjaro is suitable for | |||||
newcomers as well as experienced Linux users. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/manjaro.png"> | |||||
</figure> | |||||
- Website: <https://manjaro.org/> | |||||
- OS Image: | |||||
<https://download.manjaro.org/kde/21.2.1/manjaro-kde-21.2.1-220103-linux515.iso> | |||||
- Path on USB: `/OS/manjaro-kde-21.2.1-220103-linux515.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### netboot.xyz | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/netboot.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
netboot.xyz lets you PXE boot various operating system installers or | |||||
utilities from a single tool over the network. This lets you use one | |||||
media for many types of operating systems or tools. The iPXE project is | |||||
used to provide a user friendly menu from within the BIOS that lets you | |||||
easily choose the operating system you want along with any specific | |||||
types of versions or bootable flags. | |||||
You can remote attach the ISO to servers, set it up as a rescue option | |||||
in Grub, or even set up your home network to boot to it by default so | |||||
that it's always available. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/netboot.png"> | |||||
</figure> | |||||
- Website: <https://netboot.xyz> | |||||
- OS Image: <https://boot.netboot.xyz/ipxe/netboot.xyz.iso> | |||||
- Path on USB: `/OS/netboot.xyz.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Open Media Vault | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/openmediavault.png" width="250px"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
openmediavault is the next generation network attached storage (NAS) | |||||
solution based on Debian Linux. It contains services like SSH, (S)FTP, | |||||
SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. | |||||
Thanks to the modular design of the framework it can be enhanced via | |||||
plugins. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/openmediavault.png"> | |||||
</figure> | |||||
- Website: <https://www.openmediavault.org/> | |||||
- OS Image: | |||||
<https://sourceforge.net/projects/openmediavault/files/5.6.13/openmediavault_5.6.13-amd64.iso> | |||||
- Path on USB: `/OS/openmediavault_5.6.13-amd64.iso` | |||||
- Type: **Installer** | |||||
<hr> | |||||
### OpenWRT | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/openwrt.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
The OpenWrt Project is a Linux operating system targeting embedded | |||||
devices. Instead of trying to create a single, static firmware, OpenWrt | |||||
provides a fully writable filesystem with package management. This frees | |||||
you from the application selection and configuration provided by the | |||||
vendor and allows you to customize the device through the use of | |||||
packages to suit any application. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/openwrt.png"> | |||||
</figure> | |||||
- Website: <https://openwrt.org/> | |||||
- OS Image: | |||||
<https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-ext4-combined.img.gz> | |||||
- Path on USB: `/OS/openwrt-21.02.0-x86-64-generic-ext4-combined.img` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Proxmox VE | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/proxmox.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Proxmox VE is a complete, open-source server management platform for | |||||
enterprise virtualization. It tightly integrates the KVM hypervisor and | |||||
Linux Containers (LXC), software-defined storage and networking | |||||
functionality, on a single platform. With the integrated web-based user | |||||
interface you can manage VMs and containers, high availability for | |||||
clusters, or the integrated disaster recovery tools with ease. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/proxmox.png"> | |||||
</figure> | |||||
- Website: <https://www.proxmox.com/en/proxmox-ve> | |||||
- OS Image: | |||||
<https://www.proxmox.com/en/downloads/item/proxmox-ve-7-1-iso-installer> | |||||
- Path on USB: `/OS/proxmox-ve_7.1-2.iso` | |||||
- Type: **Installer** | |||||
<hr> | |||||
### Qubes OS | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/qubes.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Qubes OS is a free and open-source, security-oriented operating | |||||
system for single-user desktop computing. Qubes OS leverages Xen-based | |||||
virtualization to allow for the creation and management of isolated | |||||
compartments called qubes. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/qubes.png"> | |||||
</figure> | |||||
- Website: <https://www.qubes-os.org/> | |||||
- OS Image: | |||||
<https://mirrors.edge.kernel.org/qubes/iso/Qubes-R4.0.4-x86_64.iso> | |||||
- Path on USB: `/OS/Qubes-R4.0.4-x86_64.iso` | |||||
- Type: **Installer** | |||||
<hr> | |||||
### RaspberryPi OS | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/raspios.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Your Raspberry Pi needs an operating system to work. This is it. | |||||
Raspberry Pi OS (previously called Raspbian) is the official supported | |||||
operating system. | |||||
- Website: <https://www.raspberrypi.com/> | |||||
- OS Image: | |||||
<https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-11-08/2021-10-30-raspios-bullseye-armhf-lite.zip> | |||||
- Path on USB: `/RPi/2021-10-30-raspios-bullseye-armhf-lite.zip` | |||||
<hr> | |||||
### System Rescue | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/systemrescue.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
SystemRescue (formerly known as SystemRescueCd) is a Linux system | |||||
rescue toolkit available as a bootable medium for administrating or | |||||
repairing your system and data after a crash. It aims to provide an easy | |||||
way to carry out admin tasks on your computer, such as creating and | |||||
editing the hard disk partitions. It comes with a lot of Linux system | |||||
utilities such as GParted, fsarchiver, filesystem tools and basic tools | |||||
(editors, midnight commander, network tools). It can be used for both | |||||
Linux and windows computers, and on desktops as well as servers. This | |||||
rescue system requires no installation as it can be booted from a CD/DVD | |||||
drive or USB stick, but it can be installed on the hard disk if you | |||||
wish. The kernel supports all important file systems (ext4, xfs, btrfs, | |||||
vfat, ntfs), as well as network filesystems such as Samba and NFS. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/systemrescue.png"> | |||||
</figure> | |||||
- Website: <https://www.system-rescue.org/> | |||||
- OS Image: | |||||
<https://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/9.00/systemrescue-9.00-amd64.iso/download> | |||||
- Path on USB: `/OS/systemrescue-8.06-amd64.iso` | |||||
- Type: **Live** | |||||
<hr> | |||||
### Tails | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/tails.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Tails is a portable operating system | |||||
that protects against surveillance and censorship. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/tails.png"> | |||||
</figure> | |||||
- Website: <https://tails.boum.org/> | |||||
- OS Image: | |||||
<https://mirrors.edge.kernel.org/tails/stable/tails-amd64-4.26/tails-amd64-4.26.img> | |||||
- Path on USB: `/OS/tails-amd64-4.25.img` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Trisquel GNU/Linux | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/trisquel.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Trisquel GNU/Linux is a fully free operating system for home users, | |||||
small enterprises and educational centers. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/trisquel.png"> | |||||
</figure> | |||||
- Website: <https://trisquel.info/> | |||||
- OS Image: <https://trisquel.info/en/download> | |||||
- Path on USB: `/OS/trisquel-mini_9.0.1_amd64.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
### Ubuntu | |||||
<figure> | |||||
<img alt="image" src="/images/usb/icons/ubuntu.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
Ubuntu comes with everything you need to run your organisation, | |||||
school, home or enterprise. All the essential applications, like an | |||||
office suite, browsers, email and media apps come pre-installed and | |||||
thousands more games and applications are available in the Ubuntu | |||||
Software Centre. | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/ubuntu.png"> | |||||
</figure> | |||||
- Website: <https://ubuntu.com/> | |||||
- OS Image: | |||||
<https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso> | |||||
- Path on USB: `/OS/ubuntu-20.04.3-desktop-amd64.iso` | |||||
- Type: **Live + Installer** | |||||
<hr> | |||||
## Tools & Programs | |||||
### The Raspberry Pi Imager | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/rpi-imager.png"> | |||||
</figure> | |||||
!!! tldr "About" | |||||
The Raspberry Pi Imager is the quick, safe and easy way to install an | |||||
operating systems to a microSD card or USB disk. | |||||
- Website: <https://www.raspberrypi.com/software/> | |||||
- Image: <http://downloads.raspberrypi.org/imager/imager_amd64.AppImage> | |||||
- Path on USB: `/Tools/imager_amd64.AppImage` | |||||
### Ungoogled Chromium | |||||
!!! tldr "About" | |||||
ungoogled-chromium is Google Chromium, sans dependency on Google web | |||||
services. It also features some tweaks to enhance privacy, control, and | |||||
transparency (almost all of which require manual activation or | |||||
enabling). | |||||
ungoogled-chromium retains the default Chromium experience as closely as | |||||
possible. Unlike other Chromium forks that have their own visions of a | |||||
web browser, ungoogled-chromium is essentially a drop-in replacement for | |||||
Chromium. | |||||
ungoogled-chromium addresses these issues in the following ways: | |||||
- Remove all remaining background requests to any web services while building and running the browser | |||||
- Remove all code specific to Google web services | |||||
- Remove all uses of pre-made binaries from the source code, and replace them with user-provided alternatives when possible. | |||||
- Disable features that inhibit control and transparency, and add or | |||||
modify features that promote them (these changes will almost always | |||||
require manual activation or enabling). | |||||
<figure> | |||||
<img alt="image" src="/images/usb/screenshots/ungoogled-chromium.png"> | |||||
</figure> | |||||
- Website: <https://ungoogled-software.github.io/> | |||||
- Image: | |||||
<https://ungoogled-software.github.io/ungoogled-chromium-binaries/> | |||||
- Path on USB: `/Tools/ungoogled-chromium_91.0.4472.164-1.1.AppImage` | |||||
@ -0,0 +1,77 @@ | |||||
# MH-USB Internals | |||||
## MH-USB Performance | |||||
### USB2 Version | |||||
From <https://www.blackmoreops.com/2017/04/04/usb-and-ssd-drive-speedtest-in-linux/> | |||||
> USB 2.0 has a theoretical maximum signaling rate of 480 Mbits/s or 60 | |||||
> Mbytes/s. However due to various constraints the maximum throughput is | |||||
> restricted to around 280 Mbit/s or 35 Mbytes/s. | |||||
#### `hdparm` tests | |||||
``` console | |||||
$ sudo hdparm -Ttv /dev/sde1 | |||||
/dev/sde1: | |||||
multcount = 0 (off) | |||||
readonly = 0 (off) | |||||
readahead = 256 (on) | |||||
geometry = 15600/64/32, sectors = 31881176, start = 2048 | |||||
Timing cached reads: 16422 MB in 2.00 seconds = 8221.42 MB/sec | |||||
Timing buffered disk reads: 64 MB in 3.01 seconds = 21.28 MB/sec | |||||
``` | |||||
#### `dd` write test | |||||
``` console | |||||
$ dd if=/dev/zero of=perf oflag=direct bs=128k count=8k | |||||
8192+0 records in | |||||
8192+0 records out | |||||
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.94198 s, 155 MB/s | |||||
``` | |||||
#### `dd` read test | |||||
``` console | |||||
## Clear the memory cache before benchmarking reads | |||||
$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" | |||||
$ dd if=perf of=/dev/null bs=4k | |||||
262144+0 records in | |||||
262144+0 records out | |||||
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 44.5847 s, 24.1 MB/s | |||||
``` | |||||
### USB3 Version | |||||
*Coming soon!* | |||||
## The MH-USB partition layout | |||||
### The Ventoy partion layout | |||||
*Document how Ventoy creates partitions for both GPT and MBR partition tables* | |||||
### The 16 GB model | |||||
*Standard ventoy partitions* | |||||
### The 32 GB model | |||||
*Coming soon! (special partitions to accommodate haiku.)* | |||||
## Using the MH-USB Source Code | |||||
### Overview of the source code | |||||
### The scripts | |||||
#### `download-images.sh` | |||||
#### `prepare-usb.sh` | |||||
#### `qemu-*.sh` | |||||
### Installing MH-USB | |||||
### Customising the MH-USB |
@ -0,0 +1,73 @@ | |||||
# Adding / Updating Images on the MH-USB Disk | |||||
## How do OS images get listed on the boot screen? | |||||
Recall the MH-USB directory layout: | |||||
``` | |||||
MH-USB/ | |||||
/OS/ <-- Contains OS Images | |||||
/Tools/ <-- Contains some tools and software | |||||
/RPi/ <-- OS Images for the Raspberry Pi | |||||
/ventoy/ <-- Config files for the Ventoy/Grub2 bootloader | |||||
``` | |||||
While the operating system images are stored in the `/OS/` directory in the | |||||
root of the USB disk, the actual display and order of display is controlled by | |||||
the ventoy config file: `/ventoy/ventoy.json`. | |||||
An excerpt from the `ventoy.json` config file: | |||||
``` json | |||||
{ | |||||
"menu_alias":[ | |||||
{ | |||||
"image": "/OS/debian-live-11.2.0-amd64-cinnamon.iso", | |||||
"alias": "Debian 11.2.0 (Live)" | |||||
}, | |||||
{ | |||||
"image": "/OS/devuan_chimaera_4.0.0_amd64_desktop-live.iso", | |||||
"alias": "Devuan Chimaera 4.0.0" | |||||
}, | |||||
{ | |||||
"image": "/OS/guix-system-install-1.3.0.x86_64-linux.iso", | |||||
"alias": "Guix System Installer 1.3.0" | |||||
}, | |||||
{ | |||||
"image": "/OS/LibreELEC-Generic.x86_64-10.0.1.img", | |||||
"alias": "LibreELEC 10.0.1 (Live)" | |||||
} | |||||
] | |||||
} | |||||
``` | |||||
The image would get listed on the boot screen in the alphabetical order even | |||||
without this configuration. However, in the absence of this, the file name of | |||||
the ISO image would show up instead of a more useful OS description. | |||||
## Adding, updating and removing a OS image | |||||
### Removing an image | |||||
Don't think you're likely to use an OS image that exists on the USB | |||||
disk? No problem. Just go ahead and delete it! It will shop showing up | |||||
on the boot screen and you will also have some free space on the USB | |||||
drive. | |||||
### Adding a new image | |||||
You can copy a new bootable OS image anywhere on the USB disk. You could | |||||
copy it to the `/OS/` directory to keep things neat. But that's not | |||||
mandatory. You can copy it anywhere. | |||||
### Updating an image | |||||
Updating an OS image simply the process of deleting an older image file | |||||
and adding the new one. | |||||
### Update the Ventoy configuration | |||||
If you would like to see a proper descriptive name for your new or | |||||
updated OS image, then you can add or update the corresponding section | |||||
in the `/ventoy/ventoy.json` file. | |||||
@ -0,0 +1,108 @@ | |||||
# Using the MH-USB Disk | |||||
## Organisation of the MH-USB Disk | |||||
The files on the MH-USB disk are arranged as follows: | |||||
``` | |||||
MH-USB/ | |||||
/OS/ <-- Contains OS Images | |||||
/Tools/ <-- Contains some tools and software | |||||
/RPi/ <-- OS Images for the Raspberry Pi | |||||
/ventoy/ <-- Config files for the Ventoy/Grub2 bootloader | |||||
``` | |||||
The MH-USB partition of the USB disk is formatted with [exFAT](https://en.wikipedia.org/wiki/ExFAT). | |||||
This enables universal access to the data on any operating system that supports exFAT. | |||||
## Booting on physical computer | |||||
You boot the USB disk on a physical computer (dekstop, laptop, single-board | |||||
computer or laptop) by simply plugging it in and choosing it as a boot device. | |||||
The MH-USB runs the [GRUB2](https://www.gnu.org/software/grub/) boot | |||||
loader and will boot just fine with a "legacy" BIOS or UEFI BIOS. | |||||
The USB make would show up as a USB disk called "Generic Flash Drive": | |||||
<figure> | |||||
<img src="/images/usb/boot-device.jpg" width="600"> | |||||
</figure> | |||||
Just choose it as the boot device and you will be greeted by the MH-USB | |||||
boot screen. | |||||
## Booting on a virtual machine | |||||
You can also boot the USB using a virtual machine. On a GNU/Linux | |||||
system, one can use QEMU to boot the USB. | |||||
First check the device name assigned to the USB disk. A quick way to | |||||
check it out would be to use the `lsblk` command like this: | |||||
``` shell-session | |||||
$ lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d" " -f1 | |||||
NAME="sdb" | |||||
``` | |||||
The command above will list out all the USB disks attached to your | |||||
computer. (Actually, all "HOTPLUG" storage devices - which includes USB | |||||
storage.) | |||||
### Booting a virtual machine with SeaBIOS | |||||
To boot the USB disk using QEMU + SeaBIOS, install the `qemu` package | |||||
from your GNU/Linux OS repository and then run: | |||||
``` shell-session | |||||
$ DEVICE=`lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d"\"" -f2` | |||||
$ sudo qemu-system-x86_64 \ | |||||
-enable-kvm -rtc base=localtime -m 2G -vga std \ | |||||
-drive file=/dev/$DEVICE,readonly=on,cache=none,format=raw,if=virtio | |||||
``` | |||||
This will boot the USB via QEMU and show you the boot screen in a popup window. | |||||
### Booting a virtual machine with a UEFI BIOS | |||||
If you want to try booting the USB with QEMU with the `tianocore` UEFI BIOS, first install the OVMF | |||||
(Open Virtual Machine Firmware) packages. | |||||
On Debian and Debian-based distributions run: | |||||
``` shell-session | |||||
# apt-get install ovmf | |||||
$ BIOS="/usr/share/qemu/OVMF.fd" | |||||
``` | |||||
On Archlinux-based distributions run: | |||||
``` shell-session | |||||
# pacman -S edk2-ovmf | |||||
$ BIOS="/usr/share/edk2-ovmf/x64/OVMF.fd" | |||||
``` | |||||
```bash | |||||
$ DEVICE=`lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d"\"" -f2` | |||||
$ sudo qemu-system-x86_64 \ | |||||
-bios $BIOS \ | |||||
-enable-kvm -rtc base=localtime -m 2G -vga std \ | |||||
-drive file=/dev/$DEVICE,readonly=on,cache=none,format=raw,if=virtio | |||||
``` | |||||
## Writing an image to another USB drive | |||||
While a multi-boot USB is nice, there might be times when you want to write an OS image to another | |||||
USB disk. The MH-USB includes the "RaspberryPi Imager" (`rpi-imager`) tool to help you write an OS | |||||
image to a USB disk safely and quickly. | |||||
You can run the the `rpi-imager` directly from the USB. Insert the MH-USB into a GNU/Linux (or | |||||
Windows) computer and mount it. In the `Tools/` directory on the USB, you will see binaries for the | |||||
Raspberry Pi imager. You can use it to write any of the bootable operating system images to another | |||||
USB. | |||||
*[TODO: Include more details and screenshots!]* | |||||
## Working with Raspberry Pi images | |||||
*[TODO: Include details with screenshots]* |
@ -0,0 +1 @@ | |||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}}); |
@ -0,0 +1 @@ | |||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}}); |
@ -0,0 +1 @@ | |||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}}); |
@ -0,0 +1,206 @@ | |||||
/** | |||||
* export the module via AMD, CommonJS or as a browser global | |||||
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js | |||||
*/ | |||||
;(function (root, factory) { | |||||
if (typeof define === 'function' && define.amd) { | |||||
// AMD. Register as an anonymous module. | |||||
define(factory) | |||||
} else if (typeof exports === 'object') { | |||||
/** | |||||
* Node. Does not work with strict CommonJS, but | |||||
* only CommonJS-like environments that support module.exports, | |||||
* like Node. | |||||
*/ | |||||
module.exports = factory() | |||||
} else { | |||||
// Browser globals (root is window) | |||||
factory()(root.lunr); | |||||
} | |||||
}(this, function () { | |||||
/** | |||||
* Just return a value to define the module export. | |||||
* This example returns an object, but the module | |||||
* can return a function as the exported value. | |||||
*/ | |||||
return function(lunr) { | |||||
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript | |||||
// (c) 2008 Taku Kudo <taku@chasen.org> | |||||
// TinySegmenter is freely distributable under the terms of a new BSD licence. | |||||
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt | |||||
function TinySegmenter() { | |||||
var patterns = { | |||||
"[一二三四五六七八九十百千万億兆]":"M", | |||||
"[一-龠々〆ヵヶ]":"H", | |||||
"[ぁ-ん]":"I", | |||||
"[ァ-ヴーア-ン゙ー]":"K", | |||||
"[a-zA-Za-zA-Z]":"A", | |||||
"[0-90-9]":"N" | |||||
} | |||||
this.chartype_ = []; | |||||
for (var i in patterns) { | |||||
var regexp = new RegExp(i); | |||||
this.chartype_.push([regexp, patterns[i]]); | |||||
} | |||||
this.BIAS__ = -332 | |||||
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378}; | |||||
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920}; | |||||
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266}; | |||||
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352}; | |||||
this.BP2__ = {"BO":60,"OO":-1762}; | |||||
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965}; | |||||
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146}; | |||||
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699}; | |||||
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973}; | |||||
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682}; | |||||
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669}; | |||||
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990}; | |||||
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832}; | |||||
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649}; | |||||
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393}; | |||||
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841}; | |||||
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68}; | |||||
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591}; | |||||
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685}; | |||||
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156}; | |||||
this.TW1__ = {"につい":-4681,"東京都":2026}; | |||||
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216}; | |||||
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287}; | |||||
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865}; | |||||
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505}; | |||||
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646}; | |||||
this.UC3__ = {"A":-1370,"I":2311}; | |||||
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646}; | |||||
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831}; | |||||
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387}; | |||||
this.UP1__ = {"O":-214}; | |||||
this.UP2__ = {"B":69,"O":935}; | |||||
this.UP3__ = {"B":189}; | |||||
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422}; | |||||
this.UQ2__ = {"BH":216,"BI":113,"OK":1759}; | |||||
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212}; | |||||
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135}; | |||||
this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568}; | |||||
this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278}; | |||||
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637}; | |||||
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343}; | |||||
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496}; | |||||
return this; | |||||
} | |||||
TinySegmenter.prototype.ctype_ = function(str) { | |||||
for (var i in this.chartype_) { | |||||
if (str.match(this.chartype_[i][0])) { | |||||
return this.chartype_[i][1]; | |||||
} | |||||
} | |||||
return "O"; | |||||
} | |||||
TinySegmenter.prototype.ts_ = function(v) { | |||||
if (v) { return v; } | |||||
return 0; | |||||
} | |||||
TinySegmenter.prototype.segment = function(input) { | |||||
if (input == null || input == undefined || input == "") { | |||||
return []; | |||||
} | |||||
var result = []; | |||||
var seg = ["B3","B2","B1"]; | |||||
var ctype = ["O","O","O"]; | |||||
var o = input.split(""); | |||||
for (i = 0; i < o.length; ++i) { | |||||
seg.push(o[i]); | |||||
ctype.push(this.ctype_(o[i])) | |||||
} | |||||
seg.push("E1"); | |||||
seg.push("E2"); | |||||
seg.push("E3"); | |||||
ctype.push("O"); | |||||
ctype.push("O"); | |||||
ctype.push("O"); | |||||
var word = seg[3]; | |||||
var p1 = "U"; | |||||
var p2 = "U"; | |||||
var p3 = "U"; | |||||
for (var i = 4; i < seg.length - 3; ++i) { | |||||
var score = this.BIAS__; | |||||
var w1 = seg[i-3]; | |||||
var w2 = seg[i-2]; | |||||
var w3 = seg[i-1]; | |||||
var w4 = seg[i]; | |||||
var w5 = seg[i+1]; | |||||
var w6 = seg[i+2]; | |||||
var c1 = ctype[i-3]; | |||||
var c2 = ctype[i-2]; | |||||
var c3 = ctype[i-1]; | |||||
var c4 = ctype[i]; | |||||
var c5 = ctype[i+1]; | |||||
var c6 = ctype[i+2]; | |||||
score += this.ts_(this.UP1__[p1]); | |||||
score += this.ts_(this.UP2__[p2]); | |||||
score += this.ts_(this.UP3__[p3]); | |||||
score += this.ts_(this.BP1__[p1 + p2]); | |||||
score += this.ts_(this.BP2__[p2 + p3]); | |||||
score += this.ts_(this.UW1__[w1]); | |||||
score += this.ts_(this.UW2__[w2]); | |||||
score += this.ts_(this.UW3__[w3]); | |||||
score += this.ts_(this.UW4__[w4]); | |||||
score += this.ts_(this.UW5__[w5]); | |||||
score += this.ts_(this.UW6__[w6]); | |||||
score += this.ts_(this.BW1__[w2 + w3]); | |||||
score += this.ts_(this.BW2__[w3 + w4]); | |||||
score += this.ts_(this.BW3__[w4 + w5]); | |||||
score += this.ts_(this.TW1__[w1 + w2 + w3]); | |||||
score += this.ts_(this.TW2__[w2 + w3 + w4]); | |||||
score += this.ts_(this.TW3__[w3 + w4 + w5]); | |||||
score += this.ts_(this.TW4__[w4 + w5 + w6]); | |||||
score += this.ts_(this.UC1__[c1]); | |||||
score += this.ts_(this.UC2__[c2]); | |||||
score += this.ts_(this.UC3__[c3]); | |||||
score += this.ts_(this.UC4__[c4]); | |||||
score += this.ts_(this.UC5__[c5]); | |||||
score += this.ts_(this.UC6__[c6]); | |||||
score += this.ts_(this.BC1__[c2 + c3]); | |||||
score += this.ts_(this.BC2__[c3 + c4]); | |||||
score += this.ts_(this.BC3__[c4 + c5]); | |||||
score += this.ts_(this.TC1__[c1 + c2 + c3]); | |||||
score += this.ts_(this.TC2__[c2 + c3 + c4]); | |||||
score += this.ts_(this.TC3__[c3 + c4 + c5]); | |||||
score += this.ts_(this.TC4__[c4 + c5 + c6]); | |||||
// score += this.ts_(this.TC5__[c4 + c5 + c6]); | |||||
score += this.ts_(this.UQ1__[p1 + c1]); | |||||
score += this.ts_(this.UQ2__[p2 + c2]); | |||||
score += this.ts_(this.UQ3__[p3 + c3]); | |||||
score += this.ts_(this.BQ1__[p2 + c2 + c3]); | |||||
score += this.ts_(this.BQ2__[p2 + c3 + c4]); | |||||
score += this.ts_(this.BQ3__[p3 + c2 + c3]); | |||||
score += this.ts_(this.BQ4__[p3 + c3 + c4]); | |||||
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]); | |||||
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]); | |||||
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]); | |||||
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]); | |||||
var p = "O"; | |||||
if (score > 0) { | |||||
result.push(word); | |||||
word = ""; | |||||
p = "B"; | |||||
} | |||||
p1 = p2; | |||||
p2 = p3; | |||||
p3 = p; | |||||
word += seg[i]; | |||||
} | |||||
result.push(word); | |||||
return result; | |||||
} | |||||
lunr.TinySegmenter = TinySegmenter; | |||||
}; | |||||
})); |
@ -0,0 +1 @@ | |||||
{"version":3,"sources":["src/assets/stylesheets/palette/_accent.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/palette/_scheme.scss"],"names":[],"mappings":"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","file":"palette.css"} |