掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 830|回复: 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 编辑 # c& N1 O& A! q' p2 J. M0 q

    , V. r; [% a0 e* [8 L# }9 E& P比如下面的情况,想实现的效果是:
    * y2 q! J: H$ }在查询A或者B的时候需要同时显示A和B两个词条的内容。) u2 C# o, q* y: N7 F0 W
    但下面的写法会导致循环引用,造成词典软件卡死(GoldenDict)甚至无法查询(MDict)  V! w$ X0 ~6 @4 `
    5 }+ e  K# L- L
    A) _4 e) ~$ M2 }$ V& C9 Q% C
    A content
    8 A% Z, |& l) `6 g</>, }4 Y) o. q& [
    B0 X$ L9 k' U4 w- N
    B content
      \$ Y; [' @! a( d! A; a6 S</>
    5 |9 d* o- n, X* OA
    0 a% J7 ]' s4 P/ W8 W  k@@@LINK=B
    2 a+ D7 t3 ?" W# ]$ g% @0 I</>
    8 w6 _6 C7 G! i+ v4 nB
    . M. `6 S3 A3 K  j) z@@@LINK=A$ I; @9 \0 T$ o5 w% x( [. Z
    </>+ N; M* M8 N: Z$ O: }

    ; I5 d+ Q! D/ w# z/ S% t. o不知道有没有人遇到过这种情况。; q2 Y" z, v; M& k& \2 d) k
    # j" Z" Y5 r% P: {
    我目前可以想到的解决方式有两个:
      b* F8 e1 i: Y+ F! a8 J1.
    - L8 E& E. L! }, |2 `
    # ~) ^% Y/ E7 r3 L- X: k- u7 V5 Q- hB
    - W! |0 k, V* c$ Q( S3 m@@@LINK=A1 |: x5 J# m" k4 O
    </>
    7 E" e) b' q* J2 m替换成1 W6 O( X6 u7 w3 u9 t( u: _
    B
    2 L/ A8 i" i$ `6 R, F- cSee also: <a href="entry://A">A</a>% M' b. m/ a4 y* L' l& a
    </>- k' k0 X8 X) C# G- l
    , Q; a6 d2 u2 a" g2 c# s: Y; d! u
    2.
    ( o- @* u# }/ }6 M" t) |! p" X' g8 q
    整个替换成+ ?; n0 W+ D  s) Q! \
    A+B1 Z7 Y! W. M$ C5 V
    A content
    4 n& T7 z( S% ]5 q! z8 c( ^</>
    - J- j" c1 T. P% D/ W! a3 A7 i% M( AA+B  Z4 }, i  e3 o
    B content# m' B+ d1 F9 P% J4 R$ |2 A
    </>: ~# E. u$ u3 A7 r4 i: g
    A" P. \: [4 f+ d" A5 k( |9 T/ F! |
    @@@LINK=A+B
      W7 Z, I' t. p7 h  x1 W</>' P  q5 {% i) [( {. Q
    B
    . o2 ]; Q- N* f@@@LINK=A+B( ~/ t7 j+ q4 i  y: q
    </>
    * g1 d2 K! e" K1 u* @( c
    / ?6 ~& U% [( @$ R% [# h, h# H第一种方式感觉不完美,需要点击超链接二次跳转;
    ( ?( m- m" N; l: I, T# r- v: k第二种方式实现起来不容易,容易造成数据紊乱。尤其是三个以上词头循环引用的话…
    ; X, z# b& c& t: n4 C& j( s
    9 ?* Z9 I1 d! k, C6 }: B不知道还有哪些巧妙的解决方法。
    # p6 Q& o! o0 S. M# M- r% d" A0 U+ q5 c

    5 v$ P$ K( R) U# U! s4 ~; p/ N5 ~' Q+ }9 N2 {4 @

    1 Z9 F( L& L/ {* ^# q* Z

    评分

    1

    查看全部评分

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

    [LV.9]以坛为家II

    发表于 2019-12-19 12:45:32 | 显示全部楼层
    老兄公开了一段Kill GoldenDict 代码,: f) G( Z; k4 c5 p/ m' @
    呼吁下一代mdx打包工具要加上查杀该代码的模块7 k+ u4 V, p7 ^$ C  n
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 12:47:41 | 显示全部楼层
    cocowind 发表于 2019-12-19 12:45
    + L& Y9 i, H8 `* l1 y- f) A: V8 m老兄公开了一段Kill GoldenDict 代码,
    " l" ^- i! F+ e. e" ?/ W: M+ R呼吁下一代mdx打包工具要加上查杀该代码的模块  c" l/ ^- Z  q5 b8 _3 G5 s
    ...

    - J+ }, z$ m5 K3 K# p
    ' M% a& n7 \+ c9 c; k* e5 o( I  s查杀为辅,主要能解决问题最好了
    : l  ~% w' |/ u感觉这种需求是存在的…
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 13:42:10 | 显示全部楼层
    这需要mdx字典格式标准的升级支持吧。
    4 ?. U/ [7 j% h- Y2 f0 O
      p& v9 `5 x6 y% i' ^8 a( `. `6 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
    ( `3 R. L  ~, r这需要mdx字典格式标准的升级支持吧。
    : \, o3 z) v2 H& G; Y) O  d* Z' `" J# F
    在Vim中有 noremap 等关键字抑制remap行为。 ...
    & E, z+ S& r8 N% H* p' u) ^: P6 }2 G
    嗯 感觉应该升级支持下
    / c% C0 v6 s! V5 G6 R不过也想自己work around一下
    & @6 I# c% `% a3 |- [4 B8 F
  • 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
    7 d. D: a3 W5 N) ?* w6 Z+ T! F最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种 ...

    0 y7 ~/ u0 K. P1 G6 y1 d) B: m* \; a3 U看来没有什么特效方法了, M4 d' h2 q7 R$ n- ?
  • 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+ S8 V) {9 I7 ]$ j: ^
    还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html ...

    ; K/ U. }1 |- G6 [7 T( D, ^* ?其他格式词库 完全不想用

    该用户从未签到

    发表于 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
    5 z% x, H% w# u# |7 O& b我碰见过,至于怎么解决,看词典里具体什么内容
    0 V0 i9 d2 n" r, i
    就是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
    4 `) _7 x. J2 v$ Q( E给个不算复杂的例子,GD如实的按照mdx源码中的顺序来处理的,其它词典软件应该借鉴一下:
    0 |: z+ T; ~/ F  p" s1 t' Y9 L# {
    这种会有循环引用问题吗?
    : L! o- D0 S- I2 n; M这种我还没测过  \, r. M: b! O3 F) `
    是不是只有( T, h5 l; s5 o7 X5 @
    b5 B2 c, S$ [* R% T3 l4 V6 ]% V
    @@@LINK=c8 b  f$ u1 h. R3 r
    </>; P6 Q& x# r) |2 D- v
    c9 q7 L* ?$ D, f3 C, u0 g
    @@@LINK=b
    " O% R0 ?8 x* s; m</>8 q0 z6 `+ @$ x1 P8 ^
    9 k; y9 g1 P. k: N. |" A$ a
    这种才有循环引用问题?
    3 v2 N7 |" S# e0 n8 @* Z
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-29 04:26 , Processed in 0.063469 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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