1
0
mirror of https://github.com/garraflavatra/alphabets.git synced 2025-04-20 03:01:02 +00:00

Compare commits

..

No commits in common. "main" and "1.0.0" have entirely different histories.
main ... 1.0.0

21 changed files with 965 additions and 3688 deletions

1
.husky/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
_

4
.husky/pre-commit Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm run build

3
.npmignore Normal file
View File

@ -0,0 +1,3 @@
.DS_Store
.husky
node_modules

View File

@ -1,57 +0,0 @@
## [v2.0.5]
Added Polish alphabet, plus support for Deno!
## [v2.0.4]
Fixed the X-ray entry in the NATO alphabet.
## [v2.0.3]
Added the [NATO phonetic alphabet](https://en.wikipedia.org/wiki/NATO_phonetic_alphabet).
## [v2.0.2]
Fixed a double typo in package.json and package-lock.json (see 237fb6a).
## [v2.0.1]
Added Ukrainian alphabet.
## [v2.0.0]
Huge improvements...
## [v1.2.0]
Added Russian alphabet! It is exported as `russian`.
## [v1.1.0]
Added Scandinavian alphabets. This package now exports the following alphabets:
| Name | Export name |
|---------------------------|------------------|
| Danish | `danish` |
| Faroese | `faroese` |
| Greek (modern) | `greek` |
| Greek (ancient/polytonic) | `greekPolytonic` |
| Icelandic | `icelandic` |
| Latin | `latin` |
| Norwegian | `norwegian` |
| Swedish | `swedish` |
## [v1.0.0]
Initial release.
[Unreleased]: https://github.com/garraflavatra/alphabets/tree/main
[v1.0.0]: https://github.com/garraflavatra/alphabets/releases/tag/1.0.0
[v1.1.0]: https://github.com/garraflavatra/alphabets/releases/tag/1.1.0
[v1.2.0]: https://github.com/garraflavatra/alphabets/releases/tag/1.2.0
[v2.0.0]: https://github.com/garraflavatra/alphabets/releases/tag/v2.0.0
[v2.0.1]: https://github.com/garraflavatra/alphabets/releases/tag/v2.0.1
[v2.0.2]: https://github.com/garraflavatra/alphabets/releases/tag/v2.0.2
[v2.0.3]: https://github.com/garraflavatra/alphabets/releases/tag/v2.0.3
[v2.0.4]: https://github.com/garraflavatra/alphabets/releases/tag/v2.0.4
[v2.0.5]: https://github.com/garraflavatra/alphabets/releases/tag/v2.0.5

View File

@ -1,19 +1,22 @@
Copyright (c) 2021-2024 Romein van Buren <<romein@vburen.nl>> Copyright (c) 2020 Romein van Buren <romein@vburen.eu>
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person
of this software and associated documentation files (the "Software"), to deal obtaining a copy of this software and associated documentation
in the Software without restriction, including without limitation the rights files (the "Software"), to deal in the Software without
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell restriction, including without limitation the rights to use,
copies of the Software, and to permit persons to whom the Software is copy, modify, merge, publish, distribute, sublicense, and/or sell
furnished to do so, subject to the following conditions: copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be included in all The above copyright notice and this permission notice shall be
copies or substantial portions of the Software. included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
SOFTWARE. FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

132
README.md
View File

@ -1,59 +1,65 @@
# Alphabets # Alphabets
Alphabets contains many different alphabets for many different use cases. A tiny JS dependency (<800 bytes!) which exports many alphabets for many use
cases.
[![npm](https://img.shields.io/npm/v/alphabets)](https://www.npmjs.com/package/alphabets) More information is available in the
[documentation](https://alphabets.romeinvanburen.nl).
- [Included alphabets](#included-alphabets) ## Why would I use this?
- [How to use](#how-to-use)
- [JS module](#js-module)
- [JSON file](#json-file)
- [Motivation](#motivation)
- [Questions and bugs](#questions-and-bugs)
- [Copyright](#copyright)
## Included alphabets ### Why?
See below for [usage instructions](#how-to-use). I have seen developers doing this:
| Export name | Alphabet | ```js
|------------------|------------------| const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');
| `danish` | [Danish](https://en.wikipedia.org/wiki/Danish_orthography), same as Norwegian | ```
| `faroese` | [Faroese](https://en.wikipedia.org/wiki/Faroese_orthography) |
| `greek` | [Greek](https://en.wikipedia.org/wiki/Greek_alphabet) |
| `icelandic` | [Icelandic](https://en.wikipedia.org/wiki/Icelandic_orthography) |
| `latin` | [Latin](https://en.wikipedia.org/wiki/Latin_alphabet) (abcdefg etc.) |
| `nato` | [NATO phonetic alphabet](https://en.wikipedia.org/wiki/NATO_phonetic_alphabet) |
| `norwegian` | [Norwegian](https://en.wikipedia.org/wiki/Danish_and_Norwegian_alphabet), same as Danish |
| `polish` | [Polish](https://en.wikipedia.org/wiki/Polish_alphabet) |
| `russian` | [Russian](https://en.wikipedia.org/wiki/Russian_alphabet) |
| `swedish` | [Swedish](https://en.wikipedia.org/wiki/Swedish_alphabet) |
| `ukrainian` | [Ukrainian](https://en.wikipedia.org/wiki/Ukrainian_alphabet) |
## How to use Or worse:
### JS module ```js
const alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
```
Install the [alphabets npm module](https://www.npmjs.com/package/alphabets) using your preferred package manager: My opinion about this? 🙄. It's ugly, it makes your code less readable
(read: ugly) and it's simply not something you should want to have in your
code! Instead, you should do it like so:
* npm: `npm install alphabets` ```js
* Yarn: `yarn add alphabets` import { latin } from 'alphabets';
* pnpm: `pnpm add alphabets` // or
const alphabets = require('alphabets');
```
You can also use it with [Deno](https://deno.land/) by importing `https://deno.land/x/alphabets/alphabets.mjs`. Much cleaner, right? That's why I made this package.
Replace `<alphabetYouWantToUse>` with an [alphabet identifier](#included-alphabets) this package exports: ## Installation
Use npm:
```bash
npm install alphabets --save
```
Or if you prefer Yarn:
```bash
yarn add alphabets
```
CDN, if that's more your style:
```html
<script src="https://unpkg.com/alphabet@1/dist/bundle.js"></script>
```
## Usage
```js ```js
import { <alphabetYouWantToUse> } from 'alphabets'; import { <alphabetYouWantToUse> } from 'alphabets';
``` ```
Deno:
```js
import { <alphabetYouWantToUse> } from 'https://deno.land/x/alphabets/alphabets.mjs';
```
or: or:
```js ```js
@ -61,47 +67,15 @@ const alphabets = require('alphabets');
console.log(alphabets.<alphabetYouWantToUse>); console.log(alphabets.<alphabetYouWantToUse>);
``` ```
### JSON file where `<alphabetYouWantToUse>` is an alphabet this package supports.
[Here](#supported-alphabets) is a list from which you can choose.
Or load the JSON file with alphabets directly from a CDN: ## Supported alphabets
* https://cdn.jsdelivr.net/npm/alphabets@2/alphabets.json Usage: see [Usage](#usage).
* https://unpkg.com/alphabets@2/alphabets.json
## Motivation | Name | Export name |
|------|-------------|
I have seen [code like this](https://github.com/search?q=%27abcdefghijklmnopqrstuvwxyz%27.split%28%27%27%29+language%3AJavaScript&type=code&l=JavaScript): | Latin | `latin` |
| Greek (modern) | `greek` |
```js | Greek (ancient/polytonic) | `greekPolytonic` |
const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');
```
Or [even worse](https://github.com/search?q=%5B%22a%22%2C+%22b%22%2C+%22c%22%2C+%22d%22%2C+%22e%22%2C+%22f%22%2C+%22g%22%2C+%22h%22%2C+%22i%22%2C+%22j%22%2C+%22k%22%2C+%22l%22%2C+%22m%22%2C+%22n%22%2C+%22o%22%2C+%22p%22%2C+%22q%22%2C+%22r%22%2C+%22s%22%2C+%22t%22%2C+%22u%22%2C+%22v%22%2C+%22w%22%2C+%22x%22%2C+%22y%22%2C+%22z%22%5D+language%3AJavaScript&type=code&l=JavaScript):
```js
const alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
```
My opinion about this: it's verbose, ugly, and it pollutes your code. Instead, why not [do it like this](#how-to-use):
```js
import { latin } from 'alphabets';
for (const glyph of latin) {/* ... */}
```
This is much cleaner and more idiomatic.
## Questions and bugs
Did you find a mistake in an alphabet, or another bug? Please [report it](https://github.com/garraflavatra/alphabets/issues/new) — thank you! I'll try to fix it as soon as possible.
You may use the same issue form for questions, too.
## Copyright
(c) 2021-2024 [Romein van Buren](mailto:romein@vburen.nl). Licensed under the MIT license.
For the full copyright and license information, please see the [`LICENSE.md`](./LICENSE.md) file that was distributed with this source code.
[![Smart Yellow](https://code.smartyellow.net/smartyellow/meta/raw/branch/main/logo.png)](https://www.smartyellow.nl)

View File

@ -1 +0,0 @@
module.exports = require('./alphabets.json');

View File

@ -1,27 +0,0 @@
{
"danish": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "æ", "ø", "å"],
"elfadian": ["a", "ą", "b", "d", "ð", "e", "ę", "f", "g", "h", "i", "į", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "ų", "v", "w", "y", "y̨", "å", "ą̊", "ä", "ö"],
"faroese": ["a", "á", "b", "d", "ð", "e", "f", "g", "h", "i", "í", "j", "k", "l", "m", "n", "o", "ó", "p", "r", "s", "t", "u", "ú", "v", "y", "ý", "æ", "ø"],
"greek": ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"],
"icelandic": ["a", "á", "b", "d", "ð", "e", "é", "f", "g", "h", "i", "í", "j", "k", "l", "m", "n", "o", "ó", "p", "r", "s", "t", "u", "ú", "v", "x", "y", "ý", "þ", "æ", "ö"],
"latin": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"],
"nato": ["Alfa", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliett", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu"],
"norwegian": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "æ", "ø", "å"],
"polish": ["a", "ą", "b", "c", "ć", "d", "e", "ę", "f", "g", "h", "i", "j", "k", "l", "ł", "m", "n", "ń", "o", "ó", "p", "q", "r", "s", "ś", "t", "u", "v", "w", "x", "y", "z", "ź", "ż"],
"russian": ["а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я"],
"swedish": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "å", "ä", "ö"],
"ukrainian": ["а", "б", "в", "г", "ґ", "д", "е", "є", "ж", "з", "и", "і", "ї", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ь", "ю", "я"]
}

View File

@ -1 +0,0 @@
export * from './alphabets.json';

4
docs/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata

1
docs/CNAME Normal file
View File

@ -0,0 +1 @@
alphabets.romeinvanburen.nl

4
docs/Gemfile Normal file
View File

@ -0,0 +1,4 @@
source "https://rubygems.org"
gem "github-pages", group: :jekyll_plugins
gem "jekyll-include-cache", group: :jekyll_plugins

276
docs/Gemfile.lock Normal file
View File

@ -0,0 +1,276 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (6.0.3.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
commonmarker (0.17.13)
ruby-enum (~> 0.5)
concurrent-ruby (1.1.8)
dnsruby (1.61.5)
simpleidn (~> 0.1)
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.14.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
execjs (2.8.1)
faraday (1.4.2)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.1)
multipart-post (>= 1.2, < 3)
ruby2_keywords (>= 0.0.4)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.1.0)
ffi (1.15.1)
forwardable-extended (2.6.0)
gemoji (3.0.1)
github-pages (214)
github-pages-health-check (= 1.17.0)
jekyll (= 3.9.0)
jekyll-avatar (= 0.7.0)
jekyll-coffeescript (= 1.1.1)
jekyll-commonmark-ghpages (= 0.1.6)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.15.1)
jekyll-gist (= 1.5.0)
jekyll-github-metadata (= 2.13.0)
jekyll-mentions (= 1.6.0)
jekyll-optional-front-matter (= 0.3.2)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.3.0)
jekyll-redirect-from (= 0.16.0)
jekyll-relative-links (= 0.6.1)
jekyll-remote-theme (= 0.4.3)
jekyll-sass-converter (= 1.5.2)
jekyll-seo-tag (= 2.7.1)
jekyll-sitemap (= 1.4.0)
jekyll-swiss (= 1.0.0)
jekyll-theme-architect (= 0.1.1)
jekyll-theme-cayman (= 0.1.1)
jekyll-theme-dinky (= 0.1.1)
jekyll-theme-hacker (= 0.1.2)
jekyll-theme-leap-day (= 0.1.1)
jekyll-theme-merlot (= 0.1.1)
jekyll-theme-midnight (= 0.1.1)
jekyll-theme-minimal (= 0.1.1)
jekyll-theme-modernist (= 0.1.1)
jekyll-theme-primer (= 0.5.4)
jekyll-theme-slate (= 0.1.1)
jekyll-theme-tactile (= 0.1.1)
jekyll-theme-time-machine (= 0.1.1)
jekyll-titles-from-headings (= 0.5.3)
jemoji (= 0.12.0)
kramdown (= 2.3.1)
kramdown-parser-gfm (= 1.1.0)
liquid (= 4.0.3)
mercenary (~> 0.3)
minima (= 2.5.1)
nokogiri (>= 1.10.4, < 2.0)
rouge (= 3.26.0)
terminal-table (~> 1.4)
github-pages-health-check (1.17.0)
addressable (~> 2.3)
dnsruby (~> 1.60)
octokit (~> 4.0)
public_suffix (>= 2.0.2, < 5.0)
typhoeus (~> 1.3)
html-pipeline (2.14.0)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.9.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (>= 1.17, < 3)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-avatar (0.7.0)
jekyll (>= 3.0, < 5.0)
jekyll-coffeescript (1.1.1)
coffee-script (~> 2.2)
coffee-script-source (~> 1.11.1)
jekyll-commonmark (1.3.1)
commonmarker (~> 0.14)
jekyll (>= 3.7, < 5.0)
jekyll-commonmark-ghpages (0.1.6)
commonmarker (~> 0.17.6)
jekyll-commonmark (~> 1.2)
rouge (>= 2.0, < 4.0)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-github-metadata (2.13.0)
jekyll (>= 3.4, < 5.0)
octokit (~> 4.0, != 4.4.0)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-mentions (1.6.0)
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
jekyll-optional-front-matter (0.3.2)
jekyll (>= 3.0, < 5.0)
jekyll-paginate (1.1.0)
jekyll-readme-index (0.3.0)
jekyll (>= 3.0, < 5.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-relative-links (0.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-remote-theme (0.4.3)
addressable (~> 2.0)
jekyll (>= 3.5, < 5.0)
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
rubyzip (>= 1.3.0, < 3.0)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-seo-tag (2.7.1)
jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-swiss (1.0.0)
jekyll-theme-architect (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-cayman (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-dinky (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-hacker (0.1.2)
jekyll (> 3.5, < 5.0)
jekyll-seo-tag (~> 2.0)
jekyll-theme-leap-day (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-merlot (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-midnight (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-minimal (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-modernist (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-primer (0.5.4)
jekyll (> 3.5, < 5.0)
jekyll-github-metadata (~> 2.9)
jekyll-seo-tag (~> 2.0)
jekyll-theme-slate (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-tactile (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-time-machine (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-titles-from-headings (0.5.3)
jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
jemoji (0.12.0)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
kramdown (2.3.1)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.5.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.14.4)
multipart-post (2.1.1)
nokogiri (1.11.5-arm64-darwin)
racc (~> 1.4)
nokogiri (1.11.5-x86_64-darwin)
racc (~> 1.4)
octokit (4.21.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.6)
racc (1.5.2)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
rouge (3.26.0)
ruby-enum (0.9.0)
i18n
ruby2_keywords (0.0.4)
rubyzip (2.3.0)
safe_yaml (1.0.5)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
simpleidn (0.2.1)
unf (~> 0.1.4)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (1.2.9)
thread_safe (~> 0.1)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
zeitwerk (2.4.2)
PLATFORMS
universal-darwin-20
DEPENDENCIES
github-pages
jekyll-include-cache
BUNDLED WITH
2.2.17

38
docs/_config.yml Normal file
View File

@ -0,0 +1,38 @@
remote_theme: "mmistakes/minimal-mistakes@4.9.0"
minimal_mistakes_skin: air
repository: garraflavatra/alphabets
title: Alphabets
description: A tiny JS dependency (<800 bytes!) which exports many alphabets for many use cases.
author:
name: "garraflavatra"
avatar: "https://avatars.githubusercontent.com/u/34036573"
email: "romein@vburen.eu"
links:
- label: "Email"
icon: "fas fa-fw fa-envelope-square"
url: "mailto:romein@vburen.eu"
- label: "Website"
icon: "fas fa-fw fa-link"
url: "https://garraflavatra.github.io"
- label: "GitHub"
icon: "fab fa-fw fa-github"
url: "https://github.com/garraflavatra/alphabet.js"
plugins:
- jekyll-include-cache
footer:
links:
- label: "GitHub"
icon: "fab fa-fw fa-github"
url: "https://github.com/garraflavatra/alphabet.js"
defaults:
- scope:
path: ""
values:
layout: single
toc: true

View File

@ -0,0 +1,3 @@
main:
- title: "GitHub"
url: https://github.com/garraflavatra/alphabet.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

126
docs/index.md Normal file
View File

@ -0,0 +1,126 @@
---
title: Alphabets
---
A tiny JS dependency (<800 bytes!) which exports many alphabets for many use
cases.
## Why would I use this?
### Why?
I have seen developers doing this:
```js
const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');
```
Or worse:
```js
const alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
```
My opinion about this? 🙄. It's ugly, it makes your code less readable
(read: ugly) and it's simply not something you should want to have in your
code! Instead, you should do it like so:
```js
import { latin } from 'alphabets';
// or
const alphabets = require('alphabets');
```
Much cleaner, right? That's why I made this package.
### Why not?
I see very few reasons not to use this package.
#### But doesn't it cost me performance?
No. This package is only <800 bytes so it should not cost you any performance.
Neither via CDN nor if you use a bundler like webpack, Parcel or Rollup.
#### Why not making an array on my own?
It's a choice. This whole package is **opinionated**. *I* think you should not
do `const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');` in your code. *I*
think you should use a package for that. Do you think it's OK to define your own
alphabet array? Do that!
### Competitors
Know more alternatives? Please open an
[issue](https://github.com/garraflavatra/alphabet.js/issues/new) or
[pull request](https://github.com/garraflavatra/alphabet.js)!
{: .notice--info}
#### [alphabet](https://www.npmjs.com/package/alphabet)
Seems a good alternative, right? But:
* It only supports the Latin alphabet.
* It is larger. (The size is equal to this package's size, but this package
includes more.)
* It is only [CommonJS](https://en.wikipedia.org/wiki/CommonJS) and not
[ECMAScript](https://en.wikipedia.org/wiki/ECMAScript) etc.
* When did the author last update it? Right.
<figure>
<img src="/images/competitors/alphabet-last-publish.png" alt="Last updated: 6 years ago">
<figcaption>Hmmm...</figcaption>
</figure>
I do not say this package doesn't work. I think it will work perfectly, but it
has less features.
{: .notice--warning}
## Usage
### Installation
Use npm:
```bash
npm install alphabets --save
```
Or if you prefer Yarn:
```bash
yarn add alphabets
```
CDN, if that's more your style:
```html
<script src="https://unpkg.com/alphabet@1/dist/bundle.js"></script>
```
### Usage
```js
import { <alphabetYouWantToUse> } from 'alphabets';
```
or:
```js
const alphabets = require('alphabets');
console.log(alphabets.<alphabetYouWantToUse>);
```
where `<alphabetYouWantToUse>` is an alphabet this package supports.
[Here](#supported-alphabets) is a list from which you can choose.
## API
### Supported alphabets
Usage: see [Usage](#usage).
| Name | Export name |
|------|-------------|
| Latin | `latin` |
| Greek (modern) | `greek` |
| Greek (ancient/polytonic) | `greekPolytonic` |

3858
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,43 +1,19 @@
{ {
"name": "alphabets", "name": "alphabets",
"description": "A collection of many different alphabets for many different use cases. ", "version": "1.0.0",
"author": "Romein van Buren <romein@vburen.nl>", "description": "Exports many alphabets for many use cases",
"version": "2.0.5", "main": "dist/bundle.js",
"homepage": "https://github.com/garraflavatra/alphabets#readme", "scripts": {
"build": "rollup -c",
"prepare": "husky install"
},
"keywords": [],
"author": "Romein van Buren <romein@vburen.eu>",
"license": "MIT", "license": "MIT",
"keywords": [
"alphabet",
"alphabets"
],
"repository": {
"type": "git",
"url": "https://github.com/garraflavatra/alphabets.git"
},
"main": "alphabets.cjs",
"module": "alphabets.mjs",
"files": [
"alphabets.cjs",
"alphabets.mjs",
"alphabets.json"
],
"devDependencies": { "devDependencies": {
"@garraflavatra/yeslint": "^1.0.0", "husky": "^6.0.0",
"eslint": "^8.46.0" "rollup": "^2.49.0",
}, "rollup-plugin-clear": "^2.0.7",
"eslintConfig": { "rollup-plugin-terser": "^7.0.2"
"extends": "./node_modules/@garraflavatra/yeslint/configs/node.js",
"rules": {
"strict": "off"
},
"overrides": [
{
"files": [
"*.mjs"
],
"parserOptions": {
"sourceType": "module"
}
}
]
} }
} }

15
rollup.config.js Normal file
View File

@ -0,0 +1,15 @@
import clear from 'rollup-plugin-clear';
import { terser } from "rollup-plugin-terser";
export default {
input: 'src/main.js',
output: {
file: 'dist/bundle.js',
format: 'umd',
name: 'alphabets',
},
plugins: [
terser(),
clear({ targets: ['dist'] }),
],
};

17
src/main.js Normal file
View File

@ -0,0 +1,17 @@
export const latin = [
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
];
export const greek = [
"α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"
]
export const greekPolytonic = [
"α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"
]
export default [
latin,
greek,
greekPolytonic,
];