[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f-y6O1fW6NknXjKBR1UTchxQWcTdQmvz3t3X4MRQdJWw":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"jonhenshaw","Coywolf","https:\u002F\u002Fprofiles.wordpress.org\u002Fjonhenshaw\u002F",3,0,100,30,94,"2026-08-29T00:14:21.014Z",[14,36,54],{"slug":15,"name":16,"version":17,"author":18,"author_profile":6,"description":19,"short_description":20,"active_installs":8,"downloaded":21,"rating":8,"num_ratings":8,"last_updated":22,"tested_up_to":23,"requires_at_least":24,"requires_php":25,"tags":26,"homepage":32,"download_link":33,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":34,"fetched_at":35},"coywolf-code-block-enhancer","Coywolf Code Block Enhancer","1.0.57","Jon Henshaw","\u003Cp>Coywolf Code Block Enhancer extends the built-in \u003Ccode>core\u002Fcode\u003C\u002Fcode> block. In the editor\u003Cbr \u002F>\nit adds a “Code language” dropdown to the block sidebar; on the front end\u003Cbr \u002F>\nit highlights the code with Prism.js using a custom token palette, prints\u003Cbr \u002F>\nthe language name as a small label on the block, and pins a\u003Cbr \u002F>\ncopy-to-clipboard button to the top-right corner.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Adds a “Code language” dropdown to the core Code block’s sidebar. A\u003Cbr \u002F>\nbaseline of 9 languages (Bash, CSS, HTML\u002FMarkup, JavaScript, JSON,\u003Cbr \u002F>\nPHP, Python, SQL, YAML) is always loaded; an additional 40 grammars\u003Cbr \u002F>\ncan be toggled on via \u003Cstrong>Language packs\u003C\u002Fstrong> in Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Code Blocks\u003Cbr \u002F>\n(Web\u002FApp dev — TypeScript, JSX\u002FTSX, SCSS, Sass, Less, GraphQL — is\u003Cbr \u002F>\nenabled by default).\u003C\u002Fli>\n\u003Cli>Highlights code on the front end with Prism.js. Pick from 45 bundled\u003Cbr \u002F>\nthemes — the 8 stock Prism themes (Prism Default, Coy, Dark, Funky,\u003Cbr \u002F>\nOkaidia, Solarized Light, Tomorrow Night, Twilight) plus 37 community\u003Cbr \u002F>\nthemes from PrismJS\u002Fprism-themes (a11y Dark, Atom Dark, Dracula,\u003Cbr \u002F>\nNord, One Dark, Night Owl, Synthwave ’84, Gruvbox, Material, VS Code\u003Cbr \u002F>\nDark+, and more) — or the bundled \u003Cstrong>Default\u003C\u002Fstrong> palette (selected on\u003Cbr \u002F>\nfirst install).\u003C\u002Fli>\n\u003Cli>Adds a small language label in the top-left of each highlighted block\u003Cbr \u002F>\n(only when a language is set).\u003C\u002Fli>\n\u003Cli>Adds an accessible copy-to-clipboard button — \u003Ccode>aria-label\u003C\u002Fcode>, a polite\u003Cbr \u002F>\nstatus region that announces “Copied to clipboard,” and a visible “✓”\u003Cbr \u002F>\nstate for two seconds after a successful copy. Falls back to\u003Cbr \u002F>\n  document.execCommand(‘copy’) on non-HTTPS or older browsers.\u003C\u002Fli>\n\u003Cli>Assets load only on singular posts\u002Fpages that contain a code block;\u003Cbr \u002F>\nPrism core and grammars are loaded with the \u003Ccode>defer\u003C\u002Fcode> strategy so they\u003Cbr \u002F>\nnever block rendering.\u003C\u002Fli>\n\u003Cli>Dark-mode aware out of the box — with the bundled \u003Cstrong>Default — Auto\u003C\u002Fstrong>\u003Cbr \u002F>\ntheme (selected on first install), code blocks follow each visitor’s\u003Cbr \u002F>\n  prefers-color-scheme automatically. Override from\u003Cbr \u002F>\n\u003Cstrong>Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Code Blocks\u003C\u002Fstrong> by switching to \u003Cstrong>Default — Always light\u003C\u002Fstrong> \u002F\u003Cbr \u002F>\n\u003Cstrong>Always dark\u003C\u002Fstrong>, or by picking any of the static Prism themes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Cp>The chosen language is stored as a \u003Ccode>language\u003C\u002Fcode> block attribute on\u003Cbr \u002F>\n    core\u002Fcode, which lives in the block delimiter comment rather than the\u003Cbr \u002F>\nsaved markup. That means blocks without a language stay valid and\u003Cbr \u002F>\nexisting content is never migrated.\u003C\u002Fp>\n\u003Cp>On render, the plugin uses \u003Ccode>WP_HTML_Tag_Processor\u003C\u002Fcode> to add \u003Ccode>data-language\u003C\u002Fcode>\u003Cbr \u002F>\nto the \u003Ccode>\u003Cpre>\u003C\u002Fcode> and \u003Ccode>language-xxx\u003C\u002Fcode> to the \u003Ccode>\u003Ccode>\u003C\u002Fcode> server-side — so KSES\u003Cbr \u002F>\nwon’t strip \u003Ccode>data-*\u003C\u002Fcode> attributes for non-admin authors, and there is no\u003Cbr \u002F>\nblock-validation churn.\u003C\u002Fp>\n\u003Cp>Prism core and the per-language grammars are bundled under\u003Cbr \u002F>\n    assets\u002Fprism\u002F at v1.30.0 (MIT — see \u003Ccode>assets\u002Fprism\u002FLICENSE.txt\u003C\u002Fcode>). They\u003Cbr \u002F>\nregister as deferred scripts with explicit dependency ordering (e.g.\u003Cbr \u002F>\n    markup-templating before \u003Ccode>php\u003C\u002Fcode>, \u003Ccode>clike\u003C\u002Fcode> before languages that extend\u003Cbr \u002F>\nit). The copy-button script depends on the last grammar in the chain,\u003Cbr \u002F>\nso all of Prism is present before the copy UI is wired up. Reading\u003Cbr \u002F>\n    code.textContent returns the original source even after Prism wraps\u003Cbr \u002F>\ntokens in spans, so the copied text is unaffected by highlighting.\u003C\u002Fp>\n\u003Cp>Self-hosting Prism (rather than loading from a public CDN) keeps the\u003Cbr \u002F>\nthird-party-script supply chain off the plugin’s surface and means the\u003Cbr \u002F>\nplugin works on sites with strict CSPs or no external egress.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>Privacy-first: this plugin includes no analytics, no tracking, and no data gathering. Nothing about you, your site, or your visitors is ever collected or sent anywhere.\u003C\u002Fp>\n","Syntax highlighting and a copy-to-clipboard button for the native WordPress Code block, plus a language picker in the editor sidebar.",81,"2026-06-15T00:28:00.000Z","7.0.2","6.3","7.4",[27,28,29,30,31],"code","copy-code","gutenberg","prism","syntax-highlighting","https:\u002F\u002Fcoywolf.com\u002Fnotes\u002Fcode-block-enhancer-syntax-highlighter-and-code-copier-plugin-for-native-wordpress-code-blocks\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcoywolf-code-block-enhancer.1.0.57.zip",null,"2026-07-22T17:31:50.256Z",{"slug":37,"name":38,"version":39,"author":18,"author_profile":6,"description":40,"short_description":41,"active_installs":8,"downloaded":42,"rating":9,"num_ratings":43,"last_updated":44,"tested_up_to":23,"requires_at_least":45,"requires_php":25,"tags":46,"homepage":52,"download_link":53,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":34,"fetched_at":35},"coywolf-seo","Coywolf SEO","1.1.7","\u003Cp>Coywolf SEO is built on a simple idea: an SEO plugin should give you exactly what you need, and nothing more. No upsells, no nags, no bloat, no features you have to turn off — just the essentials, done right, with the plugin doing the heavy lifting in the background.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Site Details — one screen for your site’s identity: name and tagline, whether titles append the site name, the default Open Graph image, whether the site is an Organization (with a full Schema.org property picker) or a Person, the homepage title and description, and schema type defaults for posts and pages.\u003C\u002Fli>\n\u003Cli>Titles — clean titles composed from your settings, with the site name appended only where you turn it on. A force-rewrite option handles themes that build their own title markup.\u003C\u002Fli>\n\u003Cli>Meta description — the homepage uses your description (default: the Tagline), posts and pages use their per-post SEO Description or manual excerpt, and terms use their description. A per-post SEO Description also becomes the excerpt when there is none, so excerpt, meta description, and Open Graph description stay in step. One checkbox turns meta descriptions off entirely.\u003C\u002Fli>\n\u003Cli>Robots meta — index, follow, and the max-preview directives on by default, each toggleable, with per-post Noindex and Nofollow.\u003C\u002Fli>\n\u003Cli>Canonical links — on the homepage, posts, pages, and category and tag archives, with pagination handled and a per-post override.\u003C\u002Fli>\n\u003Cli>SEO section on posts and pages — a panel in the block editor (and a classic meta box) to override the schema page\u002Farticle type, set Noindex\u002FNofollow, or replace the canonical link.\u003C\u002Fli>\n\u003Cli>Duplicate Post — a Duplicate link by each post and page title copies it to a new draft — content, taxonomies, featured image, custom fields, and your SEO settings — with a fresh slug and date, so the copy never competes with the original.\u003C\u002Fli>\n\u003Cli>Table of Contents block — a dynamic table built when the page is served, so it never goes stale: automatic heading anchors, a per-heading exclude toggle, selectable levels (H2–H6), plain, bulleted, or numbered styles, collapsible, smooth scrolling, current-section highlighting, and a scroll offset for sticky headers. A Yoast table-of-contents block converts in one click, and after you switch from Yoast a banner offers to replace every Yoast table of contents at once through a Preview\u002FReplace modal that carries each one’s title, heading level, level range, and list style across.\u003C\u002Fli>\n\u003Cli>Heading anchors — every content heading gets a stable “jump-” prefixed id, set on the heading block as you write so you can link to it from elsewhere in the post straight away with the normal link tool. Anything published without one still gets its anchor when the page is served, and your own HTML anchors are always kept. One checkbox, on by default.\u003C\u002Fli>\n\u003Cli>Mobile alternative image — the core Image block gains a mobile-specific image served below 768px through a real picture-element media query (art direction, not srcset guesswork). The breakpoint is filterable.\u003C\u002Fli>\n\u003Cli>Schema markup — one JSON-LD graph per page: WebSite, your Organization or Person as the publisher, the typed WebPage and Article with its author, and CollectionPage on category and tag archives.\u003C\u002Fli>\n\u003Cli>Authors — import a user’s details as Schema.org Person properties, add anything from the full Person catalog, and use it as the author in Article markup.\u003C\u002Fli>\n\u003Cli>Open Graph — og: tags on the homepage, posts, pages, and term archives, with the featured image falling back to your default. No Twitter\u002FX tags — X reads Open Graph.\u003C\u002Fli>\n\u003Cli>Access rights — choose whether Editors can manage the plugin alongside Administrators.\u003C\u002Fli>\n\u003Cli>Takes over from other SEO plugins — with Yoast SEO, Rank Math, All in One SEO, SEOPress, or The SEO Framework active, their front-end output and edit-screen boxes are suppressed through each plugin’s own switches, so nothing is duplicated while you migrate. Their sitemaps and redirects keep running.\u003C\u002Fli>\n\u003Cli>Hide the category prefix — serve category archives at \u002Fnews\u002F instead of \u002Fcategory\u002Fnews\u002F, with 301 redirects from the old URLs.\u003C\u002Fli>\n\u003Cli>IndexNow — ping Bing the moment a post or page is published, updated, or deleted. The site key is generated for you and served virtually.\u003C\u002Fli>\n\u003Cli>Native sitemap exclusions — drop the Posts, Pages, Categories, or Users sitemaps from WordPress’s own sitemap; everything else stays as WordPress generates it.\u003C\u002Fli>\n\u003Cli>News sitemap — optionally serve a news sitemap of articles from the last 48 hours, with per-post-type and per-category control.\u003C\u002Fli>\n\u003Cli>LLMs.txt and Markdown source endpoints (off by default) — make your site agent-readable: a spec-conformant \u002Fllms.txt index of your public content and a Markdown source for every page at …\u002Findex.html.md, with content negotiation and a head alternate link, built entirely from on-site data with no external calls.\u003C\u002Fli>\n\u003Cli>AI enrichment — bring your own API key for Claude (Anthropic), OpenAI, or Google Gemini and it grounds each post’s main subjects to real Wikidata entities in the Article schema’s about, mentions, and sameAs (identifiers are looked up, never invented). Enrich-all runs use the Batch API at roughly half price with live progress and a cost readout, and optional AI meta descriptions write a short summary per post. Uses WordPress 7.0’s bundled AI client and requires WordPress 7.0 or higher.\u003C\u002Fli>\n\u003Cli>Image Text — AI-generate alt text, captions, titles, and descriptions for Media Library images, one at a time from the block editor or in bulk in the background. It is WCAG-aware (decorative images get empty alt), new text can propagate into the image blocks already in your content, and a “Fix missing image IDs” tool re-attaches Media Library IDs to images inserted without one.\u003C\u002Fli>\n\u003Cli>Redirects — a full redirect manager on one screen: quick-add exact or regex rules (301\u002F302\u002F307\u002F308\u002F410), test any URL before trusting the live site, and watch hit counts. Change a published post’s slug and the editor offers the 301 old-to-new the moment you save; trash a post and the Posts list asks whether to redirect or 410 its URL. When the Redirection plugin is active, Coywolf SEO takes over URL redirects and points you to import its rules.\u003C\u002Fli>\n\u003Cli>Link Manager — inventories every link in your posts and pages with its HTTP response, internal or external type, and where it appears, so broken links and redirects are easy to spot and fix in place or in bulk, with ignore rules. The inventory keeps itself current.\u003C\u002Fli>\n\u003Cli>Robots.txt Manager — manage robots.txt as a table of named, plain-English rules with a guided editor and the bundled Cloudflare Bot Directory, every rule conflict-checked and testable through a PHP port of Google’s open-source Robots.txt matcher (the RFC 9309 reference Googlebot uses). Serve robots.txt virtually or write a real file.\u003C\u002Fli>\n\u003Cli>Import\u002FExport — download the plugin settings, author properties, and redirect rules as JSON and import them on another site. API keys are never exported.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>No new tags on the front end? Purge your page and CDN caches (including host-level edge caching) — cached pages keep serving pre-activation HTML. The plugin purges the common cache plugins on activation, but host and CDN caches are outside its reach.\u003C\u002Fli>\n\u003Cli>No Article schema on a page? Pages default to no Article type (Site Details > Pages); set a default there or override per page in the SEO panel.\u003C\u002Fli>\n\u003Cli>No meta description on a post? By default it comes only from a manual excerpt — turn on AI meta descriptions to generate one automatically, or exclude meta descriptions entirely in Settings.\u003C\u002Fli>\n\u003Cli>Nothing at all? The theme must call wp_head() — all output renders there.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>Privacy-first: this plugin includes no analytics, no tracking, and no data gathering — nothing about you, your site, or your visitors is ever collected. Outbound connections happen only for features you turn on, and each is detailed under “External services” below: with IndexNow enabled, the changed URL is sent to Microsoft Bing’s IndexNow endpoint on publish, update, and delete; with AI enrichment or Image Text enabled, the post title and content — and, for Image Text, the image itself — are sent to the AI service you choose (Anthropic, OpenAI, or Google Gemini) using your own API key, and extracted entity names are looked up on Wikidata’s public API; and with the Link Manager enabled, the plugin requests the URLs you have linked to in your own content to check whether they still work. Nothing else, nowhere else.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin can connect to the third-party services below. Each is optional and is contacted only when you enable the feature that uses it; none are contacted on a default install.\u003C\u002Fp>\n\u003Cp>AI provider — Anthropic, OpenAI, or Google Gemini (you choose one)\u003C\u002Fp>\n\u003Cp>Used by AI Schema enrichment, AI meta descriptions, and Image Text. When you enable an AI feature and supply your own API key, the plugin sends content to the single service you selected in Settings:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>AI Schema enrichment sends a post or page’s title and text content when it is published or updated (or when you run “Enrich all content”), so the model can extract entity names.\u003C\u002Fli>\n\u003Cli>AI meta descriptions, when enabled, send a post’s content on publish\u002Fupdate to generate a short summary.\u003C\u002Fli>\n\u003Cli>Image Text sends the image (and the surrounding post text for context) when you generate text for an image or run the bulk job.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Requests are authenticated with the API key you provide and are sent only to the one service you select. Terms and privacy policy for each:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Anthropic (Claude) — Terms: https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fcommercial-terms — Privacy: https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fprivacy\u003C\u002Fli>\n\u003Cli>OpenAI — Terms: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fterms-of-use\u002F — Privacy: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fprivacy-policy\u002F\u003C\u002Fli>\n\u003Cli>Google Gemini API — Terms: https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fterms — Privacy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Wikidata (Wikimedia Foundation)\u003C\u002Fp>\n\u003Cp>Used by AI Schema enrichment to ground entities to real identifiers. The entity-name strings extracted from your content are sent as lookups to Wikidata’s public API (https:\u002F\u002Fwww.wikidata.org\u002Fw\u002Fapi.php); no API key and no personal data are involved. Terms: https:\u002F\u002Ffoundation.wikimedia.org\u002Fwiki\u002FPolicy:Terms_of_Use — Privacy: https:\u002F\u002Ffoundation.wikimedia.org\u002Fwiki\u002FPolicy:Privacy_policy\u003C\u002Fp>\n\u003Cp>IndexNow (Microsoft Bing)\u003C\u002Fp>\n\u003Cp>Used by the IndexNow feature. When enabled, the URL of a post or page you publish, update, or delete — together with the auto-generated site key — is submitted to Bing’s IndexNow endpoint (https:\u002F\u002Fwww.bing.com\u002Findexnow) so search engines can recrawl it promptly. No personal data is sent. About IndexNow: https:\u002F\u002Fwww.indexnow.org\u002F — Microsoft Privacy Statement: https:\u002F\u002Fprivacy.microsoft.com\u002Fprivacystatement\u003C\u002Fp>\n\u003Cp>Link checking (the sites you link to)\u003C\u002Fp>\n\u003Cp>Not a third-party service, noted here for transparency: when the Link Manager is enabled, it sends HTTP HEAD (and, if needed, GET) requests to the URLs you have linked to in your posts and pages to record each link’s HTTP status. Those requests go to the sites you chose to link to — never to Coywolf or any other service — and carry only an ordinary request with a plugin User-Agent; no information about your site or your visitors is transmitted.\u003C\u002Fp>\n","An SEO plugin that has exactly what you need, and nothing more.",168,1,"2026-07-20T15:20:00.000Z","7.0",[47,48,49,50,51],"open-graph","redirects","schema","seo","sitemap","https:\u002F\u002Fcoywolf.com\u002Fnotes\u002Fcoywolf-seo\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcoywolf-seo.1.1.7.zip",{"slug":55,"name":56,"version":57,"author":18,"author_profile":6,"description":58,"short_description":59,"active_installs":8,"downloaded":60,"rating":8,"num_ratings":8,"last_updated":61,"tested_up_to":23,"requires_at_least":24,"requires_php":25,"tags":62,"homepage":68,"download_link":69,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":34,"fetched_at":35},"coywolf-video-manager","Coywolf Video Manager","1.0.58","\u003Cp>Coywolf Video Manager turns the WordPress admin into a control panel for your Cloudflare Stream account. Connect it with a Cloudflare API token and you can browse, search, edit, and upload videos, then embed them anywhere with a block — no trips to the Cloudflare dashboard.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Video block — search your entire Stream library and embed a responsive video in a figure\u002Ffigcaption, or upload a new video to Cloudflare without leaving the editor. Per-block control over size (responsive or max-width), poster (by timestamp or Media Library), start time, and playback options (controls, autoplay, loop, preload, mute, lazy-load).\u003C\u002Fli>\n\u003Cli>Cloudflare Stream player — the official Stream player, with an optional play-button accent color.\u003C\u002Fli>\n\u003Cli>Likes, views & upload date — a YouTube-style row under each video. Cloudflare’s API does not expose likes or views, so the plugin records them locally in WordPress. Displayed likes never exceed the view count.\u003C\u002Fli>\n\u003Cli>Video schema — automatic VideoObject JSON-LD with a large (1200px) thumbnail, description, duration, upload date, and optional view\u002Flike interaction counts. Videos with captions also get a full plain-text transcript and a downloadable caption VTT track (linked straight from Cloudflare, or mirrored into the uploads folder when Cloudflare doesn’t serve it publicly).\u003C\u002Fli>\n\u003Cli>All Videos screen — a table of every video with views, likes, and how many posts and pages embed each one.\u003C\u002Fli>\n\u003Cli>Edit Video screen — rename, add a description (used in schema + the sitemap), set the creator, manage allowed origins, choose the poster (a timestamp with a live preview, or a Media Library image at the recommended size), copy the video ID, and add or AI-generate captions.\u003C\u002Fli>\n\u003Cli>Upload to Cloudflare — upload videos straight from WordPress on the Upload Video screen, or from the block itself when adding a video, then jump to the Edit screen when processing finishes.\u003C\u002Fli>\n\u003Cli>Video XML sitemap — optionally serve \u002Fcoywolf-video-sitemap.xml (named to avoid clashing with Yoast SEO) listing every page and post that embeds a video, with full Google video tags (thumbnail, title, description, content and player URLs, duration, publication date, view count).\u003C\u002Fli>\n\u003Cli>Safe deletes — deleting a video removes its block from any post or page that used it. And if a video was deleted in the Cloudflare dashboard instead, the All Videos screen flags any posts still embedding it and offers a one-click, re-verified cleanup.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Cloudflare API access\u003C\u002Fh3>\n\u003Cp>Settings are locked until you connect a Cloudflare account. You need your Account ID (in the Cloudflare dashboard sidebar) and an API token created at My Profile > API Tokens with the “Account > Stream > Edit” permission. Paste both into Videos > Settings and click Test connection. The token is stored server-side and never exposed to the browser. For better security you can instead define COYWOLF_CVM_API_TOKEN and COYWOLF_CVM_ACCOUNT_ID in wp-config.php (or set matching environment variables) to keep the credentials out of the database. A value saved in Settings takes precedence over the constant; leave the field empty (or use Remove on the token) to fall back to the wp-config.php value.\u003C\u002Fp>\n\u003Ch3>Privacy & third-party services\u003C\u002Fh3>\n\u003Cp>Privacy-first: this plugin includes no analytics, no tracking, and no data gathering — nothing about you, your site, or your visitors is ever collected. Its only outside connection is the service it exists to manage. The plugin connects WordPress to Cloudflare Stream on your behalf. The WordPress server calls the Cloudflare API (api.cloudflare.com) using your API token to list, edit, and manage videos, to upload video files you choose (from the Upload Video screen or the block), and — when you add a video by URL — to have Cloudflare fetch that URL. On the front end, the Cloudflare Stream player SDK loads from embed.cloudflarestream.com and video streams from cloudflarestream.com \u002F videodelivery.net. See Cloudflare’s terms of service at https:\u002F\u002Fwww.cloudflare.com\u002Fwebsite-terms\u002F and privacy policy at https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F.\u003C\u002Fp>\n\u003Ch3>Styling with CSS\u003C\u002Fh3>\n\u003Cp>Style the on-post UI from Videos > Settings > Appearance (with a live preview and a hex color picker), or override it in your theme’s CSS — or both. The block exposes CSS custom properties on the .coywolf-cvm wrapper: –cvm-title-color (default inherit), –cvm-title-size (1rem; name & description), –cvm-title-weight (700; name), –cvm-desc-weight (400; description), –cvm-align (left; aligns the name & description), –cvm-meta-align (left; aligns the like\u002Fviews\u002Fdate row), –cvm-like-color (#0f0f0f; icon\u002Ftext unclicked, also used on hover), –cvm-like-bg (#f2f2f2; background unclicked\u002Fhover, empty in Settings = none), –cvm-like-active (icon\u002Ftext clicked), –cvm-like-active-bg (background clicked), –cvm-meta-color (#606060), –cvm-meta-size (0.9rem), –cvm-radius (0; player corner radius). Example: .coywolf-cvm { –cvm-like-bg:#000; –cvm-like-color:#fff; } Useful classes: .coywolf-cvm, .coywolf-cvm-title, .coywolf-cvm-like, .coywolf-cvm-thumb, .coywolf-cvm-views, .coywolf-cvm-date. An optional light\u002Fdark scheme adds .coywolf-cvm-scheme-dark or .coywolf-cvm-scheme-auto. The plugin’s CSS avoids !important so your theme can override it.\u003C\u002Fp>\n","Manage, embed, and upload Cloudflare Stream videos from WordPress — video block, play\u002Flike tracking, schema, captions, and a video sitemap.",54,"2026-07-17T12:44:00.000Z",[63,64,65,66,67],"cloudflare-stream","video","video-block","video-schema","video-sitemap","https:\u002F\u002Fcoywolf.com\u002Fnotes\u002Fcoywolf-video-manager\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcoywolf-video-manager.1.0.58.zip"]