{"id":5541,"date":"2026-01-07T18:13:53","date_gmt":"2026-01-07T09:13:53","guid":{"rendered":"https:\/\/tomato-made.com\/study\/?p=5541"},"modified":"2026-01-08T12:42:32","modified_gmt":"2026-01-08T03:42:32","slug":"t24","status":"publish","type":"post","link":"https:\/\/tomato-made.com\/study\/market-z\/t24","title":{"rendered":"\u3010\u7121\u6599\u3011\u304b\u308f\u3044\u3044\u2605QR\u30b3\u30fc\u30c9\u4f5c\u6210\u30c4\u30fc\u30eb\uff5c\u30b9\u30de\u30db\u30fbPC\u5bfe\u5fdc"},"content":{"rendered":"<div id=\"sgb-css-id-1\">\n<style>\n  \/* \u25bc \u6295\u7a3f\u8a18\u4e8b\u306e\u30d8\u30c3\u30c0\u30fc\u30a2\u30a4\u30ad\u30e3\u30c3\u30c1\u3092\u975e\u8868\u793a *\/\n.single .post-thumbnail {\n  display: none !important;\n}\n\n \/* \u25bc \u30d1\u30f3\u304f\u305a\u30ea\u30b9\u30c8\u975e\u8868\u793a *\/\n  .breadcrumb {\n    display: none !important;\n  }\n\n  \/* \u25bc \u30ab\u30c6\u30b4\u30ea\u30fc\u30e9\u30d9\u30eb\uff08\u30d8\u30c3\u30c0\u30fc\u4e0b\u30fb\u8a18\u4e8b\u5185\uff09\u975e\u8868\u793a *\/\n  .cat-label,\n  .article-categories {\n    display: none !important;\n  }\n\n\/* \u25bc \u8a18\u4e8b\u30bf\u30a4\u30c8\u30eb\u30fb\u30d1\u30f3\u304f\u305a\u30fb\u30e1\u30bf\u60c5\u5831\u306a\u3069\u306e\u30de\u30fc\u30b8\u30f3\/\u30d1\u30c7\u30a3\u30f3\u30b0\u3092\u9664\u53bb *\/\n.article-header.entry-header,\n.entry-meta,\n.entry-meta.vcard,\n.post-thumbnail {\n  margin-top: 0 !important;\n  padding-top: 0 !important;\n}\n\n\/* \u25bc \u30a2\u30a4\u30ad\u30e3\u30c3\u30c1\u753b\u50cf\u306e\u56f2\u307f\uff08<p class=\"post-thumbnail\">\uff09\u306b\u9699\u9593\u304c\u3042\u308b\u5834\u5408\u306b\u5099\u3048\u3066 *\/\n.post-thumbnail {\n  margin-top: 0 !important;\n  padding-top: 0 !important;\n}\n\n\n\/* \u25bc \u8a18\u4e8b\u30bf\u30a4\u30c8\u30eb\u975e\u8868\u793a\uff08\u5fc5\u8981\u306b\u5fdc\u3058\u3066\uff09 *\/\n  .entry-title {\n    display: none !important;\n  }\n  \/* \u25bc \u6295\u7a3f\u65e5\u6642\u30fb\u30e1\u30bf\u60c5\u5831\u3092\u975e\u8868\u793a *\/\n  .post-meta,\n  .post-date,\n  .entry-meta,\n  .published {\n    display: none !important;\n  }\n<\/style>\n<\/div>\n\n<div id=\"sgb-css-id-2\">\n<p>\u3000<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-3\">\n<p class=\"has-text-align-center has-sango-red-color has-text-color has-link-color wp-elements-0601a97d40557b8d0a6aeec0e814760d\"><strong><span class=\"big\">QR\u30b3\u30fc\u30c9\u4f5c\u6210\u30c4\u30fc\u30eb<\/span><\/strong><\/p>\n<\/div>\n\n\n<!-- \u25bc \u30c8\u30de\u30c8\u30e1\u30a4\u30c9\u98a8\uff1aQR\u30b3\u30fc\u30c9\u4f5c\u6210\uff08\u8a18\u4e8b\u5185\u57cb\u3081\u8fbc\u307f\u5c02\u7528\u30fb\u306f\u307f\u51fa\u3057\u9632\u6b62\u30fb\u4e38\/\u70b9\u30c9\u30c3\u30c8\u5bfe\u5fdc\u30fb\u4e2d\u592e\u30a2\u30a4\u30b3\u30f3\u5bfe\u5fdc\uff09 -->\n<div class=\"tmqr\" id=\"tmqr_app\">\n  <!-- \u4e38\/\u70b9\u30c9\u30c3\u30c8\u5bfe\u5fdc\u30e9\u30a4\u30d6\u30e9\u30ea -->\n  <script src=\"https:\/\/unpkg.com\/qr-code-styling@1.6.0\/lib\/qr-code-styling.js\"><\/script>\n  <!-- PDF\u4fdd\u5b58\u7528\uff08jsPDF\uff09 -->\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/jspdf@2.5.1\/dist\/jspdf.umd.min.js\"><\/script>\n\n  <style>\n    \/* \u2605 \u8a18\u4e8b\u5185\u3067\u53f3\u306b\u306f\u307f\u51fa\u3055\u306a\u3044\u305f\u3081\u306e\u5b89\u5168\u88c5\u7f6e\uff08\u5f37\u5316\u7248\uff09 *\/\n    #tmqr_app, #tmqr_app * { box-sizing: border-box; }\n    #tmqr_app { max-width: 100%; overflow: hidden; }\n\n    \/* WordPress\u8a18\u4e8b\u30a8\u30ea\u30a2\u3067\u306e\u300c\u306f\u307f\u51fa\u3057\u300d\u539f\u56e0\u306b\u306a\u308a\u3084\u3059\u3044\u8981\u7d20\u3092\u5f37\u5236\u7684\u306b\u7e2e\u3081\u308b *\/\n    #tmqr_app img, #tmqr_app canvas, #tmqr_app svg, #tmqr_app iframe,\n    #tmqr_app textarea, #tmqr_app input, #tmqr_app select, #tmqr_app button {\n      max-width: 100%;\n    }\n\n    .tmqr{\n      --tm-rose:#ff4f95;\n      --tm-pink:#ff6fa8;\n      --tm-pink2:#ff9cc7;\n      --tm-bg:#fff7fb;\n      --tm-card:#ffffff;\n      --tm-text:#3a2a33;\n      --tm-muted:#7a5f6b;\n      --tm-border:#ffd2e6;\n      --tm-shadow:0 10px 28px rgba(255,111,168,0.18);\n\n      font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Hiragino Kaku Gothic ProN\", \"Noto Sans JP\", \"Yu Gothic\", sans-serif;\n      color: var(--tm-text);\n      width: 100%;\n      max-width: 100%;\n    }\n\n    \/* \u3069\u3093\u306a\u8a18\u4e8b\u5e45\u3067\u3082\u78ba\u5b9f\u306b\u53ce\u3081\u308b *\/\n    .tmqr .wrap{\n      width:100%;\n      max-width: 920px;\n      margin: 12px auto;\n      padding: 0 10px;\n      overflow: hidden; \/* \u6a2a\u30b9\u30af\u30ed\u30fc\u30eb\u767a\u751f\u9632\u6b62 *\/\n    }\n\n    .tmqr .card{\n      width:100%;\n      max-width:100%;\n      background: linear-gradient(180deg, rgba(255,111,168,0.07), rgba(255,156,199,0.04)), var(--tm-card);\n      border:1px solid var(--tm-border);\n      border-radius: 16px;\n      box-shadow: var(--tm-shadow);\n      padding: 14px;\n      overflow: hidden;\n    }\n\n    .tmqr .grid{\n      display:grid;\n      grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);\n      gap: 12px;\n      align-items:start;\n      width:100%;\n      max-width:100%;\n    }\n    @media (max-width: 860px){\n      .tmqr .grid{ grid-template-columns: 1fr; }\n    }\n\n    .tmqr label{\n      display:block;\n      font-size: 12px;\n      color: var(--tm-muted);\n      margin: 10px 0 6px;\n      font-weight: 900;\n    }\n\n    .tmqr textarea,\n    .tmqr input[type=\"number\"],\n    .tmqr select,\n    .tmqr input[type=\"color\"],\n    .tmqr input[type=\"text\"],\n    .tmqr input[type=\"file\"]{\n      width:100%;\n      max-width:100%;\n      min-width:0;\n      border:1px solid var(--tm-border);\n      border-radius: 12px;\n      padding: 10px 12px;\n      font-size: 14px;\n      outline: none;\n      background:#fff;\n      color: var(--tm-text);\n    }\n    .tmqr textarea{ min-height: 90px; resize: vertical; }\n\n    .tmqr .row{\n      display:grid;\n      grid-template-columns: minmax(0,1fr) minmax(0,1fr);\n      gap:10px;\n      width:100%;\n      max-width:100%;\n    }\n    @media (max-width: 520px){\n      .tmqr .row{ grid-template-columns: 1fr; }\n    }\n\n    .tmqr .btns{\n      display:flex;\n      gap:10px;\n      flex-wrap:wrap;\n      margin-top: 12px;\n      width:100%;\n      max-width:100%;\n    }\n\n    .tmqr button{\n      border:0;\n      border-radius: 999px;\n      padding: 10px 14px;\n      font-weight: 900;\n      cursor:pointer;\n      font-size: 14px;\n      max-width:100%;\n      white-space: nowrap;\n    }\n    .tmqr .btn-main{\n      background: linear-gradient(135deg, var(--tm-rose), var(--tm-pink2));\n      color:#fff;\n      box-shadow: var(--tm-shadow);\n    }\n    .tmqr .btn-sub{\n      background:#fff;\n      border:1px solid var(--tm-border);\n      color: var(--tm-text);\n    }\n\n    .tmqr .colorBox{\n      border:1px solid var(--tm-border);\n      border-radius: 12px;\n      padding: 10px;\n      background:#fff;\n      overflow:hidden;\n    }\n    .tmqr .colorTop{\n      display:flex;\n      align-items:center;\n      gap:10px;\n      flex-wrap:wrap;\n      width:100%;\n    }\n    .tmqr .chip{\n      width:36px;height:36px;border-radius:10px;border:1px solid var(--tm-border);\n      flex:0 0 auto;\n    }\n    .tmqr .swatches{\n      display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;\n      width:100%;\n    }\n    .tmqr .swatch{\n      width:28px;height:28px;border-radius:10px;border:1px solid var(--tm-border);\n      cursor:pointer; flex:0 0 auto;\n    }\n\n    .tmqr .previewBox{\n      width:100%;\n      max-width:100%;\n      border:1px dashed var(--tm-border);\n      border-radius: 16px;\n      background: linear-gradient(180deg, rgba(255,111,168,0.08), rgba(255,156,199,0.04));\n      padding: 14px;\n      display:flex;\n      justify-content:center;\n      align-items:center;\n      overflow:hidden;\n      min-height: 300px;\n    }\n\n    \/* \u2605 \u30d7\u30ec\u30d3\u30e5\u30fc\u5185\u90e8\u3082\u300c\u7d76\u5bfe\u306f\u307f\u51fa\u3055\u306a\u3044\u300d *\/\n    .tmqr .qrHost{\n      max-width:100%;\n      width:100%;\n      display:flex;\n      justify-content:center;\n      overflow:hidden;\n    }\n    .tmqr .qrHost canvas,\n    .tmqr .qrHost img,\n    .tmqr .qrHost svg{\n      max-width:100% !important;\n      height:auto !important;\n      display:block;\n    }\n\n    .tmqr .note{\n      margin-top:10px;\n      font-size:12px;\n      color:var(--tm-muted);\n      line-height:1.55;\n      word-break: break-word;\n    }\n    .tmqr .toast{\n      margin-top: 8px;\n      font-size: 12px;\n      color: #1f7a3a;\n      font-weight: 900;\n      display:none;\n    }\n\n    \/* \u2605 \u2460\u306eplaceholder\u3092\u8584\u304f *\/\n    #tmqr_text::placeholder{\n      color: rgba(122,95,107,0.55);\n    }\n  <\/style>\n\n  <div class=\"wrap\">\n    <div class=\"card\">\n      <div class=\"grid\">\n\n        <!-- \u5de6\uff1a\u64cd\u4f5c -->\n        <div>\n          <label>\u2460 QR\u306b\u3057\u305f\u3044\u5185\u5bb9\uff08URL \/ \u6587\u7ae0\uff09<\/label>\n          <textarea id=\"tmqr_text\" placeholder=\"https:\/\/tomato-made.com\/\"><\/textarea>\n\n          <div class=\"row\">\n            <div>\n              <label>\u2461 QR\u30b5\u30a4\u30ba\uff08px\uff09<\/label>\n              <input id=\"tmqr_size\" type=\"number\" min=\"160\" max=\"1200\" step=\"10\" value=\"500\">\n            <\/div>\n            <div>\n              <label>\u2462 \u4f59\u767d\uff08px\uff09<\/label>\n              <input id=\"tmqr_margin\" type=\"number\" min=\"0\" max=\"90\" step=\"1\" value=\"12\">\n            <\/div>\n          <\/div>\n\n          <div class=\"row\">\n            <div>\n              <label>\u2463 \u30c9\u30c3\u30c8\u306e\u5f62<\/label>\n              <select id=\"tmqr_dot\">\n                <option value=\"square\" selected>\u56db\u89d2<\/option>\n                <option value=\"rounded\">\u4e38<\/option>\n                <option value=\"dots\">\u70b9<\/option>\n              <\/select>\n            <\/div>\n            <div>\n              <label>\u2464 \u771f\u3093\u4e2d\u306b\u5165\u308c\u308b\u3082\u306e<\/label>\n              <select id=\"tmqr_center_mode\">\n                <option value=\"none\" selected>\u306a\u3057<\/option>\n                <option value=\"image\">\u753b\u50cf\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<\/option>\n                <option value=\"symbol\">\u8a18\u53f7\/\u7d75\u6587\u5b57<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n\n          <!-- \u753b\u50cf -->\n          <div id=\"tmqr_center_image_area\" style=\"display:none;\">\n            <label>\u2465 \u4e2d\u592e\u306b\u5165\u308c\u308b\u753b\u50cf<\/label>\n            <input id=\"tmqr_center_file\" type=\"file\" accept=\"image\/*\">\n            <div class=\"row\">\n              <div>\n                <label>\u753b\u50cf\u306e\u5e45\uff08px\uff09<\/label>\n                <input id=\"tmqr_center_w\" type=\"number\" min=\"20\" max=\"260\" step=\"2\" value=\"100\">\n              <\/div>\n              <div>\n                <label>\u89d2\u4e38\uff08px\uff09<\/label>\n                <input id=\"tmqr_center_r\" type=\"number\" min=\"0\" max=\"40\" step=\"1\" value=\"12\">\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- \u8a18\u53f7\/\u7d75\u6587\u5b57 -->\n          <div id=\"tmqr_center_symbol_area\" style=\"display:none;\">\n            <label>\u2465 \u8a18\u53f7\/\u7d75\u6587\u5b57\uff08\u9078\u3076 or \u30b3\u30d4\u30da\uff09<\/label>\n\n            <div class=\"row\">\n              <div>\n                <select id=\"tmqr_symbol_pick\">\n                  <option value=\"\ud83d\ude06\">\ud83d\ude06<\/option>\n                  <option value=\"\ud83d\ude04\">\ud83d\ude04<\/option>\n                  <option value=\"\ud83c\udf49\">\ud83c\udf49<\/option>\n                  <option value=\"\ud83c\udf45\" selected>\ud83c\udf45<\/option>\n                  <option value=\"\ud83c\udf4e\">\ud83c\udf4e<\/option>\n                  <option value=\"\ud83c\udf47\">\ud83c\udf47<\/option>\n                  <option value=\"\ud83c\udf53\">\ud83c\udf53<\/option>\n                  <option value=\"\ud83c\udf52\">\ud83c\udf52<\/option>\n                  <option value=\"\ud83c\udf4f\">\ud83c\udf4f<\/option>\n                  <option value=\"\ud83c\udf54\">\ud83c\udf54<\/option>\n                  <option value=\"\ud83e\udd5d\">\ud83e\udd5d<\/option>\n                  <option value=\"\ud83c\udf70\">\ud83c\udf70<\/option>\n                  <option value=\"\ud83c\udf32\">\ud83c\udf32<\/option>\n                  <option value=\"\ud83c\udf6c\">\ud83c\udf6c<\/option>\n                  <option value=\"\ud83c\udf81\">\ud83c\udf81<\/option>\n                  <option value=\"\ud83c\udf80\">\ud83c\udf80<\/option>\n                  <option value=\"\u272a\">\u272a<\/option>\n                  <option value=\"\u272b\">\u272b<\/option>\n                  <option value=\"\u2605\">\u2605<\/option>\n                  <option value=\"\u2606\">\u2606<\/option>\n                  <option value=\"\u2603\">\u2603<\/option>\n                  <option value=\"\u263d\">\u263d<\/option>\n                  <option value=\"\u2600\">\u2600<\/option>\n                  <option value=\"\u263c\">\u263c<\/option>\n                  <option value=\"\u2601\">\u2601<\/option>\n                  <option value=\"\u2602\">\u2602<\/option>\n                  <option value=\"\u273f\">\u273f<\/option>\n                  <option value=\"\u2740\">\u2740<\/option>\n                  <option value=\"\u2741\">\u2741<\/option>\n                  <option value=\"\u2742\">\u2742<\/option>\n                  <option value=\"\u2743\">\u2743<\/option>\n                  <option value=\"\u2744\">\u2744<\/option>\n                  <option value=\"\u2745\">\u2745<\/option>\n                  <option value=\"\u2746\">\u2746<\/option>\n                  <option value=\"\u2747\">\u2747<\/option>\n                  <option value=\"\u2748\">\u2748<\/option>\n                  <option value=\"\u2749\">\u2749<\/option>\n                  <option value=\"\u274a\">\u274a<\/option>\n                  <option value=\"\u274b\">\u274b<\/option>\n                <\/select>\n              <\/div>\n              <div>\n                <input id=\"tmqr_symbol_text\" type=\"text\" placeholder=\"\u3053\u3053\u306b\u8a18\u53f7\/\u7d75\u6587\u5b57\u3092\u30b3\u30d4\u30da\u3067\u3082OK\uff08\u4f8b\uff1a\ud83c\udf45\uff09\">\n              <\/div>\n            <\/div>\n\n            <div class=\"row\">\n              <div>\n                <label>\u30a2\u30a4\u30b3\u30f3\u306e\u5e45\uff08px\uff09<\/label>\n                <input id=\"tmqr_symbol_w\" type=\"number\" min=\"20\" max=\"260\" step=\"2\" value=\"100\">\n              <\/div>\n              <div>\n                <label>\u89d2\u4e38\uff08px\uff09<\/label>\n                <input id=\"tmqr_symbol_r\" type=\"number\" min=\"0\" max=\"40\" step=\"1\" value=\"12\">\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"row\">\n            <div>\n              <label>\u2466 QR\u306e\u8272<\/label>\n              <div class=\"colorBox\">\n                <div class=\"colorTop\">\n                  <div class=\"chip\" id=\"tmqr_chip_dot\"><\/div>\n                  <input type=\"color\" id=\"tmqr_color_dot\" value=\"#ff4f95\">\n                <\/div>\n                <div class=\"swatches\" id=\"tmqr_sw_dot\"><\/div>\n              <\/div>\n            <\/div>\n\n            <div>\n              <label>\u2467 \u80cc\u666f\u306e\u8272<\/label>\n              <div class=\"colorBox\">\n                <div class=\"colorTop\">\n                  <div class=\"chip\" id=\"tmqr_chip_bg\"><\/div>\n                  <input type=\"color\" id=\"tmqr_color_bg\" value=\"#ffffff\">\n                <\/div>\n                <div class=\"swatches\" id=\"tmqr_sw_bg\"><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- \u2605\u4fdd\u5b58\u5f62\u5f0f\u3092\u8ffd\u52a0 -->\n          <div class=\"btns\">\n            <button class=\"btn-main\" id=\"tmqr_make\" type=\"button\">\u66f4\u65b0<\/button>\n\n            <button class=\"btn-sub\" id=\"tmqr_save_png\" type=\"button\">PNG<\/button>\n            <button class=\"btn-sub\" id=\"tmqr_save_jpg\" type=\"button\">JPG<\/button>\n            <button class=\"btn-sub\" id=\"tmqr_save_jpeg\" type=\"button\">JPEG<\/button>\n            <button class=\"btn-sub\" id=\"tmqr_save_webp\" type=\"button\">WEBP<\/button>\n            <button class=\"btn-sub\" id=\"tmqr_save_svg\" type=\"button\">SVG<\/button>\n            <button class=\"btn-sub\" id=\"tmqr_save_pdf\" type=\"button\">PDF<\/button>\n\n            <button class=\"btn-sub\" id=\"tmqr_clear\" type=\"button\">\u30af\u30ea\u30a2<\/button>\n          <\/div>\n\n          <div class=\"toast\" id=\"tmqr_toast\">\u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01<\/div>\n        <\/div>\n\n        <!-- \u53f3\uff1a\u30d7\u30ec\u30d3\u30e5\u30fc -->\n        <div>\n          <div class=\"previewBox\">\n            <div class=\"qrHost\" id=\"tmqr_qr\"><\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n  (function(){\n    const $ = (id)=>document.getElementById(id);\n\n    const PRESET = [\n      \"#ff4f95\",\"#ff6fa8\",\"#ff9cc7\",\"#ffd2e6\",\"#ffffff\",\n      \"#111111\",\"#333333\",\"#6b4b59\",\"#7a5f6b\",\n      \"#ff6b6b\",\"#ffa94d\",\"#ffd43b\",\"#69db7c\",\"#4dabf7\",\"#9775fa\"\n    ];\n\n    let qrCode = null;\n    let centerImageDataUrl = \"\"; \/\/ \u753b\u50cf\u306edataURL\n\n    function toast(msg){\n      const t = $(\"tmqr_toast\");\n      t.textContent = msg || \"\u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01\";\n      t.style.display=\"block\";\n      clearTimeout(toast._timer);\n      toast._timer = setTimeout(()=>t.style.display=\"none\", 1400);\n    }\n\n    function buildSwatches(targetId, onPick){\n      const box = $(targetId);\n      box.innerHTML = \"\";\n      PRESET.forEach(c=>{\n        const d = document.createElement(\"div\");\n        d.className = \"swatch\";\n        d.style.background = c;\n        d.title = c;\n        d.addEventListener(\"click\", ()=>onPick(c));\n        box.appendChild(d);\n      });\n    }\n\n    function showCenterAreas(){\n      const mode = $(\"tmqr_center_mode\").value;\n      $(\"tmqr_center_image_area\").style.display  = (mode===\"image\")  ? \"block\" : \"none\";\n      $(\"tmqr_center_symbol_area\").style.display = (mode===\"symbol\") ? \"block\" : \"none\";\n    }\n\n    \/\/ \u89d2\u4e38\u77e9\u5f62\u30d1\u30b9\n    function roundRectPath(ctx, x, y, w, h, r){\n      const rr = Math.max(0, Math.min(r, Math.min(w\/2, h\/2)));\n      ctx.beginPath();\n      ctx.moveTo(x+rr, y);\n      ctx.arcTo(x+w, y,   x+w, y+h, rr);\n      ctx.arcTo(x+w, y+h, x,   y+h, rr);\n      ctx.arcTo(x,   y+h, x,   y,   rr);\n      ctx.arcTo(x,   y,   x+w, y,   rr);\n      ctx.closePath();\n    }\n\n    \/\/ \u7d75\u6587\u5b57\/\u8a18\u53f7\u3092PNG(dataURL)\u306b\u3059\u308b\uff08\u4e2d\u592e\u30a2\u30a4\u30b3\u30f3\u7528\uff09\n    \/\/ \u2605\u67a0\u7dda\u306a\u3057 \/ \u89d2\u4e38(px)\u5bfe\u5fdc \/ \u8272\u306fQR\u8272\u306b\u8ffd\u5f93\uff08\u7d75\u6587\u5b57\u8272\u306fOS\u6b21\u7b2c\uff09\n    function symbolToPngDataUrl(symbol, sizePx, radiusPx){\n      const s = (symbol || \"\").trim();\n      if(!s) return \"\";\n\n      const w = Math.max(20, Math.min(260, sizePx || 100));\n      const r = Math.max(0, Math.min(40, radiusPx || 0));\n\n      const canvas = document.createElement(\"canvas\");\n      canvas.width = w;\n      canvas.height = w;\n      const ctx = canvas.getContext(\"2d\");\n\n      \/\/ \u767d\u80cc\u666f\uff08\u8aad\u307f\u53d6\u308a\u5bfe\u7b56\uff09\n      ctx.clearRect(0,0,w,w);\n      ctx.fillStyle = \"#ffffff\";\n      roundRectPath(ctx, 0, 0, w, w, r);\n      ctx.fill();\n\n      \/\/ \u6587\u5b57\uff08\u8272\u306fQR\u8272\u306b\u5408\u308f\u305b\u308b\uff09\n      const dotColor = $(\"tmqr_color_dot\").value || \"#ff4f95\";\n      ctx.fillStyle = dotColor;\n      ctx.textAlign = \"center\";\n      ctx.textBaseline = \"middle\";\n\n      const fontSize = Math.floor(w * 0.62);\n      ctx.font = `900 ${fontSize}px system-ui, -apple-system, \"Segoe UI Emoji\", \"Apple Color Emoji\", \"Noto Color Emoji\", sans-serif`;\n      ctx.fillText(s, w\/2, w\/2 + w*0.02);\n\n      return canvas.toDataURL(\"image\/png\");\n    }\n\n    function buildOptions(bgOverride){\n      const text   = $(\"tmqr_text\").value.trim() || \"https:\/\/tomato-made.com\/\";\n      const size   = parseInt($(\"tmqr_size\").value,10) || 500;\n      const margin = parseInt($(\"tmqr_margin\").value,10) || 12;\n\n      const dotType  = $(\"tmqr_dot\").value; \/\/ square \/ rounded \/ dots\n      const dotColor = $(\"tmqr_color_dot\").value || \"#ff4f95\";\n      const bgColor  = (bgOverride !== undefined) ? bgOverride : ($(\"tmqr_color_bg\").value || \"#ffffff\");\n\n      $(\"tmqr_chip_dot\").style.background = dotColor;\n      $(\"tmqr_chip_bg\").style.background  = (bgColor === \"transparent\") ? \"#ffffff\" : bgColor;\n\n      const opt = {\n        width: size,\n        height: size,\n        data: text,\n        margin: margin,\n        qrOptions: { errorCorrectionLevel: \"H\" },\n        dotsOptions: { type: dotType, color: dotColor },\n        backgroundOptions: { color: bgColor },\n        cornersSquareOptions: { type: \"extra-rounded\", color: dotColor },\n        cornersDotOptions: { type: \"dot\", color: dotColor }\n      };\n\n      const mode = $(\"tmqr_center_mode\").value;\n\n      \/\/ \u753b\u50cf\n      if(mode === \"image\" && centerImageDataUrl){\n        opt.image = centerImageDataUrl;\n        opt.imageOptions = { hideBackgroundDots:true, margin:8, crossOrigin:\"anonymous\" };\n\n        const wpx = parseInt($(\"tmqr_center_w\").value,10) || 100;\n        const ratio = Math.max(0.10, Math.min(0.30, wpx \/ size));\n        opt.imageOptions.imageSize = ratio;\n      }\n\n      \/\/ \u8a18\u53f7\/\u7d75\u6587\u5b57\n      if(mode === \"symbol\"){\n        const pick   = $(\"tmqr_symbol_pick\").value || \"\";\n        const manual = $(\"tmqr_symbol_text\").value || \"\";\n        const symbol = (manual.trim() ? manual.trim() : pick);\n\n        const w = parseInt($(\"tmqr_symbol_w\").value,10) || 100;\n        const r = parseInt($(\"tmqr_symbol_r\").value,10) || 12;\n\n        const dataUrl = symbolToPngDataUrl(symbol, w, r);\n        if(dataUrl){\n          opt.image = dataUrl;\n          opt.imageOptions = { hideBackgroundDots:true, margin:8, crossOrigin:\"anonymous\" };\n\n          const ratio = Math.max(0.10, Math.min(0.30, w \/ size));\n          opt.imageOptions.imageSize = ratio;\n        }\n      }\n\n      return opt;\n    }\n\n    function makeQR(){\n      \/\/ 1\u3064\u3060\u3051\u8868\u793a\uff08\u91cd\u306a\u3089\u306a\u3044\uff09\n      $(\"tmqr_qr\").innerHTML = \"\";\n\n      const opt = buildOptions();\n      qrCode = new QRCodeStyling(Object.assign({ type:\"canvas\" }, opt));\n      qrCode.append($(\"tmqr_qr\"));\n    }\n\n    function getCanvas(){\n      return $(\"tmqr_qr\").querySelector(\"canvas\");\n    }\n\n    function downloadDataUrl(dataUrl, filename){\n      const a = document.createElement(\"a\");\n      a.href = dataUrl;\n      a.download = filename;\n      document.body.appendChild(a);\n      a.click();\n      a.remove();\n    }\n\n    function saveRaster(ext){\n      \/\/ ext: png \/ jpg \/ jpeg \/ webp\n      if(!qrCode) makeQR();\n\n      \/\/ \u5ff5\u306e\u305f\u3081\u5c11\u3057\u5f85\u3063\u3066\u304b\u3089\u53d6\u5f97\uff08\u7aef\u672b\u306b\u3088\u3063\u3066\u63cf\u753b\u304c\u9045\u3044\uff09\n      setTimeout(()=>{\n        const canvas = getCanvas();\n        if(!canvas){ toast(\"\u4fdd\u5b58\u306b\u5931\u6557\uff08canvas\u304c\u898b\u3064\u304b\u3089\u306a\u3044\uff09\"); return; }\n\n        let mime = \"image\/png\";\n        let outExt = \"png\";\n        if(ext === \"webp\"){ mime=\"image\/webp\"; outExt=\"webp\"; }\n        if(ext === \"jpeg\" || ext === \"jpg\"){ mime=\"image\/jpeg\"; outExt = (ext===\"jpg\" ? \"jpg\" : \"jpeg\"); }\n\n        const dataUrl = canvas.toDataURL(mime, 0.92);\n        downloadDataUrl(dataUrl, `tomato-made-qr.${outExt}`);\n        toast(`${outExt.toUpperCase()}\u3067\u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01`);\n      }, 80);\n    }\n\n    async function saveSVG(){\n      \/\/ SVG\u306f\u300cSVG\u3067\u518d\u751f\u6210\u300d\u3057\u3066\u304b\u3089\u3001Blob\u4fdd\u5b58\n      const opt = buildOptions();\n      const tmp = new QRCodeStyling(Object.assign({ type:\"svg\" }, opt));\n\n      \/\/ getRawData \u304c\u3042\u308b\u7248\u3092\u512a\u5148\n      if(typeof tmp.getRawData === \"function\"){\n        const blob = await tmp.getRawData(\"svg\");\n        const url = URL.createObjectURL(blob);\n        const a = document.createElement(\"a\");\n        a.href = url;\n        a.download = \"tomato-made-qr.svg\";\n        document.body.appendChild(a);\n        a.click();\n        a.remove();\n        URL.revokeObjectURL(url);\n        toast(\"SVG\u3067\u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01\");\n        return;\n      }\n\n      \/\/ \u306a\u3044\u5834\u5408\uff1a\u4e00\u5ea6DOM\u306bappend\u3057\u3066outerHTML\u53d6\u5f97\n      const holder = document.createElement(\"div\");\n      holder.style.position=\"fixed\";\n      holder.style.left=\"-99999px\";\n      holder.style.top=\"-99999px\";\n      document.body.appendChild(holder);\n\n      tmp.append(holder);\n\n      setTimeout(()=>{\n        const svg = holder.querySelector(\"svg\");\n        if(!svg){\n          holder.remove();\n          toast(\"SVG\u4fdd\u5b58\u306b\u5931\u6557\");\n          return;\n        }\n        const xml = svg.outerHTML;\n        const blob = new Blob([xml], {type:\"image\/svg+xml;charset=utf-8\"});\n        const url = URL.createObjectURL(blob);\n        const a = document.createElement(\"a\");\n        a.href = url;\n        a.download = \"tomato-made-qr.svg\";\n        document.body.appendChild(a);\n        a.click();\n        a.remove();\n        URL.revokeObjectURL(url);\n        holder.remove();\n        toast(\"SVG\u3067\u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01\");\n      }, 120);\n    }\n\n    function savePDF(){\n      if(!qrCode) makeQR();\n\n      setTimeout(()=>{\n        const canvas = getCanvas();\n        if(!canvas){ toast(\"PDF\u4fdd\u5b58\u306b\u5931\u6557\uff08canvas\u304c\u898b\u3064\u304b\u3089\u306a\u3044\uff09\"); return; }\n\n        const img = canvas.toDataURL(\"image\/png\");\n\n        const jspdf = window.jspdf && window.jspdf.jsPDF;\n        if(!jspdf){ toast(\"PDF\u4fdd\u5b58\u306b\u5931\u6557\uff08jsPDF\u304c\u8aad\u307f\u8fbc\u3081\u306a\u3044\uff09\"); return; }\n\n        \/\/ \u30ad\u30e3\u30f3\u30d0\u30b9\u306e\u30d4\u30af\u30bb\u30eb\u30b5\u30a4\u30ba\u3068\u540c\u3058\u3067PDF\u4f5c\u6210\n        const pdf = new jspdf({ unit: \"px\", format: [canvas.width, canvas.height] });\n        pdf.addImage(img, \"PNG\", 0, 0, canvas.width, canvas.height);\n        pdf.save(\"tomato-made-qr.pdf\");\n        toast(\"PDF\u3067\u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01\");\n      }, 120);\n    }\n\n    function roundImageDataUrl(srcDataUrl, sizePx, radiusPx){\n      return new Promise((resolve)=>{\n        const img = new Image();\n        img.onload = ()=>{\n          const w = Math.max(20, Math.min(260, sizePx||100));\n          const r = Math.max(0, Math.min(40, radiusPx||0));\n          const c = document.createElement(\"canvas\");\n          c.width = w; c.height = w;\n          const ctx = c.getContext(\"2d\");\n\n          \/\/ \u767d\u80cc\u666f\uff08\u8aad\u307f\u53d6\u308a\u5bfe\u7b56\uff09\n          ctx.fillStyle = \"#ffffff\";\n          ctx.beginPath();\n          ctx.arc(w\/2, w\/2, w*0.46, 0, Math.PI*2);\n          ctx.fill();\n\n          \/\/ \u89d2\u4e38\u30af\u30ea\u30c3\u30d7\n          const x=0, y=0;\n          const rr = Math.min(r, w\/2);\n          ctx.save();\n          ctx.beginPath();\n          ctx.moveTo(x+rr,y);\n          ctx.arcTo(x+w,y,x+w,y+w,rr);\n          ctx.arcTo(x+w,y+w,x,y+w,rr);\n          ctx.arcTo(x,y+w,x,y,rr);\n          ctx.arcTo(x,y,x+w,y,rr);\n          ctx.closePath();\n          ctx.clip();\n\n          \/\/ \u753b\u50cf\u3092\u4e2d\u592e\u306b\u30c8\u30ea\u30df\u30f3\u30b0\uff08\u6b63\u65b9\u5f62\uff09\n          const s = Math.min(img.width, img.height);\n          const sx = (img.width - s)\/2;\n          const sy = (img.height - s)\/2;\n          ctx.drawImage(img, sx, sy, s, s, 0, 0, w, w);\n          ctx.restore();\n\n          resolve(c.toDataURL(\"image\/png\"));\n        };\n        img.src = srcDataUrl;\n      });\n    }\n\n    function onFile(){\n      const f = $(\"tmqr_center_file\").files && $(\"tmqr_center_file\").files[0];\n      if(!f){ centerImageDataUrl=\"\"; makeQR(); return; }\n\n      const reader = new FileReader();\n      reader.onload = async ()=>{\n        const base = reader.result;\n        const wpx = parseInt($(\"tmqr_center_w\").value,10) || 100;\n        const rpx = parseInt($(\"tmqr_center_r\").value,10) || 12;\n        centerImageDataUrl = await roundImageDataUrl(base, wpx, rpx);\n        makeQR();\n      };\n      reader.readAsDataURL(f);\n    }\n\n    function clearAll(){\n      $(\"tmqr_text\").value = \"\";\n      $(\"tmqr_size\").value = 500;\n      $(\"tmqr_margin\").value = 12;\n      $(\"tmqr_dot\").value = \"square\";\n      $(\"tmqr_color_dot\").value = \"#ff4f95\";\n      $(\"tmqr_color_bg\").value = \"#ffffff\";\n\n      $(\"tmqr_center_mode\").value = \"none\";\n      $(\"tmqr_center_file\").value = \"\";\n      $(\"tmqr_center_w\").value = 100;\n      $(\"tmqr_center_r\").value = 12;\n\n      $(\"tmqr_symbol_pick\").value = \"\ud83c\udf45\";\n      $(\"tmqr_symbol_text\").value = \"\";\n      $(\"tmqr_symbol_w\").value = 100;\n      $(\"tmqr_symbol_r\").value = 12;\n\n      centerImageDataUrl = \"\";\n      showCenterAreas();\n      makeQR();\n    }\n\n    \/\/ ---- swatches\n    buildSwatches(\"tmqr_sw_dot\", (c)=>{ $(\"tmqr_color_dot\").value=c; makeQR(); });\n    buildSwatches(\"tmqr_sw_bg\",  (c)=>{ $(\"tmqr_color_bg\").value=c;  makeQR(); });\n\n    \/\/ ---- events\n    $(\"tmqr_center_mode\").addEventListener(\"change\", ()=>{ showCenterAreas(); makeQR(); });\n    $(\"tmqr_center_file\").addEventListener(\"change\", onFile);\n\n    \/\/ \u753b\u50cf\u306epx\/\u89d2\u4e38\u5909\u66f4 \u2192 \u518d\u751f\u6210\uff08\u540c\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u4f5c\u308a\u76f4\u3057\uff09\n    $(\"tmqr_center_w\").addEventListener(\"input\", async ()=>{\n      const f = $(\"tmqr_center_file\").files && $(\"tmqr_center_file\").files[0];\n      if(!f){ makeQR(); return; }\n      const reader = new FileReader();\n      reader.onload = async ()=>{\n        const base = reader.result;\n        const wpx = parseInt($(\"tmqr_center_w\").value,10) || 100;\n        const rpx = parseInt($(\"tmqr_center_r\").value,10) || 12;\n        centerImageDataUrl = await roundImageDataUrl(base, wpx, rpx);\n        makeQR();\n      };\n      reader.readAsDataURL(f);\n    });\n\n    $(\"tmqr_center_r\").addEventListener(\"input\", async ()=>{\n      const f = $(\"tmqr_center_file\").files && $(\"tmqr_center_file\").files[0];\n      if(!f){ makeQR(); return; }\n      const reader = new FileReader();\n      reader.onload = async ()=>{\n        const base = reader.result;\n        const wpx = parseInt($(\"tmqr_center_w\").value,10) || 100;\n        const rpx = parseInt($(\"tmqr_center_r\").value,10) || 12;\n        centerImageDataUrl = await roundImageDataUrl(base, wpx, rpx);\n        makeQR();\n      };\n      reader.readAsDataURL(f);\n    });\n\n    \/\/ \u8a18\u53f7\/\u7d75\u6587\u5b57 \u2192 \u5373\u66f4\u65b0\n    $(\"tmqr_symbol_pick\").addEventListener(\"change\", makeQR);\n    $(\"tmqr_symbol_text\").addEventListener(\"input\", makeQR);\n    $(\"tmqr_symbol_w\").addEventListener(\"input\", makeQR);\n    $(\"tmqr_symbol_r\").addEventListener(\"input\", makeQR);\n\n    [\"tmqr_text\",\"tmqr_size\",\"tmqr_margin\",\"tmqr_dot\",\"tmqr_color_dot\",\"tmqr_color_bg\"].forEach(id=>{\n      $(id).addEventListener(\"input\", makeQR);\n      $(id).addEventListener(\"change\", makeQR);\n    });\n\n    \/\/ \u2605\u4fdd\u5b58\u30dc\u30bf\u30f3\n    $(\"tmqr_make\").addEventListener(\"click\", makeQR);\n    $(\"tmqr_save_png\").addEventListener(\"click\", ()=>saveRaster(\"png\"));\n    $(\"tmqr_save_jpg\").addEventListener(\"click\", ()=>saveRaster(\"jpg\"));\n    $(\"tmqr_save_jpeg\").addEventListener(\"click\", ()=>saveRaster(\"jpeg\")); \/\/ \u2190\u300cpeg\u300d\u306f\u3053\u308c\u3067OK\n    $(\"tmqr_save_webp\").addEventListener(\"click\", ()=>saveRaster(\"webp\"));\n    $(\"tmqr_save_svg\").addEventListener(\"click\", saveSVG);\n    $(\"tmqr_save_pdf\").addEventListener(\"click\", savePDF);\n\n    $(\"tmqr_clear\").addEventListener(\"click\", clearAll);\n\n    \/\/ ---- init\n    $(\"tmqr_text\").value = \"\"; \/* \u521d\u671f\u306f\u7a7a\u3002placeholder\u3067 https:\/\/tomato-made.com\/ \u3092\u8584\u304f\u8868\u793a *\/\n    $(\"tmqr_chip_dot\").style.background = $(\"tmqr_color_dot\").value;\n    $(\"tmqr_chip_bg\").style.background  = $(\"tmqr_color_bg\").value;\n    showCenterAreas();\n    makeQR();\n  })();\n  <\/script>\n<\/div>\n\n\n<div id=\"sgb-css-id-4\" style=\"--sgb--custom--bg-color: var(--sgb-main-color);--sgb--custom--text-color: #ffffff;--sgb--custom--text-after: '\u7d9a\u304d\u3092\u8aad\u3080';--sgb--custom--text-after-radius: 4;\"><a class=\"linkto table\" href=\"https:\/\/tomato-made.com\/study\/market-z\/t21\"> <span class=\"tbcell tbimg\"><img decoding=\"async\" width=\"160\" height=\"160\" src=\"https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/10\/\u30ea\u30f3\u30af\u3092\u307e\u3068\u3081\u308b\u30b5\u30fc\u30d3\u30b9\u30b5\u30a4\u30c8\u3001\u30e1\u30eb\u30ab\u30ea\u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u4f5c\u54c1\u96c6\u58f2\u308c\u308b\u3082\u306e-160x160.jpg\" class=\"attachment-thumb-160 size-thumb-160 wp-post-image\" alt=\"\" srcset=\"https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/10\/\u30ea\u30f3\u30af\u3092\u307e\u3068\u3081\u308b\u30b5\u30fc\u30d3\u30b9\u30b5\u30a4\u30c8\u3001\u30e1\u30eb\u30ab\u30ea\u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u4f5c\u54c1\u96c6\u58f2\u308c\u308b\u3082\u306e-160x160.jpg 160w, https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/10\/\u30ea\u30f3\u30af\u3092\u307e\u3068\u3081\u308b\u30b5\u30fc\u30d3\u30b9\u30b5\u30a4\u30c8\u3001\u30e1\u30eb\u30ab\u30ea\u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u4f5c\u54c1\u96c6\u58f2\u308c\u308b\u3082\u306e-150x150.jpg 150w\" sizes=\"(max-width: 160px) 100vw, 160px\"><\/span> <span class=\"tbcell tbtext\"> <time class=\"pubdate sng-link-time dfont\" itemprop=\"datePublished\" datetime=\"2025-10-26\">2025\u5e7410\u670826\u65e5<\/time> SNS\u3084\u8ca9\u58f2\u30b5\u30a4\u30c8\u3092\u307e\u3068\u3081\u3089\u308c\u308b\uff01\u3010\u4fbf\u5229\u306a\u30ea\u30f3\u30af\u96c6\u30b5\u30a4\u30c8\u3011 <\/span> <\/a><\/div>\n\n<p><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-7399229634306040\" crossorigin=\"anonymous\"><\/script><!-- \u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u5e83\u544a\u306e\u30d7\u30ec\u30d3\u30e5\u30fc --><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-7399229634306040\" data-ad-slot=\"1986945645\" data-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins><script>     (adsbygoogle = window.adsbygoogle || []).push({});<\/script>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3000 QR\u30b3\u30fc\u30c9\u4f5c\u6210\u30c4\u30fc\u30eb \u2460 QR\u306b\u3057\u305f\u3044\u5185\u5bb9\uff08URL \/ \u6587\u7ae0\uff09 \u2461 QR\u30b5\u30a4\u30ba\uff08px\uff09 \u2462 \u4f59\u767d\uff08px\uff09 \u2463 \u30c9\u30c3\u30c8\u306e\u5f62 \u56db\u89d2\u4e38\u70b9 \u2464 \u771f\u3093\u4e2d\u306b\u5165\u308c\u308b\u3082\u306e \u306a\u3057\u753b\u50cf\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u8a18\u53f7\/\u7d75\u6587\u5b57 \u2465 \u4e2d\u592e\u306b\u5165\u308c\u308b\u753b\u50cf \u753b\u50cf &#8230; <\/p>\n","protected":false},"author":1,"featured_media":5547,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6,9],"tags":[],"class_list":{"0":"post-5541","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-market-z","8":"category-tool","9":"category-handmade","10":"entry"},"_links":{"self":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts\/5541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/comments?post=5541"}],"version-history":[{"count":26,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts\/5541\/revisions"}],"predecessor-version":[{"id":5642,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts\/5541\/revisions\/5642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/media\/5547"}],"wp:attachment":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/media?parent=5541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/categories?post=5541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/tags?post=5541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}