From d3dc123efe3997745107bd15cb65117c21e05405 Mon Sep 17 00:00:00 2001
From: mozzie
Date: Fri, 20 Oct 2023 13:35:01 +0800
Subject: [PATCH] doc: update document
---
db.json | 2 +-
public/2023/10/20/Linear Sample/index.html | 2 +-
public/2023/10/20/Linear 入门/index.html | 116 +++++++++++-----
public/archives/2023/10/index.html | 7 +-
public/archives/2023/index.html | 7 +-
public/archives/index.html | 7 +-
public/img/algolia-api-keys.png | Bin 0 -> 283350 bytes
source/_posts/Linear 入门.md | 150 ++++++++++++++-------
source/img/algolia-api-keys.png | Bin 0 -> 283350 bytes
9 files changed, 189 insertions(+), 102 deletions(-)
create mode 100644 public/img/algolia-api-keys.png
create mode 100644 source/img/algolia-api-keys.png
diff --git a/db.json b/db.json
index 0f1f5f6e..c66a2e12 100644
--- a/db.json
+++ b/db.json
@@ -1 +1 @@
-{"meta":{"version":1,"warehouse":"4.0.2"},"models":{"Asset":[{"_id":"themes/hexo-theme-linear/source/css/0c63d269.css","path":"css/0c63d269.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/206.a3a4e130.css","path":"css/206.a3a4e130.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/21.88950121.css","path":"css/21.88950121.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/271.54fa1675.css","path":"css/271.54fa1675.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/291.a8323266.css","path":"css/291.a8323266.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/2cd7dba2.css","path":"css/2cd7dba2.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/2f1ea598.css","path":"css/2f1ea598.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/3a4a90d1.css","path":"css/3a4a90d1.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/3efc6cb5.css","path":"css/3efc6cb5.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/429.fb1dabcb.css","path":"css/429.fb1dabcb.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/4c3d0e88.css","path":"css/4c3d0e88.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/618.6513d67e.css","path":"css/618.6513d67e.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/766.64ad3c35.css","path":"css/766.64ad3c35.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/7c527814.css","path":"css/7c527814.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/922.9efa0b6b.css","path":"css/922.9efa0b6b.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/945.fdf98cb0.css","path":"css/945.fdf98cb0.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/aeb44e7a.css","path":"css/aeb44e7a.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/ccbcde32.css","path":"css/ccbcde32.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/de5de8fb.css","path":"css/de5de8fb.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/e01add4b.css","path":"css/e01add4b.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/efca006a.css","path":"css/efca006a.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/f3729dde.css","path":"css/f3729dde.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/font/linear.woff2","path":"font/linear.woff2","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/font/motto.woff","path":"font/motto.woff","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/favicon.svg","path":"img/favicon.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-arrow-left.svg","path":"img/icon-arrow-left.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-book.svg","path":"img/icon-book.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-click.svg","path":"img/icon-click.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-date.svg","path":"img/icon-date.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-layout.svg","path":"img/icon-layout.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-link.svg","path":"img/icon-link.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-moon.svg","path":"img/icon-moon.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-sun.svg","path":"img/icon-sun.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon1.svg","path":"img/icon1.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon2.svg","path":"img/icon2.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/logo.png","path":"img/logo.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon3.svg","path":"img/icon3.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js","path":"js/07f44e09.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js.LICENSE.txt","path":"js/07f44e09.js.LICENSE.txt","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/1247bc3e.js","path":"js/1247bc3e.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/206.759361ed.js","path":"js/206.759361ed.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/21.282c05e7.js","path":"js/21.282c05e7.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/271.ee88a6de.js","path":"js/271.ee88a6de.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/291.4ac6984b.js","path":"js/291.4ac6984b.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/3cf4fd98.js","path":"js/3cf4fd98.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/31d6cfe0.js","path":"js/31d6cfe0.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/429.bc4769cb.js","path":"js/429.bc4769cb.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/618.1a58fba9.js","path":"js/618.1a58fba9.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/430dbbd6.js","path":"js/430dbbd6.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/766.9503a62c.js","path":"js/766.9503a62c.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/85d1c72e.js","path":"js/85d1c72e.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/922.689e0633.js","path":"js/922.689e0633.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/945.0313a94c.js","path":"js/945.0313a94c.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/96ea39da.js","path":"js/96ea39da.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/ca6b30b5.js","path":"js/ca6b30b5.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/f8b20eb9.js","path":"js/f8b20eb9.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/100.png","path":"img/qweather-color-icon/100.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/101.png","path":"img/qweather-color-icon/101.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/102.png","path":"img/qweather-color-icon/102.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/103.png","path":"img/qweather-color-icon/103.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/150.png","path":"img/qweather-color-icon/150.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/104.png","path":"img/qweather-color-icon/104.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/151.png","path":"img/qweather-color-icon/151.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/152.png","path":"img/qweather-color-icon/152.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/300.png","path":"img/qweather-color-icon/300.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/153.png","path":"img/qweather-color-icon/153.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/301.png","path":"img/qweather-color-icon/301.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/302.png","path":"img/qweather-color-icon/302.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/303.png","path":"img/qweather-color-icon/303.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/304.png","path":"img/qweather-color-icon/304.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/305.png","path":"img/qweather-color-icon/305.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/306.png","path":"img/qweather-color-icon/306.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/307.png","path":"img/qweather-color-icon/307.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/308.png","path":"img/qweather-color-icon/308.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/309.png","path":"img/qweather-color-icon/309.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/310.png","path":"img/qweather-color-icon/310.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/311.png","path":"img/qweather-color-icon/311.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/312.png","path":"img/qweather-color-icon/312.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/313.png","path":"img/qweather-color-icon/313.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/314.png","path":"img/qweather-color-icon/314.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/315.png","path":"img/qweather-color-icon/315.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/316.png","path":"img/qweather-color-icon/316.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/318.png","path":"img/qweather-color-icon/318.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/317.png","path":"img/qweather-color-icon/317.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/350.png","path":"img/qweather-color-icon/350.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/351.png","path":"img/qweather-color-icon/351.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/400.png","path":"img/qweather-color-icon/400.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/399.png","path":"img/qweather-color-icon/399.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/401.png","path":"img/qweather-color-icon/401.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/402.png","path":"img/qweather-color-icon/402.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/403.png","path":"img/qweather-color-icon/403.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/404.png","path":"img/qweather-color-icon/404.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/406.png","path":"img/qweather-color-icon/406.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/407.png","path":"img/qweather-color-icon/407.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/408.png","path":"img/qweather-color-icon/408.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/409.png","path":"img/qweather-color-icon/409.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/410.png","path":"img/qweather-color-icon/410.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/456.png","path":"img/qweather-color-icon/456.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/457.png","path":"img/qweather-color-icon/457.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/499.png","path":"img/qweather-color-icon/499.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/500.png","path":"img/qweather-color-icon/500.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/501.png","path":"img/qweather-color-icon/501.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/503.png","path":"img/qweather-color-icon/503.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/502.png","path":"img/qweather-color-icon/502.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/504.png","path":"img/qweather-color-icon/504.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/507.png","path":"img/qweather-color-icon/507.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/508.png","path":"img/qweather-color-icon/508.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/509.png","path":"img/qweather-color-icon/509.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/510.png","path":"img/qweather-color-icon/510.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/511.png","path":"img/qweather-color-icon/511.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/512.png","path":"img/qweather-color-icon/512.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/513.png","path":"img/qweather-color-icon/513.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/514.png","path":"img/qweather-color-icon/514.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/515.png","path":"img/qweather-color-icon/515.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/900.png","path":"img/qweather-color-icon/900.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","path":"img/qweather-color-icon/901.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/999.png","path":"img/qweather-color-icon/999.png","modified":1,"renderable":1}],"Cache":[{"_id":"source/_posts/Linear Sample.md","hash":"1796682a5640e5e9ee3187a43de69ddff44b6c3d","modified":1697777266792},{"_id":"source/_posts/Linear 入门.md","hash":"b44e84e5f503af96bfddbc5bc9c784aa863933f6","modified":1697771937874},{"_id":"source/_posts/front-end/verdaccio.md","hash":"50453d3e60c7e63e31bc9f3efcebc241d317fae0","modified":1697768855158},{"_id":"source/_posts/Linear-Starter-Guide.md","hash":"24cb2d030cff00472eaeae941ed359c57162b3c8","modified":1697771754296},{"_id":"themes/hexo-theme-linear/source/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697766724527},{"_id":"themes/hexo-theme-linear/layout/archive.ejs","hash":"d63bc4ebac416b4f5b80fb673ec0a3f092a4e255","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/breadcrumb.ejs","hash":"81c91ad7b618a760b901741ff0d87333acddf60c","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/airplane.ejs","hash":"28521fce0f5dbd1fd62c612ae68b78ba254faef3","modified":1697766724483},{"_id":"themes/hexo-theme-linear/_config.yml","hash":"3b03792d72cfda4e250faba8dea790c7f7a63690","modified":1697768622100},{"_id":"themes/hexo-theme-linear/layout/category.ejs","hash":"679f6aa009bc1f681fe9c2305c79f96e87e119ea","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/homebar.ejs","hash":"fdc00e93db6bfd508e3cd44aef084124a00b3424","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/index.ejs","hash":"f9981d732327e420c7a727ee8cced34327d7fd31","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/layout.ejs","hash":"0733d5f564941dd109bd2eb72acfad95cf3c4f89","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/navigation.ejs","hash":"b92b8cf5698a1b7631a2d463da6891b8ddc078ed","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/search.ejs","hash":"da088b901ea192cbd8c6fc451094bc93890ecc4d","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/weather.ejs","hash":"04052e95f80ac11765b90019b149d7fb1bb68bab","modified":1697766724485},{"_id":"themes/hexo-theme-linear/layout/postCopyright.ejs","hash":"83a579d0e8d7cf341ac8acc9a733d5046e224e32","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/post.ejs","hash":"891458ae52a93e8070513b2a35a49d0afdb4a962","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/welcome.ejs","hash":"ce7419f61089411de4cea72165a4ce89c4d55fbd","modified":1697766724485},{"_id":"themes/hexo-theme-linear/languages/ar.yml","hash":"de613e0512e106e67c39c5534ccfea29eb15f557","modified":1697766724476},{"_id":"themes/hexo-theme-linear/languages/de.yml","hash":"20ccde52ba59700211177dbc6a0658489d3fabda","modified":1697766724476},{"_id":"themes/hexo-theme-linear/languages/en.yml","hash":"5d97a1ba5a02e24443b37bc000567fdf17340bd2","modified":1697766724476},{"_id":"themes/hexo-theme-linear/languages/fr.yml","hash":"125ed203d8ce117f61ab4e3e4ffca58cd7bb6c61","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/es.yml","hash":"3e47b0f87a02d7f8ece63becb37fcfbb1ed32b16","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/ja.yml","hash":"944eea06cacb1aeb58833eb273f32433d323768e","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/ko.yml","hash":"4cd415dee4bcdbdefd1b7df6caea76ccc258c49a","modified":1697766724477},{"_id":"themes/hexo-theme-linear/scripts/generate_excerpt.js","hash":"a7cfe46e7e389b1654c81f3e9a8a934dd80d735a","modified":1697766724491},{"_id":"themes/hexo-theme-linear/languages/zh-CN.yml","hash":"cf4c13270d7ac15baea1e774064f27bd2d2f8f32","modified":1697766724478},{"_id":"themes/hexo-theme-linear/scripts/mermaid_tag.js","hash":"bc74c79cf41709da1993597acaebae96d6b3761d","modified":1697766724491},{"_id":"themes/hexo-theme-linear/scripts/postIcon.js","hash":"73362a6570b00613681425b59a30903be671cd91","modified":1697766724491},{"_id":"themes/hexo-theme-linear/languages/ru.yml","hash":"974811181b770e78e4571dfa87aed51fd3863043","modified":1697766724478},{"_id":"themes/hexo-theme-linear/languages/zh-TW.yml","hash":"ad746b7bd795e81ed8f34e7fe05faf7e1cd999d7","modified":1697766724478},{"_id":"themes/hexo-theme-linear/scripts/post_counter.js","hash":"62aaa594dafcffe5aa457628eaf183075cabe159","modified":1697766724491},{"_id":"themes/hexo-theme-linear/source/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697766724500},{"_id":"themes/hexo-theme-linear/scripts/sort_posts.js","hash":"5cedcd663fd7eb1b255360ea9eb6089fd55e959c","modified":1697766724491},{"_id":"themes/hexo-theme-linear/source/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697766724508},{"_id":"themes/hexo-theme-linear/source/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697766724510},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697766724510},{"_id":"themes/hexo-theme-linear/source/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697766724530},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697766724515},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697766724515},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697766724515},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697766724521},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697766724519},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697766724521},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697766724519},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697766724508},{"_id":"public/2023/10/20/Linear-Starter-Guide/index.html","hash":"e506ac0ff606207328c2802978702224ab549808","modified":1697777276958},{"_id":"public/archives/index.html","hash":"7f53bb2e56e278f317f2a441d55d1bd3ca2fb2ce","modified":1697777276958},{"_id":"public/archives/2023/index.html","hash":"7f53bb2e56e278f317f2a441d55d1bd3ca2fb2ce","modified":1697777276958},{"_id":"public/archives/2023/10/index.html","hash":"7f53bb2e56e278f317f2a441d55d1bd3ca2fb2ce","modified":1697777276958},{"_id":"public/categories/Hexo/index.html","hash":"9ac4707d5f46ea44eac5a2f65159e910c7cd7735","modified":1697777276958},{"_id":"public/categories/Front-End/index.html","hash":"72d2501a9a7562d138e3c6d584a236b2eedc5b72","modified":1697777276958},{"_id":"public/index.html","hash":"c05a820d4e8cc95bda18746bc3568129307b6709","modified":1697777276958},{"_id":"public/2023/10/20/Linear Sample/index.html","hash":"c9b2d376b07d6fcbdf0283c5f6aae739dabe4db3","modified":1697777276958},{"_id":"public/2023/10/20/Linear 入门/index.html","hash":"ab06492dc27135314d1c07c2654593cd7b8eb8c9","modified":1697777276958},{"_id":"public/2023/10/20/front-end/verdaccio/index.html","hash":"0a0e2acdd361e35038c96166d3f331c90ac0437e","modified":1697777276958},{"_id":"public/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697777276958},{"_id":"public/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697777276958},{"_id":"public/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697777276958},{"_id":"public/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697777276958},{"_id":"public/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697777276958},{"_id":"public/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697777276958},{"_id":"public/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697777276958},{"_id":"public/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697777276958},{"_id":"public/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697777276958},{"_id":"public/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697777276958},{"_id":"public/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697777276958},{"_id":"public/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697777276958},{"_id":"public/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697777276958},{"_id":"public/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697777276958},{"_id":"public/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697777276958},{"_id":"public/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697777276958},{"_id":"public/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697777276958},{"_id":"public/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697777276958},{"_id":"public/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697777276958},{"_id":"public/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697777276958},{"_id":"public/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697777276958},{"_id":"public/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697777276958},{"_id":"public/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697777276958},{"_id":"public/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697777276958},{"_id":"public/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697777276958},{"_id":"public/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697777276958},{"_id":"public/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697777276958},{"_id":"public/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697777276958},{"_id":"public/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697777276958},{"_id":"public/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697777276958},{"_id":"public/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697777276958},{"_id":"public/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697777276958},{"_id":"public/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697777276958},{"_id":"public/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697777276958},{"_id":"public/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697777276958},{"_id":"public/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697777276958},{"_id":"public/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697777276958},{"_id":"public/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697777276958},{"_id":"public/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697777276958},{"_id":"public/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697777276958},{"_id":"public/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697777276958},{"_id":"public/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697777276958},{"_id":"public/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697777276958},{"_id":"public/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697777276958},{"_id":"public/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697777276958},{"_id":"public/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697777276958},{"_id":"public/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697777276958},{"_id":"public/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697777276958},{"_id":"public/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697777276958},{"_id":"public/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697777276958},{"_id":"public/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697777276958},{"_id":"public/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697777276958},{"_id":"public/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697777276958},{"_id":"public/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697777276958},{"_id":"public/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697777276958},{"_id":"public/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697777276958},{"_id":"public/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697777276958},{"_id":"public/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697777276958},{"_id":"public/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697777276958},{"_id":"public/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697777276958},{"_id":"public/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697777276958},{"_id":"public/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697777276958},{"_id":"public/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697777276958},{"_id":"public/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697777276958},{"_id":"public/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697777276958},{"_id":"public/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697777276958},{"_id":"public/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697777276958},{"_id":"public/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697777276958},{"_id":"public/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697777276958},{"_id":"public/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697777276958},{"_id":"public/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697777276958},{"_id":"public/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697777276958},{"_id":"public/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697777276958},{"_id":"public/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697777276958},{"_id":"public/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697777276958},{"_id":"public/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697777276958},{"_id":"public/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697777276958},{"_id":"public/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697777276958},{"_id":"public/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697777276958},{"_id":"public/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697777276958},{"_id":"public/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697777276958},{"_id":"public/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697777276958},{"_id":"public/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697777276958},{"_id":"public/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697777276958},{"_id":"public/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697777276958},{"_id":"public/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697777276958},{"_id":"public/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697777276958},{"_id":"public/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697777276958},{"_id":"public/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697777276958},{"_id":"public/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697777276958},{"_id":"public/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697777276958},{"_id":"public/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697777276958},{"_id":"public/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697777276958},{"_id":"public/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697777276958},{"_id":"public/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697777276958},{"_id":"public/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697777276958},{"_id":"public/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697777276958},{"_id":"public/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697777276958},{"_id":"public/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697777276958},{"_id":"public/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697777276958},{"_id":"public/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697777276958},{"_id":"public/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697777276958},{"_id":"public/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697777276958},{"_id":"public/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697777276958},{"_id":"public/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697777276958},{"_id":"public/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697777276958},{"_id":"public/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697777276958},{"_id":"public/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697777276958},{"_id":"public/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697777276958},{"_id":"public/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697777276958},{"_id":"public/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697777276958},{"_id":"public/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697777276958},{"_id":"public/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697777276958},{"_id":"public/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697777276958},{"_id":"public/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697777276958},{"_id":"public/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697777276958},{"_id":"public/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697777276958}],"Category":[{"name":"Hexo","_id":"clny4r73200023pz3fjh8g1ku"},{"name":"Front-End","_id":"clny4r73500083pz3heaq2v8n"}],"Data":[],"Page":[],"Post":[{"title":"Linear Sample Post","description":"A very simple way to add structured data to a page.","status":"done","top":0,"keywords":"Markdown, 代码高亮 (Codes), 引用 (Blockquotes), 列表 (Lists), 图片 (Images), 表格 (Tables), Emoji, TeX(KaTeX), 流程图 (mermaid)","_content":"\n# Editor.md\n\n\nhhh\n\n\n\n# 换行TEST\n\n1\n2\n3\n\na \nb\n\n---\n\nq\\\nd\n\n#HEAD TEST\n\n# Smart Test\n\n...\n\n---\n\n--\n\n\n![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n![](https://img.shields.io/github/stars/pandao/editor.md.svg) ![](https://img.shields.io/github/forks/pandao/editor.md.svg) ![](https://img.shields.io/github/tag/pandao/editor.md.svg) ![](https://img.shields.io/github/release/pandao/editor.md.svg) ![](https://img.shields.io/github/issues/pandao/editor.md.svg) ![](https://img.shields.io/bower/v/editor.md.svg)\n\n**目录 (Table of Contents)**\n\n[TOCM]\n\n[TOC]\n\n# Heading 1\n## Heading 2 \n### Heading 3\n#### Heading 4\n##### Heading 5\n###### Heading 6\n# Heading 1 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n## Heading 2 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n### Heading 3 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n#### Heading 4 link [Heading link](https://github.com/pandao/editor.md \"Heading link\") Heading link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n##### Heading 5 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n###### Heading 6 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n\n#### 标题(用底线的形式)Heading (underline)\n\nThis is an H1\n=============\n\nThis is an H2\n-------------\n\n### 字符效果和横线等\n \n----\n\n~~删除线~~ 删除线(开启识别HTML标签时)\n*斜体字* _斜体字_\n**粗体** __粗体__\n***粗斜体*** ___粗斜体___\n\n上标:X2,下标:O2\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启\n\nThe HTML specification is maintained by the W3C.\n\n### 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n \n> 引用:如果想要插入空白换行`即
标签`,在插入处先键入两个以上的空格然后回车即可,[普通链接](http://localhost/)。\n\n### 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接:\n\nhttps://baidu.com\n\n[锚点链接][anchor-id] \n\n[anchor-id]: http://www.this-anchor-link.com/\n\n[mailto:test.test@gmail.com](mailto:test.test@gmail.com)\n\nGFM a-tail link [@pandao](https://my.oschina.net/u/3691274) 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com\n\n> @pandao\n\n### 多语言代码高亮 Codes\n\n#### 行内代码 Inline code\n\n执行命令:`npm install marked`\n\n#### 缩进风格\n\n即缩进四个空格,也做为实现类似 `` 预格式化文本 ( Preformatted Text ) 的功能。\n\n \n \n预格式化文本:\n\n | First Header | Second Header |\n | ------------ | ------------- |\n | Content Cell | Content Cell |\n | Content Cell | Content Cell |\n\n#### JS代码 \n\n```javascript\nfunction test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");\n```\n\n#### HTML 代码 HTML codes\n\n```html\n\n\n \n \n \n Hello world!\n \n \n \n Hello world!
\n Plain text
\n \n\n```\n\n### 图片 Images\n\nImage:\n\n![](https://pandao.github.io/editor.md/examples/images/4.jpg)\n\n> Follow your heart.\n\n![](https://pandao.github.io/editor.md/examples/images/8.jpg)\n\n> 图为:厦门白城沙滩\n\n图片加链接 (Image + Link):\n\n[![](https://pandao.github.io/editor.md/examples/images/7.jpg)](https://pandao.github.io/editor.md/images/7.jpg \"李健首张专辑《似水流年》封面\")\n\n> 图为:李健首张专辑《似水流年》封面\n \n----\n\n### 列表 Lists\n\n#### 无序列表(减号)Unordered Lists (-)\n \n- 列表一\n- 列表二\n- 列表三\n \n#### 无序列表(星号)Unordered Lists (*)\n\n* 列表一\n* 列表二\n* 列表三\n\n#### 无序列表(加号和嵌套)Unordered Lists (+)\n \n+ 列表一\n+ 列表二\n + 列表二-1\n + 列表二-2\n + 列表二-3\n+ 列表三\n * 列表一\n * 列表二\n * 列表三\n\n#### 有序列表 Ordered Lists (-)\n \n1. 第一行\n2. 第二行\n3. 第三行\n\n#### GFM task list\n\n- [x] GFM task list 1\n- [x] GFM task list 2\n- [ ] GFM task list 3\n - [ ] GFM task list 3-1\n - [ ] GFM task list 3-2\n - [ ] GFM task list 3-3\n- [ ] GFM task list 4\n - [ ] GFM task list 4-1\n - [ ] GFM task list 4-2\n \n----\n \n### 绘制表格 Tables\n\n| 项目 | 价格 | 数量 |\n| ------ | ----: | :---: |\n| 计算机 | $1600 | 5 |\n| 手机 | $12 | 12 |\n| 管线 | $1 | 234 |\n \n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| Function name | Description |\n| ------------- | -------------------------- |\n| `help()` | Display the help window. |\n| `destroy()` | **Destroy your computer!** |\n\n| Left-Aligned | Center Aligned | Right Aligned |\n| :------------ | :-------------: | ------------: |\n| col 3 is | some wordy text | $1600 |\n| col 2 is | centered | $12 |\n| zebra stripes | are neat | $1 |\n\n| Item | Value |\n| -------- | ----: |\n| Computer | $1600 |\n| Phone | $12 |\n| Pipe | $1 |\n \n----\n\n#### 特殊符号 HTML Entities Codes\n\n© & ¨ ™ ¡ £\n& < > ¥ € ® ± ¶ § ¦ ¯ « · \n\nX² Y³ ¾ ¼ × ÷ »\n\n18ºC " '\n\n[========]\n\n### Emoji表情 :smiley:\n\n> Blockquotes :star:\n\n#### GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:\n\n- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and tags supported :editormd-logo:;\n- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;\n- [x] [ ] :smiley: this is a complete item :smiley:;\n- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao; \n- [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;\n - [ ] :smiley: this is an incomplete item [test link](#) :fa-star: :fa-gear:;\n - [ ] :smiley: this is :fa-star: :fa-gear: an incomplete item [test link](#);\n \n#### 反斜杠 Escape\n\n\\*literal asterisks\\*\n\n[========]\n \n### 科学公式 TeX(KaTeX)\n\n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。\n\n$$x > y$$\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n\n### 绘制流程图 mermaid\n\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n \n### End","source":"_posts/Linear Sample.md","raw":"---\ntitle: Linear Sample Post\ndescription: A very simple way to add structured data to a page.\nstatus: done\ntop: 0\ncategories: \n- Hexo\nkeywords: \"Markdown, 代码高亮 (Codes), 引用 (Blockquotes), 列表 (Lists), 图片 (Images), 表格 (Tables), Emoji, TeX(KaTeX), 流程图 (mermaid)\"\n---\n\n# Editor.md\n\n\nhhh\n\n\n\n# 换行TEST\n\n1\n2\n3\n\na \nb\n\n---\n\nq\\\nd\n\n#HEAD TEST\n\n# Smart Test\n\n...\n\n---\n\n--\n\n\n![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n![](https://img.shields.io/github/stars/pandao/editor.md.svg) ![](https://img.shields.io/github/forks/pandao/editor.md.svg) ![](https://img.shields.io/github/tag/pandao/editor.md.svg) ![](https://img.shields.io/github/release/pandao/editor.md.svg) ![](https://img.shields.io/github/issues/pandao/editor.md.svg) ![](https://img.shields.io/bower/v/editor.md.svg)\n\n**目录 (Table of Contents)**\n\n[TOCM]\n\n[TOC]\n\n# Heading 1\n## Heading 2 \n### Heading 3\n#### Heading 4\n##### Heading 5\n###### Heading 6\n# Heading 1 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n## Heading 2 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n### Heading 3 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n#### Heading 4 link [Heading link](https://github.com/pandao/editor.md \"Heading link\") Heading link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n##### Heading 5 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n###### Heading 6 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n\n#### 标题(用底线的形式)Heading (underline)\n\nThis is an H1\n=============\n\nThis is an H2\n-------------\n\n### 字符效果和横线等\n \n----\n\n~~删除线~~ 删除线(开启识别HTML标签时)\n*斜体字* _斜体字_\n**粗体** __粗体__\n***粗斜体*** ___粗斜体___\n\n上标:X2,下标:O2\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启\n\nThe HTML specification is maintained by the W3C.\n\n### 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n \n> 引用:如果想要插入空白换行`即
标签`,在插入处先键入两个以上的空格然后回车即可,[普通链接](http://localhost/)。\n\n### 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接:\n\nhttps://baidu.com\n\n[锚点链接][anchor-id] \n\n[anchor-id]: http://www.this-anchor-link.com/\n\n[mailto:test.test@gmail.com](mailto:test.test@gmail.com)\n\nGFM a-tail link [@pandao](https://my.oschina.net/u/3691274) 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com\n\n> @pandao\n\n### 多语言代码高亮 Codes\n\n#### 行内代码 Inline code\n\n执行命令:`npm install marked`\n\n#### 缩进风格\n\n即缩进四个空格,也做为实现类似 `` 预格式化文本 ( Preformatted Text ) 的功能。\n\n \n \n预格式化文本:\n\n | First Header | Second Header |\n | ------------ | ------------- |\n | Content Cell | Content Cell |\n | Content Cell | Content Cell |\n\n#### JS代码 \n\n```javascript\nfunction test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");\n```\n\n#### HTML 代码 HTML codes\n\n```html\n\n\n \n \n \n Hello world!\n \n \n \n Hello world!
\n Plain text
\n \n\n```\n\n### 图片 Images\n\nImage:\n\n![](https://pandao.github.io/editor.md/examples/images/4.jpg)\n\n> Follow your heart.\n\n![](https://pandao.github.io/editor.md/examples/images/8.jpg)\n\n> 图为:厦门白城沙滩\n\n图片加链接 (Image + Link):\n\n[![](https://pandao.github.io/editor.md/examples/images/7.jpg)](https://pandao.github.io/editor.md/images/7.jpg \"李健首张专辑《似水流年》封面\")\n\n> 图为:李健首张专辑《似水流年》封面\n \n----\n\n### 列表 Lists\n\n#### 无序列表(减号)Unordered Lists (-)\n \n- 列表一\n- 列表二\n- 列表三\n \n#### 无序列表(星号)Unordered Lists (*)\n\n* 列表一\n* 列表二\n* 列表三\n\n#### 无序列表(加号和嵌套)Unordered Lists (+)\n \n+ 列表一\n+ 列表二\n + 列表二-1\n + 列表二-2\n + 列表二-3\n+ 列表三\n * 列表一\n * 列表二\n * 列表三\n\n#### 有序列表 Ordered Lists (-)\n \n1. 第一行\n2. 第二行\n3. 第三行\n\n#### GFM task list\n\n- [x] GFM task list 1\n- [x] GFM task list 2\n- [ ] GFM task list 3\n - [ ] GFM task list 3-1\n - [ ] GFM task list 3-2\n - [ ] GFM task list 3-3\n- [ ] GFM task list 4\n - [ ] GFM task list 4-1\n - [ ] GFM task list 4-2\n \n----\n \n### 绘制表格 Tables\n\n| 项目 | 价格 | 数量 |\n| ------ | ----: | :---: |\n| 计算机 | $1600 | 5 |\n| 手机 | $12 | 12 |\n| 管线 | $1 | 234 |\n \n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| Function name | Description |\n| ------------- | -------------------------- |\n| `help()` | Display the help window. |\n| `destroy()` | **Destroy your computer!** |\n\n| Left-Aligned | Center Aligned | Right Aligned |\n| :------------ | :-------------: | ------------: |\n| col 3 is | some wordy text | $1600 |\n| col 2 is | centered | $12 |\n| zebra stripes | are neat | $1 |\n\n| Item | Value |\n| -------- | ----: |\n| Computer | $1600 |\n| Phone | $12 |\n| Pipe | $1 |\n \n----\n\n#### 特殊符号 HTML Entities Codes\n\n© & ¨ ™ ¡ £\n& < > ¥ € ® ± ¶ § ¦ ¯ « · \n\nX² Y³ ¾ ¼ × ÷ »\n\n18ºC " '\n\n[========]\n\n### Emoji表情 :smiley:\n\n> Blockquotes :star:\n\n#### GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:\n\n- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and tags supported :editormd-logo:;\n- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;\n- [x] [ ] :smiley: this is a complete item :smiley:;\n- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao; \n- [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;\n - [ ] :smiley: this is an incomplete item [test link](#) :fa-star: :fa-gear:;\n - [ ] :smiley: this is :fa-star: :fa-gear: an incomplete item [test link](#);\n \n#### 反斜杠 Escape\n\n\\*literal asterisks\\*\n\n[========]\n \n### 科学公式 TeX(KaTeX)\n\n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。\n\n$$x > y$$\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n\n### 绘制流程图 mermaid\n\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n \n### End","slug":"Linear Sample","published":1,"date":"2023-10-20T03:10:24.718Z","updated":"2023-10-20T04:47:46.792Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny4r72z00003pz3ctk41cwb","content":"Editor.md
hhh
\n\n\n换行TEST
1
2
3
\na
b
\n
\nq
d
\n#HEAD TEST
\nSmart Test
…
\n
\n–
\n\n
\n目录 (Table of Contents)
\n[TOCM]
\n[TOC]
\nHeading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
标题(用底线的形式)Heading (underline)
This is an H1
This is an H2
字符效果和横线等
\n删除线 删除线(开启识别HTML标签时)
斜体字 斜体字
粗体 粗体
粗斜体 粗斜体
\n上标:X2,下标:O2
\n缩写(同HTML的abbr标签)
\n\n即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启
\n
\nThe HTML specification is maintained by the W3C.
\n引用 Blockquotes
\n引用文本 Blockquotes
\n
\n引用的行内混合 Blockquotes
\n\n引用:如果想要插入空白换行即<br />标签
,在插入处先键入两个以上的空格然后回车即可,普通链接。
\n
\n锚点与链接 Links
普通链接
\n普通链接带标题
\n直接链接:https://github.com
\nhttps://baidu.com
\n锚点链接
\nmailto:test.test@gmail.com
\nGFM a-tail link @pandao 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com
\n\n@pandao
\n
\n多语言代码高亮 Codes
行内代码 Inline code
执行命令:npm install marked
\n缩进风格
即缩进四个空格,也做为实现类似 <pre>
预格式化文本 ( Preformatted Text ) 的功能。
\n<?php\n echo "Hello world!";\n?>\n
\n预格式化文本:
\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n
\nJS代码
function test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");
\n\nHTML 代码 HTML codes
<!DOCTYPE html>\n<html>\n <head>\n <mate charest=\"utf-8\" />\n <meta name=\"keywords\" content=\"Editor.md, Markdown, Editor\" />\n <title>Hello world!</title>\n <style type=\"text/css\">\n body{font-size:14px;color:#444;font-family: \"Microsoft Yahei\", Tahoma, \"Hiragino Sans GB\", Arial;background:#fff;}\n ul{list-style: none;}\n img{border:none;vertical-align: middle;}\n </style>\n </head>\n <body>\n <h1 class=\"text-xxl\">Hello world!</h1>\n <p class=\"text-green\">Plain text</p>\n </body>\n</html>
\n\n图片 Images
Image:
\n\n\nFollow your heart.
\n
\n\n\n图为:厦门白城沙滩
\n
\n图片加链接 (Image + Link):
\n
\n\n图为:李健首张专辑《似水流年》封面
\n
\n
\n列表 Lists
无序列表(减号)Unordered Lists (-)
\n无序列表(星号)Unordered Lists (*)
\n无序列表(加号和嵌套)Unordered Lists (+)
\n有序列表 Ordered Lists (-)
\n- 第一行
\n- 第二行
\n- 第三行
\n
\nGFM task list
\n
\n绘制表格 Tables
\n\n\n项目 | \n价格 | \n数量 | \n
\n\n\n计算机 | \n$1600 | \n5 | \n
\n\n手机 | \n$12 | \n12 | \n
\n\n管线 | \n$1 | \n234 | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFunction name | \nDescription | \n
\n\n\nhelp() | \nDisplay the help window. | \n
\n\ndestroy() | \nDestroy your computer! | \n
\n
\n\n\n\nLeft-Aligned | \nCenter Aligned | \nRight Aligned | \n
\n\n\ncol 3 is | \nsome wordy text | \n$1600 | \n
\n\ncol 2 is | \ncentered | \n$12 | \n
\n\nzebra stripes | \nare neat | \n$1 | \n
\n
\n\n\n\nItem | \nValue | \n
\n\n\nComputer | \n$1600 | \n
\n\nPhone | \n$12 | \n
\n\nPipe | \n$1 | \n
\n
\n
\n特殊符号 HTML Entities Codes
© & ¨ ™ ¡ £
& < > ¥ € ® ± ¶ § ¦ ¯ « ·
\nX² Y³ ¾ ¼ × ÷ »
\n18ºC " '
\n[========]
\nEmoji表情 :smiley:
\nBlockquotes :star:
\n
\nGFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:
\n反斜杠 Escape
*literal asterisks*
\n[========]
\n科学公式 TeX(KaTeX)
$$E=mc^2$$
\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
\n$$x > y$$
\n$$(\\sqrt{3x-1}+(1+x)^2)$$
\n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$
\n绘制流程图 mermaid
\n graph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n
\nEnd
","site":{"data":{}},"excerpt":"","more":"Editor.md
hhh
\n\n\n换行TEST
1
2
3
\na
b
\n
\nq
d
\n#HEAD TEST
\nSmart Test
…
\n
\n–
\n\n
\n目录 (Table of Contents)
\n[TOCM]
\n[TOC]
\nHeading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
标题(用底线的形式)Heading (underline)
This is an H1
This is an H2
字符效果和横线等
\n删除线 删除线(开启识别HTML标签时)
斜体字 斜体字
粗体 粗体
粗斜体 粗斜体
\n上标:X2,下标:O2
\n缩写(同HTML的abbr标签)
\n\n即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启
\n
\nThe HTML specification is maintained by the W3C.
\n引用 Blockquotes
\n引用文本 Blockquotes
\n
\n引用的行内混合 Blockquotes
\n\n引用:如果想要插入空白换行即<br />标签
,在插入处先键入两个以上的空格然后回车即可,普通链接。
\n
\n锚点与链接 Links
普通链接
\n普通链接带标题
\n直接链接:https://github.com
\nhttps://baidu.com
\n锚点链接
\nmailto:test.test@gmail.com
\nGFM a-tail link @pandao 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com
\n\n@pandao
\n
\n多语言代码高亮 Codes
行内代码 Inline code
执行命令:npm install marked
\n缩进风格
即缩进四个空格,也做为实现类似 <pre>
预格式化文本 ( Preformatted Text ) 的功能。
\n<?php\n echo "Hello world!";\n?>\n
\n预格式化文本:
\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n
\nJS代码
function test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");
\n\nHTML 代码 HTML codes
<!DOCTYPE html>\n<html>\n <head>\n <mate charest=\"utf-8\" />\n <meta name=\"keywords\" content=\"Editor.md, Markdown, Editor\" />\n <title>Hello world!</title>\n <style type=\"text/css\">\n body{font-size:14px;color:#444;font-family: \"Microsoft Yahei\", Tahoma, \"Hiragino Sans GB\", Arial;background:#fff;}\n ul{list-style: none;}\n img{border:none;vertical-align: middle;}\n </style>\n </head>\n <body>\n <h1 class=\"text-xxl\">Hello world!</h1>\n <p class=\"text-green\">Plain text</p>\n </body>\n</html>
\n\n图片 Images
Image:
\n\n\nFollow your heart.
\n
\n\n\n图为:厦门白城沙滩
\n
\n图片加链接 (Image + Link):
\n
\n\n图为:李健首张专辑《似水流年》封面
\n
\n
\n列表 Lists
无序列表(减号)Unordered Lists (-)
\n无序列表(星号)Unordered Lists (*)
\n无序列表(加号和嵌套)Unordered Lists (+)
\n有序列表 Ordered Lists (-)
\n- 第一行
\n- 第二行
\n- 第三行
\n
\nGFM task list
\n
\n绘制表格 Tables
\n\n\n项目 | \n价格 | \n数量 | \n
\n\n\n计算机 | \n$1600 | \n5 | \n
\n\n手机 | \n$12 | \n12 | \n
\n\n管线 | \n$1 | \n234 | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFunction name | \nDescription | \n
\n\n\nhelp() | \nDisplay the help window. | \n
\n\ndestroy() | \nDestroy your computer! | \n
\n
\n\n\n\nLeft-Aligned | \nCenter Aligned | \nRight Aligned | \n
\n\n\ncol 3 is | \nsome wordy text | \n$1600 | \n
\n\ncol 2 is | \ncentered | \n$12 | \n
\n\nzebra stripes | \nare neat | \n$1 | \n
\n
\n\n\n\nItem | \nValue | \n
\n\n\nComputer | \n$1600 | \n
\n\nPhone | \n$12 | \n
\n\nPipe | \n$1 | \n
\n
\n
\n特殊符号 HTML Entities Codes
© & ¨ ™ ¡ £
& < > ¥ € ® ± ¶ § ¦ ¯ « ·
\nX² Y³ ¾ ¼ × ÷ »
\n18ºC " '
\n[========]
\nEmoji表情 :smiley:
\nBlockquotes :star:
\n
\nGFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:
\n反斜杠 Escape
*literal asterisks*
\n[========]
\n科学公式 TeX(KaTeX)
$$E=mc^2$$
\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
\n$$x > y$$
\n$$(\\sqrt{3x-1}+(1+x)^2)$$
\n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$
\n绘制流程图 mermaid
\n graph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n
\nEnd
"},{"title":"Linear 入门","top":2,"status":"doing","_content":"\n# hexo配置\n\n在 `hexo` 的 `_config.yml` 中调整\n\n## 基础配置\n\n```yml\n# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn\n```\n\n## 国际化切换\n\n```yml\nlanguage: en\n```\n\n## 文章语法高亮\n\n```yml\n# 关闭hexo默认的highlight.js语法高亮\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"\n```\n\n## algolia搜索\n\n```yml\n# search service\nalgolia:\n # 替换\n appId: appId\n # 替换\n apiKey: apiKey\n # 请勿泄露,用于上报,替换\n adminApiKey: adminApiKey\n # 替换\n SearchOnlyAPIKey: SearchOnlyAPIKey\n chunkSize: 5000\n # 替换\n indexName: indexName\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n# Linear主题配置\n\n下面的配置基于 `hexo-theme-linear` 下的 `_config.yml` \n\n## 文章分类图标\n\n按照顺序,依次设置 `svg` 图标,可以在 [xicon](https://www.xicons.org/) 方面的获取丰富的图标\n\n```yml\npostCategoryIcons:\n - \n - \n - \n```\n\n## 天气卡片\n\n[和风天气API - 注册](https://id.qweather.com/#/register)\n\n\n\n```yml\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey\n```\n\n配置中的 `cityCode` 可以在 [官方的地区列表仓库](https://github.com/qwd/LocationList) 中的 `China-City-List-latest.csv` 找到你所在城市的 `cityCode`\n\n## 网站图标 favicon\n\n- 支持 `svg`\n- 支持 `图片url`,如:`/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP备案号\n\n😁 如不需要备案号,可直接删除\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## 首页底部文字\n\n😁 如不需要,可直接删除,或者改为 `false` \n\n```yml\nmotto: false\n```\n\n## 文章版权申明\n\n默认开启,当 `enable: false`,默认关闭\n\n```yml\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/\n```\n\n## katex 数学公式\n\n可自行配置 `cdn`\n\n```yml\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css\n```\n\n## mermaid 流程图\n\n在撰写时,请使用 `{% mermaid %}` 和 `{% endmermaid %}` 包裹\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\n相应配置如下\n\n```yml\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js\n```\n\n## valine 文章评论\n\n首先需要注册 `LeanCloud` 国际区用户,创建数据库\n\n请根据相关地区法规,酌情\n\n```yml\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com\n```","source":"_posts/Linear 入门.md","raw":"---\ntitle: Linear 入门\ntop: 2\ncategories:\n - Hexo\nstatus: doing\n---\n\n# hexo配置\n\n在 `hexo` 的 `_config.yml` 中调整\n\n## 基础配置\n\n```yml\n# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn\n```\n\n## 国际化切换\n\n```yml\nlanguage: en\n```\n\n## 文章语法高亮\n\n```yml\n# 关闭hexo默认的highlight.js语法高亮\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"\n```\n\n## algolia搜索\n\n```yml\n# search service\nalgolia:\n # 替换\n appId: appId\n # 替换\n apiKey: apiKey\n # 请勿泄露,用于上报,替换\n adminApiKey: adminApiKey\n # 替换\n SearchOnlyAPIKey: SearchOnlyAPIKey\n chunkSize: 5000\n # 替换\n indexName: indexName\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n# Linear主题配置\n\n下面的配置基于 `hexo-theme-linear` 下的 `_config.yml` \n\n## 文章分类图标\n\n按照顺序,依次设置 `svg` 图标,可以在 [xicon](https://www.xicons.org/) 方面的获取丰富的图标\n\n```yml\npostCategoryIcons:\n - \n - \n - \n```\n\n## 天气卡片\n\n[和风天气API - 注册](https://id.qweather.com/#/register)\n\n\n\n```yml\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey\n```\n\n配置中的 `cityCode` 可以在 [官方的地区列表仓库](https://github.com/qwd/LocationList) 中的 `China-City-List-latest.csv` 找到你所在城市的 `cityCode`\n\n## 网站图标 favicon\n\n- 支持 `svg`\n- 支持 `图片url`,如:`/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP备案号\n\n😁 如不需要备案号,可直接删除\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## 首页底部文字\n\n😁 如不需要,可直接删除,或者改为 `false` \n\n```yml\nmotto: false\n```\n\n## 文章版权申明\n\n默认开启,当 `enable: false`,默认关闭\n\n```yml\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/\n```\n\n## katex 数学公式\n\n可自行配置 `cdn`\n\n```yml\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css\n```\n\n## mermaid 流程图\n\n在撰写时,请使用 `{% mermaid %}` 和 `{% endmermaid %}` 包裹\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\n相应配置如下\n\n```yml\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js\n```\n\n## valine 文章评论\n\n首先需要注册 `LeanCloud` 国际区用户,创建数据库\n\n请根据相关地区法规,酌情\n\n```yml\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com\n```","slug":"Linear 入门","published":1,"date":"2023-10-20T01:08:12.352Z","updated":"2023-10-20T03:18:57.874Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny4r73100013pz39ec72wb7","content":"hexo配置
在 hexo
的 _config.yml
中调整
\n基础配置
# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn
\n\n国际化切换
language: en
\n\n文章语法高亮
# 关闭hexo默认的highlight.js语法高亮\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"
\n\nalgolia搜索
# search service\nalgolia:\n # 替换\n appId: appId\n # 替换\n apiKey: apiKey\n # 请勿泄露,用于上报,替换\n adminApiKey: adminApiKey\n # 替换\n SearchOnlyAPIKey: SearchOnlyAPIKey\n chunkSize: 5000\n # 替换\n indexName: indexName\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\nLinear主题配置
下面的配置基于 hexo-theme-linear
下的 _config.yml
\n文章分类图标
按照顺序,依次设置 svg
图标,可以在 xicon 方面的获取丰富的图标
\npostCategoryIcons:\n - <svg>...</svg>\n - <svg>...</svg>\n - <svg>...</svg>
\n\n天气卡片
和风天气API - 注册
\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey
\n\n配置中的 cityCode
可以在 官方的地区列表仓库 中的 China-City-List-latest.csv
找到你所在城市的 cityCode
\n网站图标 favicon
\n- 支持
svg
\n- 支持
图片url
,如:/img/favicon.png
\n
\nfavicon: ''
\n\nICP备案号
😁 如不需要备案号,可直接删除
\nicp: 苏ICP备xxxxxxx号-x
\n\n首页底部文字
😁 如不需要,可直接删除,或者改为 false
\nmotto: false
\n\n文章版权申明
默认开启,当 enable: false
,默认关闭
\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/
\n\nkatex 数学公式
可自行配置 cdn
\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css
\n\nmermaid 流程图
在撰写时,请使用 {% mermaid %}` 和 `{% endmermaid %}
包裹
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\n相应配置如下
\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nvaline 文章评论
首先需要注册 LeanCloud
国际区用户,创建数据库
\n请根据相关地区法规,酌情
\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com
","site":{"data":{}},"excerpt":"","more":"hexo配置
在 hexo
的 _config.yml
中调整
\n基础配置
# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn
\n\n国际化切换
language: en
\n\n文章语法高亮
# 关闭hexo默认的highlight.js语法高亮\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"
\n\nalgolia搜索
# search service\nalgolia:\n # 替换\n appId: appId\n # 替换\n apiKey: apiKey\n # 请勿泄露,用于上报,替换\n adminApiKey: adminApiKey\n # 替换\n SearchOnlyAPIKey: SearchOnlyAPIKey\n chunkSize: 5000\n # 替换\n indexName: indexName\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\nLinear主题配置
下面的配置基于 hexo-theme-linear
下的 _config.yml
\n文章分类图标
按照顺序,依次设置 svg
图标,可以在 xicon 方面的获取丰富的图标
\npostCategoryIcons:\n - <svg>...</svg>\n - <svg>...</svg>\n - <svg>...</svg>
\n\n天气卡片
和风天气API - 注册
\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey
\n\n配置中的 cityCode
可以在 官方的地区列表仓库 中的 China-City-List-latest.csv
找到你所在城市的 cityCode
\n网站图标 favicon
\n- 支持
svg
\n- 支持
图片url
,如:/img/favicon.png
\n
\nfavicon: ''
\n\nICP备案号
😁 如不需要备案号,可直接删除
\nicp: 苏ICP备xxxxxxx号-x
\n\n首页底部文字
😁 如不需要,可直接删除,或者改为 false
\nmotto: false
\n\n文章版权申明
默认开启,当 enable: false
,默认关闭
\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/
\n\nkatex 数学公式
可自行配置 cdn
\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css
\n\nmermaid 流程图
在撰写时,请使用 {% mermaid %}` 和 `{% endmermaid %}
包裹
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\n相应配置如下
\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nvaline 文章评论
首先需要注册 LeanCloud
国际区用户,创建数据库
\n请根据相关地区法规,酌情
\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com
"},{"title":"Linear-Starter-Guide","top":1,"status":"doing","_content":"\n[🇨🇳 中文文档](https://mozzie.cn/2023/10/20/Linear%20%E5%85%A5%E9%97%A8/)\n\n# Configuration\n\ncontinued...😁\n","source":"_posts/Linear-Starter-Guide.md","raw":"---\ntitle: Linear-Starter-Guide\ntop: 1\ncategories:\n - Hexo\nstatus: doing\n---\n\n[🇨🇳 中文文档](https://mozzie.cn/2023/10/20/Linear%20%E5%85%A5%E9%97%A8/)\n\n# Configuration\n\ncontinued...😁\n","slug":"Linear-Starter-Guide","published":1,"date":"2023-10-20T01:05:56.355Z","updated":"2023-10-20T03:15:54.296Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny4r73300033pz38ipc2y38","content":"🇨🇳 中文文档
\nConfiguration
continued…😁
\n","site":{"data":{}},"excerpt":"","more":"🇨🇳 中文文档
\nConfiguration
continued…😁
\n"},{"title":"verdaccio 搭建 npm私库","status":"done","_content":"\n# 使用 docker 搭建 verdaccio\n\n创建 & 配置`config.yaml`文件\n\n```yaml\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }\n```\n\n创建容器,环境变量,`VERDACCIO_PUBLIC_URL`是静态资源的前缀地址,由于nginx挂了`ssl`,如果使用`http`可以不添加\n\n```bash\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio\n```\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用`container_name`\n\n\n\n```conf\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}\n```\n\n运行添加用户,报错,因为 `htpasswd`默认创建在宿主机,也就是上面挂载的`/www/wwwroot/nginx/html/verdaccio/storage`目录中\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n```\n\n配置`htpasswd`、`storage` 文件夹权限\n\n```bash\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage\n```\n\n# verdaccio 用户管理\n\n由于在 `config.yml` 中关闭了可访问权限\n\n```yaml\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated\n```\n\n默认的 `addUser` 策略是 `Bcrypt` 生成密码,随便找个网页生成个密码,使用`账号:密码`添加到 `htpasswd` 文件中,例如 \n\n```bash\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n```\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 `npm` 为例\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.\n```\n\n在系统的 `cat ~/.npmrc` 中会增加一行,就可以正常的进行以来的安装了\n\n```bash\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"\n```\n\n# 项目 .npmrc Scope区分\n\n需要指定 `.npmrc` 来区别 `Scope` 的安装地址,例如一个包名为 `@mozzie/hook`,对应的私库为 `https://npm.mozzie.cn/`\n\n```bash\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx\n```","source":"_posts/front-end/verdaccio.md","raw":"---\ntitle: verdaccio 搭建 npm私库\ncategories:\n - Front-End\nstatus: done\n---\n\n# 使用 docker 搭建 verdaccio\n\n创建 & 配置`config.yaml`文件\n\n```yaml\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }\n```\n\n创建容器,环境变量,`VERDACCIO_PUBLIC_URL`是静态资源的前缀地址,由于nginx挂了`ssl`,如果使用`http`可以不添加\n\n```bash\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio\n```\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用`container_name`\n\n\n\n```conf\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}\n```\n\n运行添加用户,报错,因为 `htpasswd`默认创建在宿主机,也就是上面挂载的`/www/wwwroot/nginx/html/verdaccio/storage`目录中\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n```\n\n配置`htpasswd`、`storage` 文件夹权限\n\n```bash\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage\n```\n\n# verdaccio 用户管理\n\n由于在 `config.yml` 中关闭了可访问权限\n\n```yaml\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated\n```\n\n默认的 `addUser` 策略是 `Bcrypt` 生成密码,随便找个网页生成个密码,使用`账号:密码`添加到 `htpasswd` 文件中,例如 \n\n```bash\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n```\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 `npm` 为例\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.\n```\n\n在系统的 `cat ~/.npmrc` 中会增加一行,就可以正常的进行以来的安装了\n\n```bash\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"\n```\n\n# 项目 .npmrc Scope区分\n\n需要指定 `.npmrc` 来区别 `Scope` 的安装地址,例如一个包名为 `@mozzie/hook`,对应的私库为 `https://npm.mozzie.cn/`\n\n```bash\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx\n```","slug":"front-end/verdaccio","published":1,"date":"2023-10-20T02:25:55.131Z","updated":"2023-10-20T02:27:35.158Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny4r73400043pz3bsh63jb2","content":"使用 docker 搭建 verdaccio
创建 & 配置config.yaml
文件
\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }
\n\n创建容器,环境变量,VERDACCIO_PUBLIC_URL
是静态资源的前缀地址,由于nginx挂了ssl
,如果使用http
可以不添加
\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio
\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用container_name
\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}
\n\n运行添加用户,报错,因为 htpasswd
默认创建在宿主机,也就是上面挂载的/www/wwwroot/nginx/html/verdaccio/storage
目录中
\nnpm adduser --registry https://npm.mozzie.cn/
\n\n配置htpasswd
、storage
文件夹权限
\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage
\n\nverdaccio 用户管理
由于在 config.yml
中关闭了可访问权限
\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated
\n\n默认的 addUser
策略是 Bcrypt
生成密码,随便找个网页生成个密码,使用账号:密码
添加到 htpasswd
文件中,例如
\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W
\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 npm
为例
\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.
\n\n在系统的 cat ~/.npmrc
中会增加一行,就可以正常的进行以来的安装了
\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"
\n\n项目 .npmrc Scope区分
需要指定 .npmrc
来区别 Scope
的安装地址,例如一个包名为 @mozzie/hook
,对应的私库为 https://npm.mozzie.cn/
\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx
","site":{"data":{}},"excerpt":"","more":"使用 docker 搭建 verdaccio
创建 & 配置config.yaml
文件
\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }
\n\n创建容器,环境变量,VERDACCIO_PUBLIC_URL
是静态资源的前缀地址,由于nginx挂了ssl
,如果使用http
可以不添加
\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio
\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用container_name
\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}
\n\n运行添加用户,报错,因为 htpasswd
默认创建在宿主机,也就是上面挂载的/www/wwwroot/nginx/html/verdaccio/storage
目录中
\nnpm adduser --registry https://npm.mozzie.cn/
\n\n配置htpasswd
、storage
文件夹权限
\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage
\n\nverdaccio 用户管理
由于在 config.yml
中关闭了可访问权限
\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated
\n\n默认的 addUser
策略是 Bcrypt
生成密码,随便找个网页生成个密码,使用账号:密码
添加到 htpasswd
文件中,例如
\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W
\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 npm
为例
\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.
\n\n在系统的 cat ~/.npmrc
中会增加一行,就可以正常的进行以来的安装了
\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"
\n\n项目 .npmrc Scope区分
需要指定 .npmrc
来区别 Scope
的安装地址,例如一个包名为 @mozzie/hook
,对应的私库为 https://npm.mozzie.cn/
\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx
"}],"PostAsset":[],"PostCategory":[{"post_id":"clny4r72z00003pz3ctk41cwb","category_id":"clny4r73200023pz3fjh8g1ku","_id":"clny4r73500073pz36enk5m6o"},{"post_id":"clny4r73100013pz39ec72wb7","category_id":"clny4r73200023pz3fjh8g1ku","_id":"clny4r73500093pz3b1805gz6"},{"post_id":"clny4r73300033pz38ipc2y38","category_id":"clny4r73200023pz3fjh8g1ku","_id":"clny4r736000a3pz3g73canre"},{"post_id":"clny4r73400043pz3bsh63jb2","category_id":"clny4r73500083pz3heaq2v8n","_id":"clny4r736000b3pz35semgqfq"}],"PostTag":[],"Tag":[]}}
\ No newline at end of file
+{"meta":{"version":1,"warehouse":"4.0.2"},"models":{"Asset":[{"_id":"themes/hexo-theme-linear/source/css/0c63d269.css","path":"css/0c63d269.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/206.a3a4e130.css","path":"css/206.a3a4e130.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/21.88950121.css","path":"css/21.88950121.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/271.54fa1675.css","path":"css/271.54fa1675.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/291.a8323266.css","path":"css/291.a8323266.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/2cd7dba2.css","path":"css/2cd7dba2.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/2f1ea598.css","path":"css/2f1ea598.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/3a4a90d1.css","path":"css/3a4a90d1.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/3efc6cb5.css","path":"css/3efc6cb5.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/429.fb1dabcb.css","path":"css/429.fb1dabcb.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/4c3d0e88.css","path":"css/4c3d0e88.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/618.6513d67e.css","path":"css/618.6513d67e.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/766.64ad3c35.css","path":"css/766.64ad3c35.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/7c527814.css","path":"css/7c527814.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/922.9efa0b6b.css","path":"css/922.9efa0b6b.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/945.fdf98cb0.css","path":"css/945.fdf98cb0.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/aeb44e7a.css","path":"css/aeb44e7a.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/ccbcde32.css","path":"css/ccbcde32.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/de5de8fb.css","path":"css/de5de8fb.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/efca006a.css","path":"css/efca006a.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/e01add4b.css","path":"css/e01add4b.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/css/f3729dde.css","path":"css/f3729dde.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/font/linear.woff2","path":"font/linear.woff2","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/font/motto.woff","path":"font/motto.woff","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/favicon.svg","path":"img/favicon.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-arrow-left.svg","path":"img/icon-arrow-left.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-book.svg","path":"img/icon-book.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-date.svg","path":"img/icon-date.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-layout.svg","path":"img/icon-layout.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-link.svg","path":"img/icon-link.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-moon.svg","path":"img/icon-moon.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-click.svg","path":"img/icon-click.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon1.svg","path":"img/icon1.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon2.svg","path":"img/icon2.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon3.svg","path":"img/icon3.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/logo.png","path":"img/logo.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js","path":"js/07f44e09.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js.LICENSE.txt","path":"js/07f44e09.js.LICENSE.txt","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/1247bc3e.js","path":"js/1247bc3e.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/206.759361ed.js","path":"js/206.759361ed.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/21.282c05e7.js","path":"js/21.282c05e7.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/271.ee88a6de.js","path":"js/271.ee88a6de.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/icon-sun.svg","path":"img/icon-sun.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/291.4ac6984b.js","path":"js/291.4ac6984b.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/31d6cfe0.js","path":"js/31d6cfe0.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/3cf4fd98.js","path":"js/3cf4fd98.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/429.bc4769cb.js","path":"js/429.bc4769cb.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/430dbbd6.js","path":"js/430dbbd6.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/618.1a58fba9.js","path":"js/618.1a58fba9.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/766.9503a62c.js","path":"js/766.9503a62c.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/85d1c72e.js","path":"js/85d1c72e.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/922.689e0633.js","path":"js/922.689e0633.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/945.0313a94c.js","path":"js/945.0313a94c.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/96ea39da.js","path":"js/96ea39da.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/ca6b30b5.js","path":"js/ca6b30b5.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/js/f8b20eb9.js","path":"js/f8b20eb9.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/100.png","path":"img/qweather-color-icon/100.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/101.png","path":"img/qweather-color-icon/101.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/102.png","path":"img/qweather-color-icon/102.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/104.png","path":"img/qweather-color-icon/104.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/103.png","path":"img/qweather-color-icon/103.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/150.png","path":"img/qweather-color-icon/150.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/151.png","path":"img/qweather-color-icon/151.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/152.png","path":"img/qweather-color-icon/152.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/153.png","path":"img/qweather-color-icon/153.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/300.png","path":"img/qweather-color-icon/300.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/301.png","path":"img/qweather-color-icon/301.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/302.png","path":"img/qweather-color-icon/302.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/303.png","path":"img/qweather-color-icon/303.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/304.png","path":"img/qweather-color-icon/304.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/305.png","path":"img/qweather-color-icon/305.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/306.png","path":"img/qweather-color-icon/306.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/307.png","path":"img/qweather-color-icon/307.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/308.png","path":"img/qweather-color-icon/308.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/309.png","path":"img/qweather-color-icon/309.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/311.png","path":"img/qweather-color-icon/311.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/310.png","path":"img/qweather-color-icon/310.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/313.png","path":"img/qweather-color-icon/313.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/312.png","path":"img/qweather-color-icon/312.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/314.png","path":"img/qweather-color-icon/314.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/315.png","path":"img/qweather-color-icon/315.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/316.png","path":"img/qweather-color-icon/316.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/318.png","path":"img/qweather-color-icon/318.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/317.png","path":"img/qweather-color-icon/317.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/351.png","path":"img/qweather-color-icon/351.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/350.png","path":"img/qweather-color-icon/350.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/399.png","path":"img/qweather-color-icon/399.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/400.png","path":"img/qweather-color-icon/400.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/401.png","path":"img/qweather-color-icon/401.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/402.png","path":"img/qweather-color-icon/402.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/403.png","path":"img/qweather-color-icon/403.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/404.png","path":"img/qweather-color-icon/404.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/406.png","path":"img/qweather-color-icon/406.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/407.png","path":"img/qweather-color-icon/407.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/408.png","path":"img/qweather-color-icon/408.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/409.png","path":"img/qweather-color-icon/409.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/410.png","path":"img/qweather-color-icon/410.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/456.png","path":"img/qweather-color-icon/456.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/457.png","path":"img/qweather-color-icon/457.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/499.png","path":"img/qweather-color-icon/499.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/501.png","path":"img/qweather-color-icon/501.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/500.png","path":"img/qweather-color-icon/500.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/502.png","path":"img/qweather-color-icon/502.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/503.png","path":"img/qweather-color-icon/503.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/504.png","path":"img/qweather-color-icon/504.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/507.png","path":"img/qweather-color-icon/507.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/508.png","path":"img/qweather-color-icon/508.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/509.png","path":"img/qweather-color-icon/509.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/510.png","path":"img/qweather-color-icon/510.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/512.png","path":"img/qweather-color-icon/512.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/513.png","path":"img/qweather-color-icon/513.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/511.png","path":"img/qweather-color-icon/511.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/514.png","path":"img/qweather-color-icon/514.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/515.png","path":"img/qweather-color-icon/515.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/900.png","path":"img/qweather-color-icon/900.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","path":"img/qweather-color-icon/901.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/999.png","path":"img/qweather-color-icon/999.png","modified":1,"renderable":1},{"_id":"source/img/algolia-api-keys.png","path":"img/algolia-api-keys.png","modified":1,"renderable":0}],"Cache":[{"_id":"source/_posts/Linear 入门.md","hash":"e4df5334ad6b9abdc45d34365333ee5bc092f901","modified":1697780059839},{"_id":"source/_posts/Linear Sample.md","hash":"1796682a5640e5e9ee3187a43de69ddff44b6c3d","modified":1697777266792},{"_id":"source/_posts/front-end/verdaccio.md","hash":"50453d3e60c7e63e31bc9f3efcebc241d317fae0","modified":1697768855158},{"_id":"source/_posts/Linear-Starter-Guide.md","hash":"24cb2d030cff00472eaeae941ed359c57162b3c8","modified":1697771754296},{"_id":"themes/hexo-theme-linear/source/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697766724527},{"_id":"themes/hexo-theme-linear/_config.yml","hash":"3b03792d72cfda4e250faba8dea790c7f7a63690","modified":1697768622100},{"_id":"themes/hexo-theme-linear/languages/en.yml","hash":"5d97a1ba5a02e24443b37bc000567fdf17340bd2","modified":1697766724476},{"_id":"themes/hexo-theme-linear/languages/es.yml","hash":"3e47b0f87a02d7f8ece63becb37fcfbb1ed32b16","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/de.yml","hash":"20ccde52ba59700211177dbc6a0658489d3fabda","modified":1697766724476},{"_id":"themes/hexo-theme-linear/languages/fr.yml","hash":"125ed203d8ce117f61ab4e3e4ffca58cd7bb6c61","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/ar.yml","hash":"de613e0512e106e67c39c5534ccfea29eb15f557","modified":1697766724476},{"_id":"themes/hexo-theme-linear/languages/ko.yml","hash":"4cd415dee4bcdbdefd1b7df6caea76ccc258c49a","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/ja.yml","hash":"944eea06cacb1aeb58833eb273f32433d323768e","modified":1697766724477},{"_id":"themes/hexo-theme-linear/languages/ru.yml","hash":"974811181b770e78e4571dfa87aed51fd3863043","modified":1697766724478},{"_id":"themes/hexo-theme-linear/layout/breadcrumb.ejs","hash":"81c91ad7b618a760b901741ff0d87333acddf60c","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/airplane.ejs","hash":"28521fce0f5dbd1fd62c612ae68b78ba254faef3","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/archive.ejs","hash":"d63bc4ebac416b4f5b80fb673ec0a3f092a4e255","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/category.ejs","hash":"679f6aa009bc1f681fe9c2305c79f96e87e119ea","modified":1697766724483},{"_id":"themes/hexo-theme-linear/languages/zh-CN.yml","hash":"cf4c13270d7ac15baea1e774064f27bd2d2f8f32","modified":1697766724478},{"_id":"themes/hexo-theme-linear/languages/zh-TW.yml","hash":"ad746b7bd795e81ed8f34e7fe05faf7e1cd999d7","modified":1697766724478},{"_id":"themes/hexo-theme-linear/layout/index.ejs","hash":"f9981d732327e420c7a727ee8cced34327d7fd31","modified":1697766724483},{"_id":"themes/hexo-theme-linear/layout/layout.ejs","hash":"0733d5f564941dd109bd2eb72acfad95cf3c4f89","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/postCopyright.ejs","hash":"83a579d0e8d7cf341ac8acc9a733d5046e224e32","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/search.ejs","hash":"da088b901ea192cbd8c6fc451094bc93890ecc4d","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/post.ejs","hash":"891458ae52a93e8070513b2a35a49d0afdb4a962","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/navigation.ejs","hash":"b92b8cf5698a1b7631a2d463da6891b8ddc078ed","modified":1697766724484},{"_id":"themes/hexo-theme-linear/layout/weather.ejs","hash":"04052e95f80ac11765b90019b149d7fb1bb68bab","modified":1697766724485},{"_id":"themes/hexo-theme-linear/layout/homebar.ejs","hash":"fdc00e93db6bfd508e3cd44aef084124a00b3424","modified":1697766724483},{"_id":"themes/hexo-theme-linear/scripts/generate_excerpt.js","hash":"a7cfe46e7e389b1654c81f3e9a8a934dd80d735a","modified":1697766724491},{"_id":"themes/hexo-theme-linear/scripts/mermaid_tag.js","hash":"bc74c79cf41709da1993597acaebae96d6b3761d","modified":1697766724491},{"_id":"themes/hexo-theme-linear/scripts/postIcon.js","hash":"73362a6570b00613681425b59a30903be671cd91","modified":1697766724491},{"_id":"themes/hexo-theme-linear/scripts/post_counter.js","hash":"62aaa594dafcffe5aa457628eaf183075cabe159","modified":1697766724491},{"_id":"themes/hexo-theme-linear/scripts/sort_posts.js","hash":"5cedcd663fd7eb1b255360ea9eb6089fd55e959c","modified":1697766724491},{"_id":"themes/hexo-theme-linear/source/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697766724500},{"_id":"themes/hexo-theme-linear/layout/welcome.ejs","hash":"ce7419f61089411de4cea72165a4ce89c4d55fbd","modified":1697766724485},{"_id":"themes/hexo-theme-linear/source/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697766724500},{"_id":"themes/hexo-theme-linear/source/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697766724501},{"_id":"themes/hexo-theme-linear/source/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697766724502},{"_id":"themes/hexo-theme-linear/source/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697766724503},{"_id":"themes/hexo-theme-linear/source/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697766724504},{"_id":"themes/hexo-theme-linear/source/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697766724505},{"_id":"themes/hexo-theme-linear/source/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697766724506},{"_id":"themes/hexo-theme-linear/source/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697766724508},{"_id":"themes/hexo-theme-linear/source/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697766724526},{"_id":"themes/hexo-theme-linear/source/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697766724507},{"_id":"themes/hexo-theme-linear/source/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697766724527},{"_id":"themes/hexo-theme-linear/source/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697766724528},{"_id":"themes/hexo-theme-linear/source/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697766724510},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697766724510},{"_id":"themes/hexo-theme-linear/source/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697766724530},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697766724511},{"_id":"themes/hexo-theme-linear/source/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697766724529},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697766724512},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697766724514},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697766724515},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697766724515},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697766724515},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697766724513},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697766724516},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697766724517},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697766724519},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697766724519},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697766724521},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697766724521},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697766724518},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697766724522},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697766724523},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697766724524},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697766724525},{"_id":"themes/hexo-theme-linear/source/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697766724508},{"_id":"source/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697779286767},{"_id":"public/2023/10/20/Linear-Starter-Guide/index.html","hash":"e506ac0ff606207328c2802978702224ab549808","modified":1697780087926},{"_id":"public/archives/index.html","hash":"6563d4422733f14eab1dba0643962072a6c14bae","modified":1697780087926},{"_id":"public/archives/2023/index.html","hash":"6563d4422733f14eab1dba0643962072a6c14bae","modified":1697780087926},{"_id":"public/archives/2023/10/index.html","hash":"6563d4422733f14eab1dba0643962072a6c14bae","modified":1697780087926},{"_id":"public/index.html","hash":"c05a820d4e8cc95bda18746bc3568129307b6709","modified":1697780087926},{"_id":"public/categories/Hexo/index.html","hash":"9ac4707d5f46ea44eac5a2f65159e910c7cd7735","modified":1697780087926},{"_id":"public/categories/Front-End/index.html","hash":"72d2501a9a7562d138e3c6d584a236b2eedc5b72","modified":1697780087926},{"_id":"public/2023/10/20/Linear Sample/index.html","hash":"9ed46bd5a48ad401d0ec3325d7996a189070c860","modified":1697780087926},{"_id":"public/2023/10/20/front-end/verdaccio/index.html","hash":"0a0e2acdd361e35038c96166d3f331c90ac0437e","modified":1697780087926},{"_id":"public/2023/10/20/Linear 入门/index.html","hash":"78ab3f089ab103a8b6b9e4089e9f699a255ac207","modified":1697780087926},{"_id":"public/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697780087926},{"_id":"public/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697780087926},{"_id":"public/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697780087926},{"_id":"public/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697780087926},{"_id":"public/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697780087926},{"_id":"public/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697780087926},{"_id":"public/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697780087926},{"_id":"public/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697780087926},{"_id":"public/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697780087926},{"_id":"public/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697780087926},{"_id":"public/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697780087926},{"_id":"public/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697780087926},{"_id":"public/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697780087926},{"_id":"public/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697780087926},{"_id":"public/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697780087926},{"_id":"public/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697780087926},{"_id":"public/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697780087926},{"_id":"public/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697780087926},{"_id":"public/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697780087926},{"_id":"public/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697780087926},{"_id":"public/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697780087926},{"_id":"public/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697780087926},{"_id":"public/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697780087926},{"_id":"public/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697780087926},{"_id":"public/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697780087926},{"_id":"public/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697780087926},{"_id":"public/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697780087926},{"_id":"public/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697780087926},{"_id":"public/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697780087926},{"_id":"public/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697780087926},{"_id":"public/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697780087926},{"_id":"public/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697780087926},{"_id":"public/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697780087926},{"_id":"public/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697780087926},{"_id":"public/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697780087926},{"_id":"public/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697780087926},{"_id":"public/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697780087926},{"_id":"public/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697780087926},{"_id":"public/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697780087926},{"_id":"public/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697780087926},{"_id":"public/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697780087926},{"_id":"public/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697780087926},{"_id":"public/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697780087926},{"_id":"public/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697780087926},{"_id":"public/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697780087926},{"_id":"public/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697780087926},{"_id":"public/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697780087926},{"_id":"public/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697780087926},{"_id":"public/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697780087926},{"_id":"public/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697780087926},{"_id":"public/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697780087926},{"_id":"public/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697780087926},{"_id":"public/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697780087926},{"_id":"public/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697780087926},{"_id":"public/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697780087926},{"_id":"public/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697780087926},{"_id":"public/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697780087926},{"_id":"public/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697780087926},{"_id":"public/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697780087926},{"_id":"public/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697780087926},{"_id":"public/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697780087926},{"_id":"public/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697780087926},{"_id":"public/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697780087926},{"_id":"public/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697780087926},{"_id":"public/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697780087926},{"_id":"public/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697780087926},{"_id":"public/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697780087926},{"_id":"public/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697780087926},{"_id":"public/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697780087926},{"_id":"public/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697780087926},{"_id":"public/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697780087926},{"_id":"public/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697780087926},{"_id":"public/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697780087926},{"_id":"public/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697780087926},{"_id":"public/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697780087926},{"_id":"public/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697780087926},{"_id":"public/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697780087926},{"_id":"public/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697780087926},{"_id":"public/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697780087926},{"_id":"public/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697780087926},{"_id":"public/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697780087926},{"_id":"public/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697780087926},{"_id":"public/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697780087926},{"_id":"public/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697780087926},{"_id":"public/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697780087926},{"_id":"public/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697780087926},{"_id":"public/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697780087926},{"_id":"public/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697780087926},{"_id":"public/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697780087926},{"_id":"public/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697780087926},{"_id":"public/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697780087926},{"_id":"public/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697780087926},{"_id":"public/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697780087926},{"_id":"public/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697780087926},{"_id":"public/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697780087926},{"_id":"public/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697780087926},{"_id":"public/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697780087926},{"_id":"public/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697780087926},{"_id":"public/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697780087926},{"_id":"public/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697780087926},{"_id":"public/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697780087926},{"_id":"public/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697780087926},{"_id":"public/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697780087926},{"_id":"public/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697780087926},{"_id":"public/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697780087926},{"_id":"public/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697780087926},{"_id":"public/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697780087926},{"_id":"public/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697780087926},{"_id":"public/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697780087926},{"_id":"public/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697780087926},{"_id":"public/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697780087926},{"_id":"public/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697780087926},{"_id":"public/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697780087926},{"_id":"public/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697780087926},{"_id":"public/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697780087926},{"_id":"public/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697780087926},{"_id":"public/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697780087926},{"_id":"public/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697780087926}],"Category":[{"name":"Hexo","_id":"clny6fg2f0002gfz3d48l6cbv"},{"name":"Front-End","_id":"clny6fg2i0008gfz3ewdg27f9"}],"Data":[],"Page":[],"Post":[{"title":"Linear Sample Post","description":"A very simple way to add structured data to a page.","status":"done","top":0,"keywords":"Markdown, 代码高亮 (Codes), 引用 (Blockquotes), 列表 (Lists), 图片 (Images), 表格 (Tables), Emoji, TeX(KaTeX), 流程图 (mermaid)","_content":"\n# Editor.md\n\n\nhhh\n\n\n\n# 换行TEST\n\n1\n2\n3\n\na \nb\n\n---\n\nq\\\nd\n\n#HEAD TEST\n\n# Smart Test\n\n...\n\n---\n\n--\n\n\n![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n![](https://img.shields.io/github/stars/pandao/editor.md.svg) ![](https://img.shields.io/github/forks/pandao/editor.md.svg) ![](https://img.shields.io/github/tag/pandao/editor.md.svg) ![](https://img.shields.io/github/release/pandao/editor.md.svg) ![](https://img.shields.io/github/issues/pandao/editor.md.svg) ![](https://img.shields.io/bower/v/editor.md.svg)\n\n**目录 (Table of Contents)**\n\n[TOCM]\n\n[TOC]\n\n# Heading 1\n## Heading 2 \n### Heading 3\n#### Heading 4\n##### Heading 5\n###### Heading 6\n# Heading 1 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n## Heading 2 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n### Heading 3 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n#### Heading 4 link [Heading link](https://github.com/pandao/editor.md \"Heading link\") Heading link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n##### Heading 5 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n###### Heading 6 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n\n#### 标题(用底线的形式)Heading (underline)\n\nThis is an H1\n=============\n\nThis is an H2\n-------------\n\n### 字符效果和横线等\n \n----\n\n~~删除线~~ 删除线(开启识别HTML标签时)\n*斜体字* _斜体字_\n**粗体** __粗体__\n***粗斜体*** ___粗斜体___\n\n上标:X2,下标:O2\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启\n\nThe HTML specification is maintained by the W3C.\n\n### 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n \n> 引用:如果想要插入空白换行`即
标签`,在插入处先键入两个以上的空格然后回车即可,[普通链接](http://localhost/)。\n\n### 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接:\n\nhttps://baidu.com\n\n[锚点链接][anchor-id] \n\n[anchor-id]: http://www.this-anchor-link.com/\n\n[mailto:test.test@gmail.com](mailto:test.test@gmail.com)\n\nGFM a-tail link [@pandao](https://my.oschina.net/u/3691274) 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com\n\n> @pandao\n\n### 多语言代码高亮 Codes\n\n#### 行内代码 Inline code\n\n执行命令:`npm install marked`\n\n#### 缩进风格\n\n即缩进四个空格,也做为实现类似 `` 预格式化文本 ( Preformatted Text ) 的功能。\n\n \n \n预格式化文本:\n\n | First Header | Second Header |\n | ------------ | ------------- |\n | Content Cell | Content Cell |\n | Content Cell | Content Cell |\n\n#### JS代码 \n\n```javascript\nfunction test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");\n```\n\n#### HTML 代码 HTML codes\n\n```html\n\n\n \n \n \n Hello world!\n \n \n \n Hello world!
\n Plain text
\n \n\n```\n\n### 图片 Images\n\nImage:\n\n![](https://pandao.github.io/editor.md/examples/images/4.jpg)\n\n> Follow your heart.\n\n![](https://pandao.github.io/editor.md/examples/images/8.jpg)\n\n> 图为:厦门白城沙滩\n\n图片加链接 (Image + Link):\n\n[![](https://pandao.github.io/editor.md/examples/images/7.jpg)](https://pandao.github.io/editor.md/images/7.jpg \"李健首张专辑《似水流年》封面\")\n\n> 图为:李健首张专辑《似水流年》封面\n \n----\n\n### 列表 Lists\n\n#### 无序列表(减号)Unordered Lists (-)\n \n- 列表一\n- 列表二\n- 列表三\n \n#### 无序列表(星号)Unordered Lists (*)\n\n* 列表一\n* 列表二\n* 列表三\n\n#### 无序列表(加号和嵌套)Unordered Lists (+)\n \n+ 列表一\n+ 列表二\n + 列表二-1\n + 列表二-2\n + 列表二-3\n+ 列表三\n * 列表一\n * 列表二\n * 列表三\n\n#### 有序列表 Ordered Lists (-)\n \n1. 第一行\n2. 第二行\n3. 第三行\n\n#### GFM task list\n\n- [x] GFM task list 1\n- [x] GFM task list 2\n- [ ] GFM task list 3\n - [ ] GFM task list 3-1\n - [ ] GFM task list 3-2\n - [ ] GFM task list 3-3\n- [ ] GFM task list 4\n - [ ] GFM task list 4-1\n - [ ] GFM task list 4-2\n \n----\n \n### 绘制表格 Tables\n\n| 项目 | 价格 | 数量 |\n| ------ | ----: | :---: |\n| 计算机 | $1600 | 5 |\n| 手机 | $12 | 12 |\n| 管线 | $1 | 234 |\n \n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| Function name | Description |\n| ------------- | -------------------------- |\n| `help()` | Display the help window. |\n| `destroy()` | **Destroy your computer!** |\n\n| Left-Aligned | Center Aligned | Right Aligned |\n| :------------ | :-------------: | ------------: |\n| col 3 is | some wordy text | $1600 |\n| col 2 is | centered | $12 |\n| zebra stripes | are neat | $1 |\n\n| Item | Value |\n| -------- | ----: |\n| Computer | $1600 |\n| Phone | $12 |\n| Pipe | $1 |\n \n----\n\n#### 特殊符号 HTML Entities Codes\n\n© & ¨ ™ ¡ £\n& < > ¥ € ® ± ¶ § ¦ ¯ « · \n\nX² Y³ ¾ ¼ × ÷ »\n\n18ºC " '\n\n[========]\n\n### Emoji表情 :smiley:\n\n> Blockquotes :star:\n\n#### GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:\n\n- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and tags supported :editormd-logo:;\n- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;\n- [x] [ ] :smiley: this is a complete item :smiley:;\n- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao; \n- [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;\n - [ ] :smiley: this is an incomplete item [test link](#) :fa-star: :fa-gear:;\n - [ ] :smiley: this is :fa-star: :fa-gear: an incomplete item [test link](#);\n \n#### 反斜杠 Escape\n\n\\*literal asterisks\\*\n\n[========]\n \n### 科学公式 TeX(KaTeX)\n\n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。\n\n$$x > y$$\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n\n### 绘制流程图 mermaid\n\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n \n### End","source":"_posts/Linear Sample.md","raw":"---\ntitle: Linear Sample Post\ndescription: A very simple way to add structured data to a page.\nstatus: done\ntop: 0\ncategories: \n- Hexo\nkeywords: \"Markdown, 代码高亮 (Codes), 引用 (Blockquotes), 列表 (Lists), 图片 (Images), 表格 (Tables), Emoji, TeX(KaTeX), 流程图 (mermaid)\"\n---\n\n# Editor.md\n\n\nhhh\n\n\n\n# 换行TEST\n\n1\n2\n3\n\na \nb\n\n---\n\nq\\\nd\n\n#HEAD TEST\n\n# Smart Test\n\n...\n\n---\n\n--\n\n\n![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n![](https://img.shields.io/github/stars/pandao/editor.md.svg) ![](https://img.shields.io/github/forks/pandao/editor.md.svg) ![](https://img.shields.io/github/tag/pandao/editor.md.svg) ![](https://img.shields.io/github/release/pandao/editor.md.svg) ![](https://img.shields.io/github/issues/pandao/editor.md.svg) ![](https://img.shields.io/bower/v/editor.md.svg)\n\n**目录 (Table of Contents)**\n\n[TOCM]\n\n[TOC]\n\n# Heading 1\n## Heading 2 \n### Heading 3\n#### Heading 4\n##### Heading 5\n###### Heading 6\n# Heading 1 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n## Heading 2 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n### Heading 3 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n#### Heading 4 link [Heading link](https://github.com/pandao/editor.md \"Heading link\") Heading link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n##### Heading 5 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n###### Heading 6 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n\n#### 标题(用底线的形式)Heading (underline)\n\nThis is an H1\n=============\n\nThis is an H2\n-------------\n\n### 字符效果和横线等\n \n----\n\n~~删除线~~ 删除线(开启识别HTML标签时)\n*斜体字* _斜体字_\n**粗体** __粗体__\n***粗斜体*** ___粗斜体___\n\n上标:X2,下标:O2\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启\n\nThe HTML specification is maintained by the W3C.\n\n### 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n \n> 引用:如果想要插入空白换行`即
标签`,在插入处先键入两个以上的空格然后回车即可,[普通链接](http://localhost/)。\n\n### 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接:\n\nhttps://baidu.com\n\n[锚点链接][anchor-id] \n\n[anchor-id]: http://www.this-anchor-link.com/\n\n[mailto:test.test@gmail.com](mailto:test.test@gmail.com)\n\nGFM a-tail link [@pandao](https://my.oschina.net/u/3691274) 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com\n\n> @pandao\n\n### 多语言代码高亮 Codes\n\n#### 行内代码 Inline code\n\n执行命令:`npm install marked`\n\n#### 缩进风格\n\n即缩进四个空格,也做为实现类似 `` 预格式化文本 ( Preformatted Text ) 的功能。\n\n \n \n预格式化文本:\n\n | First Header | Second Header |\n | ------------ | ------------- |\n | Content Cell | Content Cell |\n | Content Cell | Content Cell |\n\n#### JS代码 \n\n```javascript\nfunction test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");\n```\n\n#### HTML 代码 HTML codes\n\n```html\n\n\n \n \n \n Hello world!\n \n \n \n Hello world!
\n Plain text
\n \n\n```\n\n### 图片 Images\n\nImage:\n\n![](https://pandao.github.io/editor.md/examples/images/4.jpg)\n\n> Follow your heart.\n\n![](https://pandao.github.io/editor.md/examples/images/8.jpg)\n\n> 图为:厦门白城沙滩\n\n图片加链接 (Image + Link):\n\n[![](https://pandao.github.io/editor.md/examples/images/7.jpg)](https://pandao.github.io/editor.md/images/7.jpg \"李健首张专辑《似水流年》封面\")\n\n> 图为:李健首张专辑《似水流年》封面\n \n----\n\n### 列表 Lists\n\n#### 无序列表(减号)Unordered Lists (-)\n \n- 列表一\n- 列表二\n- 列表三\n \n#### 无序列表(星号)Unordered Lists (*)\n\n* 列表一\n* 列表二\n* 列表三\n\n#### 无序列表(加号和嵌套)Unordered Lists (+)\n \n+ 列表一\n+ 列表二\n + 列表二-1\n + 列表二-2\n + 列表二-3\n+ 列表三\n * 列表一\n * 列表二\n * 列表三\n\n#### 有序列表 Ordered Lists (-)\n \n1. 第一行\n2. 第二行\n3. 第三行\n\n#### GFM task list\n\n- [x] GFM task list 1\n- [x] GFM task list 2\n- [ ] GFM task list 3\n - [ ] GFM task list 3-1\n - [ ] GFM task list 3-2\n - [ ] GFM task list 3-3\n- [ ] GFM task list 4\n - [ ] GFM task list 4-1\n - [ ] GFM task list 4-2\n \n----\n \n### 绘制表格 Tables\n\n| 项目 | 价格 | 数量 |\n| ------ | ----: | :---: |\n| 计算机 | $1600 | 5 |\n| 手机 | $12 | 12 |\n| 管线 | $1 | 234 |\n \n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n\n| Function name | Description |\n| ------------- | -------------------------- |\n| `help()` | Display the help window. |\n| `destroy()` | **Destroy your computer!** |\n\n| Left-Aligned | Center Aligned | Right Aligned |\n| :------------ | :-------------: | ------------: |\n| col 3 is | some wordy text | $1600 |\n| col 2 is | centered | $12 |\n| zebra stripes | are neat | $1 |\n\n| Item | Value |\n| -------- | ----: |\n| Computer | $1600 |\n| Phone | $12 |\n| Pipe | $1 |\n \n----\n\n#### 特殊符号 HTML Entities Codes\n\n© & ¨ ™ ¡ £\n& < > ¥ € ® ± ¶ § ¦ ¯ « · \n\nX² Y³ ¾ ¼ × ÷ »\n\n18ºC " '\n\n[========]\n\n### Emoji表情 :smiley:\n\n> Blockquotes :star:\n\n#### GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:\n\n- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and tags supported :editormd-logo:;\n- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;\n- [x] [ ] :smiley: this is a complete item :smiley:;\n- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao; \n- [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;\n - [ ] :smiley: this is an incomplete item [test link](#) :fa-star: :fa-gear:;\n - [ ] :smiley: this is :fa-star: :fa-gear: an incomplete item [test link](#);\n \n#### 反斜杠 Escape\n\n\\*literal asterisks\\*\n\n[========]\n \n### 科学公式 TeX(KaTeX)\n\n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。\n\n$$x > y$$\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n\n### 绘制流程图 mermaid\n\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n \n### End","slug":"Linear Sample","published":1,"date":"2023-10-20T03:10:24.718Z","updated":"2023-10-20T04:47:46.792Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny6fg2b0000gfz3d34t7rja","content":"Editor.md
hhh
\n\n\n换行TEST
1
2
3
\na
b
\n
\nq
d
\n#HEAD TEST
\nSmart Test
…
\n
\n–
\n\n
\n目录 (Table of Contents)
\n[TOCM]
\n[TOC]
\nHeading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
标题(用底线的形式)Heading (underline)
This is an H1
This is an H2
字符效果和横线等
\n删除线 删除线(开启识别HTML标签时)
斜体字 斜体字
粗体 粗体
粗斜体 粗斜体
\n上标:X2,下标:O2
\n缩写(同HTML的abbr标签)
\n\n即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启
\n
\nThe HTML specification is maintained by the W3C.
\n引用 Blockquotes
\n引用文本 Blockquotes
\n
\n引用的行内混合 Blockquotes
\n\n引用:如果想要插入空白换行即<br />标签
,在插入处先键入两个以上的空格然后回车即可,普通链接。
\n
\n锚点与链接 Links
普通链接
\n普通链接带标题
\n直接链接:https://github.com
\nhttps://baidu.com
\n锚点链接
\nmailto:test.test@gmail.com
\nGFM a-tail link @pandao 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com
\n\n@pandao
\n
\n多语言代码高亮 Codes
行内代码 Inline code
执行命令:npm install marked
\n缩进风格
即缩进四个空格,也做为实现类似 <pre>
预格式化文本 ( Preformatted Text ) 的功能。
\n<?php\n echo "Hello world!";\n?>\n
\n预格式化文本:
\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n
\nJS代码
function test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");
\n\nHTML 代码 HTML codes
<!DOCTYPE html>\n<html>\n <head>\n <mate charest=\"utf-8\" />\n <meta name=\"keywords\" content=\"Editor.md, Markdown, Editor\" />\n <title>Hello world!</title>\n <style type=\"text/css\">\n body{font-size:14px;color:#444;font-family: \"Microsoft Yahei\", Tahoma, \"Hiragino Sans GB\", Arial;background:#fff;}\n ul{list-style: none;}\n img{border:none;vertical-align: middle;}\n </style>\n </head>\n <body>\n <h1 class=\"text-xxl\">Hello world!</h1>\n <p class=\"text-green\">Plain text</p>\n </body>\n</html>
\n\n图片 Images
Image:
\n\n\nFollow your heart.
\n
\n\n\n图为:厦门白城沙滩
\n
\n图片加链接 (Image + Link):
\n
\n\n图为:李健首张专辑《似水流年》封面
\n
\n
\n列表 Lists
无序列表(减号)Unordered Lists (-)
\n无序列表(星号)Unordered Lists (*)
\n无序列表(加号和嵌套)Unordered Lists (+)
\n有序列表 Ordered Lists (-)
\n- 第一行
\n- 第二行
\n- 第三行
\n
\nGFM task list
\n
\n绘制表格 Tables
\n\n\n项目 | \n价格 | \n数量 | \n
\n\n\n计算机 | \n$1600 | \n5 | \n
\n\n手机 | \n$12 | \n12 | \n
\n\n管线 | \n$1 | \n234 | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFunction name | \nDescription | \n
\n\n\nhelp() | \nDisplay the help window. | \n
\n\ndestroy() | \nDestroy your computer! | \n
\n
\n\n\n\nLeft-Aligned | \nCenter Aligned | \nRight Aligned | \n
\n\n\ncol 3 is | \nsome wordy text | \n$1600 | \n
\n\ncol 2 is | \ncentered | \n$12 | \n
\n\nzebra stripes | \nare neat | \n$1 | \n
\n
\n\n\n\nItem | \nValue | \n
\n\n\nComputer | \n$1600 | \n
\n\nPhone | \n$12 | \n
\n\nPipe | \n$1 | \n
\n
\n
\n特殊符号 HTML Entities Codes
© & ¨ ™ ¡ £
& < > ¥ € ® ± ¶ § ¦ ¯ « ·
\nX² Y³ ¾ ¼ × ÷ »
\n18ºC " '
\n[========]
\nEmoji表情 :smiley:
\nBlockquotes :star:
\n
\nGFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:
\n反斜杠 Escape
*literal asterisks*
\n[========]
\n科学公式 TeX(KaTeX)
$$E=mc^2$$
\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
\n$$x > y$$
\n$$(\\sqrt{3x-1}+(1+x)^2)$$
\n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$
\n绘制流程图 mermaid
\n graph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n
\nEnd
","site":{"data":{}},"excerpt":"","more":"Editor.md
hhh
\n\n\n换行TEST
1
2
3
\na
b
\n
\nq
d
\n#HEAD TEST
\nSmart Test
…
\n
\n–
\n\n
\n目录 (Table of Contents)
\n[TOCM]
\n[TOC]
\nHeading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
标题(用底线的形式)Heading (underline)
This is an H1
This is an H2
字符效果和横线等
\n删除线 删除线(开启识别HTML标签时)
斜体字 斜体字
粗体 粗体
粗斜体 粗斜体
\n上标:X2,下标:O2
\n缩写(同HTML的abbr标签)
\n\n即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启
\n
\nThe HTML specification is maintained by the W3C.
\n引用 Blockquotes
\n引用文本 Blockquotes
\n
\n引用的行内混合 Blockquotes
\n\n引用:如果想要插入空白换行即<br />标签
,在插入处先键入两个以上的空格然后回车即可,普通链接。
\n
\n锚点与链接 Links
普通链接
\n普通链接带标题
\n直接链接:https://github.com
\nhttps://baidu.com
\n锚点链接
\nmailto:test.test@gmail.com
\nGFM a-tail link @pandao 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com
\n\n@pandao
\n
\n多语言代码高亮 Codes
行内代码 Inline code
执行命令:npm install marked
\n缩进风格
即缩进四个空格,也做为实现类似 <pre>
预格式化文本 ( Preformatted Text ) 的功能。
\n<?php\n echo "Hello world!";\n?>\n
\n预格式化文本:
\n| First Header | Second Header |\n| ------------ | ------------- |\n| Content Cell | Content Cell |\n| Content Cell | Content Cell |\n
\nJS代码
function test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n var box = function() {\n return box.fn.init();\n };\n\n box.prototype = box.fn = {\n init : function(){\n console.log('box.init()');\n\n\t\t\treturn this;\n },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n };\n \n box.fn.init.prototype = box.fn;\n \n window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");
\n\nHTML 代码 HTML codes
<!DOCTYPE html>\n<html>\n <head>\n <mate charest=\"utf-8\" />\n <meta name=\"keywords\" content=\"Editor.md, Markdown, Editor\" />\n <title>Hello world!</title>\n <style type=\"text/css\">\n body{font-size:14px;color:#444;font-family: \"Microsoft Yahei\", Tahoma, \"Hiragino Sans GB\", Arial;background:#fff;}\n ul{list-style: none;}\n img{border:none;vertical-align: middle;}\n </style>\n </head>\n <body>\n <h1 class=\"text-xxl\">Hello world!</h1>\n <p class=\"text-green\">Plain text</p>\n </body>\n</html>
\n\n图片 Images
Image:
\n\n\nFollow your heart.
\n
\n\n\n图为:厦门白城沙滩
\n
\n图片加链接 (Image + Link):
\n
\n\n图为:李健首张专辑《似水流年》封面
\n
\n
\n列表 Lists
无序列表(减号)Unordered Lists (-)
\n无序列表(星号)Unordered Lists (*)
\n无序列表(加号和嵌套)Unordered Lists (+)
\n有序列表 Ordered Lists (-)
\n- 第一行
\n- 第二行
\n- 第三行
\n
\nGFM task list
\n
\n绘制表格 Tables
\n\n\n项目 | \n价格 | \n数量 | \n
\n\n\n计算机 | \n$1600 | \n5 | \n
\n\n手机 | \n$12 | \n12 | \n
\n\n管线 | \n$1 | \n234 | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFirst Header | \nSecond Header | \n
\n\n\nContent Cell | \nContent Cell | \n
\n\nContent Cell | \nContent Cell | \n
\n
\n\n\n\nFunction name | \nDescription | \n
\n\n\nhelp() | \nDisplay the help window. | \n
\n\ndestroy() | \nDestroy your computer! | \n
\n
\n\n\n\nLeft-Aligned | \nCenter Aligned | \nRight Aligned | \n
\n\n\ncol 3 is | \nsome wordy text | \n$1600 | \n
\n\ncol 2 is | \ncentered | \n$12 | \n
\n\nzebra stripes | \nare neat | \n$1 | \n
\n
\n\n\n\nItem | \nValue | \n
\n\n\nComputer | \n$1600 | \n
\n\nPhone | \n$12 | \n
\n\nPipe | \n$1 | \n
\n
\n
\n特殊符号 HTML Entities Codes
© & ¨ ™ ¡ £
& < > ¥ € ® ± ¶ § ¦ ¯ « ·
\nX² Y³ ¾ ¼ × ÷ »
\n18ºC " '
\n[========]
\nEmoji表情 :smiley:
\nBlockquotes :star:
\n
\nGFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:
\n反斜杠 Escape
*literal asterisks*
\n[========]
\n科学公式 TeX(KaTeX)
$$E=mc^2$$
\n行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
\n$$x > y$$
\n$$(\\sqrt{3x-1}+(1+x)^2)$$
\n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$
\n绘制流程图 mermaid
\n graph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n
\nEnd
"},{"title":"Linear 入门","top":2,"status":"doing","_content":"\n# Hexo 安装主题\n\n`Hexo` 主题的安装方式非常简单,只需将主题 `Hexo-theme-linear` 复制目录的 `themes` 目录下,然后在 `Hexo` 的 `_config.yml` 中修改下主题配置即可\n\n```yml\n# 找到 theme 配置项\ntheme: Hexo-theme-linear\n```\n\n## 获取 Linear\n\n- 进入 [Linear 代码仓库](https://github.com/17px/hexo-theme-linear/tree/main),了解最新的主题开发进度\n- 在 [发布页面](https://github.com/17px/hexo-theme-linear/releases) 下载 `hexo-theme-linear.zip`\n- 解压至站点的 `themes` 目录下\n- 在 Hexo 的 `_config.yml` 中启用\n\n# hexo配置\n\n在 `Hexo` 的 `_config.yml` 中调整\n\n## 基础配置\n\n```yml\n# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn\n```\n\n## 国际化切换\n\n```yml\nlanguage: en\n```\n\n## 文章语法高亮\n\n关闭hexo默认的highlight.js语法高亮\n\n```yml\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\n\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"\n```\n\n# Linear主题配置\n\n下面的配置基于 `Hexo-theme-linear` 下的 `_config.yml` \n\n## 文章分类图标\n\n按照顺序,依次设置 `svg` 图标,可以在 [xicon](https://www.xicons.org/) 方面的获取丰富的图标\n\n```yml\npostCategoryIcons:\n - \n - \n - \n```\n\n## 网站图标 favicon\n\n- 支持 `svg`\n- 支持 `图片url`,如:`/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP备案号\n\n😁 如不需要备案号,可直接删除\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## 首页底部文字\n\n😁 如不需要,可直接删除,或者改为 `false` \n\n```yml\nmotto: false\n```\n\n## 文章版权申明\n\n默认开启,当 `enable: false`,默认关闭\n\n```yml\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/\n```\n\n## katex 数学公式\n\n可自行配置 `cdn`\n\n```yml\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css\n```\n\n## mermaid 流程图\n\n在撰写时,请使用 `{% mermaid %}` 和 `{% endmermaid %}` 包裹\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\n相应配置如下\n\n```yml\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js\n```\n\n## valine 文章评论\n\n首先需要注册 `LeanCloud` 国际区用户,创建数据库\n\n请根据相关地区法规,酌情\n\n```yml\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com\n```\n\n# algolia搜索\n\n博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 `algolia`,免费账户 总共有 `10,000` 条记录,每月有 `100,000` 的操作数\n\n## 注册 & 获取 Key\n\n1. 创建一个新的 `Index`,例如 `hex-blog`\n\n2. 复制并保存:\n - Application ID\n - Search-Only API Key\n - Admin API Key\n - Usage API Key\n\n[API Keys](/img/algolia-api-keys.png)\n\n3. 替换配置\n\n在 `Hexo` 的 `_config.yml` 中加入\n\n```yml\nalgolia:\n # 替换\n appId: Application ID\n # 替换\n apiKey: Usage API Key\n # 请勿泄露,用于上报,替换\n adminApiKey: Admin API Key\n # 替换\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # 替换\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n## 安装 hexo-algoliasearch\n\n这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia\n\n> 如出遇到问题,可阅读 [hexo-algoliasearch 仓库](https://www.npmjs.com/package/hexo-algoliasearch) 最新说明\n\n安装命令:\n\n```bash\nnpm install hexo-algoliasearch --save\n```\n\n## 使用 algolia\n\n在每次博客发布之前,进行索引上传的操作,命令通常如下\n\n```bash\nhexo clean\nhexo generate\nhexo algolia\n``` \n\n\n# 🇨🇳 和风天气 Widget\n\nLinear 主要针对国内用户,在首页集成了和风天气的卡片,通过 [和风天气开发服务](https://dev.qweather.com/docs/start/) 注册\n\n注册完成后,在配置中填入你的 `appKey` 和 `cityCode(城市代码)`\n\n```yml\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey\n```\n\n其中 `cityCode` 可以在 [官方的地区列表仓库](https://github.com/qwd/LocationList) 中的 `China-City-List-latest.csv` 找到你所在城市的 `cityCode`\n","source":"_posts/Linear 入门.md","raw":"---\ntitle: Linear 入门\ntop: 2\ncategories:\n - Hexo\nstatus: doing\n---\n\n# Hexo 安装主题\n\n`Hexo` 主题的安装方式非常简单,只需将主题 `Hexo-theme-linear` 复制目录的 `themes` 目录下,然后在 `Hexo` 的 `_config.yml` 中修改下主题配置即可\n\n```yml\n# 找到 theme 配置项\ntheme: Hexo-theme-linear\n```\n\n## 获取 Linear\n\n- 进入 [Linear 代码仓库](https://github.com/17px/hexo-theme-linear/tree/main),了解最新的主题开发进度\n- 在 [发布页面](https://github.com/17px/hexo-theme-linear/releases) 下载 `hexo-theme-linear.zip`\n- 解压至站点的 `themes` 目录下\n- 在 Hexo 的 `_config.yml` 中启用\n\n# hexo配置\n\n在 `Hexo` 的 `_config.yml` 中调整\n\n## 基础配置\n\n```yml\n# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn\n```\n\n## 国际化切换\n\n```yml\nlanguage: en\n```\n\n## 文章语法高亮\n\n关闭hexo默认的highlight.js语法高亮\n\n```yml\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\n\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"\n```\n\n# Linear主题配置\n\n下面的配置基于 `Hexo-theme-linear` 下的 `_config.yml` \n\n## 文章分类图标\n\n按照顺序,依次设置 `svg` 图标,可以在 [xicon](https://www.xicons.org/) 方面的获取丰富的图标\n\n```yml\npostCategoryIcons:\n - \n - \n - \n```\n\n## 网站图标 favicon\n\n- 支持 `svg`\n- 支持 `图片url`,如:`/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP备案号\n\n😁 如不需要备案号,可直接删除\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## 首页底部文字\n\n😁 如不需要,可直接删除,或者改为 `false` \n\n```yml\nmotto: false\n```\n\n## 文章版权申明\n\n默认开启,当 `enable: false`,默认关闭\n\n```yml\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/\n```\n\n## katex 数学公式\n\n可自行配置 `cdn`\n\n```yml\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css\n```\n\n## mermaid 流程图\n\n在撰写时,请使用 `{% mermaid %}` 和 `{% endmermaid %}` 包裹\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\n相应配置如下\n\n```yml\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js\n```\n\n## valine 文章评论\n\n首先需要注册 `LeanCloud` 国际区用户,创建数据库\n\n请根据相关地区法规,酌情\n\n```yml\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com\n```\n\n# algolia搜索\n\n博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 `algolia`,免费账户 总共有 `10,000` 条记录,每月有 `100,000` 的操作数\n\n## 注册 & 获取 Key\n\n1. 创建一个新的 `Index`,例如 `hex-blog`\n\n2. 复制并保存:\n - Application ID\n - Search-Only API Key\n - Admin API Key\n - Usage API Key\n\n[API Keys](/img/algolia-api-keys.png)\n\n3. 替换配置\n\n在 `Hexo` 的 `_config.yml` 中加入\n\n```yml\nalgolia:\n # 替换\n appId: Application ID\n # 替换\n apiKey: Usage API Key\n # 请勿泄露,用于上报,替换\n adminApiKey: Admin API Key\n # 替换\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # 替换\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n## 安装 hexo-algoliasearch\n\n这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia\n\n> 如出遇到问题,可阅读 [hexo-algoliasearch 仓库](https://www.npmjs.com/package/hexo-algoliasearch) 最新说明\n\n安装命令:\n\n```bash\nnpm install hexo-algoliasearch --save\n```\n\n## 使用 algolia\n\n在每次博客发布之前,进行索引上传的操作,命令通常如下\n\n```bash\nhexo clean\nhexo generate\nhexo algolia\n``` \n\n\n# 🇨🇳 和风天气 Widget\n\nLinear 主要针对国内用户,在首页集成了和风天气的卡片,通过 [和风天气开发服务](https://dev.qweather.com/docs/start/) 注册\n\n注册完成后,在配置中填入你的 `appKey` 和 `cityCode(城市代码)`\n\n```yml\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey\n```\n\n其中 `cityCode` 可以在 [官方的地区列表仓库](https://github.com/qwd/LocationList) 中的 `China-City-List-latest.csv` 找到你所在城市的 `cityCode`\n","slug":"Linear 入门","published":1,"date":"2023-10-20T01:08:12.352Z","updated":"2023-10-20T05:34:19.839Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny6fg2e0001gfz39x9t4bvw","content":"Hexo 安装主题
Hexo
主题的安装方式非常简单,只需将主题 Hexo-theme-linear
复制目录的 themes
目录下,然后在 Hexo
的 _config.yml
中修改下主题配置即可
\n# 找到 theme 配置项\ntheme: Hexo-theme-linear
\n\n获取 Linear
\n- 进入 Linear 代码仓库,了解最新的主题开发进度
\n- 在 发布页面 下载
hexo-theme-linear.zip
\n- 解压至站点的
themes
目录下 \n- 在 Hexo 的
_config.yml
中启用 \n
\nhexo配置
在 Hexo
的 _config.yml
中调整
\n基础配置
# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn
\n\n国际化切换
language: en
\n\n文章语法高亮
关闭hexo默认的highlight.js语法高亮
\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\n\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"
\n\nLinear主题配置
下面的配置基于 Hexo-theme-linear
下的 _config.yml
\n文章分类图标
按照顺序,依次设置 svg
图标,可以在 xicon 方面的获取丰富的图标
\npostCategoryIcons:\n - <svg>...</svg>\n - <svg>...</svg>\n - <svg>...</svg>
\n\n网站图标 favicon
\n- 支持
svg
\n- 支持
图片url
,如:/img/favicon.png
\n
\nfavicon: ''
\n\nICP备案号
😁 如不需要备案号,可直接删除
\nicp: 苏ICP备xxxxxxx号-x
\n\n首页底部文字
😁 如不需要,可直接删除,或者改为 false
\nmotto: false
\n\n文章版权申明
默认开启,当 enable: false
,默认关闭
\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/
\n\nkatex 数学公式
可自行配置 cdn
\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css
\n\nmermaid 流程图
在撰写时,请使用 {% mermaid %}` 和 `{% endmermaid %}
包裹
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\n相应配置如下
\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nvaline 文章评论
首先需要注册 LeanCloud
国际区用户,创建数据库
\n请根据相关地区法规,酌情
\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com
\n\nalgolia搜索
博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 algolia
,免费账户 总共有 10,000
条记录,每月有 100,000
的操作数
\n注册 & 获取 Key
\n创建一个新的 Index
,例如 hex-blog
\n \n复制并保存:
\n \n
\n\n- Application ID
\n- Search-Only API Key
\n- Admin API Key
\n- Usage API Key
\n
\nAPI Keys
\n\n- 替换配置
\n
\n在 Hexo
的 _config.yml
中加入
\nalgolia:\n # 替换\n appId: Application ID\n # 替换\n apiKey: Usage API Key\n # 请勿泄露,用于上报,替换\n adminApiKey: Admin API Key\n # 替换\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # 替换\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\n安装 hexo-algoliasearch
这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia
\n\n如出遇到问题,可阅读 hexo-algoliasearch 仓库 最新说明
\n
\n安装命令:
\nnpm install hexo-algoliasearch --save
\n\n使用 algolia
在每次博客发布之前,进行索引上传的操作,命令通常如下
\nhexo clean\nhexo generate\nhexo algolia
\n\n\nLinear 主要针对国内用户,在首页集成了和风天气的卡片,通过 和风天气开发服务 注册
\n注册完成后,在配置中填入你的 appKey
和 cityCode(城市代码)
\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey
\n\n其中 cityCode
可以在 官方的地区列表仓库 中的 China-City-List-latest.csv
找到你所在城市的 cityCode
\n","site":{"data":{}},"excerpt":"","more":"Hexo 安装主题
Hexo
主题的安装方式非常简单,只需将主题 Hexo-theme-linear
复制目录的 themes
目录下,然后在 Hexo
的 _config.yml
中修改下主题配置即可
\n# 找到 theme 配置项\ntheme: Hexo-theme-linear
\n\n获取 Linear
\n- 进入 Linear 代码仓库,了解最新的主题开发进度
\n- 在 发布页面 下载
hexo-theme-linear.zip
\n- 解压至站点的
themes
目录下 \n- 在 Hexo 的
_config.yml
中启用 \n
\nhexo配置
在 Hexo
的 _config.yml
中调整
\n基础配置
# 网页标题\ntitle: 17px blog\n# 侧边栏顶部显示\nsubtitle: \"Mozzie\"\n# 用于SEO的html元描述\ndescription: \"\"\n# 用于SEO的html关键字\nkeywords:\n# 文章版权声明显示作者名称\nauthor: Mozzie\n\n# 在此处设置您的网站url\nurl: https://mozzie.cn
\n\n国际化切换
language: en
\n\n文章语法高亮
关闭hexo默认的highlight.js语法高亮
\nhighlight:\n enable: false\n line_number: true\n auto_detect: false\n tab_replace: \"\"\n wrap: true\n hljs: false\n\nprismjs:\n enable: true\n preprocess: true\n line_number: true\n line_threshold: 0\n tab_replace: \"\"
\n\nLinear主题配置
下面的配置基于 Hexo-theme-linear
下的 _config.yml
\n文章分类图标
按照顺序,依次设置 svg
图标,可以在 xicon 方面的获取丰富的图标
\npostCategoryIcons:\n - <svg>...</svg>\n - <svg>...</svg>\n - <svg>...</svg>
\n\n网站图标 favicon
\n- 支持
svg
\n- 支持
图片url
,如:/img/favicon.png
\n
\nfavicon: ''
\n\nICP备案号
😁 如不需要备案号,可直接删除
\nicp: 苏ICP备xxxxxxx号-x
\n\n首页底部文字
😁 如不需要,可直接删除,或者改为 false
\nmotto: false
\n\n文章版权申明
默认开启,当 enable: false
,默认关闭
\npostCopyright:\n enable: true\n license: CC BY-NC-SA 4.0\n license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/
\n\nkatex 数学公式
可自行配置 cdn
\nkatex:\n enable: true\n jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css
\n\nmermaid 流程图
在撰写时,请使用 {% mermaid %}` 和 `{% endmermaid %}
包裹
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\n相应配置如下
\nmermaid:\n enable: true\n cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nvaline 文章评论
首先需要注册 LeanCloud
国际区用户,创建数据库
\n请根据相关地区法规,酌情
\nvaline:\n enable: true\n # 替换\n appId: appId\n # 替换\n appKey: appKey\n avatar: monsterid\n cdn: //unpkg.com/valine@latest/dist/Valine.min.js\n # 替换\n serverURLs: //xxxxxxxx.api.lncldglobal.com
\n\nalgolia搜索
博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 algolia
,免费账户 总共有 10,000
条记录,每月有 100,000
的操作数
\n注册 & 获取 Key
\n创建一个新的 Index
,例如 hex-blog
\n \n复制并保存:
\n \n
\n\n- Application ID
\n- Search-Only API Key
\n- Admin API Key
\n- Usage API Key
\n
\nAPI Keys
\n\n- 替换配置
\n
\n在 Hexo
的 _config.yml
中加入
\nalgolia:\n # 替换\n appId: Application ID\n # 替换\n apiKey: Usage API Key\n # 请勿泄露,用于上报,替换\n adminApiKey: Admin API Key\n # 替换\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # 替换\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\n安装 hexo-algoliasearch
这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia
\n\n如出遇到问题,可阅读 hexo-algoliasearch 仓库 最新说明
\n
\n安装命令:
\nnpm install hexo-algoliasearch --save
\n\n使用 algolia
在每次博客发布之前,进行索引上传的操作,命令通常如下
\nhexo clean\nhexo generate\nhexo algolia
\n\n\nLinear 主要针对国内用户,在首页集成了和风天气的卡片,通过 和风天气开发服务 注册
\n注册完成后,在配置中填入你的 appKey
和 cityCode(城市代码)
\nweather:\n enable: true\n # 替换\n cityCode: cityCode\n appKey: appKey
\n\n其中 cityCode
可以在 官方的地区列表仓库 中的 China-City-List-latest.csv
找到你所在城市的 cityCode
\n"},{"title":"Linear-Starter-Guide","top":1,"status":"doing","_content":"\n[🇨🇳 中文文档](https://mozzie.cn/2023/10/20/Linear%20%E5%85%A5%E9%97%A8/)\n\n# Configuration\n\ncontinued...😁\n","source":"_posts/Linear-Starter-Guide.md","raw":"---\ntitle: Linear-Starter-Guide\ntop: 1\ncategories:\n - Hexo\nstatus: doing\n---\n\n[🇨🇳 中文文档](https://mozzie.cn/2023/10/20/Linear%20%E5%85%A5%E9%97%A8/)\n\n# Configuration\n\ncontinued...😁\n","slug":"Linear-Starter-Guide","published":1,"date":"2023-10-20T01:05:56.355Z","updated":"2023-10-20T03:15:54.296Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny6fg2f0003gfz3c0g1f051","content":"🇨🇳 中文文档
\nConfiguration
continued…😁
\n","site":{"data":{}},"excerpt":"","more":"🇨🇳 中文文档
\nConfiguration
continued…😁
\n"},{"title":"verdaccio 搭建 npm私库","status":"done","_content":"\n# 使用 docker 搭建 verdaccio\n\n创建 & 配置`config.yaml`文件\n\n```yaml\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }\n```\n\n创建容器,环境变量,`VERDACCIO_PUBLIC_URL`是静态资源的前缀地址,由于nginx挂了`ssl`,如果使用`http`可以不添加\n\n```bash\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio\n```\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用`container_name`\n\n\n\n```conf\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}\n```\n\n运行添加用户,报错,因为 `htpasswd`默认创建在宿主机,也就是上面挂载的`/www/wwwroot/nginx/html/verdaccio/storage`目录中\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n```\n\n配置`htpasswd`、`storage` 文件夹权限\n\n```bash\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage\n```\n\n# verdaccio 用户管理\n\n由于在 `config.yml` 中关闭了可访问权限\n\n```yaml\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated\n```\n\n默认的 `addUser` 策略是 `Bcrypt` 生成密码,随便找个网页生成个密码,使用`账号:密码`添加到 `htpasswd` 文件中,例如 \n\n```bash\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n```\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 `npm` 为例\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.\n```\n\n在系统的 `cat ~/.npmrc` 中会增加一行,就可以正常的进行以来的安装了\n\n```bash\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"\n```\n\n# 项目 .npmrc Scope区分\n\n需要指定 `.npmrc` 来区别 `Scope` 的安装地址,例如一个包名为 `@mozzie/hook`,对应的私库为 `https://npm.mozzie.cn/`\n\n```bash\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx\n```","source":"_posts/front-end/verdaccio.md","raw":"---\ntitle: verdaccio 搭建 npm私库\ncategories:\n - Front-End\nstatus: done\n---\n\n# 使用 docker 搭建 verdaccio\n\n创建 & 配置`config.yaml`文件\n\n```yaml\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }\n```\n\n创建容器,环境变量,`VERDACCIO_PUBLIC_URL`是静态资源的前缀地址,由于nginx挂了`ssl`,如果使用`http`可以不添加\n\n```bash\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio\n```\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用`container_name`\n\n\n\n```conf\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}\n```\n\n运行添加用户,报错,因为 `htpasswd`默认创建在宿主机,也就是上面挂载的`/www/wwwroot/nginx/html/verdaccio/storage`目录中\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n```\n\n配置`htpasswd`、`storage` 文件夹权限\n\n```bash\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage\n```\n\n# verdaccio 用户管理\n\n由于在 `config.yml` 中关闭了可访问权限\n\n```yaml\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated\n```\n\n默认的 `addUser` 策略是 `Bcrypt` 生成密码,随便找个网页生成个密码,使用`账号:密码`添加到 `htpasswd` 文件中,例如 \n\n```bash\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n```\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 `npm` 为例\n\n```bash\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.\n```\n\n在系统的 `cat ~/.npmrc` 中会增加一行,就可以正常的进行以来的安装了\n\n```bash\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"\n```\n\n# 项目 .npmrc Scope区分\n\n需要指定 `.npmrc` 来区别 `Scope` 的安装地址,例如一个包名为 `@mozzie/hook`,对应的私库为 `https://npm.mozzie.cn/`\n\n```bash\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx\n```","slug":"front-end/verdaccio","published":1,"date":"2023-10-20T02:25:55.131Z","updated":"2023-10-20T02:27:35.158Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clny6fg2g0004gfz31uqx8ehf","content":"使用 docker 搭建 verdaccio
创建 & 配置config.yaml
文件
\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }
\n\n创建容器,环境变量,VERDACCIO_PUBLIC_URL
是静态资源的前缀地址,由于nginx挂了ssl
,如果使用http
可以不添加
\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio
\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用container_name
\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}
\n\n运行添加用户,报错,因为 htpasswd
默认创建在宿主机,也就是上面挂载的/www/wwwroot/nginx/html/verdaccio/storage
目录中
\nnpm adduser --registry https://npm.mozzie.cn/
\n\n配置htpasswd
、storage
文件夹权限
\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage
\n\nverdaccio 用户管理
由于在 config.yml
中关闭了可访问权限
\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated
\n\n默认的 addUser
策略是 Bcrypt
生成密码,随便找个网页生成个密码,使用账号:密码
添加到 htpasswd
文件中,例如
\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W
\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 npm
为例
\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.
\n\n在系统的 cat ~/.npmrc
中会增加一行,就可以正常的进行以来的安装了
\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"
\n\n项目 .npmrc Scope区分
需要指定 .npmrc
来区别 Scope
的安装地址,例如一个包名为 @mozzie/hook
,对应的私库为 https://npm.mozzie.cn/
\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx
","site":{"data":{}},"excerpt":"","more":"使用 docker 搭建 verdaccio
创建 & 配置config.yaml
文件
\n# Read about the best practices\n# https://verdaccio.org/docs/best\n\n# path to a directory with all packages\nstorage: /verdaccio/storage/data\n# path to a directory with plugins to include\nplugins: /verdaccio/plugins\n\n# 包体积上限,默认10mb\nmax_body_size: 1024mb\n\n\nweb:\n enable: true\n title: Mozzie-NPM\n # gravatar: false\n # login: true\n pkgManagers:\n - npm\n - yarn\n - pnpm\n html_cache: true\n showFooter: false\n\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W\n max_users: -1\n\n\ni18n:\n web: zh-CN\n\n# notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles\n# method: POST\n# headers: [{ \"Content-Type\": \"application/json\" }]\n# endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx\n# content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'\n\nuplinks:\n npmjs:\n url: https://registry.npmjs.org/\n yarn:\n url: https://registry.yarnpkg.com/\n timeout: 10s\n taobao:\n url: https://registry.npmmirror.com/\n timeout: 10s\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n # 包不存在时的代理\n proxy: npmjs yarn taobao\n \"**\":\n access: $authenticated # $all\n publish: $authenticated\n unpublish: $authenticated\n proxy: npmjs yarn taobao\n\nmiddlewares:\n audit:\n enabled: true\nlisten: 0.0.0.0:4873\nlog: { type: stdout, format: pretty, level: http }
\n\n创建容器,环境变量,VERDACCIO_PUBLIC_URL
是静态资源的前缀地址,由于nginx挂了ssl
,如果使用http
可以不添加
\ndocker run \\\n-p 4873:4873 \\\n--restart=always \\\n--network mozzie.cn-net \\\n--network-alias verdaccio \\\n--env VERDACCIO_PORT=4873 \\\n--env VERDACCIO_PUBLIC_URL=https://npm.mozzie.cn \\\n--ip 172.21.0.196 \\\n--name verdaccio \\\n-v /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage \\\n-v /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf \\\n-v /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins \\\n-d verdaccio/verdaccio
\n\n\n\n配置nginx的反向代理conf,注意所在的docker网络,使用container_name
\nserver {\n # listen 80;\n listen 443 ssl;\n server_name npm.mozzie.cn;\n ssl_certificate /etc/nginx/ssl/npm.mozzie.cn_bundle.pem;\n ssl_certificate_key /etc/nginx/ssl/npm.mozzie.cn.key;\n gzip on;\n\n location / {\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header Host $host;\n proxy_set_header X-NginX-Proxy true;\n proxy_pass http://verdaccio:4873/;\n proxy_redirect off;\n }\n}
\n\n运行添加用户,报错,因为 htpasswd
默认创建在宿主机,也就是上面挂载的/www/wwwroot/nginx/html/verdaccio/storage
目录中
\nnpm adduser --registry https://npm.mozzie.cn/
\n\n配置htpasswd
、storage
文件夹权限
\n# 宿主机中执行\ncd /www/wwwroot/nginx/html/verdaccio/storage\ntouch htpasswd\nsudo chown 10001:65533 htpasswd\nsudo chown -R 10001:65533 /www/wwwroot/nginx/html/verdaccio/storage
\n\nverdaccio 用户管理
由于在 config.yml
中关闭了可访问权限
\nauth:\n htpasswd:\n file: /verdaccio/storage/htpasswd\n # 关闭注册,手动添加用户,默认Bcrypt算法,\n max_users: -1\n\npackages:\n \"@*/*\":\n # 可访问权限,web界面看不见,不登陆,也无法 install 包\n access: $authenticated # $all\n # 发布权限, $authenticated 表示只有通过验证的人\n publish: $authenticated\n # 可取消发布权限\n unpublish: $authenticated\n \"**\":\n access: $authenticated\n publish: $authenticated\n unpublish: $authenticated
\n\n默认的 addUser
策略是 Bcrypt
生成密码,随便找个网页生成个密码,使用账号:密码
添加到 htpasswd
文件中,例如
\ntest:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W
\n\n因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 npm
为例
\nnpm adduser --registry https://npm.mozzie.cn/\n# 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com\n# 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.
\n\n在系统的 cat ~/.npmrc
中会增加一行,就可以正常的进行以来的安装了
\n//npm.mozzie.cn/:_authToken=\"Do/wrh5QzsnYaNU4x3ZlVA==\"
\n\n项目 .npmrc Scope区分
需要指定 .npmrc
来区别 Scope
的安装地址,例如一个包名为 @mozzie/hook
,对应的私库为 https://npm.mozzie.cn/
\nregistry=http://registry.npm.taobao.org/\n@mozzie:registry=https://npm.mozzie.cn\n# npm拉包的校验\n//https://npm.mozzie.cn/:_authToken=xxxxxxxxxxxxx
"}],"PostAsset":[],"PostCategory":[{"post_id":"clny6fg2b0000gfz3d34t7rja","category_id":"clny6fg2f0002gfz3d48l6cbv","_id":"clny6fg2h0007gfz31qoa6pby"},{"post_id":"clny6fg2e0001gfz39x9t4bvw","category_id":"clny6fg2f0002gfz3d48l6cbv","_id":"clny6fg2i0009gfz37gzm8ca2"},{"post_id":"clny6fg2f0003gfz3c0g1f051","category_id":"clny6fg2f0002gfz3d48l6cbv","_id":"clny6fg2i000agfz3dqe7h04x"},{"post_id":"clny6fg2g0004gfz31uqx8ehf","category_id":"clny6fg2i0008gfz3ewdg27f9","_id":"clny6fg2i000bgfz3hwoag5xj"}],"PostTag":[],"Tag":[]}}
\ No newline at end of file
diff --git a/public/2023/10/20/Linear Sample/index.html b/public/2023/10/20/Linear Sample/index.html
index 2d7e55e5..ed011f6c 100644
--- a/public/2023/10/20/Linear Sample/index.html
+++ b/public/2023/10/20/Linear Sample/index.html
@@ -257,7 +257,7 @@
https://baidu.com
锚点链接
mailto:test.test@gmail.com
-GFM a-tail link @pandao 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com
+GFM a-tail link @pandao 邮箱地址自动链接 test.test@gmail.com www@vip.qq.com
@pandao
diff --git a/public/2023/10/20/Linear 入门/index.html b/public/2023/10/20/Linear 入门/index.html
index e93527ec..eb1c4ba6 100644
--- a/public/2023/10/20/Linear 入门/index.html
+++ b/public/2023/10/20/Linear 入门/index.html
@@ -220,7 +220,17 @@
- hexo配置
在 hexo
的 _config.yml
中调整
+ Hexo 安装主题
Hexo
主题的安装方式非常简单,只需将主题 Hexo-theme-linear
复制目录的 themes
目录下,然后在 Hexo
的 _config.yml
中修改下主题配置即可
+
+theme: Hexo-theme-linear
+
+获取 Linear
+- 进入 Linear 代码仓库,了解最新的主题开发进度
+- 在 发布页面 下载
hexo-theme-linear.zip
+- 解压至站点的
themes
目录下
+- 在 Hexo 的
_config.yml
中启用
+
+hexo配置
在 Hexo
的 _config.yml
中调整
基础配置
title: 17px blog
@@ -237,14 +247,15 @@
国际化切换
language: en
-文章语法高亮
-highlight:
+文章语法高亮
关闭hexo默认的highlight.js语法高亮
+highlight:
enable: false
line_number: true
auto_detect: false
tab_replace: ""
wrap: true
hljs: false
+
prismjs:
enable: true
preprocess: true
@@ -252,43 +263,13 @@
line_threshold: 0
tab_replace: ""
-algolia搜索
-algolia:
-
- appId: appId
-
- apiKey: apiKey
-
- adminApiKey: adminApiKey
-
- SearchOnlyAPIKey: SearchOnlyAPIKey
- chunkSize: 5000
-
- indexName: indexName
- fields:
- - content:strip
- - categories
- - date
- - permalink
- - slug
- - tags
- - title
-
-Linear主题配置
下面的配置基于 hexo-theme-linear
下的 _config.yml
+Linear主题配置
下面的配置基于 Hexo-theme-linear
下的 _config.yml
文章分类图标
按照顺序,依次设置 svg
图标,可以在 xicon 方面的获取丰富的图标
postCategoryIcons:
- <svg>...</svg>
- <svg>...</svg>
- <svg>...</svg>
-天气卡片
和风天气API - 注册
-weather:
- enable: true
-
- cityCode: cityCode
- appKey: appKey
-
-配置中的 cityCode
可以在 官方的地区列表仓库 中的 China-City-List-latest.csv
找到你所在城市的 cityCode
网站图标 favicon
- 支持
svg
- 支持
图片url
,如:/img/favicon.png
@@ -338,7 +319,70 @@ graph TD;
avatar: monsterid
cdn: //unpkg.com/valine@latest/dist/Valine.min.js
- serverURLs: //xxxxxxxx.api.lncldglobal.com
+ serverURLs: //xxxxxxxx.api.lncldglobal.com
+
+algolia搜索
博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 algolia
,免费账户 总共有 10,000
条记录,每月有 100,000
的操作数
+注册 & 获取 Key
+创建一个新的 Index
,例如 hex-blog
+
+复制并保存:
+
+
+
+- Application ID
+- Search-Only API Key
+- Admin API Key
+- Usage API Key
+
+API Keys
+
+- 替换配置
+
+在 Hexo
的 _config.yml
中加入
+algolia:
+
+ appId: Application ID
+
+ apiKey: Usage API Key
+
+ adminApiKey: Admin API Key
+
+ SearchOnlyAPIKey: Search-Only API Key
+ chunkSize: 5000
+
+ indexName: hex-blog
+ fields:
+ - content:strip
+ - categories
+ - date
+ - permalink
+ - slug
+ - tags
+ - title
+
+安装 hexo-algoliasearch
这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia
+
+如出遇到问题,可阅读 hexo-algoliasearch 仓库 最新说明
+
+安装命令:
+npm install hexo-algoliasearch --save
+
+使用 algolia
在每次博客发布之前,进行索引上传的操作,命令通常如下
+hexo clean
+hexo generate
+hexo algolia
+
+
+Linear 主要针对国内用户,在首页集成了和风天气的卡片,通过 和风天气开发服务 注册
+注册完成后,在配置中填入你的 appKey
和 cityCode(城市代码)
+weather:
+ enable: true
+
+ cityCode: cityCode
+ appKey: appKey
+
+其中 cityCode
可以在 官方的地区列表仓库 中的 China-City-List-latest.csv
找到你所在城市的 cityCode
+
@@ -387,7 +431,7 @@ graph TD;
Catalog
- - 1. hexo配置
- 1.1. 基础配置
- 1.2. 国际化切换
- 1.3. 文章语法高亮
- 1.4. algolia搜索
- 2. Linear主题配置
- 2.1. 文章分类图标
- 2.2. 天气卡片
- 2.3. 网站图标 favicon
- 2.4. ICP备案号
- 2.5. 首页底部文字
- 2.6. 文章版权申明
- 2.7. katex 数学公式
- 2.8. mermaid 流程图
- 2.9. valine 文章评论
+ - 1. Hexo 安装主题
- 1.1. 获取 Linear
- 2. hexo配置
- 2.1. 基础配置
- 2.2. 国际化切换
- 2.3. 文章语法高亮
- 3. Linear主题配置
- 3.1. 文章分类图标
- 3.2. 网站图标 favicon
- 3.3. ICP备案号
- 3.4. 首页底部文字
- 3.5. 文章版权申明
- 3.6. katex 数学公式
- 3.7. mermaid 流程图
- 3.8. valine 文章评论
- 4. algolia搜索
- 4.1. 注册 & 获取 Key
- 4.2. 安装 hexo-algoliasearch
- 4.3. 使用 algolia
- 5. 🇨🇳 和风天气 Widget
diff --git a/public/archives/2023/10/index.html b/public/archives/2023/10/index.html
index 50e40a00..bae2241d 100644
--- a/public/archives/2023/10/index.html
+++ b/public/archives/2023/10/index.html
@@ -254,12 +254,7 @@ Smart Test…
Linear 入门
- hexo配置在 hexo 的 _config.yml 中调整
-基础配置# 网页标题
-title: 17px blog
-# 侧边栏顶部显示
-subtitle: "Mozzie"
-# 用于SEO的html...
+ Hexo 安装主题Hexo 主题的安装方式非常简单,只需将主题 Hexo-theme-linear 复制目录的 themes 目录下,然后在 Hexo 的 _config.yml 中修改下主题配置即可...
diff --git a/public/archives/2023/index.html b/public/archives/2023/index.html
index 50e40a00..bae2241d 100644
--- a/public/archives/2023/index.html
+++ b/public/archives/2023/index.html
@@ -254,12 +254,7 @@ Smart Test…
Linear 入门
- hexo配置在 hexo 的 _config.yml 中调整
-基础配置# 网页标题
-title: 17px blog
-# 侧边栏顶部显示
-subtitle: "Mozzie"
-# 用于SEO的html...
+ Hexo 安装主题Hexo 主题的安装方式非常简单,只需将主题 Hexo-theme-linear 复制目录的 themes 目录下,然后在 Hexo 的 _config.yml 中修改下主题配置即可...
diff --git a/public/archives/index.html b/public/archives/index.html
index 50e40a00..bae2241d 100644
--- a/public/archives/index.html
+++ b/public/archives/index.html
@@ -254,12 +254,7 @@ Smart Test…
Linear 入门
- hexo配置在 hexo 的 _config.yml 中调整
-基础配置# 网页标题
-title: 17px blog
-# 侧边栏顶部显示
-subtitle: "Mozzie"
-# 用于SEO的html...
+ Hexo 安装主题Hexo 主题的安装方式非常简单,只需将主题 Hexo-theme-linear 复制目录的 themes 目录下,然后在 Hexo 的 _config.yml 中修改下主题配置即可...
diff --git a/public/img/algolia-api-keys.png b/public/img/algolia-api-keys.png
new file mode 100644
index 0000000000000000000000000000000000000000..b576e84a90b1e49fe28b9b4d912877a0f1b48629
GIT binary patch
literal 283350
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 |