掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1448|回复: 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 编辑 ' G& X1 g8 T0 l7 X; O' x6 ^

    2 @, m7 H  P  x! U4 m0 z+ j% r- i- W比如下面的情况,想实现的效果是:
    + ~" D6 V# K, [% j% f, v1 b在查询A或者B的时候需要同时显示A和B两个词条的内容。% Z! `( m# z1 M/ a. |
    但下面的写法会导致循环引用,造成词典软件卡死(GoldenDict)甚至无法查询(MDict)5 m! e% _# L) x, U" a2 p

    ( B" B# _/ Y) ~7 o' G0 l% DA
    : r% S6 R$ z' ?" H0 h$ qA content2 w% U& [- e; t2 k& d
    </>+ ~: \3 X( S+ m0 p' `2 l  X
    B
    4 b8 o; y' j6 GB content- U! @- t: D0 \2 I: O2 Y$ b
    </>
    0 g) \) ?; X6 g+ s3 z5 O( Q/ ?* NA# W8 u* g" ]1 g6 S
    @@@LINK=B3 x3 O+ x* L6 i9 s& o" ]$ m0 u
    </>
    + w, E4 `/ p7 y; F3 hB. {9 w2 _: s' J  X6 c
    @@@LINK=A
    % x6 g( u* R" f1 o* I6 m</>" p2 J  [1 ?( G: X4 c. Q/ O
    ; s, ]. n$ m7 X! Y
    不知道有没有人遇到过这种情况。# N3 {5 f- M  V, a
    , Z5 y% w1 e) z& ]
    我目前可以想到的解决方式有两个:- {# W3 ]+ \/ |6 _* H) f
    1. ( [7 n  L5 a* Q1 b- L) }; s6 n
    8 a9 N( k: B9 k6 @- b2 e% F! F' Q+ H3 A
    B
    ' ~9 V3 w/ {) H1 p6 W! ^$ o@@@LINK=A$ q4 h1 T; v# c- P5 @7 X: k
    </>1 D; w; k1 u8 n- g6 u( y
    替换成
    1 `: V' C4 o$ f$ h: I* _$ iB/ o# j! j7 ^! o+ S0 P7 Z3 R
    See also: <a href="entry://A">A</a>1 r$ f. [7 C3 S; M
    </>
    ( r5 K' l, _- |" g. j$ {1 }
    5 r1 C4 t7 W3 L& K* D. K0 ^0 Y& O2.
    & V9 R3 r' D  ~" g
    0 c8 E% J' A3 Y2 F整个替换成9 N2 ~0 }9 y+ P3 n+ b1 x/ G" |
    A+B5 p( l( w5 k% M: n
    A content
      m6 l( X& B( r/ w& i( o! q3 a9 y8 U</>$ G8 U& c" b: c/ `* Q( C/ [& f
    A+B; r- h, \2 H* Y! u0 f0 k2 g
    B content4 Z$ N' {9 i+ A  \
    </>  |: W& b8 Y0 [" f' j
    A
    / B- L: }: y' i3 f@@@LINK=A+B
    $ R0 b$ t3 n, o/ D$ ^3 A' w</>
    9 I  g# d& `7 v# s' ]3 Q$ ZB5 e) t$ B6 r( p& T0 m) Z; K4 p
    @@@LINK=A+B$ u; `# o7 K7 u* y: l  q4 z/ H$ s
    </>: j7 B( S. B# J) g

    & z# s2 Q6 e" s( c2 Q/ z第一种方式感觉不完美,需要点击超链接二次跳转;0 Z3 {2 J( j8 `; ?8 Z
    第二种方式实现起来不容易,容易造成数据紊乱。尤其是三个以上词头循环引用的话…5 c4 J+ F9 i  y. L! V
    6 X5 s( _, u+ _" t
    不知道还有哪些巧妙的解决方法。
    . {) \9 t; o$ X4 Z+ g  D; e! }, z
    1 s1 G" f3 F' v. Y" F
    8 _0 p9 o! [1 t1 g: L/ ^
    6 D3 |' h8 X& Y" C& y
    ! L! C+ X' J7 X; d" [! }

    评分

    1

    查看全部评分

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

    [LV.9]以坛为家II

    发表于 2019-12-19 12:45:32 | 显示全部楼层
    老兄公开了一段Kill GoldenDict 代码,5 r. G: p# V* K) z5 v9 g
    呼吁下一代mdx打包工具要加上查杀该代码的模块
    / W* n; r1 S) }: ^1 {1 L/ O
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 12:47:41 | 显示全部楼层
    cocowind 发表于 2019-12-19 12:45# Y/ n8 I5 v* O# c3 H2 y
    老兄公开了一段Kill GoldenDict 代码,
    ) k6 o  V1 L$ t( a0 @/ z0 d$ B: A呼吁下一代mdx打包工具要加上查杀该代码的模块
    + U  d1 a$ X- l% L0 F7 E- I ...
    : w  T1 x2 f$ j$ S0 @- D! f* N% v
    7 p, c9 E- V9 Z" j) |6 d" E/ V
    查杀为辅,主要能解决问题最好了/ P" a" ]) I1 q  N
    感觉这种需求是存在的…
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 13:42:10 | 显示全部楼层
    这需要mdx字典格式标准的升级支持吧。
    8 `+ ?* x! W/ G0 r. e% b; v
    2 v$ G) h: L. [  N在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( N, T+ _. r3 {7 ?  L& G7 S! i
    这需要mdx字典格式标准的升级支持吧。
    8 e8 f- Y) n, Z/ ]: C; a0 X- `" b. Z0 U. m1 H7 [" h# O1 ^/ n* g# J( I
    在Vim中有 noremap 等关键字抑制remap行为。 ...
      N/ V3 P5 p4 q9 W
    嗯 感觉应该升级支持下+ V8 [! g/ L/ E& q
    不过也想自己work around一下
    0 n0 M" L, U" ?' ?1 k0 b% [
  • 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& @8 q. s. {% k5 D1 F5 U0 {% y9 Z
    最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种 ...
    ) T0 J7 A5 u% A/ A( r9 ~
    看来没有什么特效方法了
    1 I; j/ }& F& ~( ?
  • 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
    3 A2 [7 x8 T( I: O6 R% K1 v8 x还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html ...
    . _% ^: Y( J9 w; @$ t
    其他格式词库 完全不想用

    该用户从未签到

    发表于 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
    4 M4 [9 c3 t3 K0 J( _5 X/ `, M我碰见过,至于怎么解决,看词典里具体什么内容

    % r2 w9 R: ]4 G# V$ y# X9 J就是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$ ?7 P, P; @: V; l( l4 G
    给个不算复杂的例子,GD如实的按照mdx源码中的顺序来处理的,其它词典软件应该借鉴一下:

    " _1 L; B' ?# F6 s这种会有循环引用问题吗?2 p0 Y* {6 F% H% y  m
    这种我还没测过
    2 }  w2 j! z# T, \是不是只有
    9 F# \! ^! n; Y% D$ I" G0 `" _b
    ' @: u2 _& Z- V7 N  F@@@LINK=c6 S5 G6 j2 ?. L1 F
    </>
    . C) a( V2 e7 _$ q$ P# |2 Ec! q) f! }* B9 m5 c7 k
    @@@LINK=b1 e6 V: N6 O9 a
    </>, p2 v- M2 p3 b
    8 r: c$ j8 L/ |- P& Z$ g9 L
    这种才有循环引用问题?
      O1 g- @. K/ f
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-9 01:09 , Processed in 0.022791 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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