模板討論:MolFormNav

由Jimmy-bot在話題{{MolFormDisambigNav}}的化學式上作出的最新留言:2 年前


能否建立一個類似{{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)
返回 "MolFormNav" 頁面。