PageSourceSearch

https://doclib-pwa.netlify.app/

html doclib-pwa.netlify.app collected 2026-10-03 10:39:31 UTC 5,910 bytes, 99 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="UTF-8" />
5<!-- This site is hosted on Netlify. Anyone can build and deploy a site
6     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=27f7713b-e40b-4a31-b665-ec5b314b80f0
7     Netlify hosting facts for this site: static/SSR served via Netlify Edge. -->
8    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
9
10    <!-- Primary SEO -->
11    <title>DocLib – Offline PDF Reader & AI Study App | No Sign-Up</title>
12    <meta name="description" content="Read and study PDFs 100% offline. DocLib generates AI flashcards, mindmaps, and summaries from your documents — no account, no cloud uploads, nothing leaves your device. Free PWA." />
13    <meta name="keywords" content="offline pdf reader, pdf reader no account, ai flashcards from pdf, ai mindmap generator, pdf study app, pdf annotator, offline pdf app, pwa pdf library, private pdf reader, free pdf reader" />
14    <meta name="robots" content="index, follow, max-image-preview:large" />
15    <meta name="author" content="nileshkr17" />
16    <link rel="canonical" href="https://doclib.pro/" />
17
18    <!-- Open Graph -->
19    <meta property="og:type" content="website" />
20    <meta property="og:url" content="https://doclib.pro/" />
21    <meta property="og:title" content="DocLib – Offline PDF Reader & AI Study App | No Sign-Up" />
22    <meta property="og:description" content="Read and study PDFs 100% offline. Generate AI flashcards, mindmaps, and summaries — no account, no cloud uploads, nothing leaves your device." />
23    <meta property="og:image" content="https://doclib.pro/metash.png" />
24    <meta property="og:image:secure_url" content="https://doclib.pro/metash.png" />
25    <meta property="og:image:type" content="image/png" />
26    <meta property="og:image:width" content="760" />
27    <meta property="og:image:height" content="443" />
28    <meta property="og:image:alt" content="DocLib — your PDF library, built for offline." />
29    <meta property="og:site_name" content="DocLib by nileshkr17" />
30    <meta property="og:locale" content="en_US" />
31
32    <!-- Twitter Card -->
33    <meta name="twitter:card" content="summary_large_image" />
34    <meta name="twitter:title" content="DocLib – Offline PDF Reader & AI Study App | No Sign-Up" />
35    <meta name="twitter:description" content="Read and study PDFs 100% offline. Generate AI flashcards, mindmaps, and summaries — no account, no cloud uploads." />
36    <meta name="twitter:image" content="https://doclib.pro/metash.png" />
37    <meta name="twitter:image:alt" content="DocLib — your PDF library, built for offline." />
38    <meta name="twitter:creator" content="@nileshkr17" />
39    <meta name="twitter:site" content="@nileshkr17" />
40
41    <!-- PWA / App meta -->
42    <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)" />
43    <meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)" />
44    <meta name="apple-mobile-web-app-capable" content="yes" />
45    <meta name="mobile-web-app-capable" content="yes" />
46    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
47    <meta name="apple-mobile-web-app-title" content="DocLib" />
48    <link rel="manifest" href="/manifest.webmanifest" />
49    <link rel="icon" type="image/png" href="/favicons2.png" />
50    <link rel="apple-touch-icon" href="/icons/icon-192.png" />
51
52    <!-- Structured data -->
53    
53<script src="/structured-data.js" defer></script>
53
54
55    <!-- Prevent flash of unstyled content: apply dark class before first paint -->
56    
56<script src="/theme-init.js"></script>
56
57
58    <!-- Purge any stale service worker that was registered with Vite dev-mode
59         source paths in its precache (/@vite/, /src/main.jsx, etc.).
60         Runs synchronously before app boots; reloads once after cleanup. -->
61    
61<script>
62      if ('serviceWorker' in navigator) {
63        caches.keys().then(function(keys) {
64          var precacheKey = keys.find(function(k) { return k.startsWith('workbox-precache') })
65          if (!precacheKey) return
66          caches.open(precacheKey).then(function(cache) {
67            cache.keys().then(function(entries) {
68              var stale = entries.some(function(e) {
69                return e.url.includes('%40vite') || e.url.includes('/@vite') ||
70                       e.url.includes('/src/main.jsx') || e.url.includes('%40react-refresh')
71              })
72              if (!stale) return
73              Promise.all(keys.map(function(k) { return caches.delete(k) }))
74                .then(function() {
75                  return navigator.serviceWorker.getRegistrations()
76                })
77                .then(function(regs) {
78                  return Promise.all(regs.map(function(r) { return r.unregister() }))
79                })
80                .then(function() { location.reload() })
81            })
82          })
83        })
84      }
85    </script>
85
86    <meta name="strix-verification" content="strix-verify-267b034f5aface598001aacba5084091">
87    
87<script type="module" crossorigin src="/assets/main-riMFWzPf.js"></script>
87
88    <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-CNC7AqOf.js">
89    <link rel="modulepreload" crossorigin href="/assets/vendor-db-CkwS-i-d.js">
90    <link rel="modulepreload" crossorigin href="/assets/vendor-react-BI9LjRX-.js">
91    <link rel="modulepreload" crossorigin href="/assets/vendor-motion-Ct4c8Dy8.js">
92    <link rel="modulepreload" crossorigin href="/assets/vendor-pdf-B79UQIga.js">
93    <link rel="modulepreload" crossorigin href="/assets/src-N6bITWNv.js">
94    <link rel="stylesheet" crossorigin href="/assets/src-4B2mJeLF.css">
95  <link rel="manifest" href="/manifest.webmanifest">
95<script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script>
95</head>
96  <body>
97    <div id="root"></div>
98  </body>
99</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.