@cellgit/markdown-render 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +436 -178
  2. package/README.zh-CN.md +530 -0
  3. package/THIRD-PARTY-NOTICES.md +332 -0
  4. package/dist/markdown-render.css +3 -3
  5. package/dist/markdown-render.esm.css +3 -3
  6. package/dist/markdown-render.esm.js +1 -91452
  7. package/dist/markdown-render.html +20 -75
  8. package/dist/markdown-render.js +1 -91457
  9. package/dist/scripts/bridge.js +119 -0
  10. package/dist/scripts/chat-renderer.js +2770 -0
  11. package/dist/scripts/copy.js +155 -0
  12. package/dist/scripts/height-sync.js +205 -0
  13. package/dist/scripts/renderer.js +398 -0
  14. package/ios-example/MarkdownViewController.swift +123 -33
  15. package/ios-example/README.md +2 -0
  16. package/ios-example/SwiftUIMarkdownExample.swift +111 -0
  17. package/package.json +17 -9
  18. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  19. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  20. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  21. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  22. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  23. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  24. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  25. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  26. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  27. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  28. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  29. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  30. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  31. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  32. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  33. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  34. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  35. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  36. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  37. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  38. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  39. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  40. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  41. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  42. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  43. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  44. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  45. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  46. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  47. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  48. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  49. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  50. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  51. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  52. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  53. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  54. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  55. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  56. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  57. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
@@ -1,80 +1,25 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="zh-CN">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
8
+ />
9
+ <meta
10
+ http-equiv="Content-Security-Policy"
11
+ content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self' data:; connect-src 'none'; media-src 'self' data: blob:; object-src 'none'; frame-ancestors 'none'; base-uri 'none'"
12
+ />
6
13
  <title>Markdown Render</title>
7
- <link rel="stylesheet" href="markdown-render.css">
8
- <style>
9
- :root {
10
- color-scheme: light dark;
11
- }
12
- * {
13
- margin: 0;
14
- padding: 0;
15
- box-sizing: border-box;
16
- }
17
- body {
18
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
19
- padding: 16px;
20
- background-color: var(--chat-background);
21
- color: var(--chat-text-color);
22
- -webkit-text-size-adjust: 100%;
23
- }
24
- #markdown-content {
25
- max-width: 100%;
26
- word-wrap: break-word;
27
- }
28
- </style>
29
- </head>
30
- <body>
31
- <div id="markdown-content"></div>
14
+ <link rel="stylesheet" href="markdown-render.css" />
15
+ </head>
16
+ <body>
17
+ <div id="markdown-content" role="main"></div>
18
+ <script src="scripts/bridge.js"></script>
19
+ <script src="scripts/height-sync.js"></script>
20
+ <script src="scripts/copy.js"></script>
32
21
  <script src="markdown-render.js"></script>
33
- <script>
34
- // 暴露给 iOS 的渲染方法
35
- window.renderMarkdown = function(markdown) {
36
- try {
37
- // 使用正确的 API 渲染 markdown
38
- const html = MarkdownRender.renderMarkdown(markdown);
39
- document.getElementById('markdown-content').innerHTML = html;
40
-
41
- // 通知 iOS 渲染完成
42
- if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.renderComplete) {
43
- window.webkit.messageHandlers.renderComplete.postMessage({
44
- success: true,
45
- height: document.body.scrollHeight
46
- });
47
- }
48
- return true;
49
- } catch (error) {
50
- console.error('Render error:', error);
51
- if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.renderComplete) {
52
- window.webkit.messageHandlers.renderComplete.postMessage({
53
- success: false,
54
- error: error.message
55
- });
56
- }
57
- return false;
58
- }
59
- };
60
-
61
- // 获取内容高度
62
- window.getContentHeight = function() {
63
- return document.body.scrollHeight;
64
- };
65
-
66
- // 清空内容
67
- window.clearContent = function() {
68
- const container = document.getElementById('markdown-content');
69
- if (container) {
70
- container.innerHTML = '';
71
- }
72
- };
73
-
74
- // 通知 iOS 页面已准备好
75
- if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.pageReady) {
76
- window.webkit.messageHandlers.pageReady.postMessage({});
77
- }
78
- </script>
79
- </body>
22
+ <script src="scripts/chat-renderer.js"></script>
23
+ <script src="scripts/renderer.js"></script>
24
+ </body>
80
25
  </html>