MDX是否支持在一个词头内将其他词头内容包含进来
本帖最后由 lbhl 于 2020-2-17 22:08 编辑假设某词头A下内容首先是A自己独有的,接下来是和词头B完全一样的内容。要求将独有和共有的都显示出来。
有没有象C语言include语句那样包含过来就可以直接显示另一个词头内容而无需全文逐字拷贝另一个词头内容过来。
本帖最后由 喬治兄 于 2020-2-17 22:53 编辑
Brother lbhl :
Fuzzy Word Search
{:4_105:}
barrette K.K.:
n. 1. 條狀髮夾
bar , barre , ret
bar?ette → barbette , barrette
barrelhouse K.K.:[ˈbærəlˌhaʊs]
n. 1. 【美】【俚】低級酒吧 2. 低級酒吧爵士樂
bar , barre , barrel , house , use
charterhouse K.K.:[ˈtʃɑrtɚˌhaʊs]
n. 1. 卡爾特修道院
char , chart , charter , hart , art , rho , house , use
cha?terhouse → chapterhouse , charterhouse
https://i.loli.net/2020/02/17/aVm41biGve3lcME.png
https://i.loli.net/2020/02/17/rCyS8DjKp2nVNFh.png
A
A content
</>
B
common content
</>
A
@@@LINK=B
</>
本帖最后由 lbhl 于 2020-3-2 17:14 编辑
假设一个词头是单词come,该词头内容为 前半部是come义项释义,后半部是一个个come的词组及释义。现在还想为每个come词组做一个词头,希望在欧路或goldendict中输入词组之后,不是从come词头内容最开始部分的come义项显示,而是直接跳到该词组那里开始显示。要求除该词组词头下能看到的内容不仅仅是这个词组的,而是和come词头下能看到的内容100%相同,一点不能少。
以上这个要求,相当于在一个词头内容中设定锚点,在欧路或goldendict中输入词头后直接从锚点处开始显示。
------------------ 以前发的 --------------------------------------------------
今天再想一想,这2020-2-18 16:02:07发的要求:要想通过在词典软件词头输入框中(而不是通过其他词头内容点击跳转)输入一个词组,就要词典软件立即跳转到核心词词头下该词组解释的位置,除非词典软件支持输入框同时输入核心词和词组两个信息来查找,否则绝无可能。而且还要约定MDX在制作的时候如何表述词组在该词头下的位置,也许简单用锚点就可实现,也许可以增加更复杂的规定,这一切都要求增订MDX规范,或者MDX词库制作者都按某一种约定来构建词库。
MDX早该升级了,象不同页面无法共享数据来实现版式设置的记忆都需要更新规范了。我不知道已经升级过的最新MDX版本有无考虑这两个要求。
lbhl 发表于 2020-2-18 16:02
假设一个词头是单词come,该词头内容为 前半部是come义项释义,后半部是一个个come的词组及释义。现在还想 ...
看来这个要求不可能?没人回复了? 本帖最后由 firetimer 于 2020-3-2 15:51 编辑
简陋的办法当然有,如下:
come
come is a word.
</>
come on
<iframe src="entry://come" width=100% frameborder="0"></iframe>
come on bro.
</>
只不过这种方法很土……或者可以用JavaScript构建,不过我是没有现成的方案。 lbhl 发表于 2020-2-18 16:02
假设一个词头是单词come,该词头内容为 前半部是come义项释义,后半部是一个个come的词组及释义。现在还想 ...
應該就是你說的設置錨點呀,在come條詞組處設置錨點name,然後在詞組條設置跳錨come#name。請看mdxbuilder內的說明。 本帖最后由 firetimer 于 2020-3-3 12:01 编辑
come
come is a word.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
<a id="c_on"></a>come on: come on bro.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
<a id="c_here"></a>come here: here.
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
Quick fox jumps over the lazy dog.<br />
</>
come on
<iframe src="entry://come#c_on" height=100% width=100% frameborder="0"></iframe>
</>
come here
<iframe src="entry://come#c_here" height=100% width=100% frameborder="0"></iframe>
</>这个例子可以很好实现您的需求。
输入come on会自动跳转至come的对应位置。您可以试试。
即使直接点击come on,也会立刻回到come并显示。不过关于come here 这样锚点过于贴近尾部的话显示效果不好,这就需要进一步研究了。
感谢分享 jonah_w 发表于 2020-2-17 22:13
A
A content
您是错的。
经过试验,只要词头里含 @@@LINK=B 这种跳转的,无论@@@LINK=B这条语句之前和之后是否还有内容都不会显示,而是直接显示B的内容。 firetimer 发表于 2020-3-3 11:56
这个例子可以很好实现您的需求。
输入come on会自动跳转至come的对应位置。您可以试试。
即使直接点击come...
试验了,在GoldenDict中根本无法显示iframe中内容。欧路可以显示,但是无法将显示滚动到锚点处。 starmars 发表于 2021-1-29 23:34
试验了,在GoldenDict中根本无法显示iframe中内容。欧路可以显示,但是无法将显示滚动到锚点处。 ...
现在想想觉得这应该是Mdict某些版本的一个“特性”…… 現有的代碼復用率偏低,重複代碼量大。
__include 語法確實很值得引進。
YAML 中用著 __include 和 __patch 語法非常爽利。 MDX的规范该改了,或者说如果已经改了升级了,那么词典软件作者该去升级软件识别兼容新规范了!
页:
[1]