Overview

LEAF Writer provides buttons at the top of the screen to support tag insertion. This article introduces how to customize them.

As a result, I added functionality to insert <app><lem>aaa</lem><rdg>bbb</rdg></app>.

https://youtu.be/XMnRP7s2atw

Editing

Edit the following file:

packages/cwrc-leafwriter/src/components/editorToolbar/index.tsx

Features for supporting tags such as person names and place names are configured as follows. For example, the description for organization has been commented out:

con{}{{}{}{}s,,,,tghio}tttgcgdhiottcgdhiottcgdhiottricn,ioyroriicniyoriicniyoriicniyiodoCicccs}topolosdoCtplosdoCtplosdoCtptuenlfoooh)lleuouaenlleouaenlleouaenlleep::innnoepu;et:prpb::ie:rpb::ie:rpb::ie:m:c(ssswvos:i:::lc:::lc:::lc:si'k!tttCesep'eiek'eiek'eiek':'si:coaniS':b'e'dsn:'ie'dsn:'ie'dsn:'iaRnorppnntteTuana:RtTcna:RtTcna:RtTc(cesneootcSila'tctceiaotceiaotceiaoMtaetcssehooegAttit!atgnit!atgnit!atgneidratXYxounc'doitiidyBtiidyBtiidyBnoot=itrr:t,dnoyoso.=Puyoso.=Puyoso.=OuunnT>n===MEci'n.nSnp>et.nSnp>lt.nSno>rtI'laeele{oT,'p'ulertp'ullato'ulrgtt,yg{rcrrn::na,e,pyrwsol,pyawcor,pygwaoe,'.oeeup:grp,sionap,ciengp,ainnm,cncc(c'o'tsoonn'coen''aonni'uttt{orst,yornd',er.d,,nridz,|ra..niXrpnt.o,.tioitzoarilttb,ue.eiwcecwzeawtIeneoabe:cdc.odo.adt.itnefpiop,o(owl(nwt(iwoetrtnno'l'nro',ri'ornm).;+e'sdop,irpiooni')cr,Yiret.ltnr.t,[ru3.v.remae.gie]er4c}imsracrcacrtr;u,dao.ie.ono.=uereintn'tlintrnrrn'a,)aoz,a[nte',)g,grag;.n,,gg.tggteemiee,hrraorti..in.Bdaan'aoedd,)du:dd,dnEEEdinnnistttnRiiigetttCayyyldDDDioiiienaaanlllltyoooRggge}(((c,'''tppo(elr)rag;scaoenn'i')z),a,tion'),

As a result, the choices are limited as follows:

Adding New Functionality

This time, I will add a feature to insert an app tag for critical apparatus information.

{}{},,ighottighottcriniycriniyoodCtpoodCtpnuellenuelle:p:ie::p:ie::c::c:'ik''ik't's:'id's:'iraRAciaRAcacedofcedontadnftadnsidBeidBloo=Turoo=Auann>rtenn>ptt'latn'lpte,ywnoc,yw'o',isne,i,n,nl''n'da,,d,otowiw.o.wnwr'ri,itteerr..ddiiaallooggMMaannaaggeerr..sshhooww((''tarpapn's)l,ation'),

For the icon, the following file also needs to be edited:

packages/cwrc-leafwriter/src/icons/index.tsx

Next, edit the following:

ic]mo)pn[[[[[[[;os'''''''rtaclmptattooeorpdtpaspapAerydsun'pfiPiaps,pabang'luusge,a{fltti'trteen,{idoDs'doimiE,i{dnaadci'lli{ada,oottilg/godoao{Casrirlglp'a'oCdap=,l,glis'oCaas;n{g{lsl:eCasowdlds:gAiaisCpMasa:PlpAalsloadpo:oMps}d<ggeus]esCCCsp:,dtlolsrapaa}Tisysg]rnsPse,ag:a:nA,s}sdAtL]ldDteo,aeetatdfr}diai]ioub,nnlugttI}Den]isd,aEildcoiagttCooorrnf}}i]]g,,>([

Then, create the following file. I referenced the originally provided translation.ts as a basis.

iiiiic}emmmmmlxppppparrrrrrrc`}p}p}p}s}d}poooooseeeeeeeo;rrrhemorrrrrsaaaaaaanttc<t<t}t}icc`ricc`riliiiliiiccc}c}i$c}i$o$$tccttstortttttddddTdddshhod/hd/h)h)voo;evoo;evefffefffo/oo)o)f(o)f(w((hooh/ht/hdtAooooOoootiini$$dii<@itmrchwab]oc;iw$$s;ann<tann<tattn@nnaabt;naabt;lnaabt;r(``inni@ir@iu$'WAtpnnnnDnnnrsssv{{isvd/tsioeleiuu,plsrpehtssd/utssd/ut((((((stssctoasctoa(esctoa(d)##sssstsotsldjrtypllllOlllu..tttv.i<ds.tdsoidtt{}{}eo.ialoetti<<<dretti<<<drelAt!rAt!tsttttogtttog!mtttog!g$$.tt.s.ys.eefqitpyyyyyyycwichh>$cvd/i-$laisgtot,,nsatr:wvd/t/p/invd/t/p/ineryldryr-irkNirkNlTirkNrT{{{aa-$(-$.frutreihtrdeliieli<<dvieelzehhOotrctrc}:eteeSlfhi<detYpvrfhi<detYpvfmrpegrpdaicnoimaloimaearoimadatttaitie)ieeaoeeimw$iaatlroinasslacvd/d/i>gl::aOt:pne/leol,:trntceitcvpixeso>>hditcvpixeso>>hoaemaegtguenbamenbammgdnbamgghhttntglglxumrrb{predtraedrt=ts..sli$<<di<<dv`n.bn:esxl@ixlitt(r,thhmeml>vtxtutgeml>vtxtutr=yo)=yo)tnrw:urem:ureT)g:ureT)iirtirn.{n.plyulil:tdgmg(eislr=sacv{hdivhui>)od'tlE5n:tetctech/he(i:ieFllac>atymFllac>atymm.f.frorTtk:Ttk:a.Ttk:a.ssistiododot'-ftLet:rcNTT{rwt=ed=sleriv3lv.riTres67:::sk::ki@ivebsmidslralwlidslralwlR$il$irirTate:ate:ghate:gh..bVbririrjureWmesioaaary"mg$"sacnv>c>>aeaau:c55[-::stsevut.aeT=saerei;eT=saerei;e(sle(srdbeaghstghst)tghst)tiiu=aueaeatAqiWDerJtbdmggw=iAeFF(a=sltsls<plgea0,f''i'.s.neth$Hli=sae=lli=sae=ls`Aem`Adgugi,{hi:{hmi:{hmddtltllspumiin:QrueeNNrttnii`n"saitcat/po,tp,aCcgOof-$tneieedt`"sa"ldt`"sa"lu#rm#rgtI=si=sirl=sirl}}etseoopeudatuitd:aaiwetteens=stylsyuegArelaankkoie:tssll(la=i>f(la=i>fl$r=$r=ed.ts.{tse(.{tse(__shsgg=;riglsWenemmtrrrilloc"sylaslln(pu:snno''rgl:W..piet"dobiet"dobt{a={a=stwa.tw}a.tltw}a.trlrWi=W((yeorrgsseeei.itddthc=Aes=e>d{peeccr=,,=mn.Ji$f:dtf=nedtf=ne(ty=ty==hrgthr,gluehr,grudedisi''T'wtgLiy;Wt::rtgby((aeo"t=s"=T',t,eee>>RodQJdei:=ri"t:=ri"t)h(='h(='=iiIaiiIermiiIdrgmgd.{dodr;i/CWt<ir,eeuAtttmnmt"=a"o,rlleriuQglntie$-aie$-ail;ir;tstdgstdmn)stdgn)``gw}gpeadWfoDeHdissrttthhiatarw"tb(u''t{seaeue,drs'bl{sbs'bl{sb{se'sd'th.e:N.e:T;;.e:T;;))er;eesngrrnirTgnttp;UetiioHeiiiatope,,hulret(utludiiltrudiil.mn.gnhiwrawrawra..titntseiofa;Megrransrssnennbdtrra,iloyr'eretLdzerdtLdzei)ui)uisr.cmr.ngr.lgvv.t.'rlttmilLtiiriSi..Dlt"uttidrstg.y=.,imea}eigea}ed)md)ms.itueiteNiteNaameb)oasegoE:=nneqebiiip">thrbee.((E.an'"b_:tn'"b_:t}b}b.wtar,tawatamalloru;yt/rPglggnucudda">e:iurn$)'vEntg;>elog;>ero_le_rearegregTmegTm((d.i'id'rPeA'tett))lsbt-te;cevet)le0)ld0lerrdrtirgTrgaergae''esl)oi;/ormta==EIie}}oS1uebEllnewr"m.t"g.tem'dg'tt.ea.eg,.eg,''cd;naapoetpldosge0tSol.otni{>"7a{>"7am)g)retrgtr?tr?))=hW;ltspnrp''(n""c0eet)ds)tAb$rg$rg`=`=ira.Ia..a..;;eiot,sti'lr}'>>t%Wlt;ie)tu{se{se)l)rb.gAdgIigAiAmdgr>b;ed:a=i;ieoa'=ttftmaftma.le.rdutgDgNdgFdtag'iL{;umgpodcml)>=reiy;niy;nvemvdgtaeD}eSeTtMe;bWt''Lp`nbgt:o;>iWeldeldamagegr,,rI}rE}ratuDe;;W_}oeog{bileclecl[=l[=sg..D,.R,in(tiWD'rtr1(}{udd=oed=oe(0(0WeaaEa,baaeaii)d""p',}tgT"ldT"ld)]l)]rirdd,dugtWlda;e>xc,eeiwoiiwoi;;e;;dd.dddtetioglrlWttirttirtmgggSSSersdgeo:soi'ld:ld:..eetttW.,gPtgosd)ettettttttrrriger;Cnleg,}h#h}h#hoo.Cuuudeitooi'e<:6e<:6eSSgucccgtnpnnd)t/6/6tterttteAiasfe,(p16tp16trrtruuutttti;#{>0;e>0;eiiDerrr.tVt}gd0"x0"xnnaneeeArarPbd%>t%>tggttTTTDilifrod;;((aTaaaDbsbror;ii))(aggg;u,uopdhnhn;;)g(((ttmsepee;({{{ete)raitit)shW-dghgh.Fii{bdheheaosd/oitttr.gttn:m:mtTteytgaaraatpo-1i1i(gg'emb0n0n'(N;s:o00ita'tpdpddhm;1txoxo'iepo;c;c)s)xm"u"u;.;:mmtsseseao4pnpnglpetetNixl.l.ad;llm"cce#>hh)cAee;ctccctkk;r=="i"">bffuaatllesssee<""/>>h3>

As a result, an icon is added as shown below, and clicking it displays a dialog.

Summary

There may be some aspects that have not been fully considered, but I hope this serves as a useful reference for using LEAF Writer.