尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Syllable counting, rhyme-scheme detection, and rhyme lookup for songwriters.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A tool for writing song lyrics — syllable counts per line, rhyme-scheme
detection, and a rhyme finder built on the CMU Pronouncing Dictionary's
phoneme data instead of spelling.
This repo is public mainly so I have a record of how the app actually got
built.檢視完整 README ↗LyricLike is a tool I built for writing song lyrics. It counts the syllables in each line, labels the rhyme scheme, and finds rhymes based on how words sound (phonemes from the CMU Pronouncing Dictionary) rather than how they are spelled.
I made this repo public mainly so I have a record of how the app actually got built.
As you type, it counts the syllables in each line and labels the rhyme scheme (A/B/C, etc). It also marks internal rhymes, which are words inside a line that rhyme with each other.
When you click a word, it finds rhymes by matching sounds, so near-rhymes show up too and not just words with the same ending. Common words come first. Names, rare words and crude words come last.
Accounts are optional. You can sign in with Google, or with an email and password, to save your pages and sync them across devices.
You'll need Node, a Cloudflare account and
Wrangler. I run Wrangler
through npx at the same version the deploys use, since older global installs
have crashed on me:
npx [email protected] d1 migrations apply lyricalmiracle_db --local
npx [email protected] pages dev .
Before that, create a .dev.vars file in the project root:
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
OAUTH_REDIRECT_URL=http://localhost:8788/api/auth/google/callback
You can get these from a Google Cloud OAuth client (type "Web") with that redirect URI added.
Email and password accounts stay off unless you also set these:
PASSWORD_AUTH_ENABLED=true
PASSWORD_PEPPER=32-or-more-random-bytes-base64
APP_BASE_URL=http://localhost:8788
TURNSTILE_SECRET_KEY=your-turnstile-secret
RESEND_API_KEY=your-resend-key
EMAIL_FROM=LyricLike <noreply@your-domain>
PASSWORD_AUTH_ENABLED works as the kill switch. If you leave it unset, only
Google sign-in shows up. Every link that gets emailed is built from
APP_BASE_URL. The public Turnstile site key is in wrangler.toml.
You can also set ALERT_EMAIL to an address that should get a heads up when a
day's signup or account email reaches 70% of its cap in functions/_email.js.
Once a cap is reached, the signup, forgot-password and set-password requests
answer 503 until the next day.
Preview deploys use their own database (lyricalmiracle-db-preview), so a
branch never touches real accounts.
/rhymes/ holds static "words that rhyme with X" pages for search engines.
They are generated from the same rhyme logic as the editor. Since the site has
no build step, the pages are committed. To regenerate them:
node tools/rhymes/collect-popular-words.mjs # rarely: re-rank popular searches
node tools/rhymes/build-pages.mjs # rewrite /rhymes/ and sitemap.xml
The editor and the pages share one copy of the rhyme logic, rhyme-core.js.
The pages leave out names, rare words and crude words, while the editor lists
them last. The pages also leave out the words in
tools/rhymes/page-excluded-words.json, which ad networks treat as sensitive.
Those words don't get a page either, but the editor still lists them.
These are all at the repo root, and all plain JSON arrays:
cmudict.json: pronunciations, from the CMU Pronouncing Dictionaryenglish-words.json: words that rhyme results can list, commonest first (the
order is the frequency ranking)name-words.json: words English only spells with a capital ("wayne"), listed
last. Rebuild with node tools/build-name-words.mjscrude-words.json: swear and sex words, listed last and never on a rhyme pageblocklist.json: slurs. These are never listed, and typing one doesn't look
anything upThe rhyme logic and the API's access checks have tests. They need Node 22 or later, and nothing else installed:
node --test "test/*.test.mjs"
GitHub Actions runs them on every pull request.
MIT, see LICENSE. The bundled CMU Pronouncing Dictionary has its own license, see NOTICE.