PageSourceSearch

https://rachanaranade.com/

html rachanaranade.com collected 2026-09-24 13:13:43 UTC 12,395 bytes, 192 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="utf-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6    <title>CA Rachana Ranade Stock Market Courses</title>
7
8    <!-- ═══════════════════════════════════════════════════════════════════
9         SEO meta — HARDCODED here on purpose (like the Meta Pixel below).
10         This is a Blazor WASM SPA: real page content renders ~3-5s after the
11         initial HTML, so a crawler that reads only the raw HTML (or renders
12         slowly / catches the "Loading…" state) has no description to use and
13         falls back to scraping visible body text — which is how the "Loading…
14         An unhandled error has occurred" placeholder ended up as the Google
15         snippet. A static description in the initial HTML gives crawlers real
16         text regardless of when/whether the WASM app has finished rendering.
17         ═══════════════════════════════════════════════════════════════════ -->
18    <meta name="description" content="CA Rachana Ranade — India's leading finance educator. Learn stock market investing, technical & fundamental analysis, and personal finance through structured online courses, webinars, and free financial calculators." />
19    <link rel="canonical" href="https://www.rachanaranade.in/" />
20
21    <!-- Open Graph (Facebook / LinkedIn / WhatsApp link previews) -->
22    <meta property="og:type" content="website" />
23    <meta property="og:site_name" content="CA Rachana Ranade" />
24    <meta property="og:title" content="CA Rachana Ranade Stock Market Courses" />
25    <meta property="og:description" content="Learn stock market investing, technical & fundamental analysis, and personal finance from CA Rachana Ranade — India's leading finance educator." />
26    <meta property="og:url" content="https://www.rachanaranade.in/" />
27    <meta property="og:image" content="https://www.rachanaranade.in/apple-touch-icon.png" />
28
29    <!-- Twitter card -->
30    <meta name="twitter:card" content="summary_large_image" />
31    <meta name="twitter:title" content="CA Rachana Ranade Stock Market Courses" />
32    <meta name="twitter:description" content="Learn stock market investing and personal finance from CA Rachana Ranade — India's leading finance educator." />
33    <meta name="twitter:image" content="https://www.rachanaranade.in/apple-touch-icon.png" />
34
35    <!-- Organization + WebSite structured data. Helps Google recognise the site
36         as an official branded entity (knowledge panel) and is a supporting
37         signal for sitelinks — though sitelinks themselves are granted
38         automatically by Google based on site structure/authority, not by any
39         markup. No SearchAction is included because the site has no on-site
40         search page. -->
41    
41<script type="application/ld+json">
42    {
43      "@context": "https://schema.org",
44      "@type": "Organization",
45      "name": "CA Rachana Ranade",
46      "url": "https://www.rachanaranade.in/",
47      "logo": "https://www.rachanaranade.in/apple-touch-icon.png",
48      "description": "CA Rachana Ranade — India's leading finance educator. Stock market investing, technical & fundamental analysis, and personal finance courses.",
49      "sameAs": [
50        "https://www.youtube.com/@CARachanaRanade",
51        "https://www.instagram.com/ca_rachana_ranade/",
52        "https://twitter.com/CA_Rachana"
53      ]
54    }
55    </script>
55
56    
56<script type="application/ld+json">
57    {
58      "@context": "https://schema.org",
59      "@type": "WebSite",
60      "name": "CA Rachana Ranade",
61      "url": "https://www.rachanaranade.in/"
62    }
63    </script>
63
64
65    <base href="/" />
66    <link rel="preconnect" href="https://fonts.googleapis.com" />
67    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
68    <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@400;500;600;700&display=swap" rel="stylesheet" />
69    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
70    <link rel="stylesheet" href="css/app.css" />
71    <link rel="icon" type="image/png" href="favicon.png" />
72    <link rel="stylesheet" href="RachanaAcademy.Client.styles.css" />
73
74    <!-- ═══════════════════════════════════════════════════════════════════
75         Meta Pixel (Facebook Pixel) — Pixel ID: 377456566231495
76         ───────────────────────────────────────────────────────────────────
77         HARDCODED here on purpose (NOT via the admin Script Injections UI).
78         The Script Injection system runs inside Blazor WASM, ~3-5s after the
79         initial HTML response. Meta's pixel-detection scanner reads only the
80         raw initial HTML and does NOT execute JS, so a WASM-injected pixel is
81         invisible to it — Events Manager reports "no pixel found". Hardcoding
82         here makes Meta detect it and fires PageView instantly.
83         (Confirmed: the dynamic Script-Injection approach did NOT work for
84         Meta detection — this hardcoded version is the working one.)
85
86         IMPORTANT — avoid duplicate PageView:
87           • Keep this hardcoded block as the single base pixel, AND
88           • DISABLE/DELETE the "Pixcel code" entry in admin/script-injections.
89         The three action events (AddToCart / AddPaymentInfo / Purchase) fire
90         from js/meta-pixel-interop.js, which only calls fbq('track', …) and
91         relies on THIS init having loaded fbq. If the Pixel ID ever changes,
92         update it in the two places below.
93         ═══════════════════════════════════════════════════════════════════ -->
94    <!-- Facebook Pixel Code -->
95    
95<script>
vendor: 470 bytes, lines 95-104
95
96        !function(f,b,e,v,n,t,s)
97        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
98        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
99        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
100        n.queue=[];t=b.createElement(e);t.async=!0;
101        t.src=v;s=b.getElementsByTagName(e)[0];
102        s.parentNode.insertBefore(t,s)}(window,document,'script',
103        'https://connect.facebook.net/en_US/fbevents.js');
104        fbq('init', '
104377456566231495
vendor: 42 bytes, lines 104-106
104');
105        fbq('track', 'PageView');
106    
106</script>
106
107    <noscript>
108        <img height="1" width="1" style="display:none"
109             src="https://www.facebook.com/tr?id=377456566231495&ev=PageView&noscript=1" />
110    </noscript>
111    <!-- End Facebook Pixel Code -->
112</head>
113<body>
114    <div id="app">
115        <div style="display:flex;justify-content:center;align-items:center;min-height:100vh;background:#fafaf8">
116            <div style="text-align:center">
117                <div style="width:48px;height:48px;border:4px solid #FFC947;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 16px"></div>
118                <p style="font-family:'DM Sans',sans-serif;color:#8a8a8a;font-size:.9rem;letter-spacing:1px">Loading...</p>
119            </div>
120        </div>
121    </div>
122    <div id="blazor-error-ui">
123        An unhandled error has occurred.
124        <a href="" class="reload">Reload</a>
125        <a class="dismiss">&#x1F5D9;</a>
126    </div>
127    <style>
128        @keyframes spin { to { transform: rotate(360deg); } }
129        #blazor-error-ui { background:lightyellow; bottom:0; box-shadow:0 -1px 2px rgba(0,0,0,.2); display:none; left:0; padding:.6rem 1.25rem .7rem; position:fixed; width:100%; z-index:1000; }
130        #blazor-error-ui .dismiss { cursor:pointer; position:absolute; right:.75rem; top:.5rem; }
131    </style>
132    <!-- Blazor WASM — autostart=false. Blazor.start() is called by
133         blazor-boot.js, which is loaded LAST (after all app interop scripts
134         below) so interop objects like CodeEditorInterop are always defined
135         before any component calls them on first render. -->
136    
136<script src="_framework/blazor.webassembly.js" autostart="false"></script>
136
137
138    <!-- ── Razorpay Checkout SDK ── -->
139    
139<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
139
140
141    <!-- ── Video Player: HLS.js + Plyr ── -->
142    
142<script src="https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.4.12/hls.min.js"></script>
142
143    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/plyr/3.7.8/plyr.min.css" />
144    
144<script src="https://cdnjs.cloudflare.com/ajax/libs/plyr/3.7.8/plyr.min.js"></script>
144
145
146    <!-- Quill rich-text editor (admin blog / product descriptions) -->
147    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.7/quill.snow.min.css" />
148    
148<script src="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.7/quill.min.js"></script>
148
149
150    <!-- CodeMirror 5 — syntax-highlighted HTML/JS editor for the admin
151         Content Pages "Body HTML" field. htmlmixed mode highlights embedded
152         
152<script> (JS) and <style> (CSS) too. Loaded from cdnjs (already
153         allowed by CSP). -->
154    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.css" />
155    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/theme/material-darker.min.css" />
156    
156<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.js"></script>
156
157    
157<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/mode/xml/xml.min.js"></script>
157
158    
158<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/mode/javascript/javascript.min.js"></script>
158
159    
159<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/mode/css/css.min.js"></script>
159
160    
160<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/mode/htmlmixed/htmlmixed.min.js"></script>
160
161
162    <!-- ── App Interop scripts ── -->
163    
163<script src="js/crypto-interop.js"></script>
163
164    
164<script src="js/dom-interop.js"></script>
164
165    
165<script src="js/razorpay-interop.js"></script>
165
166    
166<script src="js/player-interop.js?v=quality1"></script>
166
167    
167<script src="js/download-interop.js"></script>
167
168    
168<script src="js/payu-interop.js"></script>
168
169    
169<script src="js/richtext-interop.js"></script>
169
170    <!-- CCAvenue retained for legacy / fallback (no longer the default INR gateway) -->
171    
171<script src="js/ccavenue-interop.js"></script>
171
172    <!-- ── Google Identity Services (GSI) removed — using OAuth 2.0 Authorization Code flow ── -->
173    <!-- Google reCAPTCHA v2 — explicit render mode -->
174    <!-- app-helpers.js defines onRecaptchaApiLoad and MUST load before reCAPTCHA -->
175    
175<script src="js/app-helpers.js"></script>
vendor: 127 bytes, lines 175-177
175
176    <script src="https://www.google.com/recaptcha/api.js?render=explicit&onload=onRecaptchaApiLoad" async defer></script>
177    
177<script src="js/recaptcha-interop.js"></script>
177
178    
178<script src="js/script-injection-interop.js"></script>
178
179    
179<script src="js/dynamic-page-frame.js"></script>
179
180    
180<script src="js/firebase-push-interop.js"></script>
180
181    
181<script src="js/affiliate-interop.js"></script>
181
182    
182<script src="js/meta-pixel-interop.js"></script>
182
183    
183<script src="js/ga4-interop.js"></script>
183
184    
184<script src="js/openai-pixel-interop.js"></script>
184
185
186    <!-- Start Blazor LAST — after every app interop script above has loaded, so
187         interop objects (CodeEditorInterop, DomInterop, etc.) are guaranteed
188         defined before any component invokes them on first render. -->
189    
189<script src="js/blazor-boot.js"></script>
vendor: 1 bytes, line 189
189
190<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"0c038862b4ea40de88e632b433a829ed","r":1,"spa":2}' crossorigin="anonymous"></script>
190
191</body>
192</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.