From 5909ea8aa0ca93408e1af767f46c064a00d25360 Mon Sep 17 00:00:00 2001
From: mozzie
Date: Fri, 20 Oct 2023 16:48:53 +0800
Subject: [PATCH] doc: markdown sample
---
db.json | 2 +-
public/2023/10/20/Linear Sample/index.html | 56 +----------
public/archives/2023/10/index.html | 36 +++----
public/archives/2023/index.html | 36 +++----
public/archives/index.html | 36 +++----
source/_posts/Linear Sample.md | 106 +--------------------
6 files changed, 41 insertions(+), 231 deletions(-)
diff --git a/db.json b/db.json
index c3ce4993..496bf2d3 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/24d35213.css","path":"css/24d35213.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/7c527814.css","path":"css/7c527814.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/945.fdf98cb0.css","path":"css/945.fdf98cb0.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/ccbcde32.css","path":"css/ccbcde32.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/e01add4b.css","path":"css/e01add4b.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/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/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/favicon.svg","path":"img/favicon.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-moon.svg","path":"img/icon-moon.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-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/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/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/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/31d6cfe0.js","path":"js/31d6cfe0.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/ca6b30b5.js","path":"js/ca6b30b5.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/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/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/104.png","path":"img/qweather-color-icon/104.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/101.png","path":"img/qweather-color-icon/101.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/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/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/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/318.png","path":"img/qweather-color-icon/318.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/309.png","path":"img/qweather-color-icon/309.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/406.png","path":"img/qweather-color-icon/406.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/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/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/501.png","path":"img/qweather-color-icon/501.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/515.png","path":"img/qweather-color-icon/515.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/900.png","path":"img/qweather-color-icon/900.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":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","path":"img/qweather-color-icon/901.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":"f7f720fedd8e99108ee511fa292026333ae1f6fd","modified":1697790656377},{"_id":"source/_posts/Linear-Starter-Guide.md","hash":"80a1b157de6a444287d2b8aeb4dbb665568d1a41","modified":1697790522259},{"_id":"source/_posts/front-end/verdaccio.md","hash":"50453d3e60c7e63e31bc9f3efcebc241d317fae0","modified":1697768855158},{"_id":"source/_posts/Linear Sample.md","hash":"341f7098170301c3933ece408977d7dcca8942ca","modified":1697785604650},{"_id":"themes/hexo-theme-linear/source/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697785526869},{"_id":"themes/hexo-theme-linear/scripts/generate_excerpt.js","hash":"a7cfe46e7e389b1654c81f3e9a8a934dd80d735a","modified":1697785526829},{"_id":"themes/hexo-theme-linear/scripts/mermaid_tag.js","hash":"bc74c79cf41709da1993597acaebae96d6b3761d","modified":1697785526829},{"_id":"themes/hexo-theme-linear/scripts/postIcon.js","hash":"73362a6570b00613681425b59a30903be671cd91","modified":1697785526830},{"_id":"themes/hexo-theme-linear/scripts/post_counter.js","hash":"62aaa594dafcffe5aa457628eaf183075cabe159","modified":1697785526830},{"_id":"themes/hexo-theme-linear/scripts/sort_posts.js","hash":"5cedcd663fd7eb1b255360ea9eb6089fd55e959c","modified":1697785526830},{"_id":"themes/hexo-theme-linear/_config.yml","hash":"3b03792d72cfda4e250faba8dea790c7f7a63690","modified":1697768622100},{"_id":"themes/hexo-theme-linear/languages/ar.yml","hash":"de613e0512e106e67c39c5534ccfea29eb15f557","modified":1697785526814},{"_id":"themes/hexo-theme-linear/languages/de.yml","hash":"20ccde52ba59700211177dbc6a0658489d3fabda","modified":1697785526815},{"_id":"themes/hexo-theme-linear/languages/en.yml","hash":"5d97a1ba5a02e24443b37bc000567fdf17340bd2","modified":1697785526815},{"_id":"themes/hexo-theme-linear/languages/ko.yml","hash":"4cd415dee4bcdbdefd1b7df6caea76ccc258c49a","modified":1697785526817},{"_id":"themes/hexo-theme-linear/languages/es.yml","hash":"3e47b0f87a02d7f8ece63becb37fcfbb1ed32b16","modified":1697785526815},{"_id":"themes/hexo-theme-linear/languages/ja.yml","hash":"944eea06cacb1aeb58833eb273f32433d323768e","modified":1697785526816},{"_id":"themes/hexo-theme-linear/languages/zh-CN.yml","hash":"cf4c13270d7ac15baea1e774064f27bd2d2f8f32","modified":1697785526817},{"_id":"themes/hexo-theme-linear/languages/zh-TW.yml","hash":"ad746b7bd795e81ed8f34e7fe05faf7e1cd999d7","modified":1697785526818},{"_id":"themes/hexo-theme-linear/layout/airplane.ejs","hash":"28521fce0f5dbd1fd62c612ae68b78ba254faef3","modified":1697785526822},{"_id":"themes/hexo-theme-linear/layout/homebar.ejs","hash":"fdc00e93db6bfd508e3cd44aef084124a00b3424","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/archive.ejs","hash":"d63bc4ebac416b4f5b80fb673ec0a3f092a4e255","modified":1697785526823},{"_id":"themes/hexo-theme-linear/layout/navigation.ejs","hash":"b92b8cf5698a1b7631a2d463da6891b8ddc078ed","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/category.ejs","hash":"679f6aa009bc1f681fe9c2305c79f96e87e119ea","modified":1697785526823},{"_id":"themes/hexo-theme-linear/languages/ru.yml","hash":"974811181b770e78e4571dfa87aed51fd3863043","modified":1697785526817},{"_id":"themes/hexo-theme-linear/layout/layout.ejs","hash":"0733d5f564941dd109bd2eb72acfad95cf3c4f89","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/index.ejs","hash":"f9981d732327e420c7a727ee8cced34327d7fd31","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/post.ejs","hash":"f6ceb2462b3a87e56e206b78618e7e45a7f43fa0","modified":1697785526825},{"_id":"themes/hexo-theme-linear/layout/breadcrumb.ejs","hash":"81c91ad7b618a760b901741ff0d87333acddf60c","modified":1697785526823},{"_id":"themes/hexo-theme-linear/languages/fr.yml","hash":"125ed203d8ce117f61ab4e3e4ffca58cd7bb6c61","modified":1697785526816},{"_id":"themes/hexo-theme-linear/layout/postCopyright.ejs","hash":"83a579d0e8d7cf341ac8acc9a733d5046e224e32","modified":1697785526825},{"_id":"themes/hexo-theme-linear/layout/weather.ejs","hash":"04052e95f80ac11765b90019b149d7fb1bb68bab","modified":1697785526825},{"_id":"themes/hexo-theme-linear/source/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697785526838},{"_id":"themes/hexo-theme-linear/source/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697785526838},{"_id":"themes/hexo-theme-linear/layout/welcome.ejs","hash":"ce7419f61089411de4cea72165a4ce89c4d55fbd","modified":1697785526825},{"_id":"themes/hexo-theme-linear/source/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697785526838},{"_id":"themes/hexo-theme-linear/source/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697785526839},{"_id":"themes/hexo-theme-linear/source/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697785526839},{"_id":"themes/hexo-theme-linear/source/css/24d35213.css","hash":"dcbc4f079ce8c0bf62ba52169da336cc7960a707","modified":1697785526839},{"_id":"themes/hexo-theme-linear/source/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697785526843},{"_id":"themes/hexo-theme-linear/source/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697785526843},{"_id":"themes/hexo-theme-linear/source/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697785526843},{"_id":"themes/hexo-theme-linear/source/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697785526844},{"_id":"themes/hexo-theme-linear/source/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697785526844},{"_id":"themes/hexo-theme-linear/source/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697785526847},{"_id":"themes/hexo-theme-linear/source/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697785526847},{"_id":"themes/hexo-theme-linear/source/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697785526847},{"_id":"themes/hexo-theme-linear/source/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697785526867},{"_id":"themes/hexo-theme-linear/source/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697785526869},{"_id":"themes/hexo-theme-linear/source/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697785526869},{"_id":"themes/hexo-theme-linear/source/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697785526869},{"_id":"themes/hexo-theme-linear/source/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697785526871},{"_id":"themes/hexo-theme-linear/source/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697785526871},{"_id":"themes/hexo-theme-linear/source/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697785526871},{"_id":"themes/hexo-theme-linear/source/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697785526872},{"_id":"themes/hexo-theme-linear/source/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697785526872},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697785526848},{"_id":"themes/hexo-theme-linear/source/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697785526872},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697785526851},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697785526851},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697785526852},{"_id":"themes/hexo-theme-linear/layout/search.ejs","hash":"da088b901ea192cbd8c6fc451094bc93890ecc4d","modified":1697785526825},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697785526851},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697785526852},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697785526852},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697785526853},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697785526848},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697785526853},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697785526854},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697785526854},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697785526855},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697785526855},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697785526856},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697785526855},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697785526856},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697785526856},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697785526858},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697785526858},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697785526854},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697785526858},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697785526859},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697785526859},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697785526860},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697785526860},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697785526860},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697785526859},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697785526861},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697785526861},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697785526861},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697785526862},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697785526862},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697785526863},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697785526863},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697785526863},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697785526862},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697785526848},{"_id":"source/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697779286767},{"_id":"public/2023/10/20/Linear Sample/index.html","hash":"971b1c4fc80d8757661bc04588d8bbda648d1150","modified":1697791015313},{"_id":"public/2023/10/20/Linear-Starter-Guide/index.html","hash":"ce486fe52ded88bf320a54601987d32c41376e2e","modified":1697791015313},{"_id":"public/2023/10/20/front-end/verdaccio/index.html","hash":"28559fcbfa41aa1a91bef966521db4616832d5f7","modified":1697791015313},{"_id":"public/2023/10/20/Linear 入门/index.html","hash":"10bc27608a597c49b8d487917d9835fe310ef57e","modified":1697791015313},{"_id":"public/archives/index.html","hash":"521daa5322c876910656d316a38050eaa0ec9eb5","modified":1697791015313},{"_id":"public/index.html","hash":"c0ef2f7d1c7a949403dfbe0a51af1669d5a6b967","modified":1697791015313},{"_id":"public/archives/2023/10/index.html","hash":"521daa5322c876910656d316a38050eaa0ec9eb5","modified":1697791015313},{"_id":"public/archives/2023/index.html","hash":"521daa5322c876910656d316a38050eaa0ec9eb5","modified":1697791015313},{"_id":"public/categories/Hexo/index.html","hash":"59d15e3fac8e86414cee26d5e8894339b9769f77","modified":1697791015313},{"_id":"public/categories/Front-End/index.html","hash":"ece80df978779791a9ac242fedd716a0fe82a27c","modified":1697791015313},{"_id":"public/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697791015313},{"_id":"public/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697791015313},{"_id":"public/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697791015313},{"_id":"public/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697791015313},{"_id":"public/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697791015313},{"_id":"public/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697791015313},{"_id":"public/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697791015313},{"_id":"public/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697791015313},{"_id":"public/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697791015313},{"_id":"public/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697791015313},{"_id":"public/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697791015313},{"_id":"public/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697791015313},{"_id":"public/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697791015313},{"_id":"public/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697791015313},{"_id":"public/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697791015313},{"_id":"public/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697791015313},{"_id":"public/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697791015313},{"_id":"public/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697791015313},{"_id":"public/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697791015313},{"_id":"public/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697791015313},{"_id":"public/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697791015313},{"_id":"public/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697791015313},{"_id":"public/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697791015313},{"_id":"public/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697791015313},{"_id":"public/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697791015313},{"_id":"public/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697791015313},{"_id":"public/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697791015313},{"_id":"public/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697791015313},{"_id":"public/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697791015313},{"_id":"public/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697791015313},{"_id":"public/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697791015313},{"_id":"public/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697791015313},{"_id":"public/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697791015313},{"_id":"public/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697791015313},{"_id":"public/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697791015313},{"_id":"public/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697791015313},{"_id":"public/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697791015313},{"_id":"public/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697791015313},{"_id":"public/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697791015313},{"_id":"public/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697791015313},{"_id":"public/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697791015313},{"_id":"public/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697791015313},{"_id":"public/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697791015313},{"_id":"public/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697791015313},{"_id":"public/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697791015313},{"_id":"public/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697791015313},{"_id":"public/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697791015313},{"_id":"public/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697791015313},{"_id":"public/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697791015313},{"_id":"public/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697791015313},{"_id":"public/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697791015313},{"_id":"public/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697791015313},{"_id":"public/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697791015313},{"_id":"public/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697791015313},{"_id":"public/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697791015313},{"_id":"public/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697791015313},{"_id":"public/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697791015313},{"_id":"public/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697791015313},{"_id":"public/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697791015313},{"_id":"public/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697791015313},{"_id":"public/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697791015313},{"_id":"public/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697791015313},{"_id":"public/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697791015313},{"_id":"public/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697791015313},{"_id":"public/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697791015313},{"_id":"public/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697791015313},{"_id":"public/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697791015313},{"_id":"public/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697791015313},{"_id":"public/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697791015313},{"_id":"public/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697791015313},{"_id":"public/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697791015313},{"_id":"public/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697791015313},{"_id":"public/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697791015313},{"_id":"public/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697791015313},{"_id":"public/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697791015313},{"_id":"public/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697791015313},{"_id":"public/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697791015313},{"_id":"public/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697791015313},{"_id":"public/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697791015313},{"_id":"public/css/24d35213.css","hash":"dcbc4f079ce8c0bf62ba52169da336cc7960a707","modified":1697791015313},{"_id":"public/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697791015313},{"_id":"public/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697791015313},{"_id":"public/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697791015313},{"_id":"public/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697791015313},{"_id":"public/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697791015313},{"_id":"public/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697791015313},{"_id":"public/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697791015313},{"_id":"public/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697791015313},{"_id":"public/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697791015313},{"_id":"public/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697791015313},{"_id":"public/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697791015313},{"_id":"public/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697791015313},{"_id":"public/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697791015313},{"_id":"public/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697791015313},{"_id":"public/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697791015313},{"_id":"public/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697791015313},{"_id":"public/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697791015313},{"_id":"public/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697791015313},{"_id":"public/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697791015313},{"_id":"public/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697791015313},{"_id":"public/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697791015313},{"_id":"public/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697791015313},{"_id":"public/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697791015313},{"_id":"public/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697791015313},{"_id":"public/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697791015313},{"_id":"public/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697791015313},{"_id":"public/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697791015313},{"_id":"public/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697791015313},{"_id":"public/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697791015313},{"_id":"public/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697791015313},{"_id":"public/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697791015313},{"_id":"public/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697791015313},{"_id":"public/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697791015313},{"_id":"public/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697791015313},{"_id":"public/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697791015313},{"_id":"public/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697791015313},{"_id":"public/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697791015313},{"_id":"public/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697791015313},{"_id":"public/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697791015313}],"Category":[{"name":"Hexo","_id":"clnycxnoy000262z38qcx03kl"},{"name":"Front-End","_id":"clnycxnp1000a62z35ygm7mph"}],"Data":[],"Page":[],"Post":[{"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你可以在 `hexo-theme-linear/languages` 中找到不同的语言文件,如果想切换语言,在配置文件中,填入 `yml` 的文件名\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\n# 前置元数据\n\n在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 `Front Matter` 可能会是这样的:\n\n```markdown\n---\ntitle: 我的文章标题\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n## top\n\n实现文章置顶的功能,给定一个数值,可以进行排序,设定了 `top` 元数据的文章,会在分类列表中,使用 📌 标记\n\n例如有三篇文章:\n\n- 文章1\n\n```markdown\n---\ntitle: 文章1\ntop: 0\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章2\n\n```markdown\n---\ntitle: 文章2\ntop: 1\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章3\n\n```markdown\n---\ntitle: 文章3\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n那么在 `javascript` 分类下,排序的顺序依次为:`文章1 > 文章2 > 文章3`\n\n## status\n\n用于区分文章的状态,同时利用文章分类列表的`筛选`,进行快速筛选,Linear 主题内置了 4 种状态\n\n- done:完成\n- doing:进行中\n- todo:待办\n- other:废弃\n\n例如:\n\n```markdown\n---\ntitle: 文章1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\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你可以在 `hexo-theme-linear/languages` 中找到不同的语言文件,如果想切换语言,在配置文件中,填入 `yml` 的文件名\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\n# 前置元数据\n\n在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 `Front Matter` 可能会是这样的:\n\n```markdown\n---\ntitle: 我的文章标题\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n## top\n\n实现文章置顶的功能,给定一个数值,可以进行排序,设定了 `top` 元数据的文章,会在分类列表中,使用 📌 标记\n\n例如有三篇文章:\n\n- 文章1\n\n```markdown\n---\ntitle: 文章1\ntop: 0\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章2\n\n```markdown\n---\ntitle: 文章2\ntop: 1\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章3\n\n```markdown\n---\ntitle: 文章3\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n那么在 `javascript` 分类下,排序的顺序依次为:`文章1 > 文章2 > 文章3`\n\n## status\n\n用于区分文章的状态,同时利用文章分类列表的`筛选`,进行快速筛选,Linear 主题内置了 4 种状态\n\n- done:完成\n- doing:进行中\n- todo:待办\n- other:废弃\n\n例如:\n\n```markdown\n---\ntitle: 文章1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\n","slug":"Linear 入门","published":1,"date":"2023-10-20T05:54:35.768Z","updated":"2023-10-20T08:30:56.377Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clnycxnou000062z3c02d2bsi","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语言 你可以在 hexo-theme-linear/languages
中找到不同的语言文件,如果想切换语言,在配置文件中,填入 yml
的文件名
\nlanguage : 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\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage 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前置元数据 在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 Front Matter
可能会是这样的:
\n--- \ntitle : 我的文章标题\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\ntop 实现文章置顶的功能,给定一个数值,可以进行排序,设定了 top
元数据的文章,会在分类列表中,使用 📌 标记
\n例如有三篇文章:
\n\n--- \ntitle : 文章1\ntop : 0 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章2\ntop : 1 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章3\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n那么在 javascript
分类下,排序的顺序依次为:文章1 > 文章2 > 文章3
\nstatus 用于区分文章的状态,同时利用文章分类列表的筛选
,进行快速筛选,Linear 主题内置了 4 种状态
\n\ndone:完成 \ndoing:进行中 \ntodo:待办 \nother:废弃 \n \n例如:
\n--- \ntitle : 文章1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\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语言 你可以在 hexo-theme-linear/languages
中找到不同的语言文件,如果想切换语言,在配置文件中,填入 yml
的文件名
\nlanguage : 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\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage 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前置元数据 在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 Front Matter
可能会是这样的:
\n--- \ntitle : 我的文章标题\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\ntop 实现文章置顶的功能,给定一个数值,可以进行排序,设定了 top
元数据的文章,会在分类列表中,使用 📌 标记
\n例如有三篇文章:
\n\n--- \ntitle : 文章1\ntop : 0 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章2\ntop : 1 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章3\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n那么在 javascript
分类下,排序的顺序依次为:文章1 > 文章2 > 文章3
\nstatus 用于区分文章的状态,同时利用文章分类列表的筛选
,进行快速筛选,Linear 主题内置了 4 种状态
\n\ndone:完成 \ndoing:进行中 \ntodo:待办 \nother:废弃 \n \n例如:
\n--- \ntitle : 文章1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\n"},{"title":"Markdown Sample","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: Markdown Sample\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-20T07:06:44.650Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clnycxnox000162z36j63dc2c","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 Starter Guide","top":1,"status":"doing","_content":"\n[🇨🇳 中文文档](https://mozzie.cn/2023/10/20/Linear%20%E5%85%A5%E9%97%A8/)\n\n\n# Hexo Installation\n\nInstalling a `Hexo` theme is straightforward. Simply copy the `Hexo-theme-linear` directory to the `themes` directory, and then modify the theme configuration in `Hexo`'s `_config.yml`.\n\n\n```yml\n# Locate the theme setting\ntheme: hexo-theme-linear\n```\n\n## Acquiring Linear\n\n- Visit [Linear's code repository](https://github.com/17px/hexo-theme-linear/tree/main) to stay updated on the latest theme developments.\n- Download `hexo-theme-linear.zip` from the [releases page](https://github.com/17px/hexo-theme-linear/releases).\n- Extract it into your site's `themes` directory.\n- Enable it in Hexo's `_config.yml`.\n\n# Hexo Configuration\n\nAdjust settings in `Hexo`'s `_config.yml`.\n\n## Basic Configuration\n\n```yml\n# Website title\ntitle: 17px blog\n# Sidebar header\nsubtitle: \"Mozzie\"\n# HTML meta description for SEO\ndescription: \"\"\n# HTML meta keywords for SEO\nkeywords:\n# Copyright text displaying author's name\nauthor: Mozzie\n\n# Set your website URL here\nurl: https://mozzie.cn\n```\n\n## Language Switch\n\nYou can find different language files in `hex theme liner/languages`. If you want to switch languages, fill in the file name of `yml` in the `_config.yml` file\n\n```yml\nlanguage: en\n```\n\n## Code Highlighting\n\nDisable Hexo's default highlight.js syntax highlighting.\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 Theme Configuration\n\n💡 The following settings are based on the `_config.yml` under `hexo-theme-linear`.\n\n## Post Category Icons\n\nIn sequence, set the `svg` icons. You can get a wide variety of icons at [xicon](https://www.xicons.org/).\n\n```yml\npostCategoryIcons:\n - ... \n - ... \n - ... \n```\n\n## Website Favicon\n\n- Supports `svg`\n- Supports `image URL`, e.g., `/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP Number 🇨🇳\n\n😁 If not required, can be directly deleted.\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## Footer Text on Homepage 🇨🇳\n\n😁 If not required, can be directly deleted or set to `false`.\n\n```yml\nmotto: false\n```\n\n## Post Copyright Statement\n\nEnabled by default. When `enable: false`, it is disabled by default.\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 Mathematical Formulas\n\nYou can configure the CDN yourself.\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 Flowcharts\n\nTo draft flowchart syntax, use `{% mermaid %}` and `{% endmermaid %}` as wrappers.\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\nCorresponding configurations are as follows:\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 Comments\n\nFirst, register as a `LeanCloud` international user and create a database.\n\nPlease proceed in accordance with relevant regional regulations.\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 Search\n\nThe blog comes with built-in local search, based on frontend development, which may have some issues. It's recommended to switch to `Algolia`. The free account has a total of 10,000 records and 100,000 operations per month.\n\n## Register & Acquire Key\n\n1. Create a new `Index`, for example, `hex-blog`\n\n2. Copy and save:\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. Replace configurations\n\nAdd the following to Hexo's `_config.yml`\n\n```yml\nalgolia:\n # Replace\n appId: Application ID\n # Replace\n apiKey: Usage API Key\n # Do not disclose, used for reporting, replace\n adminApiKey: Admin API Key\n # Replace\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # Replace\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n## Install hexo-algoliasearch\n\nThis is a Hexo blog post index plugin that automates the submission of indexes to Algolia.\n\n> If you encounter any problems, you can read the [hexo-algoliasearch repository](https://www.npmjs.com/package/hexo-algoliasearch) for the latest instructions.\n\nInstallation command:\n\n```bash\nnpm install hexo-algoliasearch --save\n```\n\n## Using Algolia\n\nBefore publishing each blog post, carry out index uploading operations. The usual commands are as follows:\n\n```bash\nhexo clean\nhexo generate\nhexo algolia\n``` \n\n\n# QWeather Widget 🇨🇳\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via [QWeather Developer Service](https://dev.qweather.com/docs/start/).\n\nAfter registering, fill in your `appKey` and `cityCode` in the configuration.\n\n```yml\nweather:\n enable: true\n # Replace\n cityCode: cityCode\n appKey: appKey\n```\n\nYou can find your city's `cityCode` in the official region list repository's `China-City-List-latest.csv`.\n\n\n# Front Matter\n\nIn Hexo's Markdown files, a typical YAML-formatted `Front Matter` might look like this:\n\n\n```markdown\n---\ntitle: My Article Title\ncategories:\n- javascript\ntags: \n- Programming\n- JavaScript\n---\n```\n\n## top\n\nTo pin an article to the top, assign a numerical value to the `top` metadata. Articles with a specified `top` value will be marked with a 📌 icon in the category list.\n\nFor example, if there are three articles:\n\n- Article 1\n\n```markdown\n---\ntitle: Article 1\ntop: 0\ncategories:\n - javascript\n---\n```\n\n- Article 2\n\n```markdown\n---\ntitle: Article 2\ntop: 1\ncategories:\n - javascript\n---\n```\n\n- Article 3\n\n```markdown\n---\ntitle: Article 3\ncategories:\n - javascript\n---\n```\n\nThen, under the `javascript` category, the sort order will be: `Article 1 > Article 2 > Article 3`.\n\n## status\n\nThis is used to differentiate the status of articles and can be quickly `filtered` using the category list. The Linear theme comes with 4 built-in statuses:\n\n- done: Completed\n- doing: In Progress\n- todo: To Do\n- other: Abandoned\n\nFor example:\n\n```markdown\n---\ntitle: Article 1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\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\n# Hexo Installation\n\nInstalling a `Hexo` theme is straightforward. Simply copy the `Hexo-theme-linear` directory to the `themes` directory, and then modify the theme configuration in `Hexo`'s `_config.yml`.\n\n\n```yml\n# Locate the theme setting\ntheme: hexo-theme-linear\n```\n\n## Acquiring Linear\n\n- Visit [Linear's code repository](https://github.com/17px/hexo-theme-linear/tree/main) to stay updated on the latest theme developments.\n- Download `hexo-theme-linear.zip` from the [releases page](https://github.com/17px/hexo-theme-linear/releases).\n- Extract it into your site's `themes` directory.\n- Enable it in Hexo's `_config.yml`.\n\n# Hexo Configuration\n\nAdjust settings in `Hexo`'s `_config.yml`.\n\n## Basic Configuration\n\n```yml\n# Website title\ntitle: 17px blog\n# Sidebar header\nsubtitle: \"Mozzie\"\n# HTML meta description for SEO\ndescription: \"\"\n# HTML meta keywords for SEO\nkeywords:\n# Copyright text displaying author's name\nauthor: Mozzie\n\n# Set your website URL here\nurl: https://mozzie.cn\n```\n\n## Language Switch\n\nYou can find different language files in `hex theme liner/languages`. If you want to switch languages, fill in the file name of `yml` in the `_config.yml` file\n\n```yml\nlanguage: en\n```\n\n## Code Highlighting\n\nDisable Hexo's default highlight.js syntax highlighting.\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 Theme Configuration\n\n💡 The following settings are based on the `_config.yml` under `hexo-theme-linear`.\n\n## Post Category Icons\n\nIn sequence, set the `svg` icons. You can get a wide variety of icons at [xicon](https://www.xicons.org/).\n\n```yml\npostCategoryIcons:\n - ... \n - ... \n - ... \n```\n\n## Website Favicon\n\n- Supports `svg`\n- Supports `image URL`, e.g., `/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP Number 🇨🇳\n\n😁 If not required, can be directly deleted.\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## Footer Text on Homepage 🇨🇳\n\n😁 If not required, can be directly deleted or set to `false`.\n\n```yml\nmotto: false\n```\n\n## Post Copyright Statement\n\nEnabled by default. When `enable: false`, it is disabled by default.\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 Mathematical Formulas\n\nYou can configure the CDN yourself.\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 Flowcharts\n\nTo draft flowchart syntax, use `{% mermaid %}` and `{% endmermaid %}` as wrappers.\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\nCorresponding configurations are as follows:\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 Comments\n\nFirst, register as a `LeanCloud` international user and create a database.\n\nPlease proceed in accordance with relevant regional regulations.\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 Search\n\nThe blog comes with built-in local search, based on frontend development, which may have some issues. It's recommended to switch to `Algolia`. The free account has a total of 10,000 records and 100,000 operations per month.\n\n## Register & Acquire Key\n\n1. Create a new `Index`, for example, `hex-blog`\n\n2. Copy and save:\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. Replace configurations\n\nAdd the following to Hexo's `_config.yml`\n\n```yml\nalgolia:\n # Replace\n appId: Application ID\n # Replace\n apiKey: Usage API Key\n # Do not disclose, used for reporting, replace\n adminApiKey: Admin API Key\n # Replace\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # Replace\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n## Install hexo-algoliasearch\n\nThis is a Hexo blog post index plugin that automates the submission of indexes to Algolia.\n\n> If you encounter any problems, you can read the [hexo-algoliasearch repository](https://www.npmjs.com/package/hexo-algoliasearch) for the latest instructions.\n\nInstallation command:\n\n```bash\nnpm install hexo-algoliasearch --save\n```\n\n## Using Algolia\n\nBefore publishing each blog post, carry out index uploading operations. The usual commands are as follows:\n\n```bash\nhexo clean\nhexo generate\nhexo algolia\n``` \n\n\n# QWeather Widget 🇨🇳\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via [QWeather Developer Service](https://dev.qweather.com/docs/start/).\n\nAfter registering, fill in your `appKey` and `cityCode` in the configuration.\n\n```yml\nweather:\n enable: true\n # Replace\n cityCode: cityCode\n appKey: appKey\n```\n\nYou can find your city's `cityCode` in the official region list repository's `China-City-List-latest.csv`.\n\n\n# Front Matter\n\nIn Hexo's Markdown files, a typical YAML-formatted `Front Matter` might look like this:\n\n\n```markdown\n---\ntitle: My Article Title\ncategories:\n- javascript\ntags: \n- Programming\n- JavaScript\n---\n```\n\n## top\n\nTo pin an article to the top, assign a numerical value to the `top` metadata. Articles with a specified `top` value will be marked with a 📌 icon in the category list.\n\nFor example, if there are three articles:\n\n- Article 1\n\n```markdown\n---\ntitle: Article 1\ntop: 0\ncategories:\n - javascript\n---\n```\n\n- Article 2\n\n```markdown\n---\ntitle: Article 2\ntop: 1\ncategories:\n - javascript\n---\n```\n\n- Article 3\n\n```markdown\n---\ntitle: Article 3\ncategories:\n - javascript\n---\n```\n\nThen, under the `javascript` category, the sort order will be: `Article 1 > Article 2 > Article 3`.\n\n## status\n\nThis is used to differentiate the status of articles and can be quickly `filtered` using the category list. The Linear theme comes with 4 built-in statuses:\n\n- done: Completed\n- doing: In Progress\n- todo: To Do\n- other: Abandoned\n\nFor example:\n\n```markdown\n---\ntitle: Article 1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\n","slug":"Linear-Starter-Guide","published":1,"date":"2023-10-20T01:05:56.355Z","updated":"2023-10-20T08:28:42.259Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clnycxnoy000362z329tj7xrr","content":"🇨🇳 中文文档
\nHexo Installation Installing a Hexo
theme is straightforward. Simply copy the Hexo-theme-linear
directory to the themes
directory, and then modify the theme configuration in Hexo
‘s _config.yml
.
\n# Locate the theme setting \ntheme : hexo- theme- linear
\n\nAcquiring Linear \nVisit Linear’s code repository to stay updated on the latest theme developments. \nDownload hexo-theme-linear.zip
from the releases page . \nExtract it into your site’s themes
directory. \nEnable it in Hexo’s _config.yml
. \n \nHexo Configuration Adjust settings in Hexo
‘s _config.yml
.
\nBasic Configuration # Website title \ntitle : 17px blog\n# Sidebar header \nsubtitle : \"Mozzie\" \n# HTML meta description for SEO \ndescription : \"\" \n# HTML meta keywords for SEO \nkeywords : \n# Copyright text displaying author's name \nauthor : Mozzie\n\n# Set your website URL here \nurl : https: //mozzie.cn
\n\nLanguage Switch You can find different language files in hex theme liner/languages
. If you want to switch languages, fill in the file name of yml
in the _config.yml
file
\nlanguage : en
\n\nCode Highlighting Disable Hexo’s default highlight.js syntax highlighting.
\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 Theme Configuration 💡 The following settings are based on the _config.yml
under hexo-theme-linear
.
\nPost Category Icons In sequence, set the svg
icons. You can get a wide variety of icons at xicon .
\npostCategoryIcons : \n - <svg> ... </svg> \n - <svg> ... </svg> \n - <svg> ... </svg>
\n\nWebsite Favicon \nSupports svg
\nSupports image URL
, e.g., /img/favicon.png
\n \nfavicon : ''
\n\nICP Number 🇨🇳 😁 If not required, can be directly deleted.
\nicp : 苏ICP备xxxxxxx号- x
\n\n😁 If not required, can be directly deleted or set to false
.
\nmotto : false
\n\nPost Copyright Statement Enabled by default. When enable: false
, it is disabled by default.
\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\nYou can configure the CDN yourself.
\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 Flowcharts To draft flowchart syntax, use {% mermaid %}` and `{% endmermaid %}
as wrappers.
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\nCorresponding configurations are as follows:
\nmermaid : \n enable : true \n cdn : //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nFirst, register as a LeanCloud
international user and create a database.
\nPlease proceed in accordance with relevant regional regulations.
\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 Search The blog comes with built-in local search, based on frontend development, which may have some issues. It’s recommended to switch to Algolia
. The free account has a total of 10,000 records and 100,000 operations per month.
\nRegister & Acquire Key \nCreate a new Index
, for example, hex-blog
\n \nCopy and save:
\n \n \n\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage API Key \n \nAPI Keys
\n\nReplace configurations \n \nAdd the following to Hexo’s _config.yml
\nalgolia : \n # Replace \n appId : Application ID\n # Replace \n apiKey : Usage API Key\n # Do not disclose, used for reporting, replace \n adminApiKey : Admin API Key\n # Replace \n SearchOnlyAPIKey : Search- Only API Key\n chunkSize : 5000 \n # Replace \n indexName : hex- blog\n fields : \n - content: strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\nInstall hexo-algoliasearch This is a Hexo blog post index plugin that automates the submission of indexes to Algolia.
\n\nIf you encounter any problems, you can read the hexo-algoliasearch repository for the latest instructions.
\n \nInstallation command:
\nnpm install hexo-algoliasearch --save
\n\nUsing Algolia Before publishing each blog post, carry out index uploading operations. The usual commands are as follows:
\nhexo clean\nhexo generate\nhexo algolia
\n\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via QWeather Developer Service .
\nAfter registering, fill in your appKey
and cityCode
in the configuration.
\nweather : \n enable : true \n # Replace \n cityCode : cityCode\n appKey : appKey
\n\nYou can find your city’s cityCode
in the official region list repository’s China-City-List-latest.csv
.
\nFront Matter In Hexo’s Markdown files, a typical YAML-formatted Front Matter
might look like this:
\n--- \ntitle : My Article Title\ncategories : \n- javascript\ntags : \n- Programming\n- JavaScript \n---
\n\ntop To pin an article to the top, assign a numerical value to the top
metadata. Articles with a specified top
value will be marked with a 📌 icon in the category list.
\nFor example, if there are three articles:
\n\n--- \ntitle : Article 1\ntop : 0 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 2\ntop : 1 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 3\ncategories : \n - javascript \n---
\n\nThen, under the javascript
category, the sort order will be: Article 1 > Article 2 > Article 3
.
\nstatus This is used to differentiate the status of articles and can be quickly filtered
using the category list. The Linear theme comes with 4 built-in statuses:
\n\ndone: Completed \ndoing: In Progress \ntodo: To Do \nother: Abandoned \n \nFor example:
\n--- \ntitle : Article 1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\n","site":{"data":{}},"excerpt":"","more":"🇨🇳 中文文档
\nHexo Installation Installing a Hexo
theme is straightforward. Simply copy the Hexo-theme-linear
directory to the themes
directory, and then modify the theme configuration in Hexo
‘s _config.yml
.
\n# Locate the theme setting \ntheme : hexo- theme- linear
\n\nAcquiring Linear \nVisit Linear’s code repository to stay updated on the latest theme developments. \nDownload hexo-theme-linear.zip
from the releases page . \nExtract it into your site’s themes
directory. \nEnable it in Hexo’s _config.yml
. \n \nHexo Configuration Adjust settings in Hexo
‘s _config.yml
.
\nBasic Configuration # Website title \ntitle : 17px blog\n# Sidebar header \nsubtitle : \"Mozzie\" \n# HTML meta description for SEO \ndescription : \"\" \n# HTML meta keywords for SEO \nkeywords : \n# Copyright text displaying author's name \nauthor : Mozzie\n\n# Set your website URL here \nurl : https: //mozzie.cn
\n\nLanguage Switch You can find different language files in hex theme liner/languages
. If you want to switch languages, fill in the file name of yml
in the _config.yml
file
\nlanguage : en
\n\nCode Highlighting Disable Hexo’s default highlight.js syntax highlighting.
\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 Theme Configuration 💡 The following settings are based on the _config.yml
under hexo-theme-linear
.
\nPost Category Icons In sequence, set the svg
icons. You can get a wide variety of icons at xicon .
\npostCategoryIcons : \n - <svg> ... </svg> \n - <svg> ... </svg> \n - <svg> ... </svg>
\n\nWebsite Favicon \nSupports svg
\nSupports image URL
, e.g., /img/favicon.png
\n \nfavicon : ''
\n\nICP Number 🇨🇳 😁 If not required, can be directly deleted.
\nicp : 苏ICP备xxxxxxx号- x
\n\n😁 If not required, can be directly deleted or set to false
.
\nmotto : false
\n\nPost Copyright Statement Enabled by default. When enable: false
, it is disabled by default.
\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\nYou can configure the CDN yourself.
\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 Flowcharts To draft flowchart syntax, use {% mermaid %}` and `{% endmermaid %}
as wrappers.
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\nCorresponding configurations are as follows:
\nmermaid : \n enable : true \n cdn : //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nFirst, register as a LeanCloud
international user and create a database.
\nPlease proceed in accordance with relevant regional regulations.
\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 Search The blog comes with built-in local search, based on frontend development, which may have some issues. It’s recommended to switch to Algolia
. The free account has a total of 10,000 records and 100,000 operations per month.
\nRegister & Acquire Key \nCreate a new Index
, for example, hex-blog
\n \nCopy and save:
\n \n \n\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage API Key \n \nAPI Keys
\n\nReplace configurations \n \nAdd the following to Hexo’s _config.yml
\nalgolia : \n # Replace \n appId : Application ID\n # Replace \n apiKey : Usage API Key\n # Do not disclose, used for reporting, replace \n adminApiKey : Admin API Key\n # Replace \n SearchOnlyAPIKey : Search- Only API Key\n chunkSize : 5000 \n # Replace \n indexName : hex- blog\n fields : \n - content: strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\nInstall hexo-algoliasearch This is a Hexo blog post index plugin that automates the submission of indexes to Algolia.
\n\nIf you encounter any problems, you can read the hexo-algoliasearch repository for the latest instructions.
\n \nInstallation command:
\nnpm install hexo-algoliasearch --save
\n\nUsing Algolia Before publishing each blog post, carry out index uploading operations. The usual commands are as follows:
\nhexo clean\nhexo generate\nhexo algolia
\n\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via QWeather Developer Service .
\nAfter registering, fill in your appKey
and cityCode
in the configuration.
\nweather : \n enable : true \n # Replace \n cityCode : cityCode\n appKey : appKey
\n\nYou can find your city’s cityCode
in the official region list repository’s China-City-List-latest.csv
.
\nFront Matter In Hexo’s Markdown files, a typical YAML-formatted Front Matter
might look like this:
\n--- \ntitle : My Article Title\ncategories : \n- javascript\ntags : \n- Programming\n- JavaScript \n---
\n\ntop To pin an article to the top, assign a numerical value to the top
metadata. Articles with a specified top
value will be marked with a 📌 icon in the category list.
\nFor example, if there are three articles:
\n\n--- \ntitle : Article 1\ntop : 0 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 2\ntop : 1 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 3\ncategories : \n - javascript \n---
\n\nThen, under the javascript
category, the sort order will be: Article 1 > Article 2 > Article 3
.
\nstatus This is used to differentiate the status of articles and can be quickly filtered
using the category list. The Linear theme comes with 4 built-in statuses:
\n\ndone: Completed \ndoing: In Progress \ntodo: To Do \nother: Abandoned \n \nFor example:
\n--- \ntitle : Article 1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\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":"clnycxnp1000962z3174j9m6y","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":"clnycxnou000062z3c02d2bsi","category_id":"clnycxnoy000262z38qcx03kl","_id":"clnycxnp0000662z330jwdfqr"},{"post_id":"clnycxnox000162z36j63dc2c","category_id":"clnycxnoy000262z38qcx03kl","_id":"clnycxnp1000762z31lnf2iee"},{"post_id":"clnycxnoy000362z329tj7xrr","category_id":"clnycxnoy000262z38qcx03kl","_id":"clnycxnp1000862z3gtzcf8s5"},{"post_id":"clnycxnp1000962z3174j9m6y","category_id":"clnycxnp1000a62z35ygm7mph","_id":"clnycxnp1000b62z3g17lcrg1"}],"PostTag":[],"Tag":[]}}
\ No newline at end of file
+{"meta":{"version":1,"warehouse":"4.0.2"},"models":{"Asset":[{"_id":"source/img/algolia-api-keys.png","path":"img/algolia-api-keys.png","modified":1,"renderable":0},{"_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/24d35213.css","path":"css/24d35213.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/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/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/766.9503a62c.js","path":"js/766.9503a62c.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/85d1c72e.js","path":"js/85d1c72e.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/922.689e0633.js","path":"js/922.689e0633.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/101.png","path":"img/qweather-color-icon/101.png","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/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/104.png","path":"img/qweather-color-icon/104.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/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/317.png","path":"img/qweather-color-icon/317.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/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/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/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/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/515.png","path":"img/qweather-color-icon/515.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/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":"9b71f400d469731137dd7354779b4234830a85d5","modified":1697791710707},{"_id":"source/_posts/Linear-Starter-Guide.md","hash":"80a1b157de6a444287d2b8aeb4dbb665568d1a41","modified":1697790522259},{"_id":"source/_posts/Linear 入门.md","hash":"f7f720fedd8e99108ee511fa292026333ae1f6fd","modified":1697790656377},{"_id":"source/_posts/front-end/verdaccio.md","hash":"50453d3e60c7e63e31bc9f3efcebc241d317fae0","modified":1697768855158},{"_id":"themes/hexo-theme-linear/source/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697785526869},{"_id":"source/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697779286767},{"_id":"themes/hexo-theme-linear/languages/ar.yml","hash":"de613e0512e106e67c39c5534ccfea29eb15f557","modified":1697785526814},{"_id":"themes/hexo-theme-linear/languages/de.yml","hash":"20ccde52ba59700211177dbc6a0658489d3fabda","modified":1697785526815},{"_id":"themes/hexo-theme-linear/languages/es.yml","hash":"3e47b0f87a02d7f8ece63becb37fcfbb1ed32b16","modified":1697785526815},{"_id":"themes/hexo-theme-linear/_config.yml","hash":"3b03792d72cfda4e250faba8dea790c7f7a63690","modified":1697768622100},{"_id":"themes/hexo-theme-linear/languages/en.yml","hash":"5d97a1ba5a02e24443b37bc000567fdf17340bd2","modified":1697785526815},{"_id":"themes/hexo-theme-linear/languages/fr.yml","hash":"125ed203d8ce117f61ab4e3e4ffca58cd7bb6c61","modified":1697785526816},{"_id":"themes/hexo-theme-linear/languages/ko.yml","hash":"4cd415dee4bcdbdefd1b7df6caea76ccc258c49a","modified":1697785526817},{"_id":"themes/hexo-theme-linear/languages/ja.yml","hash":"944eea06cacb1aeb58833eb273f32433d323768e","modified":1697785526816},{"_id":"themes/hexo-theme-linear/languages/ru.yml","hash":"974811181b770e78e4571dfa87aed51fd3863043","modified":1697785526817},{"_id":"themes/hexo-theme-linear/languages/zh-CN.yml","hash":"cf4c13270d7ac15baea1e774064f27bd2d2f8f32","modified":1697785526817},{"_id":"themes/hexo-theme-linear/languages/zh-TW.yml","hash":"ad746b7bd795e81ed8f34e7fe05faf7e1cd999d7","modified":1697785526818},{"_id":"themes/hexo-theme-linear/scripts/postIcon.js","hash":"73362a6570b00613681425b59a30903be671cd91","modified":1697785526830},{"_id":"themes/hexo-theme-linear/scripts/mermaid_tag.js","hash":"bc74c79cf41709da1993597acaebae96d6b3761d","modified":1697785526829},{"_id":"themes/hexo-theme-linear/scripts/generate_excerpt.js","hash":"a7cfe46e7e389b1654c81f3e9a8a934dd80d735a","modified":1697785526829},{"_id":"themes/hexo-theme-linear/scripts/post_counter.js","hash":"62aaa594dafcffe5aa457628eaf183075cabe159","modified":1697785526830},{"_id":"themes/hexo-theme-linear/scripts/sort_posts.js","hash":"5cedcd663fd7eb1b255360ea9eb6089fd55e959c","modified":1697785526830},{"_id":"themes/hexo-theme-linear/layout/airplane.ejs","hash":"28521fce0f5dbd1fd62c612ae68b78ba254faef3","modified":1697785526822},{"_id":"themes/hexo-theme-linear/layout/archive.ejs","hash":"d63bc4ebac416b4f5b80fb673ec0a3f092a4e255","modified":1697785526823},{"_id":"themes/hexo-theme-linear/layout/breadcrumb.ejs","hash":"81c91ad7b618a760b901741ff0d87333acddf60c","modified":1697785526823},{"_id":"themes/hexo-theme-linear/layout/category.ejs","hash":"679f6aa009bc1f681fe9c2305c79f96e87e119ea","modified":1697785526823},{"_id":"themes/hexo-theme-linear/layout/homebar.ejs","hash":"fdc00e93db6bfd508e3cd44aef084124a00b3424","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/layout.ejs","hash":"0733d5f564941dd109bd2eb72acfad95cf3c4f89","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/index.ejs","hash":"f9981d732327e420c7a727ee8cced34327d7fd31","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/navigation.ejs","hash":"b92b8cf5698a1b7631a2d463da6891b8ddc078ed","modified":1697785526824},{"_id":"themes/hexo-theme-linear/layout/postCopyright.ejs","hash":"83a579d0e8d7cf341ac8acc9a733d5046e224e32","modified":1697785526825},{"_id":"themes/hexo-theme-linear/layout/search.ejs","hash":"da088b901ea192cbd8c6fc451094bc93890ecc4d","modified":1697785526825},{"_id":"themes/hexo-theme-linear/layout/weather.ejs","hash":"04052e95f80ac11765b90019b149d7fb1bb68bab","modified":1697785526825},{"_id":"themes/hexo-theme-linear/layout/welcome.ejs","hash":"ce7419f61089411de4cea72165a4ce89c4d55fbd","modified":1697785526825},{"_id":"themes/hexo-theme-linear/source/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697785526838},{"_id":"themes/hexo-theme-linear/source/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697785526838},{"_id":"themes/hexo-theme-linear/source/css/24d35213.css","hash":"dcbc4f079ce8c0bf62ba52169da336cc7960a707","modified":1697785526839},{"_id":"themes/hexo-theme-linear/source/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697785526838},{"_id":"themes/hexo-theme-linear/source/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697785526839},{"_id":"themes/hexo-theme-linear/source/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697785526839},{"_id":"themes/hexo-theme-linear/source/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697785526841},{"_id":"themes/hexo-theme-linear/layout/post.ejs","hash":"f6ceb2462b3a87e56e206b78618e7e45a7f43fa0","modified":1697785526825},{"_id":"themes/hexo-theme-linear/source/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697785526840},{"_id":"themes/hexo-theme-linear/source/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697785526841},{"_id":"themes/hexo-theme-linear/source/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697785526842},{"_id":"themes/hexo-theme-linear/source/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697785526843},{"_id":"themes/hexo-theme-linear/source/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697785526844},{"_id":"themes/hexo-theme-linear/source/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697785526844},{"_id":"themes/hexo-theme-linear/source/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697785526845},{"_id":"themes/hexo-theme-linear/source/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697785526843},{"_id":"themes/hexo-theme-linear/source/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697785526843},{"_id":"themes/hexo-theme-linear/source/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697785526846},{"_id":"themes/hexo-theme-linear/source/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697785526847},{"_id":"themes/hexo-theme-linear/source/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697785526847},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697785526867},{"_id":"themes/hexo-theme-linear/source/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697785526847},{"_id":"themes/hexo-theme-linear/source/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697785526868},{"_id":"themes/hexo-theme-linear/source/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697785526869},{"_id":"themes/hexo-theme-linear/source/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697785526869},{"_id":"themes/hexo-theme-linear/source/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697785526869},{"_id":"themes/hexo-theme-linear/source/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697785526871},{"_id":"themes/hexo-theme-linear/source/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697785526870},{"_id":"themes/hexo-theme-linear/source/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697785526871},{"_id":"themes/hexo-theme-linear/source/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697785526872},{"_id":"themes/hexo-theme-linear/source/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697785526872},{"_id":"themes/hexo-theme-linear/source/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697785526871},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697785526848},{"_id":"themes/hexo-theme-linear/source/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697785526872},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697785526848},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697785526849},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697785526850},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697785526851},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697785526851},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697785526852},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697785526852},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697785526853},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697785526852},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697785526851},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697785526853},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697785526854},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697785526854},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697785526855},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697785526854},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697785526856},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697785526855},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697785526855},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697785526856},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697785526856},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697785526858},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697785526859},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697785526857},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697785526858},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697785526859},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697785526859},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697785526858},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697785526860},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697785526860},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697785526860},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697785526861},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697785526861},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697785526861},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697785526863},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697785526862},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697785526862},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697785526863},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697785526862},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697785526863},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697785526865},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697785526864},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697785526866},{"_id":"themes/hexo-theme-linear/source/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697785526848},{"_id":"public/categories/Hexo/index.html","hash":"59d15e3fac8e86414cee26d5e8894339b9769f77","modified":1697791719078},{"_id":"public/categories/Front-End/index.html","hash":"ece80df978779791a9ac242fedd716a0fe82a27c","modified":1697791719078},{"_id":"public/2023/10/20/Linear 入门/index.html","hash":"10bc27608a597c49b8d487917d9835fe310ef57e","modified":1697791719078},{"_id":"public/2023/10/20/Linear Sample/index.html","hash":"bb84673cf583dbb294b3310bcab39697a6403e8a","modified":1697791719078},{"_id":"public/2023/10/20/front-end/verdaccio/index.html","hash":"28559fcbfa41aa1a91bef966521db4616832d5f7","modified":1697791719078},{"_id":"public/2023/10/20/Linear-Starter-Guide/index.html","hash":"ce486fe52ded88bf320a54601987d32c41376e2e","modified":1697791719078},{"_id":"public/archives/index.html","hash":"ed3b301860c4e5c1f65ac252956b7e40e57036e9","modified":1697791719078},{"_id":"public/archives/2023/index.html","hash":"ed3b301860c4e5c1f65ac252956b7e40e57036e9","modified":1697791719078},{"_id":"public/archives/2023/10/index.html","hash":"ed3b301860c4e5c1f65ac252956b7e40e57036e9","modified":1697791719078},{"_id":"public/index.html","hash":"c0ef2f7d1c7a949403dfbe0a51af1669d5a6b967","modified":1697791719078},{"_id":"public/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1697791719078},{"_id":"public/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1697791719078},{"_id":"public/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1697791719078},{"_id":"public/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1697791719078},{"_id":"public/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1697791719078},{"_id":"public/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1697791719078},{"_id":"public/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1697791719078},{"_id":"public/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1697791719078},{"_id":"public/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1697791719078},{"_id":"public/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1697791719078},{"_id":"public/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1697791719078},{"_id":"public/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1697791719078},{"_id":"public/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1697791719078},{"_id":"public/js/07f44e09.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1697791719078},{"_id":"public/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1697791719078},{"_id":"public/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1697791719078},{"_id":"public/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1697791719078},{"_id":"public/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1697791719078},{"_id":"public/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1697791719078},{"_id":"public/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1697791719078},{"_id":"public/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1697791719078},{"_id":"public/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1697791719078},{"_id":"public/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1697791719078},{"_id":"public/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1697791719078},{"_id":"public/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1697791719078},{"_id":"public/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1697791719078},{"_id":"public/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1697791719078},{"_id":"public/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1697791719078},{"_id":"public/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1697791719078},{"_id":"public/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1697791719078},{"_id":"public/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1697791719078},{"_id":"public/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1697791719078},{"_id":"public/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1697791719078},{"_id":"public/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1697791719078},{"_id":"public/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1697791719078},{"_id":"public/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1697791719078},{"_id":"public/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1697791719078},{"_id":"public/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1697791719078},{"_id":"public/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1697791719078},{"_id":"public/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1697791719078},{"_id":"public/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1697791719078},{"_id":"public/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1697791719078},{"_id":"public/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1697791719078},{"_id":"public/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1697791719078},{"_id":"public/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1697791719078},{"_id":"public/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1697791719078},{"_id":"public/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1697791719078},{"_id":"public/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1697791719078},{"_id":"public/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1697791719078},{"_id":"public/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1697791719078},{"_id":"public/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1697791719078},{"_id":"public/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1697791719078},{"_id":"public/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1697791719078},{"_id":"public/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1697791719078},{"_id":"public/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1697791719078},{"_id":"public/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1697791719078},{"_id":"public/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1697791719078},{"_id":"public/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1697791719078},{"_id":"public/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697791719078},{"_id":"public/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1697791719078},{"_id":"public/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1697791719078},{"_id":"public/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1697791719078},{"_id":"public/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1697791719078},{"_id":"public/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1697791719078},{"_id":"public/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1697791719078},{"_id":"public/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1697791719078},{"_id":"public/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1697791719078},{"_id":"public/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1697791719078},{"_id":"public/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1697791719078},{"_id":"public/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697791719078},{"_id":"public/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1697791719078},{"_id":"public/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1697791719078},{"_id":"public/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1697791719078},{"_id":"public/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1697791719078},{"_id":"public/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1697791719078},{"_id":"public/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1697791719078},{"_id":"public/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1697791719078},{"_id":"public/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1697791719078},{"_id":"public/css/24d35213.css","hash":"dcbc4f079ce8c0bf62ba52169da336cc7960a707","modified":1697791719078},{"_id":"public/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1697791719078},{"_id":"public/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1697791719078},{"_id":"public/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1697791719078},{"_id":"public/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1697791719078},{"_id":"public/css/2f1ea598.css","hash":"ac520cdae0399c2b818dcac34c5ff58fd204d10f","modified":1697791719078},{"_id":"public/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1697791719078},{"_id":"public/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1697791719078},{"_id":"public/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1697791719078},{"_id":"public/css/4c3d0e88.css","hash":"c4a5bf3a1f7adf21c04d9950b02a67f516bbac9f","modified":1697791719078},{"_id":"public/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1697791719078},{"_id":"public/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1697791719078},{"_id":"public/css/7c527814.css","hash":"7061b6b9c6fe1da1956a664b3ee7862ef257c716","modified":1697791719078},{"_id":"public/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1697791719078},{"_id":"public/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1697791719078},{"_id":"public/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1697791719078},{"_id":"public/css/aeb44e7a.css","hash":"95b181f50e6adb98be13bb60983edb155a83f6d7","modified":1697791719078},{"_id":"public/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1697791719078},{"_id":"public/css/e01add4b.css","hash":"5fc672a8fb8b65d60c087cc908d5170eaac56e0c","modified":1697791719078},{"_id":"public/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1697791719078},{"_id":"public/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1697791719078},{"_id":"public/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1697791719078},{"_id":"public/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1697791719078},{"_id":"public/js/1247bc3e.js","hash":"1d0335fdedecd72daa5eb2288a8891ab2e83e55d","modified":1697791719078},{"_id":"public/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1697791719078},{"_id":"public/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1697791719078},{"_id":"public/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1697791719078},{"_id":"public/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1697791719078},{"_id":"public/js/430dbbd6.js","hash":"ff77ecc0d3b8bee105dabbaccefdb83b07a09e47","modified":1697791719078},{"_id":"public/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1697791719078},{"_id":"public/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1697791719078},{"_id":"public/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1697791719078},{"_id":"public/js/85d1c72e.js","hash":"8ec5c0c8f9dff40d1fc2d16de3baa51442e12be2","modified":1697791719078},{"_id":"public/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1697791719078},{"_id":"public/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1697791719078},{"_id":"public/js/96ea39da.js","hash":"a6c6a3f3afb38e8326846eb8eac1bbadd48ac6d3","modified":1697791719078},{"_id":"public/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1697791719078},{"_id":"public/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1697791719078},{"_id":"public/js/07f44e09.js","hash":"e8a21a4252ad34adc1a54066eab32a26a7313940","modified":1697791719078},{"_id":"public/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1697791719078},{"_id":"public/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697791719078}],"Category":[{"name":"Hexo","_id":"clnydcqpj0002jaz31m2idksh"},{"name":"Front-End","_id":"clnydcqpj0003jaz37km36zim"}],"Data":[],"Page":[],"Post":[{"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你可以在 `hexo-theme-linear/languages` 中找到不同的语言文件,如果想切换语言,在配置文件中,填入 `yml` 的文件名\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\n# 前置元数据\n\n在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 `Front Matter` 可能会是这样的:\n\n```markdown\n---\ntitle: 我的文章标题\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n## top\n\n实现文章置顶的功能,给定一个数值,可以进行排序,设定了 `top` 元数据的文章,会在分类列表中,使用 📌 标记\n\n例如有三篇文章:\n\n- 文章1\n\n```markdown\n---\ntitle: 文章1\ntop: 0\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章2\n\n```markdown\n---\ntitle: 文章2\ntop: 1\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章3\n\n```markdown\n---\ntitle: 文章3\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n那么在 `javascript` 分类下,排序的顺序依次为:`文章1 > 文章2 > 文章3`\n\n## status\n\n用于区分文章的状态,同时利用文章分类列表的`筛选`,进行快速筛选,Linear 主题内置了 4 种状态\n\n- done:完成\n- doing:进行中\n- todo:待办\n- other:废弃\n\n例如:\n\n```markdown\n---\ntitle: 文章1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\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你可以在 `hexo-theme-linear/languages` 中找到不同的语言文件,如果想切换语言,在配置文件中,填入 `yml` 的文件名\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\n# 前置元数据\n\n在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 `Front Matter` 可能会是这样的:\n\n```markdown\n---\ntitle: 我的文章标题\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n## top\n\n实现文章置顶的功能,给定一个数值,可以进行排序,设定了 `top` 元数据的文章,会在分类列表中,使用 📌 标记\n\n例如有三篇文章:\n\n- 文章1\n\n```markdown\n---\ntitle: 文章1\ntop: 0\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章2\n\n```markdown\n---\ntitle: 文章2\ntop: 1\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n- 文章3\n\n```markdown\n---\ntitle: 文章3\ncategories:\n- javascript\ntags: \n- 编程\n- JavaScript\n---\n```\n\n那么在 `javascript` 分类下,排序的顺序依次为:`文章1 > 文章2 > 文章3`\n\n## status\n\n用于区分文章的状态,同时利用文章分类列表的`筛选`,进行快速筛选,Linear 主题内置了 4 种状态\n\n- done:完成\n- doing:进行中\n- todo:待办\n- other:废弃\n\n例如:\n\n```markdown\n---\ntitle: 文章1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\n","slug":"Linear 入门","published":1,"date":"2023-10-20T05:54:35.768Z","updated":"2023-10-20T08:30:56.377Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clnydcqpf0000jaz388sj8el6","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语言 你可以在 hexo-theme-linear/languages
中找到不同的语言文件,如果想切换语言,在配置文件中,填入 yml
的文件名
\nlanguage : 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\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage 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前置元数据 在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 Front Matter
可能会是这样的:
\n--- \ntitle : 我的文章标题\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\ntop 实现文章置顶的功能,给定一个数值,可以进行排序,设定了 top
元数据的文章,会在分类列表中,使用 📌 标记
\n例如有三篇文章:
\n\n--- \ntitle : 文章1\ntop : 0 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章2\ntop : 1 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章3\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n那么在 javascript
分类下,排序的顺序依次为:文章1 > 文章2 > 文章3
\nstatus 用于区分文章的状态,同时利用文章分类列表的筛选
,进行快速筛选,Linear 主题内置了 4 种状态
\n\ndone:完成 \ndoing:进行中 \ntodo:待办 \nother:废弃 \n \n例如:
\n--- \ntitle : 文章1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\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语言 你可以在 hexo-theme-linear/languages
中找到不同的语言文件,如果想切换语言,在配置文件中,填入 yml
的文件名
\nlanguage : 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\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage 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前置元数据 在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 Front Matter
可能会是这样的:
\n--- \ntitle : 我的文章标题\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\ntop 实现文章置顶的功能,给定一个数值,可以进行排序,设定了 top
元数据的文章,会在分类列表中,使用 📌 标记
\n例如有三篇文章:
\n\n--- \ntitle : 文章1\ntop : 0 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章2\ntop : 1 \ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n\n--- \ntitle : 文章3\ncategories : \n- javascript\ntags : \n- 编程\n- JavaScript \n---
\n\n那么在 javascript
分类下,排序的顺序依次为:文章1 > 文章2 > 文章3
\nstatus 用于区分文章的状态,同时利用文章分类列表的筛选
,进行快速筛选,Linear 主题内置了 4 种状态
\n\ndone:完成 \ndoing:进行中 \ntodo:待办 \nother:废弃 \n \n例如:
\n--- \ntitle : 文章1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\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":"clnydcqpi0001jaz30u130buc","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
"},{"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\n# Hexo Installation\n\nInstalling a `Hexo` theme is straightforward. Simply copy the `Hexo-theme-linear` directory to the `themes` directory, and then modify the theme configuration in `Hexo`'s `_config.yml`.\n\n\n```yml\n# Locate the theme setting\ntheme: hexo-theme-linear\n```\n\n## Acquiring Linear\n\n- Visit [Linear's code repository](https://github.com/17px/hexo-theme-linear/tree/main) to stay updated on the latest theme developments.\n- Download `hexo-theme-linear.zip` from the [releases page](https://github.com/17px/hexo-theme-linear/releases).\n- Extract it into your site's `themes` directory.\n- Enable it in Hexo's `_config.yml`.\n\n# Hexo Configuration\n\nAdjust settings in `Hexo`'s `_config.yml`.\n\n## Basic Configuration\n\n```yml\n# Website title\ntitle: 17px blog\n# Sidebar header\nsubtitle: \"Mozzie\"\n# HTML meta description for SEO\ndescription: \"\"\n# HTML meta keywords for SEO\nkeywords:\n# Copyright text displaying author's name\nauthor: Mozzie\n\n# Set your website URL here\nurl: https://mozzie.cn\n```\n\n## Language Switch\n\nYou can find different language files in `hex theme liner/languages`. If you want to switch languages, fill in the file name of `yml` in the `_config.yml` file\n\n```yml\nlanguage: en\n```\n\n## Code Highlighting\n\nDisable Hexo's default highlight.js syntax highlighting.\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 Theme Configuration\n\n💡 The following settings are based on the `_config.yml` under `hexo-theme-linear`.\n\n## Post Category Icons\n\nIn sequence, set the `svg` icons. You can get a wide variety of icons at [xicon](https://www.xicons.org/).\n\n```yml\npostCategoryIcons:\n - ... \n - ... \n - ... \n```\n\n## Website Favicon\n\n- Supports `svg`\n- Supports `image URL`, e.g., `/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP Number 🇨🇳\n\n😁 If not required, can be directly deleted.\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## Footer Text on Homepage 🇨🇳\n\n😁 If not required, can be directly deleted or set to `false`.\n\n```yml\nmotto: false\n```\n\n## Post Copyright Statement\n\nEnabled by default. When `enable: false`, it is disabled by default.\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 Mathematical Formulas\n\nYou can configure the CDN yourself.\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 Flowcharts\n\nTo draft flowchart syntax, use `{% mermaid %}` and `{% endmermaid %}` as wrappers.\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\nCorresponding configurations are as follows:\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 Comments\n\nFirst, register as a `LeanCloud` international user and create a database.\n\nPlease proceed in accordance with relevant regional regulations.\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 Search\n\nThe blog comes with built-in local search, based on frontend development, which may have some issues. It's recommended to switch to `Algolia`. The free account has a total of 10,000 records and 100,000 operations per month.\n\n## Register & Acquire Key\n\n1. Create a new `Index`, for example, `hex-blog`\n\n2. Copy and save:\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. Replace configurations\n\nAdd the following to Hexo's `_config.yml`\n\n```yml\nalgolia:\n # Replace\n appId: Application ID\n # Replace\n apiKey: Usage API Key\n # Do not disclose, used for reporting, replace\n adminApiKey: Admin API Key\n # Replace\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # Replace\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n## Install hexo-algoliasearch\n\nThis is a Hexo blog post index plugin that automates the submission of indexes to Algolia.\n\n> If you encounter any problems, you can read the [hexo-algoliasearch repository](https://www.npmjs.com/package/hexo-algoliasearch) for the latest instructions.\n\nInstallation command:\n\n```bash\nnpm install hexo-algoliasearch --save\n```\n\n## Using Algolia\n\nBefore publishing each blog post, carry out index uploading operations. The usual commands are as follows:\n\n```bash\nhexo clean\nhexo generate\nhexo algolia\n``` \n\n\n# QWeather Widget 🇨🇳\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via [QWeather Developer Service](https://dev.qweather.com/docs/start/).\n\nAfter registering, fill in your `appKey` and `cityCode` in the configuration.\n\n```yml\nweather:\n enable: true\n # Replace\n cityCode: cityCode\n appKey: appKey\n```\n\nYou can find your city's `cityCode` in the official region list repository's `China-City-List-latest.csv`.\n\n\n# Front Matter\n\nIn Hexo's Markdown files, a typical YAML-formatted `Front Matter` might look like this:\n\n\n```markdown\n---\ntitle: My Article Title\ncategories:\n- javascript\ntags: \n- Programming\n- JavaScript\n---\n```\n\n## top\n\nTo pin an article to the top, assign a numerical value to the `top` metadata. Articles with a specified `top` value will be marked with a 📌 icon in the category list.\n\nFor example, if there are three articles:\n\n- Article 1\n\n```markdown\n---\ntitle: Article 1\ntop: 0\ncategories:\n - javascript\n---\n```\n\n- Article 2\n\n```markdown\n---\ntitle: Article 2\ntop: 1\ncategories:\n - javascript\n---\n```\n\n- Article 3\n\n```markdown\n---\ntitle: Article 3\ncategories:\n - javascript\n---\n```\n\nThen, under the `javascript` category, the sort order will be: `Article 1 > Article 2 > Article 3`.\n\n## status\n\nThis is used to differentiate the status of articles and can be quickly `filtered` using the category list. The Linear theme comes with 4 built-in statuses:\n\n- done: Completed\n- doing: In Progress\n- todo: To Do\n- other: Abandoned\n\nFor example:\n\n```markdown\n---\ntitle: Article 1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\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\n# Hexo Installation\n\nInstalling a `Hexo` theme is straightforward. Simply copy the `Hexo-theme-linear` directory to the `themes` directory, and then modify the theme configuration in `Hexo`'s `_config.yml`.\n\n\n```yml\n# Locate the theme setting\ntheme: hexo-theme-linear\n```\n\n## Acquiring Linear\n\n- Visit [Linear's code repository](https://github.com/17px/hexo-theme-linear/tree/main) to stay updated on the latest theme developments.\n- Download `hexo-theme-linear.zip` from the [releases page](https://github.com/17px/hexo-theme-linear/releases).\n- Extract it into your site's `themes` directory.\n- Enable it in Hexo's `_config.yml`.\n\n# Hexo Configuration\n\nAdjust settings in `Hexo`'s `_config.yml`.\n\n## Basic Configuration\n\n```yml\n# Website title\ntitle: 17px blog\n# Sidebar header\nsubtitle: \"Mozzie\"\n# HTML meta description for SEO\ndescription: \"\"\n# HTML meta keywords for SEO\nkeywords:\n# Copyright text displaying author's name\nauthor: Mozzie\n\n# Set your website URL here\nurl: https://mozzie.cn\n```\n\n## Language Switch\n\nYou can find different language files in `hex theme liner/languages`. If you want to switch languages, fill in the file name of `yml` in the `_config.yml` file\n\n```yml\nlanguage: en\n```\n\n## Code Highlighting\n\nDisable Hexo's default highlight.js syntax highlighting.\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 Theme Configuration\n\n💡 The following settings are based on the `_config.yml` under `hexo-theme-linear`.\n\n## Post Category Icons\n\nIn sequence, set the `svg` icons. You can get a wide variety of icons at [xicon](https://www.xicons.org/).\n\n```yml\npostCategoryIcons:\n - ... \n - ... \n - ... \n```\n\n## Website Favicon\n\n- Supports `svg`\n- Supports `image URL`, e.g., `/img/favicon.png`\n\n```yml\nfavicon: ''\n```\n\n## ICP Number 🇨🇳\n\n😁 If not required, can be directly deleted.\n\n```yml\nicp: 苏ICP备xxxxxxx号-x\n```\n\n## Footer Text on Homepage 🇨🇳\n\n😁 If not required, can be directly deleted or set to `false`.\n\n```yml\nmotto: false\n```\n\n## Post Copyright Statement\n\nEnabled by default. When `enable: false`, it is disabled by default.\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 Mathematical Formulas\n\nYou can configure the CDN yourself.\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 Flowcharts\n\nTo draft flowchart syntax, use `{% mermaid %}` and `{% endmermaid %}` as wrappers.\n\n```markdown\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}\n```\n\nCorresponding configurations are as follows:\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 Comments\n\nFirst, register as a `LeanCloud` international user and create a database.\n\nPlease proceed in accordance with relevant regional regulations.\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 Search\n\nThe blog comes with built-in local search, based on frontend development, which may have some issues. It's recommended to switch to `Algolia`. The free account has a total of 10,000 records and 100,000 operations per month.\n\n## Register & Acquire Key\n\n1. Create a new `Index`, for example, `hex-blog`\n\n2. Copy and save:\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. Replace configurations\n\nAdd the following to Hexo's `_config.yml`\n\n```yml\nalgolia:\n # Replace\n appId: Application ID\n # Replace\n apiKey: Usage API Key\n # Do not disclose, used for reporting, replace\n adminApiKey: Admin API Key\n # Replace\n SearchOnlyAPIKey: Search-Only API Key\n chunkSize: 5000\n # Replace\n indexName: hex-blog\n fields:\n - content:strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title\n```\n\n## Install hexo-algoliasearch\n\nThis is a Hexo blog post index plugin that automates the submission of indexes to Algolia.\n\n> If you encounter any problems, you can read the [hexo-algoliasearch repository](https://www.npmjs.com/package/hexo-algoliasearch) for the latest instructions.\n\nInstallation command:\n\n```bash\nnpm install hexo-algoliasearch --save\n```\n\n## Using Algolia\n\nBefore publishing each blog post, carry out index uploading operations. The usual commands are as follows:\n\n```bash\nhexo clean\nhexo generate\nhexo algolia\n``` \n\n\n# QWeather Widget 🇨🇳\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via [QWeather Developer Service](https://dev.qweather.com/docs/start/).\n\nAfter registering, fill in your `appKey` and `cityCode` in the configuration.\n\n```yml\nweather:\n enable: true\n # Replace\n cityCode: cityCode\n appKey: appKey\n```\n\nYou can find your city's `cityCode` in the official region list repository's `China-City-List-latest.csv`.\n\n\n# Front Matter\n\nIn Hexo's Markdown files, a typical YAML-formatted `Front Matter` might look like this:\n\n\n```markdown\n---\ntitle: My Article Title\ncategories:\n- javascript\ntags: \n- Programming\n- JavaScript\n---\n```\n\n## top\n\nTo pin an article to the top, assign a numerical value to the `top` metadata. Articles with a specified `top` value will be marked with a 📌 icon in the category list.\n\nFor example, if there are three articles:\n\n- Article 1\n\n```markdown\n---\ntitle: Article 1\ntop: 0\ncategories:\n - javascript\n---\n```\n\n- Article 2\n\n```markdown\n---\ntitle: Article 2\ntop: 1\ncategories:\n - javascript\n---\n```\n\n- Article 3\n\n```markdown\n---\ntitle: Article 3\ncategories:\n - javascript\n---\n```\n\nThen, under the `javascript` category, the sort order will be: `Article 1 > Article 2 > Article 3`.\n\n## status\n\nThis is used to differentiate the status of articles and can be quickly `filtered` using the category list. The Linear theme comes with 4 built-in statuses:\n\n- done: Completed\n- doing: In Progress\n- todo: To Do\n- other: Abandoned\n\nFor example:\n\n```markdown\n---\ntitle: Article 1\ncategories:\n- javascript\nstatus: done\n---\n```\n\n\n\n","slug":"Linear-Starter-Guide","published":1,"date":"2023-10-20T01:05:56.355Z","updated":"2023-10-20T08:28:42.259Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clnydcqpk0006jaz3c8e37hfn","content":"🇨🇳 中文文档
\nHexo Installation Installing a Hexo
theme is straightforward. Simply copy the Hexo-theme-linear
directory to the themes
directory, and then modify the theme configuration in Hexo
‘s _config.yml
.
\n# Locate the theme setting \ntheme : hexo- theme- linear
\n\nAcquiring Linear \nVisit Linear’s code repository to stay updated on the latest theme developments. \nDownload hexo-theme-linear.zip
from the releases page . \nExtract it into your site’s themes
directory. \nEnable it in Hexo’s _config.yml
. \n \nHexo Configuration Adjust settings in Hexo
‘s _config.yml
.
\nBasic Configuration # Website title \ntitle : 17px blog\n# Sidebar header \nsubtitle : \"Mozzie\" \n# HTML meta description for SEO \ndescription : \"\" \n# HTML meta keywords for SEO \nkeywords : \n# Copyright text displaying author's name \nauthor : Mozzie\n\n# Set your website URL here \nurl : https: //mozzie.cn
\n\nLanguage Switch You can find different language files in hex theme liner/languages
. If you want to switch languages, fill in the file name of yml
in the _config.yml
file
\nlanguage : en
\n\nCode Highlighting Disable Hexo’s default highlight.js syntax highlighting.
\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 Theme Configuration 💡 The following settings are based on the _config.yml
under hexo-theme-linear
.
\nPost Category Icons In sequence, set the svg
icons. You can get a wide variety of icons at xicon .
\npostCategoryIcons : \n - <svg> ... </svg> \n - <svg> ... </svg> \n - <svg> ... </svg>
\n\nWebsite Favicon \nSupports svg
\nSupports image URL
, e.g., /img/favicon.png
\n \nfavicon : ''
\n\nICP Number 🇨🇳 😁 If not required, can be directly deleted.
\nicp : 苏ICP备xxxxxxx号- x
\n\n😁 If not required, can be directly deleted or set to false
.
\nmotto : false
\n\nPost Copyright Statement Enabled by default. When enable: false
, it is disabled by default.
\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\nYou can configure the CDN yourself.
\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 Flowcharts To draft flowchart syntax, use {% mermaid %}` and `{% endmermaid %}
as wrappers.
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\nCorresponding configurations are as follows:
\nmermaid : \n enable : true \n cdn : //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nFirst, register as a LeanCloud
international user and create a database.
\nPlease proceed in accordance with relevant regional regulations.
\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 Search The blog comes with built-in local search, based on frontend development, which may have some issues. It’s recommended to switch to Algolia
. The free account has a total of 10,000 records and 100,000 operations per month.
\nRegister & Acquire Key \nCreate a new Index
, for example, hex-blog
\n \nCopy and save:
\n \n \n\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage API Key \n \nAPI Keys
\n\nReplace configurations \n \nAdd the following to Hexo’s _config.yml
\nalgolia : \n # Replace \n appId : Application ID\n # Replace \n apiKey : Usage API Key\n # Do not disclose, used for reporting, replace \n adminApiKey : Admin API Key\n # Replace \n SearchOnlyAPIKey : Search- Only API Key\n chunkSize : 5000 \n # Replace \n indexName : hex- blog\n fields : \n - content: strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\nInstall hexo-algoliasearch This is a Hexo blog post index plugin that automates the submission of indexes to Algolia.
\n\nIf you encounter any problems, you can read the hexo-algoliasearch repository for the latest instructions.
\n \nInstallation command:
\nnpm install hexo-algoliasearch --save
\n\nUsing Algolia Before publishing each blog post, carry out index uploading operations. The usual commands are as follows:
\nhexo clean\nhexo generate\nhexo algolia
\n\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via QWeather Developer Service .
\nAfter registering, fill in your appKey
and cityCode
in the configuration.
\nweather : \n enable : true \n # Replace \n cityCode : cityCode\n appKey : appKey
\n\nYou can find your city’s cityCode
in the official region list repository’s China-City-List-latest.csv
.
\nFront Matter In Hexo’s Markdown files, a typical YAML-formatted Front Matter
might look like this:
\n--- \ntitle : My Article Title\ncategories : \n- javascript\ntags : \n- Programming\n- JavaScript \n---
\n\ntop To pin an article to the top, assign a numerical value to the top
metadata. Articles with a specified top
value will be marked with a 📌 icon in the category list.
\nFor example, if there are three articles:
\n\n--- \ntitle : Article 1\ntop : 0 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 2\ntop : 1 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 3\ncategories : \n - javascript \n---
\n\nThen, under the javascript
category, the sort order will be: Article 1 > Article 2 > Article 3
.
\nstatus This is used to differentiate the status of articles and can be quickly filtered
using the category list. The Linear theme comes with 4 built-in statuses:
\n\ndone: Completed \ndoing: In Progress \ntodo: To Do \nother: Abandoned \n \nFor example:
\n--- \ntitle : Article 1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\n","site":{"data":{}},"excerpt":"","more":"🇨🇳 中文文档
\nHexo Installation Installing a Hexo
theme is straightforward. Simply copy the Hexo-theme-linear
directory to the themes
directory, and then modify the theme configuration in Hexo
‘s _config.yml
.
\n# Locate the theme setting \ntheme : hexo- theme- linear
\n\nAcquiring Linear \nVisit Linear’s code repository to stay updated on the latest theme developments. \nDownload hexo-theme-linear.zip
from the releases page . \nExtract it into your site’s themes
directory. \nEnable it in Hexo’s _config.yml
. \n \nHexo Configuration Adjust settings in Hexo
‘s _config.yml
.
\nBasic Configuration # Website title \ntitle : 17px blog\n# Sidebar header \nsubtitle : \"Mozzie\" \n# HTML meta description for SEO \ndescription : \"\" \n# HTML meta keywords for SEO \nkeywords : \n# Copyright text displaying author's name \nauthor : Mozzie\n\n# Set your website URL here \nurl : https: //mozzie.cn
\n\nLanguage Switch You can find different language files in hex theme liner/languages
. If you want to switch languages, fill in the file name of yml
in the _config.yml
file
\nlanguage : en
\n\nCode Highlighting Disable Hexo’s default highlight.js syntax highlighting.
\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 Theme Configuration 💡 The following settings are based on the _config.yml
under hexo-theme-linear
.
\nPost Category Icons In sequence, set the svg
icons. You can get a wide variety of icons at xicon .
\npostCategoryIcons : \n - <svg> ... </svg> \n - <svg> ... </svg> \n - <svg> ... </svg>
\n\nWebsite Favicon \nSupports svg
\nSupports image URL
, e.g., /img/favicon.png
\n \nfavicon : ''
\n\nICP Number 🇨🇳 😁 If not required, can be directly deleted.
\nicp : 苏ICP备xxxxxxx号- x
\n\n😁 If not required, can be directly deleted or set to false
.
\nmotto : false
\n\nPost Copyright Statement Enabled by default. When enable: false
, it is disabled by default.
\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\nYou can configure the CDN yourself.
\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 Flowcharts To draft flowchart syntax, use {% mermaid %}` and `{% endmermaid %}
as wrappers.
\n{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}
\n\nCorresponding configurations are as follows:
\nmermaid : \n enable : true \n cdn : //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
\n\nFirst, register as a LeanCloud
international user and create a database.
\nPlease proceed in accordance with relevant regional regulations.
\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 Search The blog comes with built-in local search, based on frontend development, which may have some issues. It’s recommended to switch to Algolia
. The free account has a total of 10,000 records and 100,000 operations per month.
\nRegister & Acquire Key \nCreate a new Index
, for example, hex-blog
\n \nCopy and save:
\n \n \n\nApplication ID \nSearch-Only API Key \nAdmin API Key \nUsage API Key \n \nAPI Keys
\n\nReplace configurations \n \nAdd the following to Hexo’s _config.yml
\nalgolia : \n # Replace \n appId : Application ID\n # Replace \n apiKey : Usage API Key\n # Do not disclose, used for reporting, replace \n adminApiKey : Admin API Key\n # Replace \n SearchOnlyAPIKey : Search- Only API Key\n chunkSize : 5000 \n # Replace \n indexName : hex- blog\n fields : \n - content: strip\n - categories\n - date\n - permalink\n - slug\n - tags\n - title
\n\nInstall hexo-algoliasearch This is a Hexo blog post index plugin that automates the submission of indexes to Algolia.
\n\nIf you encounter any problems, you can read the hexo-algoliasearch repository for the latest instructions.
\n \nInstallation command:
\nnpm install hexo-algoliasearch --save
\n\nUsing Algolia Before publishing each blog post, carry out index uploading operations. The usual commands are as follows:
\nhexo clean\nhexo generate\nhexo algolia
\n\n\nLinear mainly targets domestic users and integrates QWeather cards on the homepage. Register via QWeather Developer Service .
\nAfter registering, fill in your appKey
and cityCode
in the configuration.
\nweather : \n enable : true \n # Replace \n cityCode : cityCode\n appKey : appKey
\n\nYou can find your city’s cityCode
in the official region list repository’s China-City-List-latest.csv
.
\nFront Matter In Hexo’s Markdown files, a typical YAML-formatted Front Matter
might look like this:
\n--- \ntitle : My Article Title\ncategories : \n- javascript\ntags : \n- Programming\n- JavaScript \n---
\n\ntop To pin an article to the top, assign a numerical value to the top
metadata. Articles with a specified top
value will be marked with a 📌 icon in the category list.
\nFor example, if there are three articles:
\n\n--- \ntitle : Article 1\ntop : 0 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 2\ntop : 1 \ncategories : \n - javascript \n---
\n\n\n--- \ntitle : Article 3\ncategories : \n - javascript \n---
\n\nThen, under the javascript
category, the sort order will be: Article 1 > Article 2 > Article 3
.
\nstatus This is used to differentiate the status of articles and can be quickly filtered
using the category list. The Linear theme comes with 4 built-in statuses:
\n\ndone: Completed \ndoing: In Progress \ntodo: To Do \nother: Abandoned \n \nFor example:
\n--- \ntitle : Article 1\ncategories : \n- javascript\nstatus : done \n---
\n\n\n\n"},{"title":"Markdown Sample","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# Linear Markdown Sample\n\n![markdown](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n\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\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#### 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### 科学公式 TeX(KaTeX)\n\n$$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: Markdown Sample\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# Linear Markdown Sample\n\n![markdown](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n\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\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#### 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### 科学公式 TeX(KaTeX)\n\n$$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-20T08:48:30.707Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clnydcqpl0007jaz3bwgl0tdm","content":"Linear Markdown Sample
\n字符效果和横线等 \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
\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科学公式 TeX(KaTeX) $$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":"Linear Markdown Sample
\n字符效果和横线等 \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
\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科学公式 TeX(KaTeX) $$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 "}],"PostAsset":[],"PostCategory":[{"post_id":"clnydcqpf0000jaz388sj8el6","category_id":"clnydcqpj0002jaz31m2idksh","_id":"clnydcqpk0004jaz3agr84sdu"},{"post_id":"clnydcqpi0001jaz30u130buc","category_id":"clnydcqpj0003jaz37km36zim","_id":"clnydcqpk0005jaz34s8y8ogd"},{"post_id":"clnydcqpk0006jaz3c8e37hfn","category_id":"clnydcqpj0002jaz31m2idksh","_id":"clnydcqpl0008jaz369koe183"},{"post_id":"clnydcqpl0007jaz3bwgl0tdm","category_id":"clnydcqpj0002jaz31m2idksh","_id":"clnydcqpl0009jaz30gn153jv"}],"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 3f45f8c6..d07e7bd5 100644
--- a/public/2023/10/20/Linear Sample/index.html
+++ b/public/2023/10/20/Linear Sample/index.html
@@ -220,23 +220,8 @@
- Editor.md hhh
-
-
-换行TEST 1 2 3
-a b
-
-q d
-#HEAD TEST
-Smart Test …
-
-–
-
-
-目录 (Table of Contents)
-[TOCM]
-[TOC]
-Heading 1 Heading 2 Heading 3 Heading 4 Heading 5 Heading 6 标题(用底线的形式)Heading (underline) This is an H1 This is an H2 字符效果和横线等
+ Linear Markdown Sample
+字符效果和横线等
删除线 删除线(开启识别HTML标签时) 斜体字 斜体字 粗体 粗体 粗斜体 粗斜体
上标:X2 ,下标:O2
缩写(同HTML的abbr标签)
@@ -257,22 +242,11 @@
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
多语言代码高亮 Codes 行内代码 Inline code 执行命令:npm install marked
-缩进风格 即缩进四个空格,也做为实现类似 <pre>
预格式化文本 ( Preformatted Text ) 的功能。
-<?php
- echo "Hello world!";
-?>
-
-预格式化文本:
-| First Header | Second Header |
-| ------------ | ------------- |
-| Content Cell | Content Cell |
-| Content Cell | Content Cell |
-
JS代码 function test ( ) {
console. log ( "Hello world!" ) ;
}
@@ -505,29 +479,7 @@ testBox. add<
$1
-
-特殊符号 HTML Entities Codes © & ¨ ™ ¡ £ & < > ¥ € ® ± ¶ § ¦ ¯ « ·
-X² Y³ ¾ ¼ × ÷ »
-18ºC " '
-[========]
-Emoji表情 :smiley:
-Blockquotes :star:
-
-GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:
-反斜杠 Escape *literal asterisks*
-[========]
科学公式 TeX(KaTeX) $$E=mc^2$$
-行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
$$x > y$$
$$(\sqrt{3x-1}+(1+x)^2)$$
$$\sin(\alpha)^{\theta}=\sum_{i=0}^{n}(x^i + \cos(f))$$
@@ -587,7 +539,7 @@ testBox. add<
Catalog
- 1. Editor.md 2. 换行TEST 3. Smart Test 4. Heading 1 4.1. Heading 2 4.1.1. Heading 3 5. Heading 1 link Heading link 5.1. Heading 2 link Heading link 5.1.1. Heading 3 link Heading link 6. This is an H1 6.1. This is an H2 6.1.1. 字符效果和横线等 6.1.2. 引用 Blockquotes 6.1.3. 锚点与链接 Links 6.1.4. 多语言代码高亮 Codes 6.1.5. 图片 Images 6.1.6. 列表 Lists 6.1.7. 绘制表格 Tables 6.1.8. Emoji表情 :smiley: 6.1.9. 科学公式 TeX(KaTeX) 6.1.10. 绘制流程图 mermaid 6.1.11. End
+ 1. Linear Markdown Sample 2. Heading 1 link Heading link 2.1. Heading 2 link Heading link 2.1.1. Heading 3 link Heading link 2.1.2. 字符效果和横线等 2.1.3. 引用 Blockquotes 2.1.4. 锚点与链接 Links 2.1.5. 多语言代码高亮 Codes 2.1.6. 图片 Images 2.1.7. 列表 Lists 2.1.8. 绘制表格 Tables 2.1.9. 科学公式 TeX(KaTeX) 2.1.10. 绘制流程图 mermaid 2.1.11. End
diff --git a/public/archives/2023/10/index.html b/public/archives/2023/10/index.html
index d34bdc57..649a21d4 100644
--- a/public/archives/2023/10/index.html
+++ b/public/archives/2023/10/index.html
@@ -227,9 +227,9 @@
-
+
- 10-20 11:10:24
+ 10-20 10:25:55
@@ -237,24 +237,11 @@
-
Markdown Sample
+
verdaccio 搭建 npm私库
- Editor.mdhhh
-
-
-换行TEST123
-ab
-
-qd
-#HEAD TEST
-Smart Test…
-
-–
-
-
-目录 (Table of Contents)
-[TOCM]
-[TOC]...
+ 使用 docker 搭建 verdaccio创建 & 配置config.yaml文件
+# Read about the best practices
+# https://verdaccio.o...
@@ -279,9 +266,9 @@ Hexo InstallationInstalling a Hexo theme is straightforward. Simply copy the Hex
-
+
- 10-20 10:25:55
+ 10-20 11:10:24
@@ -289,11 +276,10 @@ Hexo InstallationInstalling a Hexo theme is straightforward. Simply copy the Hex
-
verdaccio 搭建 npm私库
+
Markdown Sample
- 使用 docker 搭建 verdaccio创建 & 配置config.yaml文件
-# Read about the best practices
-# https://verdaccio.o...
+ Linear Markdown Sample
+Heading 1 link Heading linkHeading 2 link Heading linkHeading 3 link Heading ...
diff --git a/public/archives/2023/index.html b/public/archives/2023/index.html
index d34bdc57..649a21d4 100644
--- a/public/archives/2023/index.html
+++ b/public/archives/2023/index.html
@@ -227,9 +227,9 @@
-
+
- 10-20 11:10:24
+ 10-20 10:25:55
@@ -237,24 +237,11 @@
-
Markdown Sample
+
verdaccio 搭建 npm私库
- Editor.mdhhh
-
-
-换行TEST123
-ab
-
-qd
-#HEAD TEST
-Smart Test…
-
-–
-
-
-目录 (Table of Contents)
-[TOCM]
-[TOC]...
+ 使用 docker 搭建 verdaccio创建 & 配置config.yaml文件
+# Read about the best practices
+# https://verdaccio.o...
@@ -279,9 +266,9 @@ Hexo InstallationInstalling a Hexo theme is straightforward. Simply copy the Hex
-
+
- 10-20 10:25:55
+ 10-20 11:10:24
@@ -289,11 +276,10 @@ Hexo InstallationInstalling a Hexo theme is straightforward. Simply copy the Hex
-
verdaccio 搭建 npm私库
+
Markdown Sample
- 使用 docker 搭建 verdaccio创建 & 配置config.yaml文件
-# Read about the best practices
-# https://verdaccio.o...
+ Linear Markdown Sample
+Heading 1 link Heading linkHeading 2 link Heading linkHeading 3 link Heading ...
diff --git a/public/archives/index.html b/public/archives/index.html
index d34bdc57..649a21d4 100644
--- a/public/archives/index.html
+++ b/public/archives/index.html
@@ -227,9 +227,9 @@
-
+
- 10-20 11:10:24
+ 10-20 10:25:55
@@ -237,24 +237,11 @@
-
Markdown Sample
+
verdaccio 搭建 npm私库
- Editor.mdhhh
-
-
-换行TEST123
-ab
-
-qd
-#HEAD TEST
-Smart Test…
-
-–
-
-
-目录 (Table of Contents)
-[TOCM]
-[TOC]...
+ 使用 docker 搭建 verdaccio创建 & 配置config.yaml文件
+# Read about the best practices
+# https://verdaccio.o...
@@ -279,9 +266,9 @@ Hexo InstallationInstalling a Hexo theme is straightforward. Simply copy the Hex
-
+
- 10-20 10:25:55
+ 10-20 11:10:24
@@ -289,11 +276,10 @@ Hexo InstallationInstalling a Hexo theme is straightforward. Simply copy the Hex
-
verdaccio 搭建 npm私库
+
Markdown Sample
- 使用 docker 搭建 verdaccio创建 & 配置config.yaml文件
-# Read about the best practices
-# https://verdaccio.o...
+ Linear Markdown Sample
+Heading 1 link Heading linkHeading 2 link Heading linkHeading 3 link Heading ...
diff --git a/source/_posts/Linear Sample.md b/source/_posts/Linear Sample.md
index cd620028..eb219105 100644
--- a/source/_posts/Linear Sample.md
+++ b/source/_posts/Linear Sample.md
@@ -8,54 +8,11 @@ categories:
keywords: "Markdown, 代码高亮 (Codes), 引用 (Blockquotes), 列表 (Lists), 图片 (Images), 表格 (Tables), Emoji, TeX(KaTeX), 流程图 (mermaid)"
---
-# Editor.md
+# Linear Markdown Sample
+
+![markdown](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)
-hhh
-
-
-
-# 换行TEST
-
-1
-2
-3
-
-a
-b
-
----
-
-q\
-d
-
-#HEAD TEST
-
-# Smart Test
-
-...
-
----
-
---
-
-
-![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)
-
-![](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)
-
-**目录 (Table of Contents)**
-
-[TOCM]
-
-[TOC]
-
-# Heading 1
-## Heading 2
-### Heading 3
-#### Heading 4
-##### Heading 5
-###### Heading 6
# Heading 1 link [Heading link](https://github.com/pandao/editor.md "Heading link")
## Heading 2 link [Heading link](https://github.com/pandao/editor.md "Heading link")
### Heading 3 link [Heading link](https://github.com/pandao/editor.md "Heading link")
@@ -63,13 +20,6 @@ d
##### Heading 5 link [Heading link](https://github.com/pandao/editor.md "Heading link")
###### Heading 6 link [Heading link](https://github.com/pandao/editor.md "Heading link")
-#### 标题(用底线的形式)Heading (underline)
-
-This is an H1
-=============
-
-This is an H2
--------------
### 字符效果和横线等
@@ -122,21 +72,6 @@ GFM a-tail link [@pandao](https://my.oschina.net/u/3691274) 邮箱地址自动
执行命令:`npm install marked`
-#### 缩进风格
-
-即缩进四个空格,也做为实现类似 `` 预格式化文本 ( Preformatted Text ) 的功能。
-
-
-
-预格式化文本:
-
- | First Header | Second Header |
- | ------------ | ------------- |
- | Content Cell | Content Cell |
- | Content Cell | Content Cell |
-
#### JS代码
```javascript
@@ -300,46 +235,11 @@ Image:
| Computer | $1600 |
| Phone | $12 |
| Pipe | $1 |
-
-----
-
-#### 特殊符号 HTML Entities Codes
-
-© & ¨ ™ ¡ £
-& < > ¥ € ® ± ¶ § ¦ ¯ « ·
-
-X² Y³ ¾ ¼ × ÷ »
-
-18ºC " '
-
-[========]
-
-### Emoji表情 :smiley:
-
-> Blockquotes :star:
-
-#### GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:
-
-- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and tags supported :editormd-logo:;
-- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;
-- [x] [ ] :smiley: this is a complete item :smiley:;
-- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao;
-- [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;
- - [ ] :smiley: this is an incomplete item [test link](#) :fa-star: :fa-gear:;
- - [ ] :smiley: this is :fa-star: :fa-gear: an incomplete item [test link](#);
-
-#### 反斜杠 Escape
-
-\*literal asterisks\*
-
-[========]
### 科学公式 TeX(KaTeX)
$$E=mc^2$$
-行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
-
$$x > y$$
$$\(\sqrt{3x-1}+(1+x)^2\)$$