掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 827|回复: 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 编辑 9 t8 K; m, o. j" @3 d/ X- n$ w

    8 N# ^' r, @+ T! R) ~' P比如下面的情况,想实现的效果是:
    1 q4 ~& f( x5 C8 @/ J" c在查询A或者B的时候需要同时显示A和B两个词条的内容。8 J  I- Z5 G% C( c& F* G5 r' M
    但下面的写法会导致循环引用,造成词典软件卡死(GoldenDict)甚至无法查询(MDict)
    , m/ Q4 W( V* @; w' U
    2 T4 Z2 ]/ g. C% S7 cA
    - |' @( Y; K- g* P) l: AA content! y) M- q& h/ V5 ^+ Y
    </>
    * r& J# _. `9 A( h: @  XB
    9 x, b9 c9 |3 EB content) m  t1 H: w8 w7 a0 ^( h
    </>0 {) M1 K  d% g; i1 [
    A0 _( d/ k# U& j+ q) d9 r
    @@@LINK=B
    3 Y$ o9 C& T) k& d4 N7 q% r% d</>! A& M; u' p" \) j5 h9 L, G4 k
    B2 h% [7 v4 s, V/ F
    @@@LINK=A
    2 o7 T$ V4 ?7 @) Z# I& }! g" ^+ V</>! P# j' n. d1 N& z4 _1 [
    " z! I. C& ^3 f. x7 s! S1 B% h7 q
    不知道有没有人遇到过这种情况。
    6 A; n8 A  ]  M! u2 e* ~+ J: M. Q$ w! x
    我目前可以想到的解决方式有两个:
    . u/ Z( v% ?, v) k% p1. & p- @9 `$ }% H3 x' R- Z

    ; a7 w5 ]* p, L. q2 }; Z2 i8 ~B4 C0 w! ?& e, a# B4 m! a
    @@@LINK=A
    / E; _& m- N! m4 }  o6 S</>4 U; G2 z, E2 R/ }
    替换成
    . D$ m2 z; M+ f/ t* ?) BB
    ; @) m: v' h' L& y& [See also: <a href="entry://A">A</a>4 O; O& ^- B: h. Q
    </>6 G* P, w& i( {

    8 w0 m( N& M5 Z/ Q/ l2.
    8 L/ N4 B& |/ Q
    + [/ c9 u, K2 Y% C! c6 t% g整个替换成- Z! f* B- O1 w# U
    A+B! j+ W. a5 L1 B% C) s. B, f7 y
    A content
    + S9 a8 q4 t" ^" \5 f1 ^5 R</>3 Q8 {" C# [' Y0 k0 K
    A+B% \* K9 n% N7 y5 [( l
    B content
    3 Q! I" P) G* f1 f</>3 T$ u1 o7 t: m: X+ }0 g
    A
    8 R7 Y* c5 y3 c! J" Z4 r! U@@@LINK=A+B1 A$ I9 K/ k7 ?; Z# S9 o
    </>/ g; v- |# n; V+ m9 ^- L7 }
    B
    9 [9 m% l. g9 f, J@@@LINK=A+B
    ' }) q5 W  D6 Q# N* `: `</>, q' J1 j% g7 i
    4 |" q1 R5 w: b
    第一种方式感觉不完美,需要点击超链接二次跳转;, v) B* p& D  ^
    第二种方式实现起来不容易,容易造成数据紊乱。尤其是三个以上词头循环引用的话…: A+ ~! {) E0 a; n+ L5 T( v  W

    " x6 V1 A; U9 D8 r' v2 Y) H( z% ?% o不知道还有哪些巧妙的解决方法。
    ( X5 N9 z/ h+ P
    0 a: S) `4 L1 e  W; Z) o) t9 m% O7 h8 {% i

    3 k9 G3 X, [0 D! j$ w' [. r" X. @+ P* E9 P, H6 B. m7 y

    评分

    1

    查看全部评分

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

    [LV.9]以坛为家II

    发表于 2019-12-19 12:45:32 | 显示全部楼层
    老兄公开了一段Kill GoldenDict 代码,
    8 J) x, w5 L& C7 L% @( F) w呼吁下一代mdx打包工具要加上查杀该代码的模块7 A' _9 }1 Y6 X; z7 c* B- {
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 12:47:41 | 显示全部楼层
    cocowind 发表于 2019-12-19 12:45
    / }  c+ P, V! M3 u% v8 J2 }. N老兄公开了一段Kill GoldenDict 代码,
    / b2 @" l9 ^% E! e- j9 t呼吁下一代mdx打包工具要加上查杀该代码的模块6 ~, R& U7 b, d6 o- F! F& B- h
    ...

    . }' q9 r6 Y, o1 V
    5 T) O0 C. A0 ~9 w; |2 h7 g查杀为辅,主要能解决问题最好了
    - K0 p7 l( I& L; c4 i感觉这种需求是存在的…
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 13:42:10 | 显示全部楼层
    这需要mdx字典格式标准的升级支持吧。" i1 |! X/ i! Q& v- L

    " z# o. s) a9 r5 |  j* B" G在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 T( M3 a: `" M1 M' N
    这需要mdx字典格式标准的升级支持吧。3 \: U) Y, |$ P# a8 l+ X$ W, N- m; r2 Y

    5 v% ^- m4 B* ]- ?4 h在Vim中有 noremap 等关键字抑制remap行为。 ...
    % x6 z: [( i( Y1 ^' K
    嗯 感觉应该升级支持下
    . |$ i8 r1 {; T+ |不过也想自己work around一下
    $ q8 C; c' v* w2 v  p
  • 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
    5 P# h4 k8 n5 O最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种 ...

    & v) o( ^% J" [) i看来没有什么特效方法了) O- H/ s4 C. g: j
  • 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$ r5 U2 c, t5 C1 ^3 ~/ }
    还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html ...

    & e: [% T# Y3 w1 J其他格式词库 完全不想用

    该用户从未签到

    发表于 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; j( x5 x! R# ~! U) g
    我碰见过,至于怎么解决,看词典里具体什么内容
    2 {, }' o  `5 C9 B
    就是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:478 @8 J+ t2 {# k% U5 y3 E6 g
    给个不算复杂的例子,GD如实的按照mdx源码中的顺序来处理的,其它词典软件应该借鉴一下:

    * k  ^) N7 p% A! C. j9 H  @. W这种会有循环引用问题吗?$ w4 Z5 t4 S! {8 s8 i4 ~0 H4 z
    这种我还没测过
    . j1 c# u6 t, u: Z! W是不是只有
    , E/ j6 O  O) v) F9 P5 Jb$ `  @; R# Q5 k1 z& e
    @@@LINK=c7 U( P* y. M' K/ A7 n
    </>
    % S1 i' l3 \  G/ Z$ _c# C, S6 c2 ~( Z4 ~
    @@@LINK=b
    0 V2 G" R) m, Z4 ~0 Y0 t+ ?  o1 Y</>; r. a# I+ `( t" Z- B/ K, B
    $ ^! [( q9 M: e# m: C5 X% j' n
    这种才有循环引用问题?( l4 h$ l! `6 v  _
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 08:05 , Processed in 0.053274 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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