UNPKG

remark-hatena-id

Version:
2 lines (1 loc) 3.74 kB
(function(d,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(d=typeof globalThis<"u"?globalThis:d||self,m(d["remark-hatena-id"]={}))})(this,function(d){"use strict";const m=function(e){if(e==null)return R;if(typeof e=="function")return E(e);if(typeof e=="object")return Array.isArray(e)?j(e):w(e);if(typeof e=="string")return T(e);throw new Error("Expected function, string, or object as test")};function j(e){const n=[];let t=-1;for(;++t<e.length;)n[t]=m(e[t]);return E(i);function i(...o){let c=-1;for(;++c<n.length;)if(n[c].apply(this,o))return!0;return!1}}function w(e){const n=e;return E(t);function t(i){const o=i;let c;for(c in e)if(o[c]!==n[c])return!1;return!0}}function T(e){return E(n);function n(t){return t&&t.type===e}}function E(e){return n;function n(t,i,o){return!!(H(t)&&e.call(this,t,typeof i=="number"?i:void 0,o||void 0))}}function R(){return!0}function H(e){return e!==null&&typeof e=="object"&&"type"in e}function M(e){return e}const k=[],L=!0,I=!1,O="skip";function G(e,n,t,i){let o;typeof n=="function"&&typeof t!="function"?(i=t,t=n):o=n;const c=m(o),f=i?-1:1;p(e,void 0,[])();function p(r,g,u){const s=r&&typeof r=="object"?r:{};if(typeof s.type=="string"){const a=typeof s.tagName=="string"?s.tagName:typeof s.name=="string"?s.name:void 0;Object.defineProperty(A,"name",{value:"node ("+(r.type+(a?"<"+a+">":""))+")"})}return A;function A(){let a=k,h,l,x;if((!n||c(r,g,u[u.length-1]||void 0))&&(a=S(t(r,u)),a[0]===I))return a;if("children"in r&&r.children){const y=r;if(y.children&&a[0]!==O)for(l=(i?y.children.length:-1)+f,x=u.concat(y);l>-1&&l<y.children.length;){const N=y.children[l];if(h=p(N,l,x)(),h[0]===I)return h;l=typeof h[1]=="number"?h[1]:l+f}}return a}}}function S(e){return Array.isArray(e)?e:typeof e=="number"?[L,e]:e==null?k:[e]}function X(e,n,t,i){let o,c,f;c=n,f=t,o=i,G(e,c,p,o);function p(r,g){const u=g[g.length-1],s=u?u.children.indexOf(r):void 0;return f(r,s,u)}}function _(e,n,t){const i={type:String(e)};return t==null&&(typeof n=="string"||Array.isArray(n))?t=n:Object.assign(i,n),Array.isArray(t)?i.children=t:t!=null&&(i.value=String(t)),i}const b=/id:(?<hatenaId>[A-Za-z][0-9A-Za-z_-]{1,30}[0-9A-Za-z])(:(?<option>detail:large|detail|image))?/,P=new RegExp(b,"g"),$=(e,n)=>{const t=[];let i;return n==="detail"?(t.push({type:"image",url:`https://cdn.profile-image.st-hatena.com/users/${e}/profile.png`,data:{hProperties:{width:"16",height:"16",class:"hatena-id-icon"}}}),i="hatena-id-icon"):n==="detail:large"?(t.push({type:"image",url:`https://cdn.profile-image.st-hatena.com/users/${e}/profile.png`,data:{hProperties:{width:"60",height:"60",class:"hatena-id-icon"}}}),i="hatena-id-icon"):n==="image"&&(t.push({type:"image",url:`https://cdn.profile-image.st-hatena.com/users/${e}/profile.png`,data:{hProperties:{width:"60",height:"60",class:"hatena-id-image"}}}),i="hatena-id-image"),n!=="image"&&t.push({type:"text",value:`id:${e}`}),{type:"paragraph",children:t,data:{hName:"a",hProperties:{href:`https://profile.hatena.ne.jp/${e}/`,class:i,dataHatenaId:e}}}},D=()=>{let e=0;const n=(t,i,o)=>{if(e>0){e--;return}if(!b.test(t.value)||!o||i==null)return;const c=[...t.value.matchAll(P)],f=[],p=t.value;let r="",g=0,u=0;for(let s=0;s<c.length;s++){const A=c[s],a=A.index??0,h=A[0].length,l=A.groups;if(!l)continue;const x=l.hatenaId,y=l.option,N=s===0?0:g+u;if(g=a,u=h,a>N){const z=p.substring(N,a),B=_("text",z);f.push(B)}const F=$(x,y);f.push(F),r=p.slice(a+h)}if(r){const s=_("text",r);f.push(s)}f.length&&(o.children.splice(i,1,...f),e=f.length-1)};return t=>{X(t,"text",n)}};d.HATENA_ID_REGEX=b,d.HATENA_ID_REGEX_GLOBAL=P,d.remarkHatenaId=D,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});