跳转到内容

英文维基 | 中文维基 | 日文维基 | 草榴社区

模板讨论:MolFormNav

页面内容不支持其他语言。
维基百科,自由的百科全书


能否建立一个类似{{DisambigNav}}的用于消歧义页的化学同系物导航模板


导航
B4
C3 C4 C5
D4
C4 - 4C

如右侧:

设想是这样的,同系物列于两侧,比方说C4H8O的左侧是C3H6O,右侧是C5H8O,上方是不饱和度+1的C4H6O,下方是不饱和度-1的C4H10O,这样在小分子上可能没有多大意义,但是到了如睾酮C19H28O2这里,就可以快速找到去甲睾酮C18H26O2甲基睾酮C20H30O2脱氢睾酮C19H26O2二氢睾酮C19H30O2。--Htmlzycq留言2022年2月6日 (日) 08:44 (UTC)

另外,能不能再加一个维度,比如左上右下,C4H8O的一个方向是C4H8,另一个方向是C4H8O2,这样类似于羟基XX,脱氧XX也能快速找到了,顺便@Leiem :--Htmlzycq留言2022年2月8日 (二) 12:50 (UTC)

同系物导航
C19H30O2
C18H26O2 C19H28O2 C20H30O2
C19H26O2
C19H28O C19H28O3
同系物导航
C4H10O
C3H6O C4H8O C5H10O
C4H6O
C4H8 C4H8O2

@Htmlzycq:这个样子?Ghren🐦🕑 2022年2月13日 (日) 18:39 (UTC)

@ghrenghren:谢谢,就是这样,只不过C19H28O11能不能去掉才符合书写规范。另外,如果还有N、S等原子的话,阁下这个模板方便改进吗?不过就含有C、H、O的已经占有消歧义条目的大多数了--Htmlzycq留言2022年2月15日 (二) 17:00 (UTC)

@Htmlzycq我化学不好,但是技术上来说不难写。改好了。--Ghren🐦🕐 2022年2月15日 (二) 17:25 (UTC)

谢谢啦,在下把两个版本都拿去研究研究--Htmlzycq留言2022年2月16日 (三) 01:42 (UTC)

@ghrenghren:,在下在{{MolFormDisambigNav}}里依样画葫芦加了一个S的代码,不过这样代码越来越长了。另外想问一下阁下用户页里的User:Ghrenghren/27/Chem是拿来缩短代码长度的吗?能否在{{MolFormDisambigNav}}里试一下?--Htmlzycq留言2022年2月16日 (三) 04:47 (UTC)

这个是用来确保O1可以显示为O、O0可以不显示的。这样的话代码可以简洁得多。稍后我再试试。--Ghren🐦🕐 2022年2月16日 (三) 05:01 (UTC)
如果数字0不显示,那么多加几个元素在同一个template里不至于让模板更长( --Leiem留言·签名·维基调查 2022年2月17日 (四) 16:52 (UTC)

{{MolFormDisambigNav}}的化学式

同系物导航
CH3NO
CHNO C2H3NO
CHN CHNO2
CO CH2N2O


如右侧,CHNO的这个模板链接到包含C0H-1NO这样不存在的化学式,要怎样修正才能去掉C1中的1,不显示C0这样的部分以及移除H-1这样不存在的化学式?--氢氰酸留言区 2022年10月12日 (三) 03:10 (UTC)

话说之前这是怎么解决的?--Leiem留言·签名·维基调查 2022年10月12日 (三) 07:46 (UTC)
{{MolFormDisambigNav/N}}的源代码中含有|0 = |1 = N这个部分,应该就是解决这个问题用的,而{{MolFormDisambigNav/O}}和{{MolFormDisambigNav/S}}也有类似的部分。--氢氰酸留言区 2022年10月12日 (三) 13:13 (UTC)
如果你真的想动手的话,请先阅读Help:模板及里面大部分内连,尤其是Help:解析器函数的部分,你看到的|0 = |1 = N就是用解析器函数里面的switch函数去处理的。起码要先看懂{{#switch ... }}}}是在哪边结束,整段看懂switch在干嘛,再回去对你想处理的部分进行处理。好比说我们先以上方十字正中间的区块为例,实际上只有
'''
C<sub>{{{C|}}}</sub>
H<sub>{{{H|}}}</sub>
{{#if:{{{N|}}}|N{{#ifeq:{{{N|}}}|1||<sub>{{{N|}}}</sub>}}}}
{{#if:{{{O|}}}|O{{#ifeq:{{{O|}}}|1||<sub>{{{O|}}}</sub>}}}}
{{#if:{{{S|}}}|S{{#ifeq:{{{S|}}}|1||<sub>{{{S|}}}</sub>}}}}
'''
里面的N、O、S都有针对 1 的情况使用{{#ifeq:{{{N|}}}|1||<sub>{{{N|}}}</sub>}},你对照C的那行就可以发现没有这样的处理。--Anghualee留言2022年10月12日 (三) 20:46 (UTC)
另外在你看懂之后,打算开始改之前,建议阅读Wikipedia:关于沙盒,并利用沙盒进行测试。理论上感觉测试完之后应该还有个喊人审阅,把沙盒页面转正的机制跟说明,不过我还没找到。--Anghualee留言2022年10月12日 (三) 20:57 (UTC)
了解了,非常感谢。现在已经修好了。--氢氰酸留言区 2022年10月19日 (三) 12:56 (UTC)
一些杂原子似乎在模板中不会显示,例如C6H15FSi的氟和硅。--Leiem留言·签名·维基调查 2022年10月18日 (二) 03:21 (UTC)
处理的时候应该可以将Si等同于C、F(以及其它化学式索引里的Cl、Br、I)等同于H?--Leiem留言·签名·维基调查 2022年10月18日 (二) 03:22 (UTC)
是否要在模板里面扩充F、Cl、Br、I、P、Si这几个元素?(不过我觉得Si和P不常用就是了)--氢氰酸留言区 2022年10月19日 (三) 13:01 (UTC)
磷的话有变价(PR3、PR5、P2R4、P2R2、RCP之类的),可能要单独处理,As和P类似。Sb、Bi以及B可以参考N;Si、Ge和Sn可以参考C;还有就是固定价态的金属,比如碱金属相当于H、碱土金属相当于12个H。--Leiem留言·签名·维基调查 2022年10月21日 (五) 02:22 (UTC)
Cl加了,F打算加,Br和I较罕见不确定,P的同系物不知道是加PH还是加磷酸基(因为加磷酸基更常见),剩下的元素应该没多大用。--氢氰酸留言区 2022年10月21日 (五) 07:59 (UTC)
好像可以参考硫,因为硫也有可变价态,CH3SCH3CH3S(O)CH3CH3S(O2)CH3(或C2H5SO3H)。--Leiem留言·签名·维基调查 2022年10月25日 (二) 02:16 (UTC)
S目前的源代码和O一样……--氢氰酸留言区 2022年10月25日 (二) 08:21 (UTC)
但是C2H6O2S等条目内的模板并未报错。--Leiem留言·签名·维基调查 2022年11月1日 (二) 07:01 (UTC)
亚砜和砜分别有RSOR'和ROSOR'这些不含超价硫的同分异构体(至于是否真的存在不重要),而磷的化合物也差不多,所以应该不需要考虑它们的可变价态。--氢氰酸留言区 2022年11月1日 (二) 15:32 (UTC)
那这样的话可以照着硫来改。--Leiem留言·签名·维基调查 2022年11月10日 (四) 02:28 (UTC)
已加F和P。--氢氰酸留言区 2022年11月13日 (日) 11:20 (UTC)
我上次概略看过模板的印象是里面只有 C, H, N, O, S 这五个,因此其他如 F 跟 Si 之类的显示呈现,可能不在该模板适用范围。除非要进行对应的扩充。--Anghualee留言2022年10月19日 (三) 00:19 (UTC)