# Source Viewer — Tips & Tricks

> Tricks for the Source Viewer: what the proxy sees, why private URLs fail, the manual language choice, beautify limits, and combining it with other tools.

Source: https://www.jpkc.com/db/en/tools/source/tips/

Back to the overview: [Source Viewer](https://www.jpkc.com/db/en/tools/source/) · Open the tool live: [www.jpkc.com/tools/source/](https://www.jpkc.com/tools/source/)

The [manual](https://www.jpkc.com/db/en/tools/source/manual/) explains every function, the [examples](https://www.jpkc.com/db/en/tools/source/examples/) show the workflows. This page is about what both assume but rarely state: where the pitfalls are, what the proxy actually sees, and how the Source Viewer plays with other tools. The interface is in English, so the real button and menu names are given in their original spelling.

## What the proxy sees — and what it doesn't

- **The fetch is by the JPKCom server, not your browser.** When loading a URL (Load, SEO, Analyze connection) a server-side proxy retrieves the page. The target page therefore sees a request from the JPKCom server with its user agent — **not your IP address**. That's good for privacy, but it also means: no personalized, logged-in, or cookie-dependent view.
- **Only the delivered raw HTML, no rendered DOM.** Whatever a page builds later via JavaScript in the browser — content, meta data, entire SPA interfaces — does not appear in the loaded source. A client-rendered app often delivers little more than an empty skeleton. That's not a tool bug; it's the same reason crawlers struggle with such pages.
- **Private and internal URLs don't work.** For SSRF protection the proxy blocks private, local, and internal IP addresses; only public **HTTP/HTTPS** addresses are allowed. A local dev instance, `localhost`, or an intranet page can't be loaded — either expose it via a public staging domain or use **Expert Mode** with a local proxy.
- **Large pages get truncated, rapid clicking gets throttled.** A size limit of roughly **950 KB** and a **15-second** timeout apply; the URL buttons share a throttle of **about one request per second** (otherwise the "Please wait …" note). For very large files the loaded source may therefore be incomplete.

## The language choice is manual — remember that

- **There is no content-based auto-detection.** You pick the language mode actively. If the highlighting looks "wrong", it's almost always the language not yet being switched.
- **After every URL load the language is HTML.** Whether you loaded a `.css`, `.js`, `.json`, or `.yml` — the editor assumes HTML first. Switch to the right language by hand afterward, or CSS rules, say, will look like unstructured text.
- **Language and content are saved.** Both go into local browser storage and are back on your next visit — handy, but bear in mind: on a shared machine your last state sits visibly in the editor. **Clear** tidies up.

## Use beautify and conversion well

- **Beautify is language-dependent.** Only the **CSS**, **HTML**, or **JavaScript** routines run. For any other language little useful happens — pick the matching mode first. For minified/obfuscated JS the bundled unpackers kick in, so packed code becomes readable again.
- **HTML → Markdown produces frontmatter.** The converter pulls a YAML frontmatter block from the `<head>` (title, description, OG, Twitter …) and prepends it. If you only want the body text without frontmatter, use the **plain-text** button instead of the Markdown button.
- **Preview is only for text and Markdown.** For all other languages the preview button is disabled — so switch to **Markdown** first, then the fullscreen preview renders (with highlighted code blocks and the frontmatter as a `yaml` block).

## No AI in the tool — but AI-friendly

The Source Viewer uses **no** AI itself: no model, no automatic detection, no generation. The HTML-to-Markdown function is merely **AI-friendly** because Markdown is lower in noise than HTML and makes a good compact source for a language model. So don't expect "intelligent" language or content detection — everything is deterministic and driven by you.

## Combine with other JPKCom tools

The Source Viewer is a good all-rounder — for sharply defined tasks there are more specialized tools:

- **[SEO & GEO Analyzer](https://www.jpkc.com/db/en/tools/seo/)** — when you want the full, scored analysis of a URL instead of a compact Markdown report (two scores, tabs, SSL, redirects, structured data). Uses the same proxy and the same ACE editor in its *Source Code* tab.
- **[Beautify](https://www.jpkc.com/db/en/tools/beautify/)** — the dedicated formatter and deobfuscator for JavaScript, CSS, and HTML.
- **[Compiler](https://www.jpkc.com/db/en/tools/compiler/)** — compile SASS/SCSS and minify and beautify HTML/JS/CSS when the editor beautify isn't enough.
- **[Playground](https://www.jpkc.com/db/en/tools/playground/)** — when you want to run HTML/CSS/JavaScript live, not just view it.
- **[Markdown Editor](https://www.jpkc.com/db/en/tools/md/)** — to comfortably keep writing the result you got from HTML-to-Markdown.

---

There's more context elsewhere: the [overview](https://www.jpkc.com/db/en/tools/source/) for the big picture, the [manual](https://www.jpkc.com/db/en/tools/source/manual/) for every function, and the [examples](https://www.jpkc.com/db/en/tools/source/examples/) for the step-by-step workflows. You can try everything directly in the [tool](https://www.jpkc.com/tools/source/).

