從 Excel 轉換為 Wiki 表時如何包含超連結?

從 Excel 轉換為 Wiki 表時如何包含超連結?

我使用 Excel 建立包含一列超連結儲存格的表格。現在我想將這些資料轉換為 Wiki 表格式。如果我使用 tab2wiki (https://magnustools.toolforge.org/tab2wiki.php),我失去了超連結。有什麼工具可以在轉換中攜帶超連結?

答案1

如果您知道 wiki 程式碼中的表格是什麼樣子,則可以在 Excel 本身中建立幾乎整個表格原始碼。您將在 wiki 原始程式碼中新增的表格的開頭和結尾。例如,建立超連結類似於 A1 = [[, B1 =目標文章名稱,C1 = ]],D1 == A1&B1&C1

答案2

最終,最好的做法是tab2wiki透過連結處理支援來擴展該工具(原始碼這裡),特別是考慮到過去幾年通用頂級域名(TLD)的爆炸式增長。沒有什麼比編寫專門建立的程式碼來處理該問題更好的了,這比這個有限的解決方案(下面詳細介紹)可以處理的更複雜。

話雖這麼說,我能夠用正規表示式和 Perl 組合一些東西可能根據您的條件,做您需要的事情,至少如果您可以存取 Linux,或者可以將此方法適應不同的環境。我相信記事本++,在 Windows 上可用,在其查找替換工具中支援正則表達式,您也許可以調整此方法以使用帶有以下正則表達式的接口(即,將 的輸出粘貼tab2wiki到notepad++ 中,然後在其查找替換中使用正規表示式)。

首先,輸入,提供給tab2wiki

lol wut noway   asdf
1   no way https://www.google.com so cool https://test.net  qwer    zxcv
2       http://kagi.org sd
3   fd  d   https://netflix.org
4   fdasf   f   http://www.apple.org

當貼到時tab2wiki會產生以下文字:

{| border="1" class="sortable"
!lol!!wut!!noway!!asdf
|-
|1||no way https://www.google.com so cool https://test.net||qwer||zxcv
|-
|2||||http://kagi.org||sd
|-
|3||fd||d||https://netflix.org
|-
|4||fdasf||f||http://www.apple.org
|}

此範例包括具有多個連結的儲存格、在最末端具有連結的結束儲存格以及空白儲存格。

將此文件保存在某處,a /tmp/testwikifile,然後使用perl的正則表達式引擎執行以下命令,遍歷並粘貼每個鏈接周圍的[和:]

cat /tmp/testtable3 | perl -p -e 's/(http.*?)\.(com|org|net)/\[\1.\2\]/gm'

輸出:

{| border="1" class="sortable"
!lol!!wut!!noway!!asdf
|-
|1||no way [https://www.google.com] so cool [https://test.net]||qwer||zxcv
|-
|2||||[http://kagi.org]||sd
|-
|3||fd||d||[https://netflix.org]
|-
|4||fdasf||f||[http://www.apple.org]
|}

限制:

  1. 連結必須http至少以
  2. 需要知道連結的頂級域 (TLD) 列表

正規表示式的詳細資訊:

此正規表示式's/(http.*?)\.(com|org|net)/\[\1.\2\]/g'可以細分如下:

  1. 用新字串 a la 取代輸入字串s/start/replacement/,並全域執行此操作g(查找所有匹配項)。
  2. 搜尋http加上其他任何內容.*並執行它懶洋洋 ?。然後找到一個句點,然後找到、或via\.之一。這會建立兩個捕獲組,然後我們可以在替換中使用它們。comorgnet(com|org|net)
  3. 替換為\[\1.\2\],是從到 期間的\1所有內容,並且是、、 或之一。因此,“在這兩個匹配之間放置一個句點來重新建立鏈接,並用左括號和右括號填充鏈接。”http\2comorgnet.[]

相關內容