|
3 | 3 | <head> |
4 | 4 | <meta charset="UTF-8"> |
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
6 | | - <!-- DNS Prefetch & Preconnect CDN Origins to Warm Up Latency --> |
7 | | - <link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin> |
8 | | - <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin> |
9 | | - <link rel="dns-prefetch" href="https://cdnjs.cloudflare.com"> |
10 | | - <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"> |
11 | | - |
12 | | - <!-- Canonical Link --> |
13 | | - <link rel="canonical" href="https://markdownviewer.pages.dev/"> |
14 | | - |
15 | | - <!-- Multilingual Hreflang Tags for Search Crawlers --> |
16 | | - <link rel="alternate" hreflang="x-default" href="https://markdownviewer.pages.dev/" /> |
17 | | - <link rel="alternate" hreflang="en" href="https://markdownviewer.pages.dev/?lang=en" /> |
18 | | - <link rel="alternate" hreflang="zh-Hans" href="https://markdownviewer.pages.dev/?lang=zh" /> |
19 | | - <link rel="alternate" hreflang="ja" href="https://markdownviewer.pages.dev/?lang=ja" /> |
20 | | - <link rel="alternate" hreflang="ko" href="https://markdownviewer.pages.dev/?lang=ko" /> |
21 | | - <link rel="alternate" hreflang="pt-BR" href="https://markdownviewer.pages.dev/?lang=pt" /> |
22 | | - <!-- Asian Search Engine Verification Meta Tags --> |
23 | | - <meta name="baidu-site-verification" content="baidu_verification_code_placeholder" /> |
24 | | - <meta name="naver-site-verification" content="naver_verification_code_placeholder" /> |
| 6 | + <!-- PERF-015: Preload critical-path resources for faster discovery --> |
| 7 | + <link rel="preload" href="/styles.css" as="style"> |
| 8 | + <link rel="preload" href="script.js" as="script"> |
| 9 | + |
25 | 10 | <!-- PWA Web Manifest --> |
26 | | - <link rel="manifest" href="manifest.json"> |
27 | | - |
28 | | - <!-- Primary Meta Tags --> |
29 | | - <meta name="title" content="Markdown Viewer"> |
30 | | - <meta name="description" content="Markdown Viewer is a powerful GitHub-style Markdown rendering tool with live preview, LaTeX math, Mermaid diagrams, syntax highlighting, dark mode, and export options to PDF, HTML, and MD—all fully client-side and secure."> |
31 | | - <meta name="keywords" content="Markdown Viewer, GitHub-style markdown, live preview, markdown editor, LaTeX support, Mermaid diagrams, PDF export, syntax highlighting, markdown to HTML, secure markdown tool, client-side markdown viewer, ThisIs-Developer, advanced markdown parser, future markdown viewer, next-gen markdown tool"> |
32 | | - <meta name="author" content="ThisIs-Developer"> |
33 | | - <meta name="robots" content="index, follow"> |
34 | | - <meta name="language" content="English"> |
35 | | - <meta name="distribution" content="global"> |
36 | | - <meta name="rating" content="general"> |
37 | | - |
38 | | - <!-- Open Graph / Facebook --> |
39 | | - <meta property="og:type" content="website"> |
40 | | - <meta property="og:url" content="https://markdownviewer.pages.dev/"> |
41 | | - <meta property="og:title" content="Markdown Viewer"> |
42 | | - <meta property="og:description" content="Markdown Viewer is a powerful GitHub-style Markdown rendering tool with live preview, LaTeX math, Mermaid diagrams, syntax highlighting, dark mode, and export options to PDF, HTML, and MD—all fully client-side and secure."> |
43 | | - <meta property="og:image" content="https://markdownviewer.pages.dev/assets/icon.jpg"> |
44 | | - |
45 | | - <!-- Twitter --> |
46 | | - <meta property="twitter:card" content="summary_large_image"> |
47 | | - <meta property="twitter:url" content="https://markdownviewer.pages.dev/"> |
48 | | - <meta property="twitter:title" content="Markdown Viewer"> |
49 | | - <meta property="twitter:description" content="Markdown Viewer is a powerful GitHub-style Markdown rendering tool with live preview, LaTeX math, Mermaid diagrams, syntax highlighting, dark mode, and export options to PDF, HTML, and MD—all fully client-side and secure."> |
50 | | - <meta property="twitter:image" content="https://markdownviewer.pages.dev/assets/icon.jpg"> |
| 11 | + |
51 | 12 |
|
52 | 13 | <!-- JSON-LD Structured Data Schema for Search Rich Snippets --> |
53 | | - <script type="application/ld+json"> |
54 | | - { |
55 | | - "@context": "https://schema.org", |
56 | | - "@type": "WebApplication", |
57 | | - "name": "Markdown Viewer", |
58 | | - "url": "https://markdownviewer.pages.dev/", |
59 | | - "image": "https://markdownviewer.pages.dev/assets/icon.jpg", |
60 | | - "description": "A powerful GitHub-style Markdown rendering tool with live preview, LaTeX, Mermaid, syntax highlighting, and PDF export.", |
61 | | - "applicationCategory": "DeveloperApplication", |
62 | | - "operatingSystem": "All", |
63 | | - "browserRequirements": "Requires HTML5 compatible browser", |
64 | | - "author": { |
65 | | - "@type": "Organization", |
66 | | - "name": "ThisIs-Developer", |
67 | | - "url": "https://github.com/ThisIs-Developer" |
68 | | - }, |
69 | | - "offers": { |
70 | | - "@type": "Offer", |
71 | | - "price": "0.00", |
72 | | - "priceCurrency": "USD" |
73 | | - } |
74 | | - } |
75 | | - </script> |
| 14 | + |
76 | 15 |
|
77 | 16 | <title>Markdown Viewer</title> |
78 | 17 | <link href="/assets/icon.jpg" rel="icon" type="image/jpg"> |
|
88 | 27 | <script src="/libs/highlight.min.js" integrity="sha384-F/bZzf7p3Joyp5psL90p/p89AZJsndkSoGwRpXcZhleCWhd8SnRuoYo4d0yirjJp" crossorigin="anonymous" defer></script> |
89 | 28 | <script src="/libs/purify.min.js" integrity="sha384-3HPB1XT51W3gGRxAmZ+qbZwRpRlFQL632y8x+adAqCr4Wp3TaWwCLSTAJJKbyWEK" crossorigin="anonymous" defer></script> |
90 | 29 | <script src="/libs/FileSaver.min.js" integrity="sha384-PlRSzpewlarQuj5alIadXwjNUX+2eNMKwr0f07ShWYLy8B6TjEbm7ZlcN/ScSbwy" crossorigin="anonymous" defer></script> |
91 | | - <script> |
92 | | - window.MathJax = { |
93 | | - loader: { load: ['[tex]/ams', '[tex]/boldsymbol'] }, |
94 | | - tex: { |
95 | | - inlineMath: [['$', '$'], ['\\(', '\\)']], |
96 | | - displayMath: [['$$', '$$'], ['\\[', '\\]']], |
97 | | - processEscapes: true, |
98 | | - packages: { '[+]': ['ams', 'boldsymbol'] } |
99 | | - } |
100 | | - }; |
101 | | - </script> |
102 | | - <script src="/libs/tex-mml-chtml.min.js" integrity="sha384-M5jmNxKC9EVnuqeMwRHvFuYUE8Hhp0TgBruj/GZRkYtiMrCRgH7yvv5KY+Owi7TW" crossorigin="anonymous" defer></script> |
103 | | - <script src="/libs/mermaid.min.js" integrity="sha384-zkWMJO4sgpPUzyuOgDx8HB/K55glbAwajEpk1Go2NWRuPkPA/wIhoEJTuSkmOYrV" crossorigin="anonymous" defer></script> |
104 | | - <script src="/libs/joypixels.min.js" integrity="sha384-1+n1eMmP5I08CibRJ6JmycJ0hP3G6C0fuUtTb4bEuQgl9uFdS9pnPePfpmrXl9ll" crossorigin="anonymous" defer></script> |
105 | | - <script src="/libs/jspdf.umd.min.js" integrity="sha384-JcnsjUPPylna1s1fvi1u12X5qjY5OL56iySh75FdtrwhO/SWXgMjoVqcKyIIWOLk" crossorigin="anonymous" defer></script> |
106 | | - <script src="/libs/html2canvas.min.js" integrity="sha384-ZZ1pncU3bQe8y31yfZdMFdSpttDoPmOZg2wguVK9almUodir1PghgT0eY7Mrty8H" crossorigin="anonymous" defer></script> |
107 | | - <script src="/libs/pako.min.js" integrity="sha384-rNlaE5fs9dGIjmxWDALQh/RBAaGRYT5ChrzHo6tRfgrZ36iRFAiquP5g41Jsv+0j" crossorigin="anonymous" defer></script> |
| 30 | + <!-- PERF-002: MathJax, Mermaid, JoyPixels, jsPDF, html2canvas, pako are now lazy-loaded by script.js on first use --> |
108 | 31 | <script src="/libs/js-yaml.min.js" integrity="sha384-+pxiN6T7yvpryuJmE1gM9PX7yQit15auDb+ZwwvJOd/4be2Cie5/IuVXgQb/S9du" crossorigin="anonymous" defer></script> |
109 | 32 | </head> |
110 | 33 | <body> |
|
0 commit comments