掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 829|回复: 11

[求助] 【更新】MDX里的循环引用问题

[复制链接]
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-12-19 12:30:35 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-12-19 12:52 编辑 ) f# R  i3 L  _  U% h$ P! E) ]

    7 s; N6 Z7 W' f5 u$ \比如下面的情况,想实现的效果是:. h/ h3 g; h2 k3 d, H
    在查询A或者B的时候需要同时显示A和B两个词条的内容。( P; I9 f1 @* F7 E
    但下面的写法会导致循环引用,造成词典软件卡死(GoldenDict)甚至无法查询(MDict)
    ' I& Z1 {) r' q
    4 l' s; u) z' L' RA
    1 B6 }/ i; u1 O; L# a5 C" oA content
    2 _; `& d5 m+ h  a  |! J. Z</>
    - K# }& B8 ~  l! uB
    1 d* q0 [. P8 {2 C- N; D0 L0 AB content
    ) w6 X, `$ Z+ J# i3 ?5 T% G</>; K0 |5 h0 A( D# X1 b6 L. A# f
    A
    1 H# r9 u& \/ R- ^- i* \7 ]@@@LINK=B
    ( u; t8 p7 Z: C+ i</>$ g7 f2 k* `1 U: k# f& V: q
    B
    / S) ?# n% Y0 B  x@@@LINK=A9 H4 O6 G4 c! E
    </>
    8 @% F+ L/ K: W
    2 X" c  G- G1 e; c+ j, B" r8 |& m不知道有没有人遇到过这种情况。
    5 l4 q3 B7 T7 L* u, \# H
    & W- R+ N- B: Y我目前可以想到的解决方式有两个:* s% K7 d5 c' R% ^
    1.
    % T# J; b7 i) V- x$ [7 L( a) ^- p+ _; p9 T8 ~3 w( b
    B  S# b/ l* h2 [& a) |9 v; _
    @@@LINK=A
    ! {9 G5 o" x6 i1 I</>
    0 d( f6 }; X; \' i替换成
    $ s7 t0 a1 Z7 a, M, O7 zB
    3 K$ X* v. W. a9 F) j( s7 k5 n4 oSee also: <a href="entry://A">A</a>
    - n4 s% O- N- [  |4 g- N# E</>: G' e/ `8 A8 r  ]2 I: ]

    7 d7 Y' I3 L! J( ~2 F! W& e( z2 T9 s2.4 z2 I  O+ ]! d( _

    6 Q  J, g& ?5 ^( K整个替换成
      q+ x2 s4 F0 z! R0 ~+ D! h, {& fA+B
    ; Z; p4 v4 c1 [2 s. J& gA content
    2 R/ a* c5 p0 E</>
    * S+ d0 L( B6 r4 l, T4 ~: hA+B
    " u2 w/ B' F+ @1 ^& x' E- HB content
    $ J7 K7 b+ Q9 g* @+ R# m8 l</>
    ( L) f$ D) O% E9 }8 xA
    " F$ q2 y- J1 W$ g) Z3 m@@@LINK=A+B
    ) _+ h( ~: ]' P1 w4 m0 p; T. g  x</>
    : p; i& t$ c7 ^! E5 E% T+ EB
    ; f# G2 M+ a" b5 A$ H! V@@@LINK=A+B9 ]2 ^1 [0 p4 U* I) b4 {) a
    </>
    ( E  g' y+ b  @  ]5 K' Y% N8 k# }1 \9 D% x) q& x, {
    第一种方式感觉不完美,需要点击超链接二次跳转;
    8 K- v( d) j- k第二种方式实现起来不容易,容易造成数据紊乱。尤其是三个以上词头循环引用的话…, {4 `. @( G, A5 M/ H
    ) ^% u& y, ?, U9 Z7 t, X
    不知道还有哪些巧妙的解决方法。
    ) ^" C7 b6 u( |3 O" C: a5 o9 g2 R( Z4 U8 r7 p" p
    ; [0 @. L# z7 T( X, p5 _; V

    + l. r- Z; ^& ~+ `# d# g3 f1 ]* ~& V% ^4 G* F6 Z! b* `

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-12-19 12:45:32 | 显示全部楼层
    老兄公开了一段Kill GoldenDict 代码,' U! d' S0 A7 f
    呼吁下一代mdx打包工具要加上查杀该代码的模块1 A/ I: p* ~" C, Q1 [5 z1 R
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 12:47:41 | 显示全部楼层
    cocowind 发表于 2019-12-19 12:45
    3 y6 [( P* r! a8 w7 g2 U6 w- J老兄公开了一段Kill GoldenDict 代码,9 N4 g* k9 w+ Y5 m" P6 t; T$ l& h
    呼吁下一代mdx打包工具要加上查杀该代码的模块
    + G3 `0 j- a, @+ n% t ...
    3 O; |- r4 z0 J, q

    1 j8 b) z. ], L6 m9 C$ y  u查杀为辅,主要能解决问题最好了
      w5 ?% A# S% n. j" o% {2 [. b感觉这种需求是存在的…
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 13:42:10 | 显示全部楼层
    这需要mdx字典格式标准的升级支持吧。' {4 R7 S, c) {4 Y) E
    1 `( ?" R0 f- n5 t) i9 K6 ^) S
    在Vim中有 noremap 等关键字抑制remap行为。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 13:44:12 | 显示全部楼层
    VimVim 发表于 2019-12-19 13:420 l3 @' A8 |# E
    这需要mdx字典格式标准的升级支持吧。
    & h" k5 p3 P% Y/ k/ W3 p( d4 B4 z, {& T# ]% q8 `% x
    在Vim中有 noremap 等关键字抑制remap行为。 ...

    , T/ @6 e; t5 H, n嗯 感觉应该升级支持下
    / e( J7 `0 f( }+ i不过也想自己work around一下 " I7 A/ S! L, v' A4 L- T3 K* y  x
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 14:02:48 | 显示全部楼层
    最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种因素几近于死亡。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 14:07:14 | 显示全部楼层
    VimVim 发表于 2019-12-19 14:02% j9 m+ t& |: k- @1 C
    最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种 ...

    7 w" ?5 B* P: Z) \看来没有什么特效方法了7 S2 ]% l: F* i; ]6 P3 j" R2 V
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 14:09:09 | 显示全部楼层
    还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 14:11:11 | 显示全部楼层
    VimVim 发表于 2019-12-19 14:09
    & [9 j% \0 ^+ r还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html ...
    7 G9 ?1 S) ^; P5 S2 B
    其他格式词库 完全不想用

    该用户从未签到

    发表于 2019-12-19 19:18:23 | 显示全部楼层
    我碰见过,至于怎么解决,看词典里具体什么内容
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 20:30:58 | 显示全部楼层
    klwo2 发表于 2019-12-19 19:18
    6 T; D2 {7 c/ _9 n% P* @8 w我碰见过,至于怎么解决,看词典里具体什么内容

    4 U& F- w9 s& `6 f! d就是A LINK到B,B到C,C又LINK回A… 然后B LINK到A, A LINK到C 这种最复杂了 感觉无解…
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 23:43:47 | 显示全部楼层
    cuterhei 发表于 2019-12-19 22:47' n0 Z9 H. _: v+ l4 H( j: ]8 ~
    给个不算复杂的例子,GD如实的按照mdx源码中的顺序来处理的,其它词典软件应该借鉴一下:
    ) o; y. r' _+ J5 M% }0 ~
    这种会有循环引用问题吗?  y' j7 O$ G! J
    这种我还没测过* c* _$ J5 ^( Q7 u2 c1 m$ I$ I
    是不是只有; d7 l# O& G$ N3 {6 g- X7 q/ j8 `
    b
    " K3 i  }+ Q# v- X9 M8 |0 p, \@@@LINK=c5 c: ^. J+ X" `5 r/ d
    </>. M6 C5 J' U" U. l
    c# f6 Q% m: G2 I5 i) Z  M% _$ p( `& ~
    @@@LINK=b' o. f1 k  [0 y) b  v$ M% p% t/ B
    </>% T' b: u8 o- J: X
    $ o) g" ^  L6 p% F( q
    这种才有循环引用问题?* h! e% n& I" H- }6 J4 F9 D- t& M
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-29 03:16 , Processed in 0.050087 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表