gugutu / Anki-Note-Linker

Link Anki notes to build knowledge network
https://ankiweb.net/shared/info/1077002392
GNU Affero General Public License v3.0
28 stars 3 forks source link

Modified README File: Adaptation javascript code for ankimobile(iOS) #9

Closed PrentissLiu closed 5 months ago

PrentissLiu commented 5 months ago

对ankimobile适配javascript代码,解决了Ankimobile(iOS)上使用的无法正常显示卡片的问题。

gugutu commented 5 months ago

您好,非常感谢您提交的pr! 我研究了一下,文档中默认提供的 JavaScript 代码使用了与苹果的 Safari 浏览器不兼容的API,导致代码无法在 AnkiMobile 正常工作

不过,您提交的代码似乎会导致以下问题:

我重新实现了一个方案,应当同时能在苹果、安卓和PC上兼容运行:

  1. 给每个笔记字段加上class属性"linkRender",也可以自定义名称
    <div class="linkRender">{{Front}}</div>
    <div class="linkRender">{{Back}}</div>
    <div class="linkRender">{{Addition}}</div>
  2. 粘贴以下代码到链接模版末尾
    <script>
    try { AnkiNoteLinkerIsActive } catch (e) {
        for (const ele of document.getElementsByClassName("linkRender")) {
            ele.innerHTML = ele.innerHTML
                .replace(/\[((?:[^\[]|\\\[)*?)\|nid\d{13}\]/g, (match, title) => title.replace(/\\\[/g, '['))
        }
    }
    </script>

    不过我手上没有IOS设备,无法进行测试,您可以试一下这个方案是否有效,可以的话我就把这个方案更新进文档

PrentissLiu commented 5 months ago

经过iOS版本AnkiMobile 24.04版本的测试,这个方案有效。所有的字段可以添加同一个class属性,这无疑是最好的解决方案,谢谢您的跟进!测试图: IMG_4781.jpg