Загрузка локального js-файла при передаче html-строки в SwiftUI

#swift #swiftui

#swift #swiftui

Вопрос:

Я хочу показать некоторый код в представлении SwiftUI и хотел бы воспользоваться выделением кода highlight.js . Таким образом, я пишу что-то вроде этого:

 import SwiftUI

struct Test: View {
    var body: some View {
        VStack {
            HTMLText(html: """
            <html>
            <head>
            <link rel="stylesheet" href="highlight/styles/nord.css">
            <script src="highlight/highlight.pack.js"></script>
            <script>hljs.initHighlightingOnLoad();</script>
            </head>
            <body>
            <pre><code class="latex">
            Some $a^n$ \TeX code
            </code></pre>
            </body>
            </html>
            """)
        }
    }
}

struct Test_Previews: PreviewProvider {
    static var previews: some View {
        Test()
    }
}
 

highlight.pack.js И nord.js находятся в локальной папке с именем highlight . Я скопировал и добавил эту папку в свой проект Xcode, но приведенный выше код не имеет никакого эффекта (если я вместо этого создаю локальный .html файл, он отображается правильно, но содержимое этого файла должно быть динамическим, и, следовательно, мне нужно сделать это в моем проекте). Каков правильный способ добавить эти файлы в мой проект, чтобы html код мог найти эти .js файлы?

Комментарии:

1. укажите полный путь к файлам, а не просто короткий путь.

2. @SaurabhPrajapati Вы имеете в виду абсолютный путь на моем Mac?

3. Нет, путь из проекта. например, Bundle.main.path(forResource: OfType:)

4. @SaurabhPrajapati Я думаю, что я ошибся: <link rel="stylesheet" href="(Bundle.main.path(forResource: "nord", ofType: "css"))"> выдает некоторую ошибку во время выполнения. Как правильно это написать?

5. Убедитесь, что файл добавлен в project и .path(forResource не возвращает nil