掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 832|回复: 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 编辑 / M/ |( a4 X- D; ?. H( q$ y) O7 [

    6 [0 I: X, ~3 j$ O, b比如下面的情况,想实现的效果是:2 I- D0 a  J( Z0 p; t) c
    在查询A或者B的时候需要同时显示A和B两个词条的内容。3 P( o; \+ }* A/ ^2 H) C' _
    但下面的写法会导致循环引用,造成词典软件卡死(GoldenDict)甚至无法查询(MDict)$ O! L! ^1 |9 @# n/ q

    * B3 ~) A4 u4 B8 T7 VA
    1 S" M4 S% C/ z' aA content
    1 w# ]7 p6 z# r; i</>4 R6 `5 @7 j$ G9 ]  _+ K  V: G
    B
      \& o  d( K0 T3 a  [, Q" G4 r1 DB content3 Z% q0 {8 e( ]# F7 _  j
    </>
    . K; g1 }( Z0 |5 B( F2 VA
    / ~  j6 X+ W1 R# D) S' u@@@LINK=B, n9 {% P8 D- k9 W1 j
    </>, [+ h- r# g6 V! V5 K& K4 e
    B
    3 k( e* {3 c7 ?; t/ y@@@LINK=A
    ! e" O, f- ?( K3 ], U' G& ^</>
    4 Y9 V9 T! d  V5 I0 n6 k
    ) R, t* K1 H9 @: B/ `2 n不知道有没有人遇到过这种情况。
    7 S) U) {2 e2 T4 P) h
    * b' g! ?9 w# m7 r8 C8 Y( t' N/ U我目前可以想到的解决方式有两个:2 z; Z' q$ s: [/ P4 U) g4 n
    1. ( e8 H2 U0 l8 p& h# b

    " r% K; ?+ K% f% sB
      q& ?2 b/ l3 ~+ W, n@@@LINK=A: ?* w" ]- \8 ?2 M. D
    </>
    1 i$ l/ u# C* P2 E( `, u! n替换成
    4 f. T  V, v2 ^* ?# Y3 T: ?; B4 z0 _B3 ~4 C7 V+ d8 l: d5 q
    See also: <a href="entry://A">A</a>
    & S3 e: p7 t2 y0 K</>
    6 k6 @7 ^  H9 f$ ^- m  ^) V% y- ?) i6 L7 ?
    6 L" r) n  w3 \% b3 S2.
    3 ~9 V6 ^0 x. |0 m1 l! @, t1 c5 X3 v0 X$ S' ]4 F
    整个替换成* x# K" N$ i  p1 V' i
    A+B( C7 M1 I2 f1 V+ w8 w- o
    A content" z1 R% n, x, \
    </>5 j2 }: b2 b7 ?6 `+ ~
    A+B
    4 ]/ _3 O& x' J, }/ M. ?B content4 {( a, ^$ h; ]- Y
    </>
    6 u. c% d+ b  MA
    ( y" h# m- V# c: A$ ?@@@LINK=A+B
    ! c! ^- q* x4 V" |. G, d</>' C+ d+ f' c2 A+ G9 P4 v" V+ [5 L7 k0 }
    B
    ' T! z- C' q3 Y# A% `, T/ ~@@@LINK=A+B+ X5 u! c6 t* C# {% f
    </>
    + b% Z: S4 \$ _7 {6 u
    ' i/ u! c1 g, W: A第一种方式感觉不完美,需要点击超链接二次跳转;/ ^& ?7 P) c' O4 L( z
    第二种方式实现起来不容易,容易造成数据紊乱。尤其是三个以上词头循环引用的话…
    6 y9 |  S  [' U2 [3 Q6 S6 B0 P8 e
    不知道还有哪些巧妙的解决方法。
    1 E, U* K2 _2 P% ?0 r  h: h; }: [: Q# D# ^* P: Y& k
    2 |, R' `* _; g  @, X

    " j! E: \# }7 k9 H  X2 r/ \+ m3 [
    # Q8 D6 g! E$ K) u) F2 S

    评分

    1

    查看全部评分

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

    [LV.9]以坛为家II

    发表于 2019-12-19 12:45:32 | 显示全部楼层
    老兄公开了一段Kill GoldenDict 代码,: P- T$ `$ M2 F% q1 m& Q9 _( w+ W
    呼吁下一代mdx打包工具要加上查杀该代码的模块" D. D$ c" [4 J' H. B& \
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 12:47:41 | 显示全部楼层
    cocowind 发表于 2019-12-19 12:45; E" G0 V9 {4 r4 G! e2 L% `
    老兄公开了一段Kill GoldenDict 代码,& d9 z! d) v& H
    呼吁下一代mdx打包工具要加上查杀该代码的模块+ U% [2 T  R$ O* n0 A/ u* U
    ...
    $ {2 x4 a& I+ b/ H$ F6 e' G( d
    6 u! x: ^7 N- x  _$ ?  C6 I
    查杀为辅,主要能解决问题最好了: U. w7 ?! a  c* o/ \+ n- d3 q
    感觉这种需求是存在的…
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 13:42:10 | 显示全部楼层
    这需要mdx字典格式标准的升级支持吧。
    6 v+ I& L$ r( H0 [2 {3 a
    . I! T5 Z! T, Y2 x1 P3 S) Q& Y在Vim中有 noremap 等关键字抑制remap行为。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 13:44:12 | 显示全部楼层
    VimVim 发表于 2019-12-19 13:42& s. f) @4 X! Z! `$ N* ^$ D8 L
    这需要mdx字典格式标准的升级支持吧。
    + Y6 c0 Z: D( {( z& A. L4 O0 u& O2 E. R4 r+ D
    在Vim中有 noremap 等关键字抑制remap行为。 ...

    & O% \2 e- r' J( K) g1 f' _8 }嗯 感觉应该升级支持下5 b; b4 U7 D4 {8 Z# g
    不过也想自己work around一下 ) t; M7 b9 U3 z7 L
  • 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
    , c# e+ s* g3 x% A最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种 ...
    4 Y3 r, y$ @" k6 E7 v' U
    看来没有什么特效方法了/ V. v' x4 P0 s7 z
  • 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:090 w& |  ?+ e" V- E. P
    还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html ...
    : h6 t/ G+ K) z9 q, \$ z
    其他格式词库 完全不想用

    该用户从未签到

    发表于 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
    ) \/ }3 g4 a$ e) J" t7 L0 W3 V% K我碰见过,至于怎么解决,看词典里具体什么内容

    9 {# t8 |2 A+ s0 U: v就是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:472 x1 Q8 e5 J+ H: B# N+ Y$ Y
    给个不算复杂的例子,GD如实的按照mdx源码中的顺序来处理的,其它词典软件应该借鉴一下:

    ! E4 S  r% E9 J% H& }5 b这种会有循环引用问题吗?
    ' Q- R/ k( F% R: g2 A  C这种我还没测过6 X1 p  l5 J; O( x( V
    是不是只有
    # i7 {& U! v* r6 a; Ib; T) Q+ Q! r5 I0 b& F
    @@@LINK=c2 I' B2 O  a1 U5 C6 [7 ]
    </>
    0 c9 @1 V& C. y  r/ U0 l/ ?c$ n  r' W, C! s
    @@@LINK=b& l  u- \+ B6 Z' p5 z+ q
    </>7 D, \4 J5 l7 d+ Y

      {0 c' G8 s) D3 a1 Y这种才有循环引用问题?6 \5 k0 x! j. X1 U; c8 d
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-29 12:11 , Processed in 0.088780 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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