{
  "_id": "6a26d76024555f66ed5243f3",
  "Package": "shinyseo",
  "Type": "Package",
  "Title": "Search Engine Optimization, Social Metadata, and Site\nVerification Helpers for 'Shiny' Apps",
  "Version": "1.2.0",
  "Authors@R": "person(given=\"Rolf\", family=\"Lindgren\", email=\"rolf@grendel.no\", role = c(\"aut\", \"cre\"))",
  "Author": "Rolf Lindgren [aut, cre]",
  "Maintainer": "Rolf Lindgren <rolf@grendel.no>",
  "URL": "https://CRAN.R-project.org/package=shinyseo,\nhttps://github.com/rolfmblindgren/grendelMeta",
  "BugReports": "https://github.com/rolfmblindgren/grendelMeta/issues",
  "Description": "Utilities for injecting search engine optimization (SEO),\nOpen Graph, Twitter, site verification, and schema.org metadata\ninto 'Shiny' applications from YAML files or named lists.",
  "License": "GPL (>= 3)",
  "Encoding": "UTF-8",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "cmake make libuv1-dev zlib1g-dev",
  "Repository": "https://rolfmblindgren.r-universe.dev",
  "Date/Publication": "2026-06-08 09:19:51 UTC",
  "RemoteUrl": "https://github.com/rolfmblindgren/shinyseo",
  "RemoteRef": "HEAD",
  "RemoteSha": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-08 14:50:39 UTC",
    "User": "root"
  },
  "MD5sum": "c327988f95e749192199b0fc13836389",
  "_user": "rolfmblindgren",
  "_type": "src",
  "_file": "shinyseo_1.2.0.tar.gz",
  "_fileid": "5bbd3a6c8bd295e98397264d99fb8c1236de24389f90ef8484a97690ee9de8e5",
  "_filesize": 138280,
  "_sha256": "5bbd3a6c8bd295e98397264d99fb8c1236de24389f90ef8484a97690ee9de8e5",
  "_created": "2026-06-08T14:50:39.000Z",
  "_published": "2026-06-08T14:53:20.176Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 80123949770,
      "time": 122,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7483887397"
    },
    {
      "job": 80123949306,
      "time": 123,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7483887946"
    },
    {
      "job": 80123949304,
      "time": 120,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7483885511"
    },
    {
      "job": 80123949315,
      "time": 66,
      "config": "macos-release-arm64",
      "r": "",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 80123181888,
      "time": 203,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7483827820"
    },
    {
      "job": 80123949308,
      "time": 110,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7483881608"
    },
    {
      "job": 80123949335,
      "time": 68,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7483861400"
    },
    {
      "job": 80123949435,
      "time": 71,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7483863487"
    },
    {
      "job": 80123949536,
      "time": 73,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7483863936"
    }
  ],
  "_buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/rolfmblindgren/shinyseo",
  "_commit": {
    "id": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
    "author": "Rolf Marvin Bøe Lindgren <rolf@grendel.no>",
    "committer": "Rolf Marvin Bøe Lindgren <rolf@grendel.no>",
    "message": "Add openai_image_generator() as the package's one built-in generator\n\ngenerate_assets() previously required callers to write their own\ngenerator from scratch. OpenAI's image API (gpt-image-1) is a clean\nfit for that contract -- one endpoint, one request shape, raster\nbytes back -- so it's worth shipping as a ready-made generator.\n\nhttr is added as an optional Suggests dependency, loaded via\nrequireNamespace() only when the constructor is called, so it costs\nnothing for callers who don't use OpenAI generation.\n\nThis is deliberately the *only* built-in generator. Claude/Anthropic\nhas no image-generation API (it can see images via vision input and\nwrite SVG/matplotlib code, but cannot generate raster images), so a\n\"Claude generator\" parallel to this one isn't possible as a thin\nwrapper. LLM.md gains a \"Contributing a generator\" section spelling\nout the bar a new built-in must clear (a real image-generation API,\nan optional dependency, the same function(prompt, kind) shape) so\ncommunity contributions on GitHub stay consistent rather than\ngrowing into a long tail of half-working vendor wrappers.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n",
    "time": 1780910391
  },
  "_maintainer": {
    "name": "Rolf Lindgren",
    "email": "rolf@grendel.no",
    "login": "rolfmblindgren",
    "uuid": 2772675
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Suggests"
    },
    {
      "package": "httr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "rolfmblindgren",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-52",
      "n": 3
    },
    {
      "week": "2026-14",
      "n": 2
    },
    {
      "week": "2026-17",
      "n": 8
    },
    {
      "week": "2026-19",
      "n": 8
    },
    {
      "week": "2026-20",
      "n": 3
    },
    {
      "week": "2026-23",
      "n": 12
    },
    {
      "week": "2026-24",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-06-06"
    }
  ],
  "_topics": [
    "metadata",
    "open-graph",
    "schema-org",
    "seo",
    "shiny",
    "twitter-cards"
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "rolfmblindgren",
      "count": 39,
      "uuid": 2772675
    }
  ],
  "_userbio": {
    "uuid": 2772675,
    "type": "user",
    "name": "Rolf Marvin Bøe Lindgren",
    "description": "Interested in behavior, code, and clean interfaces: human or digital. Fan of ACT, Common Lisp, R, UX."
  },
  "_downloads": {
    "count": 480,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/shinyseo"
  },
  "_devurl": "https://github.com/rolfmblindgren/grendelmeta",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/shinyseo.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/rolfmblindgren/shinyseo",
  "_realowner": "rolfmblindgren",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-04-29"
    },
    {
      "version": "0.1.1",
      "date": "2026-06-03"
    }
  ],
  "_exports": [
    "generate_assets",
    "init_meta",
    "openai_image_generator",
    "social_meta",
    "update_meta",
    "write_manifest"
  ],
  "_help": [
    {
      "page": "generate_assets",
      "title": "Generate missing visual assets with a user-supplied LLM or image API",
      "topics": [
        "generate_assets"
      ]
    },
    {
      "page": "init_meta",
      "title": "Interactively create a metadata YAML file",
      "topics": [
        "init_meta"
      ]
    },
    {
      "page": "openai_image_generator",
      "title": "Build a generator that calls OpenAI's image API",
      "topics": [
        "openai_image_generator"
      ]
    },
    {
      "page": "social_meta",
      "title": "Inject social metadata into Shiny UI",
      "topics": [
        "social_meta"
      ]
    },
    {
      "page": "update_meta",
      "title": "Reactively update social metadata from the server",
      "topics": [
        "update_meta"
      ]
    },
    {
      "page": "write_manifest",
      "title": "Write a web app manifest to the Shiny www directory",
      "topics": [
        "write_manifest"
      ]
    }
  ],
  "_readme": "https://github.com/rolfmblindgren/shinyseo/raw/HEAD/README.md",
  "_rundeps": [
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "digest",
    "fastmap",
    "fontawesome",
    "fs",
    "glue",
    "htmltools",
    "httpuv",
    "jquerylib",
    "jsonlite",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "promises",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "sass",
    "shiny",
    "sourcetools",
    "withr",
    "xtable",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "API.Rmd",
      "filename": "API.html",
      "title": "API Contract",
      "engine": "knitr::rmarkdown",
      "headings": [
        "API Contract for shinyseo",
        "Exported surface",
        "Return value",
        "Input contract",
        "Required fields",
        "Defaults",
        "Output tags",
        "Field map",
        "Favicon and web app manifest fields",
        "write_manifest()",
        "update_meta() — reactive metadata updates",
        "Parameters",
        "Requirements",
        "Example",
        "Behavior notes"
      ],
      "created": "2026-04-24 11:39:15",
      "modified": "2026-06-06 07:12:10",
      "commits": 7
    },
    {
      "source": "REFERENCE.Rmd",
      "filename": "REFERENCE.html",
      "title": "Reference Guide",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Reference for shinyseo",
        "Main flow",
        "Inputs",
        "Required fields",
        "Defaults",
        "What tags are created",
        "Open Graph",
        "Twitter Card",
        "Bing verification",
        "Schema.org JSON-LD",
        "Custom meta tags",
        "Practical example",
        "Favicon and web app manifest",
        "Reactive metadata with update_meta()",
        "When to use it"
      ],
      "created": "2026-04-24 11:39:15",
      "modified": "2026-06-06 07:12:10",
      "commits": 7
    }
  ],
  "_score": 4.845098040014257,
  "_indexed": true,
  "_nocasepkg": "shinyseo",
  "_universes": [
    "rolfmblindgren"
  ],
  "_previous": "1.1.0",
  "_binaries": [
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.1.0",
      "date": "2026-06-08T10:32:46.000Z",
      "commit": "e4def9cd88f1f2436bda475d09bd8cd539d1a199",
      "fileid": "6074432c7818ae5ac128b4bb6c1667b582151cdbc4a38d9973cd5c7b877ff740",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27131488692"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.2.0",
      "date": "2026-06-08T14:52:48.000Z",
      "distro": "noble",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "4160a0be294eb8151e468e9a878c272d5bd5c4968f121009286be65c2f3b6139",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.2.0",
      "date": "2026-06-08T14:52:48.000Z",
      "distro": "noble",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "b08c9cadc843e941c8830d4ee9146906e62a5cf87e4feb796560f7110eb70339",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.2.0",
      "date": "2026-06-08T14:52:40.000Z",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "0e0900710d0055c9eb851ea13950a5c689a1b8c10854e2be98266f372a4fbfe8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.2.0",
      "date": "2026-06-08T14:52:47.000Z",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "dcda52e93d9875483f5ae79655e4f2c8ec96e98c095713030f7f70cfcf43b396",
      "status": "success",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.2.0",
      "date": "2026-06-08T14:51:50.000Z",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "3d6b26b0b9edaee9b252da1e69df03fe384caee690574c0886eef5af3463781e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.2.0",
      "date": "2026-06-08T14:51:52.000Z",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "c5917002e2f01c71b19a79cb540a49fe94f462be8ba6ac9e06dd779de78f54f4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.2.0",
      "date": "2026-06-08T14:51:53.000Z",
      "commit": "bb481eedbf3f2712f0067225a66d0e2b37c6b5f7",
      "fileid": "0849965c2eb5b9816e5af0bc28ad2f3ac32d6d7e411344a2a82720cce9a93771",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rolfmblindgren/actions/runs/27145815124"
    }
  ]
}