furifont 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +1 -1
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/{BmkgJMJq.js → BgIj0bEj.js} +1 -1
- package/dist/client/_nuxt/{B_yYcKkt.js → BpoWIN5A.js} +2 -2
- package/dist/client/_nuxt/{BuNmJC0Q.js → C4V-788C.js} +2 -2
- package/dist/client/_nuxt/{CUHATrYY.js → CAnB8eMp.js} +1 -1
- package/dist/client/_nuxt/{DAxBBWm2.js → CG1cMRvM.js} +2 -2
- package/dist/client/_nuxt/{3AsBWvce.js → Dg3RF8xB.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/95075385-c519-4224-af4d-f5091c1f9663.json +1 -0
- package/dist/client/_nuxt/{entry.CZW0K6xF.css → entry.C1lnNdD0.css} +1 -1
- package/dist/client/_nuxt/{DgjW2lPh.js → ez7nRQJI.js} +1 -1
- package/dist/client/_nuxt/{BClhblIx.js → slpK2-vu.js} +1 -1
- package/dist/client/customize/index.html +1 -1
- package/dist/client/furifont.user.js +3 -3
- package/dist/client/index.html +1 -1
- package/dist/client/reference/index.html +1 -1
- package/dist/client/report/index.html +1 -1
- package/dist/client/version.json +1 -1
- package/dist/{config-C-xeUzoA.mjs → config-BHN-5b6L.mjs} +1 -1
- package/dist/devframe.mjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{studio-BmCyOlBh.mjs → studio-bPS1eciv.mjs} +1 -1
- package/package.json +4 -4
- package/dist/client/_nuxt/builds/meta/5ad83f05-1bf5-46a5-b89b-625cf86451d1.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,C as n,E as r,Ht as i,N as a,S as o,Y as s,Z as c,_ as l,at as u,bt as d,gt as f,j as p,mt as m,ot as h,q as g,s as _,t as v,ut as y,w as b}from"./CkUAspOr.js";import{o as x}from"./D4ezFGbh.js";import{i as S,p as C}from"./
|
|
1
|
+
import{$ as e,A as t,C as n,E as r,Ht as i,N as a,S as o,Y as s,Z as c,_ as l,at as u,bt as d,gt as f,j as p,mt as m,ot as h,q as g,s as _,t as v,ut as y,w as b}from"./CkUAspOr.js";import{o as x}from"./D4ezFGbh.js";import{i as S,p as C}from"./Dg3RF8xB.js";import{t as w}from"./ez7nRQJI.js";import{i as T,t as E}from"./BgIj0bEj.js";import{t as D}from"#entry";var O=917985;function k(e,t){let[n=``,...r]=[...e];return n+String.fromCodePoint(O+t)+r.join(``)}function A(e){return`VS${226+e}`}var j={class:`border-b border-base`},M={class:`px-6 pt-4 font-mono text-xs color-muted`},N={class:`flex flex-wrap`},P=[`title`,`onClick`],F=Object.assign(a({__name:`ReferenceEntry`,props:{text:{},readings:{},wordDefault:{type:Boolean,default:!1}},setup(e){let{copied:t,copy:a}=T(),{family:o}=D();return(u,f)=>{let m=E;return s(),r(`article`,j,[n(`h3`,M,i(e.text),1),n(`ul`,N,[(s(!0),r(l,null,c(e.readings,(c,l)=>(s(),r(`li`,{key:c,class:`flex flex-col items-start gap-1 px-6 py-3`},[p(m,{text:(`withReading`in u?u.withReading:d(k))(e.text,l),family:d(o).family,size:30},null,8,[`text`,`family`]),n(`button`,{type:`button`,class:`focus-ring font-mono text-[11px] color-muted transition-colors hover:color-base`,title:u.$t(`reference.copyWith`,{text:e.text,selector:(`selectorName`in u?u.selectorName:d(A))(l)}),onClick:t=>d(a)((`withReading`in u?u.withReading:d(k))(e.text,l))},i(d(t)===(`withReading`in u?u.withReading:d(k))(e.text,l)?u.$t(`copied`):`${(`selectorName`in u?u.selectorName:d(A))(l)} ${c}${e.wordDefault&&l===0?` / ${u.$t(`reference.default`)}`:``}`),9,P)]))),128))])])}}}),{__name:`ReferenceEntry`});function I(){let e=_().app.baseURL,t=f(),n=m();return g(async()=>{try{let n=await fetch(`${e}${C(S[0],`ivs.json`)}`);if(!n.ok)throw Error(`${n.status} ${n.statusText}`);t.value=await n.json()}catch(e){n.value=e instanceof Error?e.message:String(e)}}),{reference:t,error:n}}var L={class:`flex flex-col gap-2 border-b border-base p-6`},R=[`placeholder`,`aria-label`],z={class:`text-xs color-muted`},B={key:1,class:`label p-6`},V={key:2,class:`grid lg:grid-cols-2`},H={class:`border-base lg:border-r`},U={class:`label border-b border-base px-6 py-3`},W={class:`label border-b border-base px-6 py-3`},G=60,K=Object.assign(a({__name:`ReferenceSearch`,setup(a){let{reference:f,error:p}=I(),g=m(``),_=o(()=>{let e=Object.entries(f.value?.words??{}),t=g.value.trim();return(t?e.filter(([e])=>e.includes(t)):e).slice(0,G)}),v=o(()=>{let e=Object.entries(f.value?.kanji??{}),t=g.value.trim();return(t?e.filter(([e])=>t.includes(e)):e.filter(([,e])=>e.length>2)).slice(0,G)});return(a,o)=>{let m=e(`i18n-t`),S=F;return s(),r(`div`,null,[n(`div`,L,[h(n(`input`,{"onUpdate:modelValue":o[0]||=e=>y(g)?g.value=e:null,type:`search`,lang:`ja`,placeholder:a.$t(`reference.search`),class:`input max-w-md text-base`,"aria-label":a.$t(`reference.searchLabel`)},null,8,R),[[x,d(g)]]),n(`p`,z,i(a.$t(`reference.hint`)),1)]),d(p)?(s(),b(m,{key:0,keypath:`reference.unavailable`,tag:`p`,class:`p-6 text-sm color-muted`},{error:u(()=>[t(i(d(p)),1)]),command:u(()=>[...o[1]||=[n(`code`,{class:`font-mono`},`pnpm fonts`,-1)]]),_:1})):d(f)?(s(),r(`div`,V,[n(`section`,H,[n(`h2`,U,i(a.$t(`reference.words`,{count:d(_).length})),1),(s(!0),r(l,null,c(d(_),([e,t])=>(s(),b(S,{key:e,text:e,readings:t,"word-default":``},null,8,[`text`,`readings`]))),128))]),n(`section`,null,[n(`h2`,W,i(a.$t(`reference.kanji`,{count:d(v).length})),1),(s(!0),r(l,null,c(d(v),([e,t])=>(s(),b(S,{key:e,text:e,readings:t},null,8,[`text`,`readings`]))),128))])])):(s(),r(`p`,B,i(a.$t(`reference.loading`)),1))])}}}),{__name:`ReferenceSearch`}),q={},J={class:`flex flex-col gap-4 px-6 py-12`},Y={class:`label`},X={class:`display text-4xl font-semibold`},Z={class:`max-w-[60ch] text-[15px] lh-1.625 color-muted`};function Q(e,t){let a=K,o=w;return s(),r(`div`,null,[n(`div`,J,[n(`span`,Y,i(e.$t(`reference.eyebrow`)),1),n(`h1`,X,i(e.$t(`reference.title`)),1),n(`p`,Z,i(e.$t(`reference.body`)),1)]),p(o,null,{default:u(()=>[p(a)]),_:1})])}var $=v(q,[[`render`,Q]]);export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629471,false]</script></body></html>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Furifont
|
|
3
3
|
// @namespace https://furifont.antfu.me
|
|
4
|
-
// @version 0.4.
|
|
4
|
+
// @version 0.4.2
|
|
5
5
|
// @description Furigana on any page: Furifont turns on by itself on Japanese pages, and the menu switches family, turns it off, or turns okurigana readings (来る, 来ない) off.
|
|
6
6
|
// @homepageURL https://furifont.antfu.me
|
|
7
7
|
// @downloadURL https://furifont.antfu.me/furifont.user.js
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// ==/UserScript==
|
|
17
17
|
|
|
18
18
|
(() => {
|
|
19
|
-
var Furifont=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t={fonts:[{family:`Furifont Sans`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hiragana`},{family:`Furifont Sans Romaji`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hepburn`},{family:`Furifont Serif`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hiragana`},{family:`Furifont Serif Romaji`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hepburn`}],weights:[{style:`Regular`,weight:400}],variable:{style:`VF`,weights:[250,900]},options:{}},n={base:12290,selector:65024},r=`U+2E80-2FDF,U+3000-30FF,U+3190-319F,U+31F0-31FF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE00-FE0F,U+FF00-FFEF,U+20000-3FFFF,U+E0100-E01EF`,i=/[\p{sc=Han}\p{sc=Hiragana}\p{sc=Katakana}]/u;function a(e){return(e.match(/\s*(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^,]+)/g)??[]).map(e=>e.trim()).filter(Boolean)}function o(e){return e.replace(/^(["'])(.*)\1$/,`$2`)}let s=/mono|courier|consol|menlo|monaco|等幅/i;function c(e){let t=e.map(o);return t.some(e=>e===`monospace`||e===`ui-monospace`)||s.test(t[0]??``)}async function l({family:e,url:n,fetchFont:i}){let a=(t,n=`400`)=>new FontFace(e,t,{unicodeRange:r,weight:n}).load().catch(()=>void 0),o=await Promise.all(t.weights.map(({style:t,weight:n})=>a(`local("${e} ${t}")${n===400?`,local("${e}")`:``}`,String(n)))),s=t.variable.weights.join(` `),c=o.some(Boolean)?o:[await(i?i(n).then(e=>a(e,s),()=>void 0):a(`url("${n}")`,s))];for(let e of c)e&&document.fonts.add(e);return c.some(Boolean)}function u(e){let t=/* @__PURE__ */ new Map,n=/(?<!\p{sc=Han})\p{sc=Han}+(?=\p{sc=Hiragana})/gu,r=n=>{if(!t.has(n)){let r=/* @__PURE__ */ new Map;for(let[t,i]of Object.entries(e.pairs[n]??{}))for(let e of i)r.set(e,t||null);t.set(n,r.size?{reading:r,longest:Math.max(...[...r.keys()].map(e=>e.length))}:void 0)}return t.get(n)},i=(t,n)=>{let r=t.length>[...t][0].length,i=(r?e.words[t]?.map(e=>[...e.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).join(``)):e.readings[t])?.indexOf(n)??-1;return i>=+!!r&&i<15&&e.lone[t]!==n?i+1:0};return{find:e=>{let t=[];for(let{0:a,index:o}of e.matchAll(n)){let n=r(a),s=e.slice(o+a.length,o+a.length+(n?.longest??0)),c;for(let e=s.length;e>0&&c===void 0;e--)c=n?.reading.get(s.slice(0,e));let l=c?i(a,c):0;c&&l&&t.push({at:o,length:a.length,reading:c,salt:l})}return t},saltOf:i}}let d=/* @__PURE__ */ new Map;function f(e,t){let n=d.get(e);return n||(n=(t?t(e):fetch(e).then(t=>t.ok?t.text():Promise.reject(Error(e)))).then(JSON.parse),n.catch(()=>d.delete(e)),d.set(e,n)),n}async function p({readings:e,pairs:t,fetchText:n}){try{let[r,i]=await Promise.all([f(e,n),f(t,n)]);return r.salt===!0?u({pairs:i,readings:r.kanji,words:r.words,lone:r.lone}):void 0}catch{return}}function m(e,t){return{href:new URL(`/#downloads`,e).href,text:t.download}}function h(e,t,n){document.querySelector(`furifont-toast`)?.remove();let r=document.createElement(`furifont-toast`),i=r.attachShadow({mode:`open`}),a=new CSSStyleSheet;a.replaceSync(`:host{all:initial}div{position:fixed;z-index:2147483647;right:16px;bottom:16px;display:flex;gap:16px;align-items:start;max-width:360px;padding:12px 16px;border:1px solid #fafafa2b;background:#0a0a0a;color:#fafafa;font:14px/1.5 system-ui,sans-serif}p{margin:0}a{color:inherit;margin-right:12px}button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}`),i.adoptedStyleSheets=[a];let o=document.createElement(`p`);o.append(e,` `,...t.map(({href:e,text:t})=>Object.assign(document.createElement(`a`),{href:e,target:`_blank`,rel:`noopener`,textContent:t})));let s=Object.assign(document.createElement(`button`),{ariaLabel:n,textContent:`×`,onclick:()=>r.remove()}),c=Object.assign(document.createElement(`div`),{role:`alert`});c.append(o,s),i.append(c),document.body.append(r),setTimeout(()=>r.remove(),1e4)}function g(e){let[t=0,n=0,r=0]=e.split(`.`).map(Number);return t*1e3+n*100+r}function _(e){let t=document.createElement(`canvas`).getContext(`2d`);return t.font=`1000px "${e}"`,Math.round(t.measureText(String.fromCodePoint(n.base,n.selector)).width)-2e3}async function v({family:e,url:t,toast:n},r){let i=new URL(`/version.json`,t).href,a;try{a=g(JSON.parse(await(r.fetchText?r.fetchText(i):fetch(i).then(e=>e.text()))).version)}catch{return}let o=[...g(r.version)<a?[r]:[],..._(e)<a?[m(t,n)]:[]];o.length&&h(n.outdated,o,n.close)}function y(e){let t=[];for(let n of e.filter(e=>e.isConnected)){let e=document.createTreeWalker(n,NodeFilter.SHOW_TEXT);for(let n=e.currentNode;n;n=e.nextNode())n.nodeType===Node.TEXT_NODE&&n.parentElement&&t.push(n)}return t}function b(e){let t=new Set(y(e).filter(e=>i.test(e.nodeValue??``)).map(e=>e.parentElement));for(let n of e){if(n.nodeType!==Node.ELEMENT_NODE)continue;let e=n;e.matches(`input,textarea`)&&t.add(e);for(let n of e.querySelectorAll(`input,textarea`))t.add(n)}return t}function x(e){let t=new CSSStyleSheet,n=[],r,i=0,s=()=>{for(let e of document.querySelectorAll(`[data-furifont-reading]`)){let t=r?r.saltOf(e.textContent??``,e.dataset.furifontReading):0;t?e.dataset.furifontSalt=String(t):delete e.dataset.furifontSalt}},l=e=>{if(!r)return;let t=y(e).filter(e=>/\p{sc=Han}\p{sc=Hiragana}/u.test(e.nodeValue??``)&&!e.parentElement.closest(`script,style,textarea,noscript,ruby,[contenteditable]:not([contenteditable=false]),[data-furifont-reading]`));for(let e of t)for(let{at:t,length:n,reading:i,salt:a}of r.find(e.nodeValue??``).reverse()){let r=t?e.splitText(t):e;r.length>n&&r.splitText(n);let o=document.createElement(`span`);o.dataset.furifontReading=i,o.dataset.furifontSalt=String(a),r.replaceWith(o),o.append(r)}},u={dispose:()=>{},sheet:t,family:e,restyle:()=>{let e=Array.from({length:15},(e,t)=>`[data-furifont-salt="${t+1}"]{font-feature-settings:"salt" ${t+1}!important}`).join(``),r=n.map((e,t)=>`[data-furifont="${t}"]{font-family:"${u.family}",${e}!important}`).join(``);t.replaceSync(`${r}[data-furifont-tight]{line-height:normal!important}ruby,ruby *{font-feature-settings:"ss01"!important}${e}`)},okurigana:e=>{let n=++i;r=void 0,s(),e&&!t.disabled&&p(e).then(e=>{n===i&&e&&(r=e,s(),l([document.body]))})}},d=e=>{let t=[...b(e)].filter(e=>!e.hasAttribute(`data-furifont`)).map(e=>{let{fontFamily:t,lineHeight:n,fontSize:r}=getComputedStyle(e),i=a(t);return o(i[0]??``)===u.family&&i.shift(),{element:e,stack:i,tight:Number.parseFloat(n)<1.6*Number.parseFloat(r)}}).filter(({stack:e})=>e.length&&!c(e)),r=n.length;for(let{element:e,stack:r,tight:i}of t){let t=r.join(`,`),a=n.includes(t)?n.indexOf(t):n.push(t)-1;e.setAttribute(`data-furifont`,String(a)),i&&e.setAttribute(`data-furifont-tight`,``)}n.length>r&&u.restyle()},f=new MutationObserver(e=>{let t=e.flatMap(e=>e.type===`characterData`?[e.target]:[...e.addedNodes]);d(t),l(t)});return u.dispose=()=>{f.disconnect(),i++,r=void 0,document.adoptedStyleSheets=document.adoptedStyleSheets.filter(e=>e!==t);for(let e of document.querySelectorAll(`[data-furifont],[data-furifont-tight]`))e.removeAttribute(`data-furifont`),e.removeAttribute(`data-furifont-tight`);for(let e of document.querySelectorAll(`[data-furifont-reading]`))e.replaceWith(...e.childNodes);window.furifont===u&&delete window.furifont},window.furifont=u,document.adoptedStyleSheets=[...document.adoptedStyleSheets,t],d([document.body]),f.observe(document.body,{childList:!0,characterData:!0,subtree:!0}),u}async function S(e){let{family:t,url:n,toast:r,okurigana:i,update:a}=e,o=window.furifont;o?.family===t?(o.sheet.disabled=!o.sheet.disabled,o.sheet.disabled||o.okurigana(i)):(o??=x(t),o.family=t,o.restyle(),o.sheet.disabled=!1,await l(e)?(o.okurigana(i),a&&await v(e,a)):(o.sheet.disabled=!0,o.family=``,h(r.message,[m(n,r)],r.close)))}return e.JAPANESE=i,e.UNICODE_RANGE=r,e.createOkuriganaReader=u,e.isMonospace=c,e.loadFurifont=l,e.loadOkuriganaReader=p,e.parseFontStack=a,e.showToast=h,e.toggleFurifont=S,e})({});
|
|
19
|
+
var Furifont=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t={fonts:[{family:`Furifont Sans`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hiragana`},{family:`Furifont Sans Romaji`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hepburn`},{family:`Furifont Serif`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hiragana`},{family:`Furifont Serif Romaji`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hepburn`}],weights:[{style:`Regular`,weight:400}],variable:{style:`VF`,weights:[250,900]},options:{take:4e4}},n={base:12290,selector:65024},r=`U+2E80-2FDF,U+3000-30FF,U+3190-319F,U+31F0-31FF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE00-FE0F,U+FF00-FFEF,U+20000-3FFFF,U+E0100-E01EF`,i=/[\p{sc=Han}\p{sc=Hiragana}\p{sc=Katakana}]/u;function a(e){return(e.match(/\s*(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^,]+)/g)??[]).map(e=>e.trim()).filter(Boolean)}function o(e){return e.replace(/^(["'])(.*)\1$/,`$2`)}let s=/mono|courier|consol|menlo|monaco|等幅/i;function c(e){let t=e.map(o);return t.some(e=>e===`monospace`||e===`ui-monospace`)||s.test(t[0]??``)}async function l({family:e,url:n,fetchFont:i}){let a=(t,n=`400`)=>new FontFace(e,t,{unicodeRange:r,weight:n}).load().catch(()=>void 0),o=await Promise.all(t.weights.map(({style:t,weight:n})=>a(`local("${e} ${t}")${n===400?`,local("${e}")`:``}`,String(n)))),s=t.variable.weights.join(` `),c=o.some(Boolean)?o:[await(i?i(n).then(e=>a(e,s),()=>void 0):a(`url("${n}")`,s))];for(let e of c)e&&document.fonts.add(e);return c.some(Boolean)}function u(e){let t=/* @__PURE__ */ new Map,n=/(?<!\p{sc=Han})\p{sc=Han}+(?=\p{sc=Hiragana})/gu,r=n=>{if(!t.has(n)){let r=/* @__PURE__ */ new Map;for(let[t,i]of Object.entries(e.pairs[n]??{}))for(let e of i)r.set(e,t||null);t.set(n,r.size?{reading:r,longest:Math.max(...[...r.keys()].map(e=>e.length))}:void 0)}return t.get(n)},i=(t,n)=>{let r=t.length>[...t][0].length,i=(r?e.words[t]?.map(e=>[...e.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).join(``)):e.readings[t])?.indexOf(n)??-1;return i>=+!!r&&i<15&&e.lone[t]!==n?i+1:0};return{find:e=>{let t=[];for(let{0:a,index:o}of e.matchAll(n)){let n=r(a),s=e.slice(o+a.length,o+a.length+(n?.longest??0)),c;for(let e=s.length;e>0&&c===void 0;e--)c=n?.reading.get(s.slice(0,e));let l=c?i(a,c):0;c&&l&&t.push({at:o,length:a.length,reading:c,salt:l})}return t},saltOf:i}}let d=/* @__PURE__ */ new Map;function f(e,t){let n=d.get(e);return n||(n=(t?t(e):fetch(e).then(t=>t.ok?t.text():Promise.reject(Error(e)))).then(JSON.parse),n.catch(()=>d.delete(e)),d.set(e,n)),n}async function p({readings:e,pairs:t,fetchText:n}){try{let[r,i]=await Promise.all([f(e,n),f(t,n)]);return r.salt===!0?u({pairs:i,readings:r.kanji,words:r.words,lone:r.lone}):void 0}catch{return}}function m(e,t){return{href:new URL(`/#downloads`,e).href,text:t.download}}function h(e,t,n){document.querySelector(`furifont-toast`)?.remove();let r=document.createElement(`furifont-toast`),i=r.attachShadow({mode:`open`}),a=new CSSStyleSheet;a.replaceSync(`:host{all:initial}div{position:fixed;z-index:2147483647;right:16px;bottom:16px;display:flex;gap:16px;align-items:start;max-width:360px;padding:12px 16px;border:1px solid #fafafa2b;background:#0a0a0a;color:#fafafa;font:14px/1.5 system-ui,sans-serif}p{margin:0}a{color:inherit;margin-right:12px}button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}`),i.adoptedStyleSheets=[a];let o=document.createElement(`p`);o.append(e,` `,...t.map(({href:e,text:t})=>Object.assign(document.createElement(`a`),{href:e,target:`_blank`,rel:`noopener`,textContent:t})));let s=Object.assign(document.createElement(`button`),{ariaLabel:n,textContent:`×`,onclick:()=>r.remove()}),c=Object.assign(document.createElement(`div`),{role:`alert`});c.append(o,s),i.append(c),document.body.append(r),setTimeout(()=>r.remove(),1e4)}function g(e){let[t=0,n=0,r=0]=e.split(`.`).map(Number);return t*1e3+n*100+r}function _(e){let t=document.createElement(`canvas`).getContext(`2d`);return t.font=`1000px "${e}"`,Math.round(t.measureText(String.fromCodePoint(n.base,n.selector)).width)-2e3}async function v({family:e,url:t,toast:n},r){let i=new URL(`/version.json`,t).href,a;try{a=g(JSON.parse(await(r.fetchText?r.fetchText(i):fetch(i).then(e=>e.text()))).version)}catch{return}let o=[...g(r.version)<a?[r]:[],..._(e)<a?[m(t,n)]:[]];o.length&&h(n.outdated,o,n.close)}function y(e){let t=[];for(let n of e.filter(e=>e.isConnected)){let e=document.createTreeWalker(n,NodeFilter.SHOW_TEXT);for(let n=e.currentNode;n;n=e.nextNode())n.nodeType===Node.TEXT_NODE&&n.parentElement&&t.push(n)}return t}function b(e){let t=new Set(y(e).filter(e=>i.test(e.nodeValue??``)).map(e=>e.parentElement));for(let n of e){if(n.nodeType!==Node.ELEMENT_NODE)continue;let e=n;e.matches(`input,textarea`)&&t.add(e);for(let n of e.querySelectorAll(`input,textarea`))t.add(n)}return t}function x(e){let t=new CSSStyleSheet,n=[],r,i=0,s=()=>{for(let e of document.querySelectorAll(`[data-furifont-reading]`)){let t=r?r.saltOf(e.textContent??``,e.dataset.furifontReading):0;t?e.dataset.furifontSalt=String(t):delete e.dataset.furifontSalt}},l=e=>{if(!r)return;let t=y(e).filter(e=>/\p{sc=Han}\p{sc=Hiragana}/u.test(e.nodeValue??``)&&!e.parentElement.closest(`script,style,textarea,noscript,ruby,[contenteditable]:not([contenteditable=false]),[data-furifont-reading]`));for(let e of t)for(let{at:t,length:n,reading:i,salt:a}of r.find(e.nodeValue??``).reverse()){let r=t?e.splitText(t):e;r.length>n&&r.splitText(n);let o=document.createElement(`span`);o.dataset.furifontReading=i,o.dataset.furifontSalt=String(a),r.replaceWith(o),o.append(r)}},u={dispose:()=>{},sheet:t,family:e,restyle:()=>{let e=Array.from({length:15},(e,t)=>`[data-furifont-salt="${t+1}"]{font-feature-settings:"salt" ${t+1}!important}`).join(``),r=n.map((e,t)=>`[data-furifont="${t}"]{font-family:"${u.family}",${e}!important}`).join(``);t.replaceSync(`${r}[data-furifont-tight]{line-height:normal!important}ruby,ruby *{font-feature-settings:"ss01"!important}${e}`)},okurigana:e=>{let n=++i;r=void 0,s(),e&&!t.disabled&&p(e).then(e=>{n===i&&e&&(r=e,s(),l([document.body]))})}},d=e=>{let t=[...b(e)].filter(e=>!e.hasAttribute(`data-furifont`)).map(e=>{let{fontFamily:t,lineHeight:n,fontSize:r}=getComputedStyle(e),i=a(t);return o(i[0]??``)===u.family&&i.shift(),{element:e,stack:i,tight:Number.parseFloat(n)<1.6*Number.parseFloat(r)}}).filter(({stack:e})=>e.length&&!c(e)),r=n.length;for(let{element:e,stack:r,tight:i}of t){let t=r.join(`,`),a=n.includes(t)?n.indexOf(t):n.push(t)-1;e.setAttribute(`data-furifont`,String(a)),i&&e.setAttribute(`data-furifont-tight`,``)}n.length>r&&u.restyle()},f=new MutationObserver(e=>{let t=e.flatMap(e=>e.type===`characterData`?[e.target]:[...e.addedNodes]);d(t),l(t)});return u.dispose=()=>{f.disconnect(),i++,r=void 0,document.adoptedStyleSheets=document.adoptedStyleSheets.filter(e=>e!==t);for(let e of document.querySelectorAll(`[data-furifont],[data-furifont-tight]`))e.removeAttribute(`data-furifont`),e.removeAttribute(`data-furifont-tight`);for(let e of document.querySelectorAll(`[data-furifont-reading]`))e.replaceWith(...e.childNodes);window.furifont===u&&delete window.furifont},window.furifont=u,document.adoptedStyleSheets=[...document.adoptedStyleSheets,t],d([document.body]),f.observe(document.body,{childList:!0,characterData:!0,subtree:!0}),u}async function S(e){let{family:t,url:n,toast:r,okurigana:i,update:a}=e,o=window.furifont;o?.family===t?(o.sheet.disabled=!o.sheet.disabled,o.sheet.disabled||o.okurigana(i)):(o??=x(t),o.family=t,o.restyle(),o.sheet.disabled=!1,await l(e)?(o.okurigana(i),a&&await v(e,a)):(o.sheet.disabled=!0,o.family=``,h(r.message,[m(n,r)],r.close)))}return e.JAPANESE=i,e.UNICODE_RANGE=r,e.createOkuriganaReader=u,e.isMonospace=c,e.loadFurifont=l,e.loadOkuriganaReader=p,e.parseFontStack=a,e.showToast=h,e.toggleFurifont=S,e})({});
|
|
20
20
|
;(function start(manager, toggle, fonts, pairs, script, toasts, menus, detect) {
|
|
21
21
|
var _a;
|
|
22
22
|
const locale = detect(navigator.languages);
|
|
@@ -55,7 +55,7 @@ var Furifont=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Mod
|
|
|
55
55
|
registerOkurigana();
|
|
56
56
|
if (/^ja(?:-|$)/i.test(document.documentElement.lang))
|
|
57
57
|
toggle({ ...options(saved), update: update() });
|
|
58
|
-
})({ getValue: GM_getValue, setValue: GM_setValue, registerMenuCommand: GM_registerMenuCommand, xmlHttpRequest: GM_xmlhttpRequest }, Furifont.toggleFurifont, [{"family":"Furifont Sans","url":"https://furifont.antfu.me/fonts/FurifontSansVF.woff2?v=0.4.
|
|
58
|
+
})({ getValue: GM_getValue, setValue: GM_setValue, registerMenuCommand: GM_registerMenuCommand, xmlHttpRequest: GM_xmlhttpRequest }, Furifont.toggleFurifont, [{"family":"Furifont Sans","url":"https://furifont.antfu.me/fonts/FurifontSansVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSansVF.ivs.json?v=0.4.2"},{"family":"Furifont Sans Romaji","url":"https://furifont.antfu.me/fonts/FurifontSansRomajiVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSansRomajiVF.ivs.json?v=0.4.2"},{"family":"Furifont Serif","url":"https://furifont.antfu.me/fonts/FurifontSerifVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSerifVF.ivs.json?v=0.4.2"},{"family":"Furifont Serif Romaji","url":"https://furifont.antfu.me/fonts/FurifontSerifRomajiVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSerifRomajiVF.ivs.json?v=0.4.2"}], "https://furifont.antfu.me/okurigana.json", {"version":"0.4.2","href":"https://furifont.antfu.me/furifont.user.js"}, {"en":{"message":"Furifont could not load its font on this page. Some sites, such as X and GitHub, do not let fonts load from other sites. On those sites, you must install Furifont on your computer.","download":"Download the fonts","close":"Close","outdated":"A newer version of Furifont is out.","userscript":"Update the userscript","bookmarklet":"Get the new bookmarklet"},"ja":{"message":"このページでは Furifont のフォントを読み込めませんでした。X や GitHub のように、他のサイトのフォントを読み込めないサイトがあります。そのようなサイトでは、パソコンに Furifont をインストールする必要があります。","download":"フォントをダウンロード","close":"閉じる","outdated":"Furifont の新しいバージョンがあります。","userscript":"ユーザースクリプトを更新","bookmarklet":"新しいブックマークレットを入手"},"zh-Hans":{"message":"Furifont 无法在此页面加载字体。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,需要在电脑上安装 Furifont。","download":"下载字体","close":"关闭","outdated":"Furifont 有新版本了。","userscript":"更新用户脚本","bookmarklet":"获取新的书签小工具"},"zh-Hant":{"message":"Furifont 無法在此頁面載入字型。有些網站(如 X 和 GitHub)不允許載入其他網站的字型。在這些網站上,需要在電腦上安裝 Furifont。","download":"下載字型","close":"關閉","outdated":"Furifont 有新版本了。","userscript":"更新使用者腳本","bookmarklet":"取得新的書籤小工具"}}, {"en":{"okuriganaOn":"Okurigana readings: on","okuriganaOff":"Okurigana readings: off"},"ja":{"okuriganaOn":"送り仮名の読み:オン","okuriganaOff":"送り仮名の読み:オフ"},"zh-Hans":{"okuriganaOn":"送假名读音:开","okuriganaOff":"送假名读音:关"},"zh-Hant":{"okuriganaOn":"送假名讀音:開","okuriganaOff":"送假名讀音:關"}}, function detectLocale(languages) {
|
|
59
59
|
for (const tag of languages.map((l) => l.toLowerCase())) {
|
|
60
60
|
if (tag.startsWith("zh"))
|
|
61
61
|
return /-(?:tw|hk|mo|hant)\b/.test(tag) ? "zh-Hant" : "zh-Hans";
|
package/dist/client/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629473,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629472,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629472,false]</script></body></html>
|
package/dist/client/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.4.
|
|
1
|
+
{"version":"0.4.2"}
|
|
@@ -10,7 +10,7 @@ import { randomUUID } from "node:crypto";
|
|
|
10
10
|
import * as v from "valibot";
|
|
11
11
|
//#region package.json
|
|
12
12
|
var name = "furifont";
|
|
13
|
-
var version = "0.4.
|
|
13
|
+
var version = "0.4.2";
|
|
14
14
|
var description = "Build Japanese fonts that show furigana by themselves, from the command line or a local studio";
|
|
15
15
|
var homepage = "https://github.com/antfu/furifont#readme";
|
|
16
16
|
//#endregion
|
package/dist/devframe.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as homepage, f as name, p as version, u as description } from "./config-
|
|
2
|
-
import { n as STUDIO_ID, r as setupStudio } from "./studio-
|
|
1
|
+
import { d as homepage, f as name, p as version, u as description } from "./config-BHN-5b6L.mjs";
|
|
2
|
+
import { n as STUDIO_ID, r as setupStudio } from "./studio-bPS1eciv.mjs";
|
|
3
3
|
import { defineDevframe } from "devframe";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
//#region src/devframe.ts
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as buildFont, i as loadConfig, l as previewFont, o as estimateFont, r as FurifontConfigSchema, t as CONFIG_FILE } from "./config-
|
|
2
|
-
import { n as STUDIO_ID, t as BUILD_CHANNEL } from "./studio-
|
|
1
|
+
import { a as buildFont, i as loadConfig, l as previewFont, o as estimateFont, r as FurifontConfigSchema, t as CONFIG_FILE } from "./config-BHN-5b6L.mjs";
|
|
2
|
+
import { n as STUDIO_ID, t as BUILD_CHANNEL } from "./studio-bPS1eciv.mjs";
|
|
3
3
|
import { DEFAULTS, PREBUILT } from "@furifont/core";
|
|
4
4
|
export { BUILD_CHANNEL, CONFIG_FILE, DEFAULTS, FurifontConfigSchema, PREBUILT, STUDIO_ID, buildFont, estimateFont, loadConfig, previewFont };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as buildFont, c as planWithBase, i as loadConfig, l as previewFont, o as estimateFont, r as FurifontConfigSchema, s as getDictionary, t as CONFIG_FILE } from "./config-
|
|
1
|
+
import { a as buildFont, c as planWithBase, i as loadConfig, l as previewFont, o as estimateFont, r as FurifontConfigSchema, s as getDictionary, t as CONFIG_FILE } from "./config-BHN-5b6L.mjs";
|
|
2
2
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { BASE_FONTS } from "@furifont/compiler";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "furifont",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.2",
|
|
5
5
|
"description": "Build Japanese fonts that show furigana by themselves, from the command line or a local studio",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"dist"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@furifont/compiler": "0.4.
|
|
40
|
-
"@furifont/core": "0.4.
|
|
41
|
-
"@furifont/dictionary": "0.4.
|
|
39
|
+
"@furifont/compiler": "0.4.2",
|
|
40
|
+
"@furifont/core": "0.4.2",
|
|
41
|
+
"@furifont/dictionary": "0.4.2",
|
|
42
42
|
"cac": "^7.1.0",
|
|
43
43
|
"devframe": "^1.2.5",
|
|
44
44
|
"valibot": "^1.5.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"5ad83f05-1bf5-46a5-b89b-625cf86451d1","timestamp":1792113338325,"prerendered":[]}
|