Help
RSS
API
Feed
Maltego
Contact
Domain > blog.foras.cc
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-01-01
104.21.15.10
(
ClassC
)
2025-11-25
172.67.160.252
(
ClassC
)
Port 443
HTTP/1.1 200 OKDate: Tue, 25 Nov 2025 08:59:13 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveAccess-Control-Allow-Origin: *Cache-Control: public, max-age0, must-revalidatereferrer-policy: strict-origin-when-cross-originx-content-type-options: nosniffVary: accept-encodingReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?s8esbu%2FFYuC04ulD5nKYJU4dSSE9kEMI0kNpg1zA9muy1%2Fyfg%2FIEi3DjJzusJ2ohDPuRJ0a4U1n%2B%2F3Vc3BNloTiWW4rBFNcTHSwyQLXM%3D}}Nel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Server: cloudflarecf-cache-status: DYNAMICCF-RAY: 9a3ff2e029d1659c-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langzh-CN>head> meta charsetutf-8> meta namehexo-theme contenthttps://github.com/xaoxuu/hexo-theme-stellar/tree/1.33.0 theme-nameStellar theme-version1.33.0> meta namegenerator contentHexo 7.3.0> meta http-equivx-dns-prefetch-control contenton /> meta namerenderer contentwebkit> meta nameforce-rendering contentwebkit> meta http-equivX-UA-Compatible contentIEEdge,chrome1> meta nameHandheldFriendly contentTrue > meta namemobile-web-app-capable contentyes> meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1> meta nametheme-color media(prefers-color-scheme: dark) content#000> meta nametheme-color content#f9fafb> title>Foras/title> meta propertyog:type contentwebsite>meta propertyog:title contentForas>meta propertyog:url contenthttps://blog.foras.cc/>meta propertyog:site_name contentForas>meta propertyog:locale contentzh_CN>meta propertyog:image contenthttps://avatars.githubusercontent.com/u/65212891>meta propertyarticle:author contentnegoces>meta propertyarticle:tag contentblog>meta nametwitter:card contentsummary>meta nametwitter:image contenthttps://avatars.githubusercontent.com/u/65212891> meta namekeywords contentblog> !-- feed --> link relstylesheet href/css/main.css?v1.33.0> script typeapplication/ld+json>{@context:https://schema.org,@type:Website,@id:https://blog.foras.cc,author:{@type:Person,name:negoces,sameAs:,image://avatars.githubusercontent.com/u/65212891},name:Foras,description:,url:https://blog.foras.cc,keywords:blog}/script> /head>body>div classl_body index idstart layoutundefined typeundefined >aside classl_left>div classsidebg>/div>div classleftbar-container>header classheader>div classlogo-wrap>a classavatar href/about/>div classbg styleopacity:0;background-image:url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/avatar/round/rainbow64@3x.webp);>/div>img no-lazy classavatar src//avatars.githubusercontent.com/u/65212891 onerrorjavascript:this.classList.add(error);this.srchttps://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/image/2659360.svg;>/a>a classtitle href/>div classmain>Foras/div>div classsub cap>赛博笔记本/div>/a>/div>/header>div classnav-area>nav classmenu dis-select>/nav>/div>div classwidgets>div classsearch-wrapper idsearch-wrapper>form classsearch-form>a classsearch-button onclickdocument.getElementById("search-input").focus();>svg t1705074644177 viewBox0 0 1025 1024 version1.1 xmlnshttp://www.w3.org/2000/svg p-id1560 width200 height200>path dM1008.839137 935.96571L792.364903 719.491476a56.783488 56.783488 0 0 0-80.152866 0 358.53545 358.53545 0 1 1 100.857314-335.166073 362.840335 362.840335 0 0 1-3.689902 170.145468 51.248635 51.248635 0 1 0 99.217358 26.444296 462.057693 462.057693 0 1 0-158.255785 242.303546l185.930047 185.725053a51.248635 51.248635 0 0 0 72.568068 0 51.248635 51.248635 0 0 0 0-72.978056z p-id1561>/path>path dM616.479587 615.969233a50.428657 50.428657 0 0 0-61.498362-5.534852 174.655348 174.655348 0 0 1-177.525271 3.484907 49.403684 49.403684 0 0 0-58.833433 6.76482l-3.074918 2.869923a49.403684 49.403684 0 0 0 8.609771 78.10292 277.767601 277.767601 0 0 0 286.992355-5.739847 49.403684 49.403684 0 0 0 8.404776-76.667958z p-id1562>/path>/svg>/a>input typetext classsearch-input idsearch-input placeholder站内搜索>/form>div idsearch-result>/div>div classsearch-no-result>没有找到内容!/div>/div>widget classwidget-wrapper recent post-list>div classwidget-header dis-select>span classname>最近更新/span>/div>div classwidget-body fs14>a classitem title href/p/b923dd5e/>span classtitle>「笔记」 Docker 部署 Mosquitto/span>/a>a classitem title href/p/1414e7ff/>span classtitle>「备忘」 git 常用指令/span>/a>a classitem title href/p/db69886d/>span classtitle>「笔记」 给 Hexo 添加 abbrlink 功能/span>/a>a classitem title href/p/b6638d5f/>span classtitle>「笔记」 Micromamba 试水/span>/a>a classitem title href/p/af9d3670/>span classtitle>「笔记」 OpenVPN 局域网游戏/span>/a>a classitem title href/p/94b9047d/>span classtitle>「笔记」 Manim 试水/span>/a>a classitem title href/p/51f48180/>span classtitle>「笔记」 使用 Android Studio 命令行工具启动 Android 模拟器/span>/a>a classitem title href/p/4f9e6d87/>span classtitle>「笔记」 Docker 部署 BGE-M3 Embedder 模型/span>/a>a classitem title href/p/97325808/>span classtitle>「笔记」 Arch Linux 服务器「一」:重生/span>/a>a classitem title href/p/c30d47d9/>span classtitle>「笔记」 Arch Linux 服务器「二」:开眼/span>/a>/div>/widget>/div>/div>/aside>div classl_main idmain>header classheader mobile-only>div classlogo-wrap>a classavatar href/about/>div classbg styleopacity:0;background-image:url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/avatar/round/rainbow64@3x.webp);>/div>img no-lazy classavatar src//avatars.githubusercontent.com/u/65212891 onerrorjavascript:this.classList.add(error);this.srchttps://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/image/2659360.svg;>/a>a classtitle href/>div classmain>Foras/div>div classsub cap>赛博笔记本/div>/a>/div>/header>div classnavbar top>div classnavbar-blur>div classnavbar-container>nav classpost>a classactive href/>近期发布/a>a href/categories/>分类/a>a href/tags/>标签/a>a href/archives/>归档/a>/nav>/div>/div>/div>div classpost-list post>a classpost-card post href/p/c30d47d9/>article classmd-text>h2 classpost-title>「笔记」 Arch Linux 服务器「二」:开眼/h2>div classexcerpt>p>GET 200 OK/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-03-19T13:45:00.000Z>2025-03-19/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/97325808/>article classmd-text>h2 classpost-title>「笔记」 Arch Linux 服务器「一」:重生/h2>div classexcerpt>p>XFS: log I/O error -5/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-03-11T14:45:00.000Z>2025-03-11/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/51f48180/>article classmd-text>h2 classpost-title>「笔记」 使用 Android Studio 命令行工具启动 Android 模拟器/h2>div classexcerpt>p>有时候并不需要UI界面/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-03-09T09:00:00.000Z>2025-03-09/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/94b9047d/>article classmd-text>h2 classpost-title>「笔记」 Manim 试水/h2>div classexcerpt>p>3Blue1Brown 同款,绘制你自己的数学动画/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-03-03T13:20:00.000Z>2025-03-03/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/b6638d5f/>article classmd-text>h2 classpost-title>「笔记」 Micromamba 试水/h2>div classexcerpt>p>貌似是个 Conda 替代品/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-02-27T14:20:00.000Z>2025-02-27/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/4f9e6d87/>article classmd-text>h2 classpost-title>「笔记」 Docker 部署 BGE-M3 Embedder 模型/h2>div classexcerpt>p>使用 Docker 部署 llama.cpp 运行 BGE-M3 Embedder 模型/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-02-11T14:00:00.000Z>2025-02-11/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/af9d3670/>article classmd-text>h2 classpost-title>「笔记」 OpenVPN 局域网游戏/h2>div classexcerpt>p>使用 OpenVPN 组件二层网络/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-01-06T10:20:00.000Z>2025-01-06/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>笔记/span>/span>/div>/article>/a>a classpost-card post href/p/1414e7ff/>article classmd-text>h2 classpost-title>「备忘」 git 常用指令/h2>div classexcerpt>p>有些指令用的少是真记不住啊/p>/div>div classmeta cap>span classcap idpost-meta>svg stylemargin-bottom:2px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724/>path fillcurrentColor dM22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14 opacity.5/>path fillcurrentColor dM18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0/>/svg>time datetime2025-01-06T05:55:00.000Z>2025-01-06/time>/span>span classcap breadcrumb>svg stylemargin-bottom:1px xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillcurrentColor dM2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z opacity.5/>path fillcurrentColor dM20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238/>path fillcurrentColor fill-ruleevenodd dM12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75 clip-ruleevenodd/>/svg>span>备忘/span>/span>/div>/article>/a>/div> div classpaginator-wrap dis-select> span classextend prev relprev>/span>span classpage-number current>1/span>a classpage-number href/page/2/>2/a>a classextend next relnext href/page/2/>/a> /div>footer classpage-footer footnote>hr>div classtext>p>本站由 a href/>negoces/a> 使用 a target_blank relnoopener hrefhttps://github.com/xaoxuu/hexo-theme-stellar/tree/1.33.0>Stellar 1.33.0/a> 主题创建。br>本博客所有文章除特别声明外,均采用 a target_blank relnoopener hrefhttps://creativecommons.org/licenses/by-nc-sa/4.0/>CC BY-NC-SA 4.0/a> 许可协议,转载请注明出处。/p>/div>/footer>div classmain-mask onclicksidebar.dismiss()>/div>/div>aside classl_right>/aside>div classfloat-panel> button typebutton styledisplay:none classlaptop-only rightbar-toggle mobile onclicksidebar.rightbar()> svg xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>path fillnone strokecurrentColor stroke-linecapround stroke-linejoinround stroke-width2 dM10 6h11m-11 6h11m-11 6h11M4 6h1v4m-1 0h2m0 8H4c0-1 2-2 2-3s-1-1.5-2-1/>/svg> /button> button typebutton styledisplay:none classmobile-only leftbar-toggle mobile onclicksidebar.leftbar()> svg xmlnshttp://www.w3.org/2000/svg width32 height32 viewBox0 0 24 24>g fillnone strokecurrentColor stroke-width1.5>path dM2 11c0-3.771 0-5.657 1.172-6.828C4.343 3 6.229 3 10 3h4c3.771 0 5.657 0 6.828 1.172C22 5.343 22 7.229 22 11v2c0 3.771 0 5.657-1.172 6.828C19.657 21 17.771 21 14 21h-4c-3.771 0-5.657 0-6.828-1.172C2 18.657 2 16.771 2 13z/>path idsep stroke-linecapround dM5.5 10h6m-5 4h4m4.5 7V3/>/g>/svg> /button>/div>/div>div classscripts>script typetext/javascript> window.canonical {originalHost:null,officialHosts:localhost,encoded:}; const ctx { date_suffix: { just: `刚刚`, min: `分钟前`, hour: `小时前`, day: `天前`, }, root : `/`, tag_plugins: { chat: Object.assign({api:https://siteinfo.listentothewind.cn/api/v1}), } }; // required plugins (only load if needs) if (`local_search`) { ctx.search {}; ctx.search.service `local_search`; if (ctx.search.service local_search) { let service_obj Object.assign({}, `{field:all,path:/search.json,content:true,skip_search:null,sort:-date}`); ctx.searchctx.search.service service_obj; } } const def { avatar: `https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/avatar/round/3442075.svg`, cover: `https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/cover/76b86c0226ffd.svg`, loading: `https://api.iconify.design/eos-icons:three-dots-loading.svg?color%231cd0fd`, }; const deps { jquery: `https://gcore.jsdelivr.net/npm/jquery@3.7/dist/jquery.min.js`, marked: `https://gcore.jsdelivr.net/npm/marked@13.0/lib/marked.umd.min.js`, lazyload: `/%5Bobject%20Object%5D` } /script>script typetext/javascript> function RunItem() { this.list ; // 存放回调函数 this.start () > { for (var i 0; i this.list.length; i++) { this.listi.run(); } }; this.push (fn, name, setRequestAnimationFrame true) > { let myfn fn if (setRequestAnimationFrame) { myfn () > { utils.requestAnimationFrame(fn) } } var f new Item(myfn, name); this.list.push(f); }; this.remove (name) > { for (let index 0; index this.list.length; index++) { const e this.listindex; if (e.name name) { this.list.splice(index, 1); } } } // 构造一个可以run的对象 function Item(fn, name) { // 函数名称 this.name name || fn.name; // run方法 this.run () > { try { fn() } catch (error) { console.log(error); } }; } } const utils { // 懒加载 css https://github.com/filamentgroup/loadCSS css: (href, before, media, attributes) > { var doc window.document; var ss doc.createElement(link); var ref; if (before) { ref before; } else { var refs (doc.body || doc.getElementsByTagName(head)0).childNodes; ref refsrefs.length - 1; } var sheets doc.styleSheets; if (attributes) { for (var attributeName in attributes) { if (attributes.hasOwnProperty(attributeName)) { ss.setAttribute(attributeName, attributesattributeName); } } } ss.rel stylesheet; ss.href href; ss.media only x; function ready(cb) { if (doc.body) { return cb(); } setTimeout(function () { ready(cb); }); } ready(function () { ref.parentNode.insertBefore(ss, before ? ref : ref.nextSibling); }); var onloadcssdefined function (cb) { var resolvedHref ss.href; var i sheets.length; while (i--) { if (sheetsi.href resolvedHref) { return cb(); } } setTimeout(function () { onloadcssdefined(cb); }); }; function loadCB() { if (ss.addEventListener) { ss.removeEventListener(load, loadCB); } ss.media media || all; } if (ss.addEventListener) { ss.addEventListener(load, loadCB); } ss.onloadcssdefined onloadcssdefined; onloadcssdefined(loadCB); return ss; }, js: (src, opt) > new Promise((resolve, reject) > { var script document.createElement(script); if (src.startsWith(/)) { src ctx.root + src.substring(1); } script.src src; if (opt) { for (let key of Object.keys(opt)) { scriptkey optkey } } else { // 默认异步,如果需要同步,第二个参数传入 {} 即可 script.async true } script.onerror reject script.onload script.onreadystatechange function () { const loadState this.readyState if (loadState && loadState ! loaded && loadState ! complete) return script.onload script.onreadystatechange null resolve() } document.head.appendChild(script) }), jq: (fn) > { if (typeof jQuery undefined) { utils.js(deps.jquery).then(fn) } else { fn() } }, onLoading: (el) > { if (el) { $(el).append(div classloading-wrap>svg xmlnshttp://www.w3.org/2000/svg width2em height2em preserveAspectRatioxMidYMid meet viewBox0 0 24 24>g fillnone strokecurrentColor stroke-linecapround stroke-width2>path stroke-dasharray60 stroke-dashoffset60 stroke-opacity.3 dM12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3Z>animate fillfreeze attributeNamestroke-dashoffset dur1.3s values60;0/>/path>path stroke-dasharray15 stroke-dashoffset15 dM12 3C16.9706 3 21 7.02944 21 12>animate fillfreeze attributeNamestroke-dashoffset dur0.3s values15;0/>animateTransform attributeNametransform dur1.5s repeatCountindefinite typerotate values0 12 12;360 12 12/>/path>/g>/svg>/div>); } }, onLoadSuccess: (el) > { if (el) { $(el).find(.loading-wrap).remove(); } }, onLoadFailure: (el) > { if (el) { $(el).find(.loading-wrap svg).remove(); $(el).find(.loading-wrap).append(svg xmlnshttp://www.w3.org/2000/svg width2em height2em preserveAspectRatioxMidYMid meet viewBox0 0 24 24>g fillnone strokecurrentColor stroke-linecapround stroke-linejoinround stroke-width2>path stroke-dasharray60 stroke-dashoffset60 dM12 3L21 20H3L12 3Z>animate fillfreeze attributeNamestroke-dashoffset dur0.5s values60;0/>/path>path stroke-dasharray6 stroke-dashoffset6 dM12 10V14>animate fillfreeze attributeNamestroke-dashoffset begin0.6s dur0.2s values6;0/>/path>/g>circle cx12 cy17 r1 fillcurrentColor fill-opacity0>animate fillfreeze attributeNamefill-opacity begin0.8s dur0.4s values0;1/>/circle>/svg>); $(el).find(.loading-wrap).addClass(error); } }, request: (el, url, callback, onFailure) > { const maxRetry 3; let retryCount 0; return new Promise((resolve, reject) > { const load () > { utils.onLoading?.(el); let timedOut false; const timeout setTimeout(() > { timedOut true; console.warn(request 超时:, url); if (++retryCount > maxRetry) { utils.onLoadFailure?.(el); onFailure?.(); reject(请求超时); } else { setTimeout(load, 1000); } }, 5000); fetch(url).then(resp > { if (timedOut) return; clearTimeout(timeout); if (!resp.ok) throw new Error(响应失败); return resp; }).then(data > { if (timedOut) return; utils.onLoadSuccess?.(el); callback(data); resolve(data); }).catch(err > { clearTimeout(timeout); console.warn(request 错误:, err); if (++retryCount > maxRetry) { utils.onLoadFailure?.(el); onFailure?.(); reject(err); } else { setTimeout(load, 1000); } }); }; load(); }); }, requestWithoutLoading: (url, options {}, maxRetry 2, timeout 5000) > { return new Promise((resolve, reject) > { let retryCount 0; const tryRequest () > { let timedOut false; const timer setTimeout(() > { timedOut true; if (++retryCount > maxRetry) reject(timeout); else tryRequest(); }, timeout); fetch(url, options) .then(resp > { clearTimeout(timer); if (!resp.ok) throw new Error(bad response); resolve(resp); }) .catch(err > { clearTimeout(timer); if (++retryCount > maxRetry) reject(err); else setTimeout(tryRequest, 500); }); }; tryRequest(); }); }, /********************** requestAnimationFrame ********************************/ // 1、requestAnimationFrame 会把每一帧中的所有 DOM 操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。 // 2、在隐藏或不可见的元素中,requestAnimationFrame 将不会进行重绘或回流,这当然就意味着更少的的 cpu,gpu 和内存使用量。 requestAnimationFrame: (fn) > { if (!window.requestAnimationFrame) { window.requestAnimationFrame window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame; } window.requestAnimationFrame(fn) }, dark: {}, }; // utils.dark.mode 当前模式 dark or light // utils.dark.toggle() 暗黑模式触发器 // utils.dark.push(callBack,callBackName) 传入触发器回调函数 utils.dark.method { toggle: new RunItem(), }; utils.dark Object.assign(utils.dark, { push: utils.dark.method.toggle.push, });/script>script> const sidebar { leftbar: () > { if (l_body) { l_body.toggleAttribute(leftbar); l_body.removeAttribute(rightbar); } }, rightbar: () > { if (l_body) { l_body.toggleAttribute(rightbar); l_body.removeAttribute(leftbar); } }, dismiss: () > { if (l_body) { l_body.removeAttribute(leftbar); l_body.removeAttribute(rightbar); } }, toggleTOC: () > { document.querySelector(#data-toc).classList.toggle(collapse); } }/script>script typetext/javascript> (() > { const tagSwitchers document.querySelectorAll(.tag-subtree.parent-tag > a > .tag-switcher-wrapper) for (const tagSwitcher of tagSwitchers) { tagSwitcher.addEventListener(click, (e) > { const parent e.target.closest(.tag-subtree.parent-tag) parent.classList.toggle(expanded) e.preventDefault() }) } // Get active tag from query string, then activate it. const urlParams new URLSearchParams(window.location.search) const activeTag urlParams.get(tag) if (activeTag) { let tag document.querySelector(`.tag-subtreedata-tag${activeTag}`) if (tag) { tag.querySelector(a).classList.add(active) while (tag) { tag.classList.add(expanded) tag tag.parentElement.closest(.tag-subtree.parent-tag) } } } })()/script>script async srchttps://gcore.jsdelivr.net/npm/vanilla-lazyload@19.1/dist/lazyload.min.js>/script>script> // https://www.npmjs.com/package/vanilla-lazyload // Set the options globally // to make LazyLoad self-initialize window.lazyLoadOptions { elements_selector: .lazy, callback_loaded: (el) > { el.classList.add(loaded); const wrapper el.closest(.lazy-box); const icon wrapper?.querySelector(.lazy-icon); if (icon) icon.remove(); } }; // Listen to the initialization event // and get the instance of LazyLoad window.addEventListener( LazyLoad::Initialized, function (event) { window.lazyLoadInstance event.detail.instance; }, false ); document.addEventListener(DOMContentLoaded, function () { window.lazyLoadInstance?.update(); }); window.wrapLazyloadImages (container) > { if (typeof container string) { container document.querySelector(container); } if (!container) return; const images container.querySelectorAll(img); images.forEach((img) > { if (img.classList.contains(lazy)) return; const src img.getAttribute(src); if (!src) return; const wrapper document.createElement(div); wrapper.className lazy-box; const newImg img.cloneNode(); newImg.removeAttribute(src); newImg.setAttribute(data-src, src); newImg.classList.add(lazy); const icon document.createElement(div); icon.className lazy-icon; if (def.loading) { icon.style.backgroundImage `url(${def.loading})`; } wrapper.appendChild(newImg); wrapper.appendChild(icon); img.replaceWith(wrapper); }); // 通知 LazyLoad 更新 if (window.lazyLoadInstance?.update) { window.lazyLoadInstance.update(); } } /script>!-- required -->script src/js/main.js?v1.33.0 defer>/script>script typetext/javascript> const applyTheme (theme) > { if (theme auto) { document.documentElement.removeAttribute(data-theme) } else { document.documentElement.setAttribute(data-theme, theme) } // applyThemeToGiscus(theme) } // FIXME: 这会导致无法使用 preferred_color_scheme 以外的主题 const applyThemeToGiscus (theme) > { // theme theme auto ? preferred_color_scheme : theme const cmt document.getElementById(giscus) if (cmt) { // This works before giscus load. cmt.setAttribute(data-theme, theme) } const iframe document.querySelector(#comments > section.giscus > iframe) if (iframe) { // This works after giscus loaded. const src iframe.src const newSrc src.replace(/theme\w+/, `theme${theme}`) iframe.src newSrc } } const switchTheme () > { // light -> dark -> auto -> light -> ... const currentTheme document.documentElement.getAttribute(data-theme) let newTheme; switch (currentTheme) { case light: newTheme dark break case dark: newTheme auto break default: newTheme light } applyTheme(newTheme) window.localStorage.setItem(Stellar.theme, newTheme) utils.dark.mode newTheme auto ? (window.matchMedia((prefers-color-scheme: dark)).matches ? dark : light) : newTheme; utils.dark.method.toggle.start(); const messages { light: `切换到浅色模式`, dark: `切换到深色模式`, auto: `切换到跟随系统配色`, } hud?.toast?.(messagesnewTheme) } (() > { // Apply users preferred theme, if any. const theme window.localStorage.getItem(Stellar.theme) if (theme ! null) { applyTheme(theme) } else { utils.dark.mode window.matchMedia((prefers-color-scheme: dark)).matches ? dark : light; } utils.dark.method.toggle.start(); })()/script>!-- optional -->script defer> window.addEventListener(DOMContentLoaded, (event) > { ctx.services Object.assign({}, JSON.parse(`{mdrender:{js:/js/services/mdrender.js},siteinfo:{js:/js/services/siteinfo.js,api:null},ghinfo:{js:/js/services/ghinfo.js},rating:{js:/js/services/rating.js,api:https://star-vote.xaox.cc/api/rating},vote:{js:/js/services/vote.js,api:https://star-vote.xaox.cc/api/vote},sites:{js:/js/services/sites.js},friends:{js:/js/services/friends.js},friends_and_posts:{js:/js/services/friends_and_posts.js},timeline:{js:/js/services/timeline.js},fcircle:{js:/js/services/fcircle.js},weibo:{js:/js/services/weibo.js},memos:{js:/js/services/memos.js},voice:{js:/js/plugins/voice.js},video:{js:/js/plugins/video.js},download-file:{js:/js/plugins/download-file.js},twikoo:{js:/js/services/twikoo_latest_comment.js},waline:{js:/js/services/waline_latest_comment.js},artalk:{js:/js/services/artalk_latest_comment.js},giscus:{js:/js/services/giscus_latest_comment.js},contributors:{edit_this_page:{_posts/:null,wiki/stellar/:https://github.com/xaoxuu/hexo-theme-stellar-docs/blob/main/},js:/js/services/contributors.js}}`)); for (let id of Object.keys(ctx.services)) { const js ctx.servicesid.js; if (id siteinfo) { ctx.cardlinks document.querySelectorAll(a.link-cardcardlink); if (ctx.cardlinks?.length > 0) { utils.js(js, { defer: true }).then(function () { setCardLink(ctx.cardlinks); }); } } else if (id voice) { ctx.voiceAudios document.querySelectorAll(.voice>audio); if (ctx.voiceAudios?.length > 0) { utils.js(js, { defer: true }).then(function () { createVoiceDom(ctx.voiceAudios); }); } } else if (id video) { ctx.videos document.querySelectorAll(.video>video); if (ctx.videos?.length > 0) { utils.js(js, { defer: true }).then(function () { videoEvents(ctx.videos); }); } } else if (id download-file) { ctx.files document.querySelectorAll(.file); if (ctx.files?.length > 0) { utils.js(js, { defer: true }).then(function () { downloadFileEvent(ctx.files); }); } } else { const els document.getElementsByClassName(`ds-${id}`); if (els?.length > 0) { utils.jq(() > { if (id timeline || memos || marked) { utils.js(deps.marked).then(function () { utils.js(js, { defer: true }); }); } else { utils.js(js, { defer: true }); } }); } } } // chat iphone time let phoneTimes document.querySelectorAll(.chat .status-bar .time); if (phoneTimes.length > 0) { NowTime(); var date new Date(); var sec date.getSeconds(); var firstAdjustInterval setInterval(firstAdjustTime, 1000 * (60 - sec)); } function firstAdjustTime() { NowTime(); clearInterval(firstAdjustInterval); setInterval(NowTime, 1000 * 60); } function NowTime() { for (let i 0; i phoneTimes.length; ++i) { var timeSpan phoneTimesi; var date new Date(); var hour date.getHours(); var min date.getMinutes(); timeSpan.innerHTML check(hour) + : + check(min); } }; function check(val) { if (val 10) { return (0 + val); } return (val); } // chat quote const chat_quote_obverser new IntersectionObserver((entries, observer) > { entries.filter((entry) > { return entry.isIntersecting }).sort((a, b) > a.intersectionRect.y ! b.intersectionRect.y ? a.intersectionRect.y - b.intersectionRect.y : a.intersectionRect.x - b.intersectionRect.x).forEach((entry, index) > { observer.unobserve(entry.target); setTimeout(() > { entry.target.classList.add(quote-blink); setTimeout(() > { entry.target.classList.remove(quote-blink); }, 1000); }, Math.max(100, 16) * (index + 1)); }); }); var chatQuotes document.querySelectorAll(.chat .talk .quote); chatQuotes.forEach((quote) > { quote.addEventListener(click, function () { var chatCellDom document.getElementById(quote- + quote.getAttribute(quotedCellTag)); if (chatCellDom) { var chatDiv chatCellDom.parentElement; var mid chatDiv.clientHeight / 2; var offsetTop chatCellDom.offsetTop; if (offsetTop > mid - chatCellDom.clientHeight / 2) { chatDiv.scrollTo({ top: chatCellDom.offsetTop - mid + chatCellDom.clientHeight / 2, behavior: smooth }); } else { chatDiv.scrollTo({ top: 0, behavior: smooth }); } chat_quote_obverser.observe(chatCellDom); } }); }); });/script>script> window.addEventListener(DOMContentLoaded, (event) > { ctx.search { path: `/search.json`, } utils.js(/js/search/local-search.js, { defer: true }); });/script>script> window.FPConfig { delay: 0, ignoreKeywords: , maxRPS: 5, hoverDelay: 25 };/script>script defer srchttps://gcore.jsdelivr.net/npm/flying-pages@2/flying-pages.min.js>/script>script> ctx.fancybox { selector: `.timenode p>img`, css: `https://gcore.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css`, js: `https://gcore.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.umd.js` }; var selector data-fancybox:not(.error), .with-fancybox .atk-content img:not(atk-emoticon); if (ctx.fancybox.selector) { selector + `, ${ctx.fancybox.selector}` } var needFancybox document.querySelectorAll(selector).length ! 0; if (!needFancybox) { const memos document.getElementsByClassName(ds-memos); if (memos ! undefined && memos.length > 0) { needFancybox true; } const fancybox document.getElementsByClassName(with-fancybox); if (fancybox ! undefined && fancybox.length > 0) { needFancybox true; } } if (needFancybox) { utils.css(ctx.fancybox.css); utils.js(ctx.fancybox.js, { defer: true }).then(function () { Fancybox.bind(selector, { hideScrollbar: false, Thumbs: { autoStart: false, }, caption: (fancybox, slide) > { return slide.triggerEl.alt || slide.triggerEl.dataset.caption || null } }); }) }/script>script> window.addEventListener(DOMContentLoaded, (event) > { const swiper_api document.getElementById(swiper-api); if (swiper_api ! undefined) { utils.css(`https://unpkg.com/swiper@10.3/swiper-bundle.min.css`); utils.js(`https://unpkg.com/swiper@10.3/swiper-bundle.min.js`, { defer: true }).then(function () { const effect swiper_api.getAttribute(effect) || ; var swiper new Swiper(.swiper#swiper-api, { slidesPerView: auto, spaceBetween: 8, centeredSlides: true, effect: effect, rewind: true, pagination: { el: .swiper-pagination, clickable: true, }, navigation: { nextEl: .swiper-button-next, prevEl: .swiper-button-prev, }, }); }) } });/script>script> document.addEventListener(DOMContentLoaded, function () { window.codeElements document.querySelectorAll(.code); if (window.codeElements.length > 0) { ctx.copycode { default_text: `Copy`, success_text: `Copied`, toast: `复制成功`, }; utils.js(/js/plugins/copycode.js); } });/script>!-- inject -->/div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]