aiktb / furiganamaker Goto Github PK
View Code? Open in Web Editor NEW๐ณ A browser extension that adds furigana to Japanese text on any page, for learning kanji pronunciation.
Home Page: https://furiganamaker.app
License: MIT License
๐ณ A browser extension that adds furigana to Japanese text on any page, for learning kanji pronunciation.
Home Page: https://furiganamaker.app
License: MIT License
To put (or prepare to put) hiragana, when this extension is turned on, it will create spaces between words (Kanji)
Even it is under on-hover mode, we can see the layout of the contents changed, as the below pictures showed
Sometimes these spaces between words cause a little inconvenience in reading
I tried to set hot-key, but it actually is not "turn on-off" Furigana, but call (pop-up) menu.
I would like to ask if it is possible to have a hot-key to "turn on-off" Furigana,
that can make the reader to switch between "normal layout" (easier to read) and "show Hiragana"?
Or, it does not pre-leave space to put Hiragana, but create space "dynamically" when on-hover (in hover mode)?
Hope my description is not confusing.
No response
No response
I tried to 1. modify one item 2. remove all rules 3. just save with the original rules,
it warns me JSON is invalid (and unable to save).
modify the rule,
from [{"domain": "twitter.com","selector": "div[lang='ja'] span","dynamic": true,"enabled": true},
to [{"domain": "twitter.com","selector": "div[lang='ja'] span","dynamic": true,"enabled": FALSE}, ...
โ Invalid JSON
remove all contents in the rule box
โ Invalid JSON
undo all steps by 2 times ctrl+Z
โ Invalid JSON
Clear the rule
Edge
No response
No response
Vicious bugs extremely seriously affect the user experience and must be fixed.
The browser will not become unresponsive.
Chrome
System:
OS: Windows 11 10.0.22621
CPU: (12) x64 AMD Ryzen 5 5600U with Radeon Graphics
Memory: 2.61 GB / 13.86 GB
Binaries:
Node: 20.6.1 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
npm: 10.2.0 - C:\Program Files\nodejs\npm.CMD
pnpm: 8.12.1 - ~\AppData\Local\pnpm\pnpm.CMD
Browsers:
Edge: Chromium (120.0.2210.121)
Internet Explorer: 11.0.22621.1
This issue is used to track the progress of feature implementation in the comments following.
Nothing
No response
No response
Thank you for creating this extension first.
While looking for a furigana extension, I found x6ud and your extension.
https://github.com/x6ud/auto-furigana-chrome-extension and your extension
For me as someone with very very basic Japanese knowledge, an ideal furigana extension will be one that
Translation / Vocab feature for words using word segmentisation like auto-furigana to allow users to hover over words and understand the meaning of certain kanji. It would be even better if it is available for all Japanese words and not just kanji.
No response
No response
Unnecessary.
Chrome
No response
This is confirmed to be a TinyColor bug:
> tinycolor({h: 100, s: 0,v: 10}).toHsv()
> {h: 0, s: 0, v: 10}
This results in a serious loss of hue accuracy.
The solution is to use another color space conversion library, which requires correct handling of the following values:
I was testing out all the options to find something comfortable to read - as I have very poor eyesight and dyslexia - I was trying out the other options under the section with "Always Show" and "Hover".
I like the extra space that the "Hover Gap" option had for the kanji between sentence lines compared to it's 'no gap' counterpart but I would still like to see the furigana above the kanji with a little bit extra space.
With just the current "Always Show" option, it squishes the characters a little too much together for someone with bad vision/disability. Sometimes the page loads in such a way that the characters even overlap which makes it even more difficult to understand.
(Image showing the option section I'm talking about.)
(Image of the overlapping kanji and furigana on the front page of JP wiki as example.)
I'd like it if there could be an added option for an "Always Show" to have more space between the lines to adjust for the added characters. Even if it's only a few pixels worth, just to make it more readable for those with vision disabilities. Maybe called "Always Show with Gap" or something similar.
(Made a little mock-up of what I mean.)
The only other option that I can think of is adding the furigana after text in parentheses rather than over the top but that doesn't always work with webpage formats.. I've seen other extension trying something like this and color code the furigana but I never got them to work.
Um, the only other thing that I could think of is that if there is an ability to have/import different fonts from something free like Google Font. Sometimes it makes it easier to read the text than with the default fonts, in terms of the disability issue.
Thank you for your time and consideration!~ orz
As title.
https://ja.vuejs.org/guide/introduction.html
Use the Popup or content menu's "Add furigana" function to click on a link on the page.
Note that on-site links behave differently than off-site links.
Prevent the link's routing.
Chrome
No response
This involves some internal details of vue-router, for which event.preventDefault
will not work.
Currently this extension only supports N5 level kanji filters.
The N5 level still has many common Chinese characters that are not covered, and it needs to be expanded to a higher level.
Supports N4/N3/N2 levels of kanji filters.
Provide a filter level switcher on the options page.
Just the corresponding JSON file is required.
This file needs to conform to the following format:
interface FilterRule {
kanji: string;
reading: string[];
}
filter.json as {
N2: FilterRule[];
N3: FilterRule[];
N4: FilterRule[];
N5: FilterRule[];
};
Planning to extract this information from the JTPL sensei website requires writing a script.
Currently, this extension uses the @iconify/react
dependency, a library that loads icons on-demand from the web, generates a noticeable FOUC on first load, and subsequently loads them via cache.
Through research, this library can be replaced by @egoist/tailwindcss-icon
and all icons are local with no FOUCs, which is great!
No FOUC.
Migrated from @iconify/react
to @egoist/tailwindcss-icon
.
No response
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
react
, react-dom
).github/workflows/ci.yml
actions/checkout v4
pnpm/action-setup v4
actions/setup-node v4
actions/upload-artifact v4
.github/workflows/deploy.yml
actions/checkout v4
pnpm/action-setup v4
actions/setup-node v4
cloudflare/wrangler-action v3
.github/workflows/link.yml
actions/checkout v4
lycheeverse/lychee-action v1.10.0
.github/workflows/release.yml
actions/checkout v4
actions/create-release v1
actions/checkout v4
pnpm/action-setup v4
actions/setup-node v4
package.json
@ctrl/tinycolor ^4.1.0
@floating-ui/react ^0.26.20
@headlessui/react ^2.1.2
@js-temporal/polyfill ^0.4.4
@sglkc/kuromoji ^1.1.0
@webext-core/messaging ^1.4.0
file-saver ^2.0.5
i18next ^23.12.2
react 18.3.0-canary-c5b937576-20231219
react-dom 18.3.0-canary-c5b937576-20231219
react-i18next ^15.0.0
react-markdown ^9.0.1
react-router-dom ^6.25.1
react-share ^5.1.0
wanakana ^5.3.1
zod ^3.23.8
@biomejs/biome ^1.8.3
@commitlint/cli ^19.3.0
@commitlint/config-conventional ^19.2.2
@commitlint/types ^19.0.3
@egoist/tailwindcss-icons ^1.8.1
@headlessui/tailwindcss ^0.2.1
@playwright/test ^1.45.3
@tailwindcss/forms ^0.5.7
@tailwindcss/typography ^0.5.13
@types/chrome ^0.0.269
@types/file-saver ^2.0.7
@types/node ^20.14.12
@types/react ^18.3.3
@types/react-dom ^18.3.0
@wxt-dev/module-react ^1.1.0
autoprefixer ^10.4.19
husky ^9.1.3
kuromojin ^3.0.0
sharp ^0.33.4
tailwindcss ^3.4.7
typescript ^5.5.4
vite-plugin-svgr ^4.2.0
vitest ^2.0.4
wxt ^0.19.1-alpha1
node >=20.15.0
pnpm 9.6.0
.nvmrc
node 20.16.0
Submissions could be submitted normally before January 15, 2024, but now Edge review has suddenly added the requirement that uploaded zip files are not allowed to contain compressed files.
The third-party library kuromoji.js used by this extension relies on some local *.dat.gz
files. The gz files are compressed files, which prevents the extension from being submitted to Edge.
Unnecessary.
Add a fork of kuromoji.js to upload to NPM and reference it in this project so that it accepts *.dat
files instead of *.dat.gz
files.
Chrome
No response
Link to microsoft/MicrosoftEdge-Extensions#135
Discontinued maintenance of firefox version as of version 2.0.0, which means that the latest version of firefox Furigana Maker will be 1.6.1, which will keep the default addition of furigana functionality for X.
The main reason for this is that firefox currently has poor MV3 support, Service Worker missing in firefox MV3, which causes me to have to use firefox MV2, which is too much different code and causes me to have to test both browsers.
It adds a lot of maintenance costs.
I will try to add it again when firefox MV3 is fully supported.
No response
No response
For example, when twitter.com migrates to x.com, what should be done to update the old rules and prevent conflicts?
One possible solution is to add a dialog to options.html that lets users choose whether they want to import new rules or delete outdated ones, etc.
The callback to open the options page and pop up the dialog should be registered in the event listener that the extension update.
No response
Important
If the user updates more than one version at a time, the changes from these versions should be merged and shown to the user.
A small green or blue dot is used for flag.
This requires adding a new "action" permission to the manifest.
When the content script determines whether the current page matches the custom rule, use tabs.query
to query the currentTab id and pass it to action.setBadgeBackgroundColor
to set the badge.
If the content script does not have action
API access, move it to a service worker.
This also requires action.setTitle()
to provide some more useful information.
Like this:
No response
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.