掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 833|回复: 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 编辑 7 f9 H7 A4 u+ d4 U% I/ n
    7 n. I% h2 E- m+ Y
    比如下面的情况,想实现的效果是:
    2 ]3 o5 y6 a, Q  l* ?/ E在查询A或者B的时候需要同时显示A和B两个词条的内容。2 S4 k3 J; ?( R& Y7 d7 L, v
    但下面的写法会导致循环引用,造成词典软件卡死(GoldenDict)甚至无法查询(MDict)
    ! d, _+ r+ v. ^$ w8 ]! {. o( K/ f% f5 B: }3 j% D) i6 p4 }! E
    A) k7 W+ z+ H1 u- }  Y' q0 c% n
    A content( t# S) L: Q4 A, N: {# [
    </>+ T% E5 v2 X1 p- _* D
    B, @' Q* C' m. S" T! r
    B content7 V3 k3 ^4 o* o# F# q$ g! G
    </>
    9 u+ X; {( ]. z) D. [- l1 ~( _A) p8 _/ _$ H0 T4 ^' D& s
    @@@LINK=B: v( c3 V& `  B3 x% r. h, i" {
    </>
    4 y2 X  j9 ^5 q: Z: Q( |B- c8 K$ B9 J$ j: f: h
    @@@LINK=A% j6 F! T- X5 V/ H! ]' J) J
    </>6 d! \% n( w3 C7 c1 b' a4 e

    - ]/ U& n/ `$ d7 P; \1 L0 y不知道有没有人遇到过这种情况。
    + u, Z8 B( s( Q  D0 n/ N
    . [' z: M4 i0 \/ f# _+ B- m% s我目前可以想到的解决方式有两个:* _- b% L3 P: L* }6 t( N2 N& S
    1.
    ' D! B0 u/ [1 H  G- g7 ]7 F5 w+ C- ]" G
    B4 R  y. u, E/ E8 x8 ^" B; G$ o
    @@@LINK=A
    % w/ X* b6 S+ S0 K4 ^/ A8 _. g1 z</>2 A8 S( p2 f4 g
    替换成  e1 {$ b) a* ^- y" t5 q9 Y9 X" E
    B- \% I( b  S4 Y4 `: |$ V
    See also: <a href="entry://A">A</a>7 p: z4 e9 `) X' V
    </>$ R6 D, \$ q/ L: g, Z" X8 A
    8 N+ r  f6 y- C+ N& w0 `
    2.
    * c* G* C4 J; V4 B- v* a
    / z0 u" t: o& g7 X8 {# f2 L- r0 S( ^整个替换成* h% O) l$ ^' ~2 f6 t, \" R
    A+B
    3 d6 {/ I' ?9 A- \; uA content
    1 g6 x% n/ b- R& i, ]; `4 O9 Q</>  C, m1 v  [5 r# k
    A+B5 g8 X7 v" S/ l1 _2 o' x
    B content
    * g: i, o2 F0 V+ R</>
    6 q, X& l' U) R0 V) i/ y0 }A
    8 }8 V% Z0 v/ r; `9 M( K@@@LINK=A+B
    . c6 l3 \  P2 T9 K2 n</>: F) t& |* T3 C
    B" `5 }& N& d; T& R$ N6 I+ \2 n
    @@@LINK=A+B/ w. }) f3 d) i  o6 H/ K2 T2 o
    </>
    * `( W5 q- n$ {7 w, F# @  |% X
    第一种方式感觉不完美,需要点击超链接二次跳转;; a* p1 Q9 h* P9 l5 S$ h$ t2 _! v
    第二种方式实现起来不容易,容易造成数据紊乱。尤其是三个以上词头循环引用的话…0 M$ m0 [/ t1 ?0 ~  B3 @

    7 E  v8 E9 J4 n5 K. y/ H不知道还有哪些巧妙的解决方法。- m6 N! o) e8 l: N9 t  G

    # D6 z$ A, C  g( m
    & v( ~# w4 n' C5 }9 p9 Y1 t8 b# s. y) y

    ! b8 b! J* Z6 ^' y( s5 o

    评分

    1

    查看全部评分

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

    [LV.9]以坛为家II

    发表于 2019-12-19 12:45:32 | 显示全部楼层
    老兄公开了一段Kill GoldenDict 代码,, e( r8 |' c4 j, H. P3 R
    呼吁下一代mdx打包工具要加上查杀该代码的模块
    2 X8 P9 y  P) Q4 B! V
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-12-19 12:47:41 | 显示全部楼层
    cocowind 发表于 2019-12-19 12:454 |9 C8 a& M, E, o
    老兄公开了一段Kill GoldenDict 代码,
    * Z0 k7 i( q7 X呼吁下一代mdx打包工具要加上查杀该代码的模块: J. X9 ~! g  f1 ^$ a
    ...

    $ a0 e) f  P3 Y6 g2 t/ w7 |1 ~. |, `  e
    查杀为辅,主要能解决问题最好了
    1 y& I: O1 R$ F( p1 x3 |感觉这种需求是存在的…
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-12-19 13:42:10 | 显示全部楼层
    这需要mdx字典格式标准的升级支持吧。- ~3 h( u& R4 z1 c
    # Z4 c. G( I1 W  c) l1 B
    在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
    ; t- b7 U& p3 y* J8 Q6 O这需要mdx字典格式标准的升级支持吧。
    1 ~  W4 [7 @$ u$ P6 `
    2 J. x8 [4 r$ \5 {7 \% C在Vim中有 noremap 等关键字抑制remap行为。 ...
    ) \% y" k% U8 o  r% x' L) M
    嗯 感觉应该升级支持下
    : Q" {4 Z% K2 R+ [% f, m. j不过也想自己work around一下
    ) x% P+ p1 L9 Z/ ^6 c
  • 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
    ( y  E( |2 [$ |0 {最大的问题是mdx是闭源的,没有新的破解,我们只能永远停留在今天这个水平。stardict是开源的,但由于各种 ...

    1 M$ v. |. [& T3 l* \' Y) ]看来没有什么特效方法了1 E# K. l- U, c7 y4 C" 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
    1 u( ?3 g6 j& i! A) u. F; q还有更多选择,需要有人指路,自己摸索太花时间了:https://www.pdawiki.com/forum/thread-37718-1-1.html ...
    / U( X( C& _& }7 J* y) }% _
    其他格式词库 完全不想用

    该用户从未签到

    发表于 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 i  p5 I1 V8 L) v( _我碰见过,至于怎么解决,看词典里具体什么内容
    - w: e- W" _, ^) y% H+ t: r
    就是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$ P0 ~1 m' J- b/ S  g0 l3 y, G* h
    给个不算复杂的例子,GD如实的按照mdx源码中的顺序来处理的,其它词典软件应该借鉴一下:

    3 r& x1 [! K4 O3 G0 k6 X% i0 z这种会有循环引用问题吗?; [' Q) Y. h; L: v- s8 K
    这种我还没测过
    3 C' n2 \) n: Z是不是只有# R0 M, G1 n- `) ^! D: ^
    b2 |1 b6 x+ T5 E
    @@@LINK=c
    & d9 _0 b- T+ \</>
    # b+ @- g7 Y3 A3 d) |. tc
    6 f; b+ `9 H: u2 Q- w2 G0 l8 `@@@LINK=b# T( L7 D. q) Y) B4 _) g+ h
    </>
    7 n; }- x4 f- u/ x- p% _
    8 C& J4 p" c! G4 |这种才有循环引用问题?! _3 T# m/ N/ |
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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