786.html 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  1. <!DOCTYPE html>
  2. <html lang="en" data-default-color-scheme=auto>
  3. <head><!-- hexo injector head_begin start -->
  4. <script async src="https://analytics.umami.is/script.js" data-website-id="e59ec28a-c9a7-4104-9e62-a9f7eb3fac0b"></script>
  5. <!-- hexo injector head_begin end -->
  6. <meta charset="UTF-8">
  7. <link rel="apple-touch-icon" sizes="76x76" href="https://img.limour.top/2023/08/29/64ee07361815a.webp">
  8. <link rel="icon" href="https://img.limour.top/2023/08/29/64ee07361815a.webp">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
  10. <meta http-equiv="x-ua-compatible" content="ie=edge">
  11. <meta name="theme-color" content="#2f4154">
  12. <meta name="author" content="Limour">
  13. <meta name="keywords" content="">
  14. <meta name="description" content="Slides FileGood morning, everyone. I appreciate the opportunity to be with you today. I am here to briefly introduce to you spatial transcriptomics, a bioinformatics technology, and its significance f">
  15. <meta property="og:type" content="article">
  16. <meta property="og:title" content="21.09.26 医学英语Pre">
  17. <meta property="og:url" content="https://b.limour.top/786.html">
  18. <meta property="og:site_name" content="Limour&#39;s Blog">
  19. <meta property="og:description" content="Slides FileGood morning, everyone. I appreciate the opportunity to be with you today. I am here to briefly introduce to you spatial transcriptomics, a bioinformatics technology, and its significance f">
  20. <meta property="og:locale" content="en_US">
  21. <meta property="article:published_time" content="2021-09-25T13:51:46.000Z">
  22. <meta property="article:modified_time" content="2023-09-01T13:32:00.553Z">
  23. <meta property="article:author" content="Limour">
  24. <meta name="twitter:card" content="summary_large_image">
  25. <title>21.09.26 医学英语Pre - Limour&#39;s Blog</title>
  26. <link rel="stylesheet" href="https://jscdn.limour.top/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" />
  27. <link rel="stylesheet" href="https://jscdn.limour.top/npm/github-markdown-css@4.0.0/github-markdown.min.css" />
  28. <link rel="stylesheet" href="https://jscdn.limour.top/npm/hint.css@2.7.0/hint.min.css" />
  29. <link rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css" />
  30. <!-- 主题依赖的图标库,不要自行修改 -->
  31. <!-- Do not modify the link that theme dependent icons -->
  32. <link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css">
  33. <link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css">
  34. <link rel="stylesheet" href="/css/main.css" />
  35. <link id="highlight-css" rel="stylesheet" href="/css/highlight.css" />
  36. <link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css" />
  37. <link rel="stylesheet" href="/theme-inject/custom.css">
  38. <script id="fluid-configs">
  39. var Fluid = window.Fluid || {};
  40. Fluid.ctx = Object.assign({}, Fluid.ctx)
  41. var CONFIG = {"hostname":"b.limour.top","root":"/","version":"1.9.5-a","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":"§"},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"follow_dnt":true,"baidu":null,"google":{"measurement_id":null},"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/local-search.xml","include_content_in_search":true};
  42. if (CONFIG.web_analytics.follow_dnt) {
  43. var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
  44. Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
  45. }
  46. </script>
  47. <script src="/js/utils.js" ></script>
  48. <script src="/js/color-schema.js" ></script>
  49. <meta name="generator" content="Hexo 6.3.0"></head>
  50. <body>
  51. <header>
  52. <div class="header-inner" style="height: 70vh;">
  53. <nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar">
  54. <div class="container">
  55. <a class="navbar-brand" href="/">
  56. <strong>Limour&#39;s Blog</strong>
  57. </a>
  58. <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
  59. data-target="#navbarSupportedContent"
  60. aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  61. <div class="animated-icon"><span></span><span></span><span></span></div>
  62. </button>
  63. <!-- Collapsible content -->
  64. <div class="collapse navbar-collapse" id="navbarSupportedContent">
  65. <ul class="navbar-nav ml-auto text-center">
  66. <li class="nav-item">
  67. <a class="nav-link" href="/">
  68. <i class="iconfont icon-home-fill"></i>
  69. <span>Home</span>
  70. </a>
  71. </li>
  72. <li class="nav-item">
  73. <a class="nav-link" href="/archives/">
  74. <i class="iconfont icon-archive-fill"></i>
  75. <span>Archives</span>
  76. </a>
  77. </li>
  78. <li class="nav-item" id="search-btn">
  79. <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
  80. <i class="iconfont icon-search"></i>
  81. </a>
  82. </li>
  83. <li class="nav-item" id="color-toggle-btn">
  84. <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">
  85. <i class="iconfont icon-dark" id="color-toggle-icon"></i>
  86. </a>
  87. </li>
  88. </ul>
  89. </div>
  90. </div>
  91. </nav>
  92. <div id="banner" class="banner" parallax=true
  93. style="background: url('https://img.limour.top/2023/08/29/64ee08e108638.webp') no-repeat center center; background-size: cover;">
  94. <div class="full-bg-img">
  95. <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
  96. <div class="banner-text text-center fade-in-up">
  97. <div class="h2">
  98. <span id="subtitle" data-typed-text="21.09.26 医学英语Pre"></span>
  99. </div>
  100. <div class="mt-3">
  101. <span class="post-meta">
  102. <i class="iconfont icon-date-fill" aria-hidden="true"></i>
  103. <time datetime="2021-09-25 21:51" pubdate>
  104. September 25, 2021 pm
  105. </time>
  106. </span>
  107. </div>
  108. <div class="mt-1">
  109. <span class="post-meta mr-2">
  110. <i class="iconfont icon-chart"></i>
  111. 5.6k words
  112. </span>
  113. <span class="post-meta mr-2">
  114. <i class="iconfont icon-clock-fill"></i>
  115. 47 mins
  116. </span>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. </header>
  124. <main>
  125. <div class="container-fluid nopadding-x">
  126. <div class="row nomargin-x">
  127. <div class="side-col d-none d-lg-block col-lg-2">
  128. </div>
  129. <div class="col-lg-8 nopadding-x-md">
  130. <div class="container nopadding-x-md" id="board-ctn">
  131. <div id="board">
  132. <article class="post-content mx-auto">
  133. <h1 id="seo-header">21.09.26 医学英语Pre</h1>
  134. <div class="markdown-body">
  135. <h2 id="Slides-File"><a href="#Slides-File" class="headerlink" title="Slides File"></a><a target="_blank" rel="noopener" href="https://limour.top/nextcloud/index.php/s/kLKmEmr2mDq3Gni">Slides File</a></h2><p>Good morning, everyone. I appreciate the opportunity to be with you today. I am here to briefly introduce to you spatial transcriptomics, a bioinformatics technology, and its significance for the overall development of medical science.</p>
  136. <p>During the next five minutes, I shall talk about what spatial transcriptomics is, why we need it, how to use it, and its four points of meaning.</p>
  137. <p>When we discuss gene expression patterns, we tend to focus on two dimensions: Spatial and temporal dimensions. By selecting samples at different time points and then performing single-cell RNA sequencing, we have been able to obtain information on the “temporal dynamic expression” of genes at the single-cell level. But using this seq process will make us inevitably lose the spatial information of tissue samples. It is to solve this problem that researchers set out to develop: spatial analysis of the transcriptome.</p>
  138. <p><strong>Spatial Transcriptomics (ST)</strong> is a technology used to characterize gene expression profiles while retaining information of the spatial tissue context. </p>
  139. <p>The term spatial transcriptomics was first introduced by an article published in Science in 2016 and this technology was titled by Nature as <a target="_blank" rel="noopener" href="https://www.nature.com/articles/s41592-020-01042-x">“Method of the Year 2020”</a>.  </p>
  140. <p>We can briefly understand the main results of the “spatial transcriptome” technology introduced in this article through the picture on the upper right of the above picture. The picture is divided into two parts, the upper part is a tissue section, and every spot we see is a detection area. After finishing the spatial transcriptome, we can get some regional marker genes (regional markers) through a special toolkit for data analysis. For example, the gene “Penk” in the figure above is the “marker gene of the green region”. The following is the result of in situ sequence experiment (in situ sequence). As you can see, the results of in situ sequencing below verify the results of the spatial transcriptome.</p>
  141. <p>There are roughly four groups of methodologies to conduct spatial transcriptomics. These groups all have a large variety of techniques. It is good to keep in mind that not all spatial techniques have a single-cell resolution, or provide information on the whole transcriptome.</p>
  142. <h3 id="The-first-method-is-called-in-silico-construction"><a href="#The-first-method-is-called-in-silico-construction" class="headerlink" title="The first method is called in silico construction."></a>The first method is called in silico construction.</h3><p>These methods computationally map single cells back into space, with little or no prior knowledge about the position of the sequenced cells. These methods are therefore compatible with single-cell RNA sequencing.</p>
  143. <h3 id="The-second-method-is-called-Microdissection"><a href="#The-second-method-is-called-Microdissection" class="headerlink" title="The second method is called Microdissection."></a>The second method is called Microdissection.</h3><p>Microdissection is a technique where you isolate regions of interest from within a sample. Isolation is done by lasering or cutting. From these tissue pieces, RNA is isolated, processed, and sequenced.</p>
  144. <h3 id="The-third-method-is-called-in-situ-sequencing"><a href="#The-third-method-is-called-in-situ-sequencing" class="headerlink" title="The third method is called in situ sequencing."></a>The third method is called in situ sequencing.</h3><p>In situ sequencing is the sequencing of RNA while the cell stays within the tissue context. The sequenced RNAs are visualized using fluorescent probes. This method also does not allow for full transcriptome analysis.</p>
  145. <h3 id="The-last-method-is-in-situ-capturing-based-on-spatial-barcodes"><a href="#The-last-method-is-in-situ-capturing-based-on-spatial-barcodes" class="headerlink" title="The last method is in situ capturing based on spatial barcodes."></a>The last method is in situ capturing based on spatial barcodes.</h3><p>In situ capturing is a spatial transcriptomics method in which transcripts are first captured and barcoded <em>within</em> the tissue. Then, sequencing is performed <em>outside</em> the tissue. The tissue is imaged, which allows the transcriptomics data to be overlayed with the tissue images.</p>
  146. <p>Okay, everyone may ask a question. Now that we have single-cell RNA sequencing technology, why should we develop <strong>Spatial Transcriptomics</strong>?</p>
  147. <p>Firstly, ST provides spatial information, overcoming the weakness of single-cell RNA sequencing.</p>
  148. <p>Secondly, ST only requires tissue sections. single-cell RNA sequencing requires the formation of protoplasts, which is difficult to produce in certain species.</p>
  149. <p>Thirdly, Spatial information can be used to annotate cell types with histological knowledge, which satisfy the demand of conducting research on non-model</p>
  150. <p>In this part, I will take the workflow of the last method as an example to introduce how to use <strong>Spatial Transcriptomics.</strong></p>
  151. <h4 id="The-first-step-is-to-prepare-your-sample"><a href="#The-first-step-is-to-prepare-your-sample" class="headerlink" title="The first step is to prepare your sample"></a>The first step is to prepare your sample</h4><p>Embed, section, and place fresh frozen or FFPE tissue onto a Capture Area of the gene expression slide. Each Capture Area has thousands of barcoded spots containing millions of capture oligonucleotides with spatial barcodes unique to that spot.</p>
  152. <h4 id="The-second-step-is-to-Stain-and-image-the-tissue"><a href="#The-second-step-is-to-Stain-and-image-the-tissue" class="headerlink" title="The second step is to Stain and image the tissue"></a>The second step is to Stain and image the tissue</h4><p>Utilize standard fixation and staining techniques, including hematoxylin and eosin (H&amp;E) staining, to visualize tissue sections on slides using a brightfield microscope and immunofluorescence staining to visualize protein detection in tissue sections on slides using a fluorescent microscope.</p>
  153. <h4 id="The-third-step-is-to-permeabilize-tissue-and-construct-library"><a href="#The-third-step-is-to-permeabilize-tissue-and-construct-library" class="headerlink" title="The third step is to permeabilize tissue and construct library."></a>The third step is to permeabilize tissue and construct library.</h4><p>For fresh frozen tissue, the tissue is permeabilized to release mRNA from the cells, which binds to the spatially barcoded oligonucleotides present on the spots. A reverse transcription reaction produces cDNA from the captured mRNA. The barcoded cDNA is then pooled for downstream processing to generate a sequencing-ready library. For FFPE tissues, tissue is permeabilized to release ligated probe pairs from the cells, which bind to the spatially barcoded oligonucleotides present on the spots. Spatial barcodes are added via an extension reaction. The barcoded molecules are then pooled for downstream processing to generate a sequencing-ready library.</p>
  154. <h4 id="The-fourth-step-is-to-sequence"><a href="#The-fourth-step-is-to-sequence" class="headerlink" title="The fourth step is to sequence."></a>The fourth step is to sequence.</h4><p>The resulting 10x barcoded library is compatible with standard NGS short-read sequencing on Illumina sequencers for massive transcriptional profiling of entire tissue sections.</p>
  155. <h4 id="The-fifth-step-is-to-analyze-and-visualize-your-data"><a href="#The-fifth-step-is-to-analyze-and-visualize-your-data" class="headerlink" title="The fifth step is to analyze and visualize your data."></a>The fifth step is to analyze and visualize your data.</h4><p>You can use Seurat for analysis and visualization. These are my example R codes and results.</p>
  156. <p>I’d now like to move on to the significance.</p>
  157. <p>ST can map and measure where all gene activity is occurring in normal and diseased tissue. So we can gain a complete view of disease complexity.</p>
  158. <p>ST can visualize the whole transcriptome to identify novel targets and their locations in the tissue microenvironment. So we can discover new biomarkers.</p>
  159. <p>ST can characterize cell populations and their locations within a tissue. So we can map the spatial organization of cell atlases.</p>
  160. <p>ST can combine spatial gene expression patterns with developmental time points. So we can identify spatiotemporal gene expression patterns.</p>
  161. <p>That’s all I have to say about <strong>Spatial Transcriptomics.</strong></p>
  162. <p>These are the REFERENCES I used.</p>
  163. <p>If you want to know more, you can visit my blog. And you can also get this slides file and my oral draft on it. The access password is my student ID.</p>
  164. <p>Thank you for listening. I’d be grateful if you could ask your questions.</p>
  165. </div>
  166. <hr/>
  167. <div>
  168. <div class="post-metas my-3">
  169. <div class="post-meta mr-3 d-flex align-items-center">
  170. <i class="iconfont icon-category"></i>
  171. <span class="category-chains">
  172. <span class="category-chain">
  173. <a href="/categories/%E5%8C%BB%E5%AD%A6%E4%B8%8E%E9%80%9A%E8%AF%86/" class="category-chain-item">医学与通识</a>
  174. </span>
  175. </span>
  176. </div>
  177. </div>
  178. <div class="license-box my-3">
  179. <div class="license-title">
  180. <div>21.09.26 医学英语Pre</div>
  181. <div>https://b.limour.top/786.html</div>
  182. </div>
  183. <div class="license-meta">
  184. <div class="license-meta-item">
  185. <div>Author</div>
  186. <div>Limour</div>
  187. </div>
  188. <div class="license-meta-item license-meta-date">
  189. <div>Posted on</div>
  190. <div>September 25, 2021</div>
  191. </div>
  192. <div class="license-meta-item">
  193. <div>Licensed under</div>
  194. <div>
  195. <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  196. <span class="hint--top hint--rounded" aria-label="BY - Attribution">
  197. <i class="iconfont icon-by"></i>
  198. </span>
  199. </a>
  200. <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  201. <span class="hint--top hint--rounded" aria-label="NC - Non-commercial">
  202. <i class="iconfont icon-nc"></i>
  203. </span>
  204. </a>
  205. <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  206. <span class="hint--top hint--rounded" aria-label="SA - Share-alike">
  207. <i class="iconfont icon-sa"></i>
  208. </span>
  209. </a>
  210. </div>
  211. </div>
  212. </div>
  213. <div class="license-icon iconfont"></div>
  214. </div>
  215. <div class="post-prevnext my-3">
  216. <article class="post-prev col-6">
  217. <a href="/792.html" title="Seurat (三) scRNA-seq数据全流程分析 (一)">
  218. <i class="iconfont icon-arrowleft"></i>
  219. <span class="hidden-mobile">Seurat (三) scRNA-seq数据全流程分析 (一)</span>
  220. <span class="visible-mobile">Previous</span>
  221. </a>
  222. </article>
  223. <article class="post-next col-6">
  224. <a href="/779.html" title="TCGA (二) 获得counts矩阵">
  225. <span class="hidden-mobile">TCGA (二) 获得counts矩阵</span>
  226. <span class="visible-mobile">Next</span>
  227. <i class="iconfont icon-arrowright"></i>
  228. </a>
  229. </article>
  230. </div>
  231. </div>
  232. <article id="comments" lazyload>
  233. <div id="waline"></div>
  234. <script type="text/javascript">
  235. Fluid.utils.loadComments('#waline', function() {
  236. Fluid.utils.createCssLink('https://cdn.staticfile.org/waline/2.15.5/waline.min.css')
  237. Fluid.utils.createScript('https://cdn.staticfile.org/waline/2.15.5/waline.min.js', function() {
  238. var options = Object.assign(
  239. {"serverURL":"https://comments.limour.top","path":"window.location.pathname","meta":["nick","mail","link"],"requiredMeta":["nick"],"lang":"zh-CN","emoji":["https://jscdn.limour.top/gh/walinejs/emojis/weibo"],"dark":"html[data-user-color-scheme=\"dark\"]","wordLimit":0,"pageSize":10},
  240. {
  241. el: '#waline',
  242. path: window.location.pathname
  243. }
  244. )
  245. Waline.init(options);
  246. Fluid.utils.waitElementVisible('#waline .vcontent', () => {
  247. var imgSelector = '#waline .vcontent img:not(.vemoji)';
  248. Fluid.plugins.imageCaption(imgSelector);
  249. Fluid.plugins.fancyBox(imgSelector);
  250. })
  251. });
  252. });
  253. </script>
  254. <noscript>Please enable JavaScript to view the comments</noscript>
  255. </article>
  256. </article>
  257. </div>
  258. </div>
  259. </div>
  260. <div class="side-col d-none d-lg-block col-lg-2">
  261. <aside class="sidebar" style="margin-left: -1rem">
  262. <div id="toc">
  263. <p class="toc-header">
  264. <i class="iconfont icon-list"></i>
  265. <span>Table of Contents</span>
  266. </p>
  267. <div class="toc-body" id="toc-body"></div>
  268. </div>
  269. </aside>
  270. </div>
  271. </div>
  272. </div>
  273. <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
  274. <i class="iconfont icon-arrowup" aria-hidden="true"></i>
  275. </a>
  276. <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
  277. aria-hidden="true">
  278. <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
  279. <div class="modal-content">
  280. <div class="modal-header text-center">
  281. <h4 class="modal-title w-100 font-weight-bold">Search</h4>
  282. <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
  283. <span aria-hidden="true">&times;</span>
  284. </button>
  285. </div>
  286. <div class="modal-body mx-3">
  287. <div class="md-form mb-5">
  288. <input type="text" id="local-search-input" class="form-control validate">
  289. <label data-error="x" data-success="v" for="local-search-input">Keyword</label>
  290. </div>
  291. <div class="list-group" id="local-search-result"></div>
  292. </div>
  293. </div>
  294. </div>
  295. </div>
  296. </main>
  297. <footer>
  298. <div class="footer-inner">
  299. <div class="footer-content">
  300. <a target="_blank" rel="nofollow noopener" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=43130202000203"><img src="https://img.limour.top/2023/08/27/64eadeb81d6a0.webp" srcset="https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg" lazyload>湘公网安备 43130202000203号 </a> <a target="_blank" rel="nofollow noopener" href="https://beian.miit.gov.cn/">湘ICP备20008299号 </a> <a target="_blank" rel="nofollow noopener" href="https://icp.gov.moe/?keyword=20210128">萌ICP备20210128号</a> <br> <a href="https://www.foreverblog.cn/" target="_blank"> <img src="https://img.foreverblog.cn/logo_en_default.png" srcset="https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg" lazyload alt="" style="width:auto;height:24px"> </a> <br> <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/limour-blog/archives-b" target="_blank" rel="nofollow noopener"><span>SRC</span></a>
  301. </div>
  302. </div>
  303. </footer>
  304. <!-- Scripts -->
  305. <script src="https://jscdn.limour.top/npm/nprogress@0.2.0/nprogress.min.js" ></script>
  306. <link rel="stylesheet" href="https://jscdn.limour.top/npm/nprogress@0.2.0/nprogress.min.css" />
  307. <script>
  308. NProgress.configure({"showSpinner":false,"trickleSpeed":100})
  309. NProgress.start()
  310. window.addEventListener('load', function() {
  311. NProgress.done();
  312. })
  313. </script>
  314. <script src="https://jscdn.limour.top/npm/jquery@3.6.4/dist/jquery.min.js" ></script>
  315. <script src="https://jscdn.limour.top/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" ></script>
  316. <script src="/js/events.js" ></script>
  317. <script src="/js/plugins.js" ></script>
  318. <script src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
  319. <script>
  320. (function (window, document) {
  321. var typing = Fluid.plugins.typing;
  322. var subtitle = document.getElementById('subtitle');
  323. if (!subtitle || !typing) {
  324. return;
  325. }
  326. var text = subtitle.getAttribute('data-typed-text');
  327. typing(text);
  328. })(window, document);
  329. </script>
  330. <script src="/js/img-lazyload.js" ></script>
  331. <script>
  332. Fluid.utils.createScript('https://jscdn.limour.top/npm/tocbot@4.20.1/dist/tocbot.min.js', function() {
  333. var toc = jQuery('#toc');
  334. if (toc.length === 0 || !window.tocbot) { return; }
  335. var boardCtn = jQuery('#board-ctn');
  336. var boardTop = boardCtn.offset().top;
  337. window.tocbot.init(Object.assign({
  338. tocSelector : '#toc-body',
  339. contentSelector : '.markdown-body',
  340. linkClass : 'tocbot-link',
  341. activeLinkClass : 'tocbot-active-link',
  342. listClass : 'tocbot-list',
  343. isCollapsedClass: 'tocbot-is-collapsed',
  344. collapsibleClass: 'tocbot-is-collapsible',
  345. scrollSmooth : true,
  346. includeTitleTags: true,
  347. headingsOffset : -boardTop,
  348. }, CONFIG.toc));
  349. if (toc.find('.toc-list-item').length > 0) {
  350. toc.css('visibility', 'visible');
  351. }
  352. Fluid.events.registerRefreshCallback(function() {
  353. if ('tocbot' in window) {
  354. tocbot.refresh();
  355. var toc = jQuery('#toc');
  356. if (toc.length === 0 || !tocbot) {
  357. return;
  358. }
  359. if (toc.find('.toc-list-item').length > 0) {
  360. toc.css('visibility', 'visible');
  361. }
  362. }
  363. });
  364. });
  365. </script>
  366. <script src=https://lib.baomitu.com/clipboard.js/2.0.11/clipboard.min.js></script>
  367. <script>Fluid.plugins.codeWidget();</script>
  368. <script>
  369. Fluid.utils.createScript('https://jscdn.limour.top/npm/anchor-js@4.3.1/anchor.min.js', function() {
  370. window.anchors.options = {
  371. placement: CONFIG.anchorjs.placement,
  372. visible : CONFIG.anchorjs.visible
  373. };
  374. if (CONFIG.anchorjs.icon) {
  375. window.anchors.options.icon = CONFIG.anchorjs.icon;
  376. }
  377. var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
  378. var res = [];
  379. for (var item of el) {
  380. res.push('.markdown-body > ' + item.trim());
  381. }
  382. if (CONFIG.anchorjs.placement === 'left') {
  383. window.anchors.options.class = 'anchorjs-link-left';
  384. }
  385. window.anchors.add(res.join(', '));
  386. Fluid.events.registerRefreshCallback(function() {
  387. if ('anchors' in window) {
  388. anchors.removeAll();
  389. var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
  390. var res = [];
  391. for (var item of el) {
  392. res.push('.markdown-body > ' + item.trim());
  393. }
  394. if (CONFIG.anchorjs.placement === 'left') {
  395. anchors.options.class = 'anchorjs-link-left';
  396. }
  397. anchors.add(res.join(', '));
  398. }
  399. });
  400. });
  401. </script>
  402. <script>
  403. Fluid.utils.createScript('https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js', function() {
  404. Fluid.plugins.fancyBox();
  405. });
  406. </script>
  407. <script>Fluid.plugins.imageCaption();</script>
  408. <script src="/js/local-search.js" ></script>
  409. <!-- 主题的启动项,将它保持在最底部 -->
  410. <!-- the boot of the theme, keep it at the bottom -->
  411. <script src="/js/boot.js" ></script>
  412. <noscript>
  413. <div class="noscript-warning">Blog works best with JavaScript enabled</div>
  414. </noscript>
  415. <!-- hexo injector body_end start -->
  416. <script defer src="/theme-inject/timeliness.js"></script>
  417. <!-- hexo injector body_end end --></body>
  418. </html>