Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite in TS, make some additions and removals #27

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

invpt
Copy link

@invpt invpt commented Dec 30, 2020

I've rewritten the jQuery JS as TypeScript and have added features, removed features, and changed the UI.

Feature additions:

  • Select all, which allows the user to select all kanji in a subcategory.
  • Font switcher, which allows the user to switch between a few different included fonts
  • Grid/guide lines toggle

Feature removals:

  • Kanji search:
    • I haven't implemented this yet as there's no way to know which instance of a kanji a user wants without making an entire search UI. This could use a temporary implementation.

Backend changes:

  • JS → TS
  • Kanji data:
    • Changed format: one file per kanji category, which contains a map of subcategories, each of which contains a list of kanji and associated information.
    • JLPT data: Now comes from a different source and the JSON containing the data can be generated using a Python script in the tools/ directory.
  • WaniKani API version:
    • Get the user's kanji using WaniKani's v2 API rather than the older version.

UI changes:

  • All custom UI elements that can be clicked now have the cursor: pointer style.
  • For kanji selection, each category must contain subcategories. Each subcategory has a select all button.
  • WaniKani Sync is now a separate, always-present section that can be used to add a category containing WaniKani kanji.
  • Each kanji row now shows a large view of its kanji with stroke order numbers.
  • The box to write each kanji is now smaller.

These are only the major changes. Many minor things have been changed as well.

The app is built with Rollup using NPM as the package manager. I don't do many TS projects, let alone for in-browser JS, so there may be some oddities with the way the project is set up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants