1 line
423 KiB
JSON
1 line
423 KiB
JSON
{"meta":{"version":1,"warehouse":"4.0.2"},"models":{"Asset":[{"_id":"themes/hexo-theme-cosy/source/font/linear.woff2","path":"font/linear.woff2","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/font/motto.woff","path":"font/motto.woff","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/0c63d269.css","path":"css/0c63d269.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/206.a3a4e130.css","path":"css/206.a3a4e130.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/21.88950121.css","path":"css/21.88950121.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/26c34ce6.css","path":"css/26c34ce6.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/271.54fa1675.css","path":"css/271.54fa1675.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/291.a8323266.css","path":"css/291.a8323266.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/2cd7dba2.css","path":"css/2cd7dba2.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/32ae9342.css","path":"css/32ae9342.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/3320a187.css","path":"css/3320a187.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/3efc6cb5.css","path":"css/3efc6cb5.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/3a4a90d1.css","path":"css/3a4a90d1.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/429.fb1dabcb.css","path":"css/429.fb1dabcb.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/3fa188f4.css","path":"css/3fa188f4.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/5bfc518f.css","path":"css/5bfc518f.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/5c728363.css","path":"css/5c728363.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/618.6513d67e.css","path":"css/618.6513d67e.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/766.64ad3c35.css","path":"css/766.64ad3c35.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/8eb236e5.css","path":"css/8eb236e5.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/922.9efa0b6b.css","path":"css/922.9efa0b6b.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/945.fdf98cb0.css","path":"css/945.fdf98cb0.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/ccbcde32.css","path":"css/ccbcde32.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/de5de8fb.css","path":"css/de5de8fb.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/efca006a.css","path":"css/efca006a.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/css/f3729dde.css","path":"css/f3729dde.css","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/favicon.svg","path":"img/favicon.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-arrow-left.svg","path":"img/icon-arrow-left.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-book.svg","path":"img/icon-book.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-click.svg","path":"img/icon-click.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-date.svg","path":"img/icon-date.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-layout.svg","path":"img/icon-layout.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-link.svg","path":"img/icon-link.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-moon.svg","path":"img/icon-moon.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon-sun.svg","path":"img/icon-sun.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon1.svg","path":"img/icon1.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon2.svg","path":"img/icon2.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/icon3.svg","path":"img/icon3.svg","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/logo.png","path":"img/logo.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/015f750d.js","path":"js/015f750d.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/015f750d.js.LICENSE.txt","path":"js/015f750d.js.LICENSE.txt","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/0c01b885.js","path":"js/0c01b885.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/206.759361ed.js","path":"js/206.759361ed.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/271.ee88a6de.js","path":"js/271.ee88a6de.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/21.282c05e7.js","path":"js/21.282c05e7.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/291.4ac6984b.js","path":"js/291.4ac6984b.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/31d6cfe0.js","path":"js/31d6cfe0.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/3cf4fd98.js","path":"js/3cf4fd98.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/618.1a58fba9.js","path":"js/618.1a58fba9.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/429.bc4769cb.js","path":"js/429.bc4769cb.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/766.9503a62c.js","path":"js/766.9503a62c.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/9f1cd854.js","path":"js/9f1cd854.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/945.0313a94c.js","path":"js/945.0313a94c.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/922.689e0633.js","path":"js/922.689e0633.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/a02fa72b.js","path":"js/a02fa72b.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/c413ebaa.js","path":"js/c413ebaa.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/f7dea7e6.js","path":"js/f7dea7e6.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/ca6b30b5.js","path":"js/ca6b30b5.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/f8b20eb9.js","path":"js/f8b20eb9.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/js/cdca7001.js","path":"js/cdca7001.js","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/100.png","path":"img/qweather-color-icon/100.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/101.png","path":"img/qweather-color-icon/101.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/102.png","path":"img/qweather-color-icon/102.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/103.png","path":"img/qweather-color-icon/103.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/104.png","path":"img/qweather-color-icon/104.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/150.png","path":"img/qweather-color-icon/150.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/152.png","path":"img/qweather-color-icon/152.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/151.png","path":"img/qweather-color-icon/151.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/153.png","path":"img/qweather-color-icon/153.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/300.png","path":"img/qweather-color-icon/300.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/302.png","path":"img/qweather-color-icon/302.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/301.png","path":"img/qweather-color-icon/301.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/303.png","path":"img/qweather-color-icon/303.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/305.png","path":"img/qweather-color-icon/305.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/304.png","path":"img/qweather-color-icon/304.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/306.png","path":"img/qweather-color-icon/306.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/307.png","path":"img/qweather-color-icon/307.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/308.png","path":"img/qweather-color-icon/308.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/309.png","path":"img/qweather-color-icon/309.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/310.png","path":"img/qweather-color-icon/310.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/311.png","path":"img/qweather-color-icon/311.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/313.png","path":"img/qweather-color-icon/313.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/312.png","path":"img/qweather-color-icon/312.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/314.png","path":"img/qweather-color-icon/314.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/315.png","path":"img/qweather-color-icon/315.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/316.png","path":"img/qweather-color-icon/316.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/317.png","path":"img/qweather-color-icon/317.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/318.png","path":"img/qweather-color-icon/318.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/350.png","path":"img/qweather-color-icon/350.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/351.png","path":"img/qweather-color-icon/351.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/399.png","path":"img/qweather-color-icon/399.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/400.png","path":"img/qweather-color-icon/400.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/402.png","path":"img/qweather-color-icon/402.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/401.png","path":"img/qweather-color-icon/401.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/403.png","path":"img/qweather-color-icon/403.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/404.png","path":"img/qweather-color-icon/404.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/406.png","path":"img/qweather-color-icon/406.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/407.png","path":"img/qweather-color-icon/407.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/408.png","path":"img/qweather-color-icon/408.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/409.png","path":"img/qweather-color-icon/409.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/410.png","path":"img/qweather-color-icon/410.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/456.png","path":"img/qweather-color-icon/456.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/457.png","path":"img/qweather-color-icon/457.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/499.png","path":"img/qweather-color-icon/499.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/500.png","path":"img/qweather-color-icon/500.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/501.png","path":"img/qweather-color-icon/501.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/502.png","path":"img/qweather-color-icon/502.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/503.png","path":"img/qweather-color-icon/503.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/504.png","path":"img/qweather-color-icon/504.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/507.png","path":"img/qweather-color-icon/507.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/508.png","path":"img/qweather-color-icon/508.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/509.png","path":"img/qweather-color-icon/509.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/510.png","path":"img/qweather-color-icon/510.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/511.png","path":"img/qweather-color-icon/511.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/513.png","path":"img/qweather-color-icon/513.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/512.png","path":"img/qweather-color-icon/512.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/514.png","path":"img/qweather-color-icon/514.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/515.png","path":"img/qweather-color-icon/515.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/901.png","path":"img/qweather-color-icon/901.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/999.png","path":"img/qweather-color-icon/999.png","modified":1,"renderable":1},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/900.png","path":"img/qweather-color-icon/900.png","modified":1,"renderable":1},{"_id":"source/img/algolia-api-keys.png","path":"img/algolia-api-keys.png","modified":1,"renderable":0},{"_id":"source/img/avatar.png","path":"img/avatar.png","modified":1,"renderable":0},{"_id":"source/img/bolt.png","path":"img/bolt.png","modified":1,"renderable":0},{"_id":"source/img/cvpilot.png","path":"img/cvpilot.png","modified":1,"renderable":0},{"_id":"source/img/hexo-theme-linear-dark.png","path":"img/hexo-theme-linear-dark.png","modified":1,"renderable":0},{"_id":"source/img/mz10nq.png","path":"img/mz10nq.png","modified":1,"renderable":0}],"Cache":[{"_id":"source/_posts/A Guide to Effective Dialogue.md","hash":"6b921148f345d387426eda1d8f8b2329d9b78194","modified":1699248300499},{"_id":"source/_posts/Cosy-Starter-Guide.md","hash":"06efd6f10e98adf11a6981159c047d11f1671ee8","modified":1698992667385},{"_id":"source/.DS_Store","hash":"7194d57d6883d95b7b40dff78df136da9de20cb3","modified":1698635272869},{"_id":"source/img/.DS_Store","hash":"df2fbeb1400acda0909a32c1cf6bf492f1121e07","modified":1698730015110},{"_id":"source/_posts/Markdown Sample.md","hash":"aebe37c8f94a4f1275a5efda876e36ec4852122c","modified":1698033673108},{"_id":"source/img/avatar.png","hash":"7c2da2939b1a36315c45489fbc9930bac73f0880","modified":1698729532245},{"_id":"source/roadmap/index.md","hash":"bc99cff86fa97ef91f3efe1b785d64eace0a52ef","modified":1699248305415},{"_id":"source/resume/index.md","hash":"b585667730d961c1fca9317763f3220a9df32371","modified":1698981341632},{"_id":"source/_posts/finance/付鹏:展望2023年下半年全球经济格局,异常的利差意味着什么.md","hash":"4976b314cd7932e8e1333688491e506442900a37","modified":1699248127164},{"_id":"source/_posts/finance/付鹏:逆全球化下的全球资产配置.md","hash":"9d2db9097826fd7549ebb1831488ee927782c1df","modified":1699247867196},{"_id":"source/_posts/social/有效对话指南.md","hash":"d20ec18cf5f8929d6af14b12a1c296bef007bc2b","modified":1699247891496},{"_id":"source/_posts/social/内部循环与产出意识.md","hash":"88fdb3f9b6e5d4b432a7011ee8bba3f6b41e6f83","modified":1699247971986},{"_id":"source/_posts/social/改掉选择困难症.md","hash":"98dfb13d9c9771ecdb1648dae778d83bfc1dc869","modified":1699248014555},{"_id":"source/_posts/social/烦恼的原因.md","hash":"477a662420ffb2e51136ac59712cb5375eef20ea","modified":1699247993454},{"_id":"source/_posts/social/非暴力沟通.md","hash":"629439b58652484c61fbda33103ae89437929fb7","modified":1699247939336},{"_id":"source/_posts/front-end/verdaccio.md","hash":"50453d3e60c7e63e31bc9f3efcebc241d317fae0","modified":1697768855158},{"_id":"source/_posts/social/走神.md","hash":"86869ea38150a552128649f3aa5fd7a0b6a9c90e","modified":1699248013780},{"_id":"source/img/bolt.png","hash":"9f178950034e1ad5c5248b9caaca36e2f784225d","modified":1698730006343},{"_id":"source/img/cvpilot.png","hash":"e10abaca3fd20488b0889a4da84d65312e5ac3ad","modified":1698730476343},{"_id":"themes/hexo-theme-cosy/source/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1698994290981},{"_id":"source/img/hexo-theme-linear-dark.png","hash":"758aef1e3d9a83844d2871e8ceaccf6767e78284","modified":1698730623818},{"_id":"themes/hexo-theme-cosy/_config.yml","hash":"2a89e3e716d19be9f2406b444db893112a16c9c7","modified":1699248421837},{"_id":"themes/hexo-theme-cosy/languages/de.yml","hash":"ae38883463468b343ef0c47445f6ced8adbf92b5","modified":1698994290930},{"_id":"themes/hexo-theme-cosy/.DS_Store","hash":"df2fbeb1400acda0909a32c1cf6bf492f1121e07","modified":1698635208378},{"_id":"themes/hexo-theme-cosy/languages/ar.yml","hash":"569c30006952a34c93cfa779ba75b4fdd98a4032","modified":1698994290930},{"_id":"themes/hexo-theme-cosy/languages/es.yml","hash":"a5624a3b9ae2ae0bb928f6c9cebf820692a6588c","modified":1698994290931},{"_id":"themes/hexo-theme-cosy/languages/ru.yml","hash":"55b5258de0118c3bbda6092eaf002fdb112f7a65","modified":1698994290933},{"_id":"themes/hexo-theme-cosy/languages/en.yml","hash":"c6a2ea6386a5411054d4ae1b5d0ac0a483f27fab","modified":1698994290930},{"_id":"themes/hexo-theme-cosy/languages/ja.yml","hash":"f5bc562e3943d88eca6bf7c3734dd481db5f69b7","modified":1698994290932},{"_id":"themes/hexo-theme-cosy/languages/zh-CN.yml","hash":"1f7b14044e8fc1815b43ac8fdf668db3cab3e83c","modified":1698994290933},{"_id":"themes/hexo-theme-cosy/languages/ko.yml","hash":"389a8fbff84e82c449995ccfe8c2809167565d9b","modified":1698994290932},{"_id":"themes/hexo-theme-cosy/layout/airplane.ejs","hash":"28521fce0f5dbd1fd62c612ae68b78ba254faef3","modified":1698994290938},{"_id":"themes/hexo-theme-cosy/languages/fr.yml","hash":"1114a91b795ebb44bb13bedc09232b24d36ac3ad","modified":1698994290931},{"_id":"themes/hexo-theme-cosy/languages/zh-TW.yml","hash":"7ba3cd4f15d624c142ae6f992937d21ced350230","modified":1698994290933},{"_id":"themes/hexo-theme-cosy/layout/archive.ejs","hash":"d63bc4ebac416b4f5b80fb673ec0a3f092a4e255","modified":1698994290938},{"_id":"themes/hexo-theme-cosy/layout/homebar.ejs","hash":"db94f9b23011f3042b619e2ddcf398a57e27c815","modified":1698994290939},{"_id":"themes/hexo-theme-cosy/layout/category.ejs","hash":"d9b220b14a2fbe8ce1433bd9665d54c880eb7322","modified":1698994290938},{"_id":"themes/hexo-theme-cosy/layout/breadcrumb.ejs","hash":"81c91ad7b618a760b901741ff0d87333acddf60c","modified":1698994290938},{"_id":"themes/hexo-theme-cosy/layout/index.ejs","hash":"ef5b4c22c7d7f247462557a5ab9a0bec3f5cc308","modified":1698994290939},{"_id":"themes/hexo-theme-cosy/layout/post.ejs","hash":"4aa72a024ad0f467b8d314ad651998c228ec96af","modified":1698994290939},{"_id":"themes/hexo-theme-cosy/layout/navigation.ejs","hash":"dfa3f6d4e219ca9d4f1df6fff0f3bf502f2e5898","modified":1698994290939},{"_id":"themes/hexo-theme-cosy/layout/layout.ejs","hash":"78b40fbb7bf0fecd3b38e1b1c07526864742bbb2","modified":1698994290939},{"_id":"themes/hexo-theme-cosy/layout/postCopyright.ejs","hash":"83a579d0e8d7cf341ac8acc9a733d5046e224e32","modified":1698994290939},{"_id":"themes/hexo-theme-cosy/layout/roadmap.ejs","hash":"e16ef0b34e2f285c3cfd7733e61aae75894a8394","modified":1698994290940},{"_id":"themes/hexo-theme-cosy/scripts/generate_excerpt.js","hash":"a7cfe46e7e389b1654c81f3e9a8a934dd80d735a","modified":1698994290945},{"_id":"themes/hexo-theme-cosy/scripts/mermaid_tag.js","hash":"bc74c79cf41709da1993597acaebae96d6b3761d","modified":1698994290946},{"_id":"themes/hexo-theme-cosy/scripts/post_counter.js","hash":"62aaa594dafcffe5aa457628eaf183075cabe159","modified":1698994290946},{"_id":"themes/hexo-theme-cosy/scripts/postIcon.js","hash":"73362a6570b00613681425b59a30903be671cd91","modified":1698994290946},{"_id":"themes/hexo-theme-cosy/scripts/road-to-json.js","hash":"7fddd6117979d983e2172a04dd8764459a9c626b","modified":1698994290946},{"_id":"themes/hexo-theme-cosy/scripts/sort_posts.js","hash":"5cedcd663fd7eb1b255360ea9eb6089fd55e959c","modified":1698994290947},{"_id":"themes/hexo-theme-cosy/layout/weather.ejs","hash":"04052e95f80ac11765b90019b149d7fb1bb68bab","modified":1698994290941},{"_id":"themes/hexo-theme-cosy/layout/search.ejs","hash":"6671b418878c267fb128852dfe00bb60d6878f51","modified":1698994290940},{"_id":"themes/hexo-theme-cosy/layout/resume.ejs","hash":"92d879c7de8ea93ce2b348c60dd993829f742779","modified":1698994290940},{"_id":"themes/hexo-theme-cosy/source/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1698994290960},{"_id":"themes/hexo-theme-cosy/source/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1698994290954},{"_id":"themes/hexo-theme-cosy/layout/welcome.ejs","hash":"ce7419f61089411de4cea72165a4ce89c4d55fbd","modified":1698994290941},{"_id":"themes/hexo-theme-cosy/source/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1698994290954},{"_id":"themes/hexo-theme-cosy/source/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1698994290955},{"_id":"themes/hexo-theme-cosy/source/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1698994290954},{"_id":"themes/hexo-theme-cosy/source/css/26c34ce6.css","hash":"261102615aa79d4c06044928ce90a832f943f2ca","modified":1698994290954},{"_id":"themes/hexo-theme-cosy/source/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1698994290955},{"_id":"themes/hexo-theme-cosy/source/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1698994290955},{"_id":"themes/hexo-theme-cosy/source/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1698994290960},{"_id":"themes/hexo-theme-cosy/source/css/32ae9342.css","hash":"13860dfa3657005967610ec05d4dc75406a91a0c","modified":1698994290955},{"_id":"themes/hexo-theme-cosy/source/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1698994290956},{"_id":"themes/hexo-theme-cosy/source/css/3320a187.css","hash":"e686aa536b92d71c936aa97de0c852bae1abdda3","modified":1698994290955},{"_id":"themes/hexo-theme-cosy/source/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1698994290956},{"_id":"themes/hexo-theme-cosy/source/css/5bfc518f.css","hash":"4b7c03f245b3d60c366321e6cad11ceee7c0a131","modified":1698994290957},{"_id":"themes/hexo-theme-cosy/source/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1698994290957},{"_id":"themes/hexo-theme-cosy/source/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1698994290957},{"_id":"themes/hexo-theme-cosy/source/css/5c728363.css","hash":"715635cbd3ce46fd0b82117bc757fab6d2277070","modified":1698994290957},{"_id":"themes/hexo-theme-cosy/source/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1698994290958},{"_id":"themes/hexo-theme-cosy/source/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1698994290958},{"_id":"themes/hexo-theme-cosy/source/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1698994290956},{"_id":"themes/hexo-theme-cosy/source/css/3fa188f4.css","hash":"913b63bd8186f0c7731f61dae6dc71b058e3038c","modified":1698994290956},{"_id":"themes/hexo-theme-cosy/source/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1698994290958},{"_id":"themes/hexo-theme-cosy/source/css/8eb236e5.css","hash":"803e1427c4d4f357a778e976d5b342c13c1a20b5","modified":1698994290957},{"_id":"themes/hexo-theme-cosy/source/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1698994290958},{"_id":"themes/hexo-theme-cosy/source/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1698994290959},{"_id":"themes/hexo-theme-cosy/source/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1698994290958},{"_id":"themes/hexo-theme-cosy/source/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1698994290960},{"_id":"themes/hexo-theme-cosy/source/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1698994290961},{"_id":"themes/hexo-theme-cosy/source/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1698994290961},{"_id":"themes/hexo-theme-cosy/source/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1698994290961},{"_id":"themes/hexo-theme-cosy/source/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1698994290961},{"_id":"themes/hexo-theme-cosy/source/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1698994290961},{"_id":"themes/hexo-theme-cosy/source/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1698994290962},{"_id":"themes/hexo-theme-cosy/source/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1698994290962},{"_id":"themes/hexo-theme-cosy/source/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1698994290962},{"_id":"themes/hexo-theme-cosy/source/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1698994290961},{"_id":"themes/hexo-theme-cosy/source/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1698994290962},{"_id":"themes/hexo-theme-cosy/source/js/015f750d.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1698994290980},{"_id":"themes/hexo-theme-cosy/source/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1698994290962},{"_id":"themes/hexo-theme-cosy/source/js/015f750d.js","hash":"afa077a8c00e9d5363173e921da42e9206bbef0d","modified":1698994290980},{"_id":"themes/hexo-theme-cosy/source/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1698994290981},{"_id":"themes/hexo-theme-cosy/source/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1698994290981},{"_id":"themes/hexo-theme-cosy/source/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1698994290981},{"_id":"themes/hexo-theme-cosy/source/js/0c01b885.js","hash":"d98188b387d05911229c68bb5393b71ddaf7c3f4","modified":1698994290981},{"_id":"themes/hexo-theme-cosy/source/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1698994290981},{"_id":"themes/hexo-theme-cosy/source/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1698994290982},{"_id":"themes/hexo-theme-cosy/source/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1698994290982},{"_id":"themes/hexo-theme-cosy/source/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1698994290983},{"_id":"themes/hexo-theme-cosy/source/js/9f1cd854.js","hash":"070029c5073bc3e67d98f1ac377d12f585bb4a2f","modified":1698994290983},{"_id":"themes/hexo-theme-cosy/source/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1698994290982},{"_id":"themes/hexo-theme-cosy/source/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1698994290982},{"_id":"themes/hexo-theme-cosy/source/js/a02fa72b.js","hash":"527060080189f03b7332259a579af89c8d1367a3","modified":1698994290983},{"_id":"themes/hexo-theme-cosy/source/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1698994290982},{"_id":"themes/hexo-theme-cosy/source/js/c413ebaa.js","hash":"dd282af849c44345ad3e577efc8fa291468de653","modified":1698994290983},{"_id":"themes/hexo-theme-cosy/source/js/f7dea7e6.js","hash":"cbe4fd8866e88638ee2538299b6dc4ca8eeb0a3f","modified":1698994290984},{"_id":"themes/hexo-theme-cosy/source/js/cdca7001.js","hash":"cd27e408febd15a99bafdf9da8a834bb1b6902c3","modified":1698994290984},{"_id":"themes/hexo-theme-cosy/source/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1698994290984},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1698994290964},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1698994290963},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1698994290964},{"_id":"themes/hexo-theme-cosy/source/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1698994290984},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1698994290964},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1698994290964},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1698994290964},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1698994290965},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1698994290965},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1698994290965},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1698994290965},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1698994290967},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1698994290965},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1698994290966},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1698994290966},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1698994290968},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1698994290967},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1698994290968},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1698994290969},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1698994290969},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1698994290970},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1698994290970},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1698994290970},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1698994290970},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1698994290971},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1698994290971},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1698994290971},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1698994290972},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1698994290973},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1698994290973},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1698994290974},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1698994290974},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1698994290972},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1698994290972},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1698994290973},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1698994290974},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1698994290975},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1698994290975},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1698994290973},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1698994290975},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1698994290975},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1698994290976},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1698994290976},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1698994290976},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1698994290977},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1698994290977},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1698994290977},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1698994290977},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1698994290978},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1698994290978},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1698994290977},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1698994290978},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1698994290978},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1698994290978},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1698994290978},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1698994290979},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1698994290979},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1698994290979},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1698994290979},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1698994290980},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1698994290980},{"_id":"themes/hexo-theme-cosy/source/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1698994290979},{"_id":"source/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1697779286767},{"_id":"themes/hexo-theme-cosy/source/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1698994290963},{"_id":"source/img/mz10nq.png","hash":"e26097f94ae54967e68f36b13b6aca80c4d173de","modified":1699247796443},{"_id":"public/roadmap/index.html","hash":"fa93acb100bd68ebc82b5f01d351462f16a36cd5","modified":1699248428225},{"_id":"public/2023/11/06/social/走神/index.html","hash":"77f19390c70b2a451c991926d83e0cccefa0f0ea","modified":1699248428225},{"_id":"public/2023/11/06/social/烦恼的原因/index.html","hash":"541dec26b8209902e8e83979d54731f27b68ced9","modified":1699248428225},{"_id":"public/2023/11/06/social/改掉选择困难症/index.html","hash":"551f9494c9546bf2dde3de3a3b1619ba9706f233","modified":1699248428225},{"_id":"public/2023/11/06/social/非暴力沟通/index.html","hash":"e69c17a4e2352c2382ca1657ddce7057aafc94a2","modified":1699248428225},{"_id":"public/2023/11/06/social/内部循环与产出意识/index.html","hash":"48ec950722d243336fb6efa0c2651202d5aaa95f","modified":1699248428225},{"_id":"public/categories/Hexo/index.html","hash":"c486df2612f0de09a9e8163682cbeea512df826b","modified":1699248428225},{"_id":"public/categories/Finance/index.html","hash":"1eb66e694989b2336a01a5bc5b8cbffc75c5d348","modified":1699248428225},{"_id":"public/categories/Front-End/index.html","hash":"e189c26a8a74cf5fa20fd3f209b81f75829610ab","modified":1699248428225},{"_id":"public/resume/index.html","hash":"a079a02342e73dc805d4736b8e1051c5c51847ba","modified":1699248428225},{"_id":"public/2023/11/06/A Guide to Effective Dialogue/index.html","hash":"008855000ea5a6173288ca43462e492adc2b3196","modified":1699248428225},{"_id":"public/2023/11/06/finance/付鹏:逆全球化下的全球资产配置/index.html","hash":"e83d992c5e9a69c205d252cb2c2eba72272fac6b","modified":1699248428225},{"_id":"public/2023/11/06/finance/付鹏:展望2023年下半年全球经济格局,异常的利差意味着什么/index.html","hash":"668690f0a72e14ab80e13d22631e2c6f014a5fc7","modified":1699248428225},{"_id":"public/2023/10/24/social/有效对话指南/index.html","hash":"33c56165a9b8b44d7f8a175d339a163da4721855","modified":1699248428225},{"_id":"public/2023/10/23/Cosy-Starter-Guide/index.html","hash":"3a410cdb61bdda71784de0390a63fce6e27c8104","modified":1699248428225},{"_id":"public/2023/10/23/Markdown Sample/index.html","hash":"837b2f814a53aa2f150b06265793e99f7640698c","modified":1699248428225},{"_id":"public/2023/10/20/front-end/verdaccio/index.html","hash":"5040e1941cc075888ab65739204646185d9db842","modified":1699248428225},{"_id":"public/archives/index.html","hash":"3b74740bb192bf7e6769b2de5762eda69accce41","modified":1699248428225},{"_id":"public/archives/page/2/index.html","hash":"3b74740bb192bf7e6769b2de5762eda69accce41","modified":1699248428225},{"_id":"public/archives/2023/index.html","hash":"3b74740bb192bf7e6769b2de5762eda69accce41","modified":1699248428225},{"_id":"public/archives/2023/page/2/index.html","hash":"3b74740bb192bf7e6769b2de5762eda69accce41","modified":1699248428225},{"_id":"public/archives/2023/10/index.html","hash":"3b74740bb192bf7e6769b2de5762eda69accce41","modified":1699248428225},{"_id":"public/archives/2023/11/index.html","hash":"3b74740bb192bf7e6769b2de5762eda69accce41","modified":1699248428225},{"_id":"public/categories/EQ/index.html","hash":"44edb45928d115a7d7c5d015835f31999bac6066","modified":1699248428225},{"_id":"public/index.html","hash":"c62d4c313b546d10605bf648b4de388a954690ab","modified":1699248428225},{"_id":"public/page/2/index.html","hash":"c62d4c313b546d10605bf648b4de388a954690ab","modified":1699248428225},{"_id":"public/font/motto.woff","hash":"755620f3bad3ebdf683c074043104d4c11f8d23e","modified":1699248428225},{"_id":"public/font/linear.woff2","hash":"57cac19ad34a50d5a4da5e471e08174c950ce5fb","modified":1699248428225},{"_id":"public/img/icon-arrow-left.svg","hash":"a36362d2555e8b836fcec1f7eeeae4588a871bdd","modified":1699248428225},{"_id":"public/img/icon-book.svg","hash":"d5e4064468dde477bf9a630c3fababec41316708","modified":1699248428225},{"_id":"public/img/icon-click.svg","hash":"b10df8b886a8b2d44293b26f42b440c9aedb66a7","modified":1699248428225},{"_id":"public/img/favicon.svg","hash":"6e88f8a231bb0a7ae4cc4598f85b6d346a286095","modified":1699248428225},{"_id":"public/img/icon-date.svg","hash":"b391e34adafed83ef52d836fd6f81618494c4c6b","modified":1699248428225},{"_id":"public/img/icon-layout.svg","hash":"108ef43073a5b92552dc00744a9f11db8e5ac0a2","modified":1699248428225},{"_id":"public/img/icon-link.svg","hash":"436b5ee7ef2d28766e86ac1e65a567d1e786c1b3","modified":1699248428225},{"_id":"public/img/icon-moon.svg","hash":"032be7ed3d2320f22069e2efb2fb7f60592d6212","modified":1699248428225},{"_id":"public/img/icon-sun.svg","hash":"57a0ce52ecce7188eaac5e06eab54609a8e572c8","modified":1699248428225},{"_id":"public/img/icon1.svg","hash":"f15fbcecbaa00db99aeaca9807922514f6452d02","modified":1699248428225},{"_id":"public/img/icon2.svg","hash":"cc598540651110d977afd26dc0a1f01bbc95bf21","modified":1699248428225},{"_id":"public/img/icon3.svg","hash":"a1a9dcee7703ec48f2d92b0d533b62fef16097fc","modified":1699248428225},{"_id":"public/img/qweather-color-icon/100.png","hash":"ad42001979a0dbb8807c128b871dc28161b8c191","modified":1699248428225},{"_id":"public/js/015f750d.js.LICENSE.txt","hash":"35ad54c8f1627db94ca60022d50f416d495b72c6","modified":1699248428225},{"_id":"public/img/qweather-color-icon/101.png","hash":"890888efd8db7a3f29427e476ce3433f4a564321","modified":1699248428225},{"_id":"public/img/qweather-color-icon/103.png","hash":"656d81bd50728c7ba62572e838db7c355d522e51","modified":1699248428225},{"_id":"public/img/qweather-color-icon/102.png","hash":"74d7cfa4f23850a456c16d0e0956264e920f7a85","modified":1699248428225},{"_id":"public/img/qweather-color-icon/104.png","hash":"36add97ed90d57e691e6e15d3456898a42dccb16","modified":1699248428225},{"_id":"public/img/qweather-color-icon/150.png","hash":"572b4a6e56271b89208daa538f02416d50249347","modified":1699248428225},{"_id":"public/img/qweather-color-icon/152.png","hash":"3ec0a1ac063ae068cc9d728eef88a9a6d7859153","modified":1699248428225},{"_id":"public/img/qweather-color-icon/300.png","hash":"bd67445ff764f3f1d4eeb81625372585bb537b07","modified":1699248428225},{"_id":"public/img/qweather-color-icon/151.png","hash":"8041e428fc369be40f9e993f4f718ae99c7662fa","modified":1699248428225},{"_id":"public/img/qweather-color-icon/153.png","hash":"3eb50d325ec84e1248585d347471b1093a83909c","modified":1699248428225},{"_id":"public/img/qweather-color-icon/302.png","hash":"371fa4d79b6a93573fde068f179829ed97c8f4f8","modified":1699248428225},{"_id":"public/img/qweather-color-icon/301.png","hash":"cc616d4c7ae6abbe0338f418fe35acce93c46164","modified":1699248428225},{"_id":"public/img/qweather-color-icon/303.png","hash":"453442f93e62ac98884aae173530f26272d97ad6","modified":1699248428225},{"_id":"public/img/qweather-color-icon/305.png","hash":"618e18bf06b5d12d64269b30d6f044fc356d24b0","modified":1699248428225},{"_id":"public/img/qweather-color-icon/304.png","hash":"3669eb04ee87dca604f70f7404c0ecb303d17af4","modified":1699248428225},{"_id":"public/img/qweather-color-icon/306.png","hash":"69b55e71e8da4e0fe223ff76b9a68f98e4134b3d","modified":1699248428225},{"_id":"public/img/qweather-color-icon/307.png","hash":"02a08e002d21a10e0854b1036556fb81b0308be3","modified":1699248428225},{"_id":"public/img/qweather-color-icon/308.png","hash":"ace460a40174aa90dde6c2ef71663f30cec24193","modified":1699248428225},{"_id":"public/img/qweather-color-icon/309.png","hash":"c5140be49b8936e5d30380f14f7dce49a7be7cb5","modified":1699248428225},{"_id":"public/img/qweather-color-icon/311.png","hash":"ab5c5059f354da2f9525b30ee81312fbfa4749bf","modified":1699248428225},{"_id":"public/img/qweather-color-icon/310.png","hash":"9315203066fa97a7d10f2a6fb0fd3ce5b7805126","modified":1699248428225},{"_id":"public/img/qweather-color-icon/313.png","hash":"afa70386816623e847c09f51032212d2520d1740","modified":1699248428225},{"_id":"public/img/qweather-color-icon/312.png","hash":"c672d7373fce89803b5e8d06420e158f11ea346f","modified":1699248428225},{"_id":"public/img/qweather-color-icon/314.png","hash":"110f9fe81f80b8f372b7472fbcfd9c0071b33151","modified":1699248428225},{"_id":"public/img/qweather-color-icon/315.png","hash":"2100a23ee6d584227715164263c43875e8d8946c","modified":1699248428225},{"_id":"public/img/qweather-color-icon/316.png","hash":"4de1ac0254507c5509fc4d04e208fd81d2af7b34","modified":1699248428225},{"_id":"public/img/qweather-color-icon/317.png","hash":"7e60725abd3b91b9ba388ad9b9f642690c39ff9e","modified":1699248428225},{"_id":"public/img/qweather-color-icon/318.png","hash":"7a042920165671cdbfef6c58596a80f9a1f6f016","modified":1699248428225},{"_id":"public/img/qweather-color-icon/350.png","hash":"f29c1aa55c4afd3df17aef7885a35b0bd177d771","modified":1699248428225},{"_id":"public/img/qweather-color-icon/351.png","hash":"3ab30470a65acb8fe879aa7adc9064284abd8407","modified":1699248428225},{"_id":"public/img/qweather-color-icon/399.png","hash":"993ddcd386480d211ec9b2e56656d659bb6c453b","modified":1699248428225},{"_id":"public/img/qweather-color-icon/400.png","hash":"79444a48a0e416e4cac1eb319496f495091f4c86","modified":1699248428225},{"_id":"public/img/qweather-color-icon/402.png","hash":"033fc236885a2bf7007d97eb054b0c5885035be5","modified":1699248428225},{"_id":"public/img/qweather-color-icon/401.png","hash":"279c8bc00b4e57db9b1095df64044ec80b37edb0","modified":1699248428225},{"_id":"public/img/qweather-color-icon/403.png","hash":"dfad1a525c4467c3e95e281befdf813e145620df","modified":1699248428225},{"_id":"public/img/qweather-color-icon/404.png","hash":"112e73e641d1a30712993b5dca681a5e033831ee","modified":1699248428225},{"_id":"public/img/qweather-color-icon/406.png","hash":"b9cd0421518e0a76041285e5bf0c1666a93428a5","modified":1699248428225},{"_id":"public/img/qweather-color-icon/407.png","hash":"82223792a5e3e556148b4663f195ef22044c143a","modified":1699248428225},{"_id":"public/img/qweather-color-icon/408.png","hash":"02b34a66020c9f3e5173702d30e5a7b69139bade","modified":1699248428225},{"_id":"public/img/qweather-color-icon/409.png","hash":"aed269911d0249a700b4f3890c424f00f4a27e1e","modified":1699248428225},{"_id":"public/img/qweather-color-icon/410.png","hash":"9170b32d6b7f644ce49116f3e35d35558bae6536","modified":1699248428225},{"_id":"public/img/qweather-color-icon/456.png","hash":"dd16b957cc544730afab8d2712821dd6c77f5167","modified":1699248428225},{"_id":"public/img/qweather-color-icon/499.png","hash":"2b51631144a7c0f813b6425d4daa30c4d4e8bd38","modified":1699248428225},{"_id":"public/img/qweather-color-icon/500.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1699248428225},{"_id":"public/img/qweather-color-icon/457.png","hash":"5dffe7e9139bfb697b046c427b9ef0ed6ffa95c7","modified":1699248428225},{"_id":"public/img/qweather-color-icon/502.png","hash":"4146081a2635ff88fa14e38ed8d360d3b4fa74dd","modified":1699248428225},{"_id":"public/img/qweather-color-icon/503.png","hash":"9415147c4bcebadd7f3089339064b8120c8d4089","modified":1699248428225},{"_id":"public/img/qweather-color-icon/504.png","hash":"defba93520719f72b217583062ccc79abd5b445e","modified":1699248428225},{"_id":"public/img/qweather-color-icon/501.png","hash":"ddb4712d8f19bb8c197e600000dd2d51049f970d","modified":1699248428225},{"_id":"public/img/qweather-color-icon/507.png","hash":"426d5a73a482ac5721e7da2141e4fe704f50b608","modified":1699248428225},{"_id":"public/img/qweather-color-icon/509.png","hash":"3bc779bfbcab94a79c91b26288e2e7b67412d15e","modified":1699248428225},{"_id":"public/img/qweather-color-icon/510.png","hash":"524131e401d0b150dab2733af336f4649b8ade74","modified":1699248428225},{"_id":"public/img/qweather-color-icon/511.png","hash":"e2efe07a29446ebecd313ccd8a2c7d57a670f203","modified":1699248428225},{"_id":"public/img/qweather-color-icon/513.png","hash":"ceff3dfd109a990c9595276ad6b56061bb662e5e","modified":1699248428225},{"_id":"public/img/qweather-color-icon/514.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1699248428225},{"_id":"public/img/qweather-color-icon/515.png","hash":"fdf992021ff20e1ffe1b19f0b918aa35204f22e7","modified":1699248428225},{"_id":"public/img/qweather-color-icon/508.png","hash":"ae98a3217df26021ec2f667f099d27575c912bf4","modified":1699248428225},{"_id":"public/img/qweather-color-icon/512.png","hash":"64e11f225c35caa6ef2612d613026c52cfd3557e","modified":1699248428225},{"_id":"public/img/qweather-color-icon/901.png","hash":"f6b3f1cd64e9c325e9dc3ab42469baa5c5119c2d","modified":1699248428225},{"_id":"public/img/qweather-color-icon/999.png","hash":"74e4fa5bdd815d988b55525d4e7f6d40bf1080d4","modified":1699248428225},{"_id":"public/img/qweather-color-icon/900.png","hash":"6eacf8df641c6096feb746c7544a825d3c65bf47","modified":1699248428225},{"_id":"public/img/avatar.png","hash":"7c2da2939b1a36315c45489fbc9930bac73f0880","modified":1699248428225},{"_id":"public/css/0c63d269.css","hash":"6b9b9796cf8ff9349b724f4b789f1347eaa0d476","modified":1699248428225},{"_id":"public/css/26c34ce6.css","hash":"261102615aa79d4c06044928ce90a832f943f2ca","modified":1699248428225},{"_id":"public/css/206.a3a4e130.css","hash":"f8c04ec30e94eb972ff315b8c1eef655b9e8a03e","modified":1699248428225},{"_id":"public/css/271.54fa1675.css","hash":"845cb754fd4ea780279a16e01a345d55889866e2","modified":1699248428225},{"_id":"public/css/21.88950121.css","hash":"44c9b83ffe9151e2e233c2f55b6e89b30ea7c7bb","modified":1699248428225},{"_id":"public/css/291.a8323266.css","hash":"e18068692b42ef4b76adc55d5ddc9f2bb10203f4","modified":1699248428225},{"_id":"public/css/2cd7dba2.css","hash":"dbc4f3071866019f0faae76620928ddf2f6700e6","modified":1699248428225},{"_id":"public/css/32ae9342.css","hash":"13860dfa3657005967610ec05d4dc75406a91a0c","modified":1699248428225},{"_id":"public/css/3320a187.css","hash":"e686aa536b92d71c936aa97de0c852bae1abdda3","modified":1699248428225},{"_id":"public/css/3efc6cb5.css","hash":"1f1958bfd921ac3eea83a1e14ed97e8e83b31fb6","modified":1699248428225},{"_id":"public/css/3a4a90d1.css","hash":"4ffc2c5e9f1afd4fa74d7d9b785e0697cd7fb770","modified":1699248428225},{"_id":"public/css/429.fb1dabcb.css","hash":"1f2b77bab319123d193042b9990056abe9f2fd73","modified":1699248428225},{"_id":"public/css/3fa188f4.css","hash":"913b63bd8186f0c7731f61dae6dc71b058e3038c","modified":1699248428225},{"_id":"public/css/5c728363.css","hash":"715635cbd3ce46fd0b82117bc757fab6d2277070","modified":1699248428225},{"_id":"public/css/766.64ad3c35.css","hash":"8434994030b9b9d0fa3a82df079c860f49543b82","modified":1699248428225},{"_id":"public/css/8eb236e5.css","hash":"803e1427c4d4f357a778e976d5b342c13c1a20b5","modified":1699248428225},{"_id":"public/css/5bfc518f.css","hash":"4b7c03f245b3d60c366321e6cad11ceee7c0a131","modified":1699248428225},{"_id":"public/css/945.fdf98cb0.css","hash":"f227a8697bf14eb75ba63d14a0608db53c9a50a1","modified":1699248428225},{"_id":"public/css/922.9efa0b6b.css","hash":"721bc1b89ae059267d9b4aa3cc37f5c1ff8f32c3","modified":1699248428225},{"_id":"public/css/ccbcde32.css","hash":"3475deea0241c67fadc3de5149886e90af24f2e6","modified":1699248428225},{"_id":"public/css/618.6513d67e.css","hash":"660188677fab2c0946ac4b8ed81611ad5472feb8","modified":1699248428225},{"_id":"public/css/f3729dde.css","hash":"2a7faa0c3816e3b653fb4540fa63504a26b2051f","modified":1699248428225},{"_id":"public/css/de5de8fb.css","hash":"a05682caa4e0b8a106578468f795dad472ee75da","modified":1699248428225},{"_id":"public/js/0c01b885.js","hash":"d98188b387d05911229c68bb5393b71ddaf7c3f4","modified":1699248428225},{"_id":"public/js/206.759361ed.js","hash":"129b5fd004afbbe4ab06cf6e944097b42c98655b","modified":1699248428225},{"_id":"public/js/271.ee88a6de.js","hash":"2d93e1c6f51c16e6cc0c41740dc1de5a0c362926","modified":1699248428225},{"_id":"public/js/31d6cfe0.js","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1699248428225},{"_id":"public/css/efca006a.css","hash":"97972d1b7ca177983b39a67e772736f661637468","modified":1699248428225},{"_id":"public/js/21.282c05e7.js","hash":"78359415e9f39c9c2119551ac2a97ba9f15af294","modified":1699248428225},{"_id":"public/js/3cf4fd98.js","hash":"0d51155f6dc08d1d8c693d210c1407b2e26b5685","modified":1699248428225},{"_id":"public/js/618.1a58fba9.js","hash":"afbe73ca7b78196e48dd9147a12db960d17589ff","modified":1699248428225},{"_id":"public/js/429.bc4769cb.js","hash":"926f0c003b8cfc0f4eb78ab6367aab9228d31abf","modified":1699248428225},{"_id":"public/js/9f1cd854.js","hash":"070029c5073bc3e67d98f1ac377d12f585bb4a2f","modified":1699248428225},{"_id":"public/js/c413ebaa.js","hash":"dd282af849c44345ad3e577efc8fa291468de653","modified":1699248428225},{"_id":"public/js/945.0313a94c.js","hash":"ccc3bda115641d497837d4cf8e93f776f0e64c6d","modified":1699248428225},{"_id":"public/js/291.4ac6984b.js","hash":"b5bb3c24cbcb7d09604c8c66c9d4470e6a2fd449","modified":1699248428225},{"_id":"public/js/766.9503a62c.js","hash":"9f2114b6ac69ab0a67b1c88c5f6c48ff244185f7","modified":1699248428225},{"_id":"public/js/f7dea7e6.js","hash":"cbe4fd8866e88638ee2538299b6dc4ca8eeb0a3f","modified":1699248428225},{"_id":"public/js/a02fa72b.js","hash":"527060080189f03b7332259a579af89c8d1367a3","modified":1699248428225},{"_id":"public/js/922.689e0633.js","hash":"1757f732da655e7dc36fe4a23d29b72a549e9423","modified":1699248428225},{"_id":"public/js/f8b20eb9.js","hash":"86cff2cb169c614dedd464b373d94322328cb185","modified":1699248428225},{"_id":"public/js/ca6b30b5.js","hash":"481a8f20c3d4e565c1ea5dafe4218597d051a9fc","modified":1699248428225},{"_id":"public/js/015f750d.js","hash":"afa077a8c00e9d5363173e921da42e9206bbef0d","modified":1699248428225},{"_id":"public/js/cdca7001.js","hash":"cd27e408febd15a99bafdf9da8a834bb1b6902c3","modified":1699248428225},{"_id":"public/img/bolt.png","hash":"9f178950034e1ad5c5248b9caaca36e2f784225d","modified":1699248428225},{"_id":"public/img/cvpilot.png","hash":"e10abaca3fd20488b0889a4da84d65312e5ac3ad","modified":1699248428225},{"_id":"public/img/logo.png","hash":"05730ab0dadd5036509f942834278eef683994dd","modified":1699248428225},{"_id":"public/img/hexo-theme-linear-dark.png","hash":"758aef1e3d9a83844d2871e8ceaccf6767e78284","modified":1699248428225},{"_id":"public/img/algolia-api-keys.png","hash":"8b2f85a93b52f0590e9b8fe2d2405427c99e2280","modified":1699248428225},{"_id":"public/img/mz10nq.png","hash":"e26097f94ae54967e68f36b13b6aca80c4d173de","modified":1699248428225}],"Category":[{"name":"EQ","_id":"clomgn2p10004fwz39amidebp"},{"name":"Hexo","_id":"clomgn2p20008fwz3e3dq6qka"},{"name":"Finance","_id":"clomgn2p5000gfwz39l6nbsnh"},{"name":"Front-End","_id":"clomgn2p7000pfwz33enw8499"}],"Data":[],"Page":[{"title":"简历 · 陈不渡Mozzie","layout":"resume","avatar":"/img/avatar.png","name":"Hi! Mozzie","role":"Full Stack","email":"himozzie@gmail.com","phone":"+86 180-xxxx-xxx","birth":"Jan 21, 1994","location":"Nanjing, China","social":[{"name":"github","link":"https://github.com/17px","icon":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 24 24\"><path d=\"M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>"}],"about":["熟练掌握Vue和React全家桶,包括状态管理和组件库,如ElementPlus 和 AntDesign。在前端工程化方面,有 Webpack 和 Vite 的配置经验。具备 SpringBoot、Egg、Koa2 和 Midway 的项目经验,并在微服务架构下使用 Nestjs。熟悉Linux基础命令和Nginx、Docker的使用。","在3D图形和医疗前端方面,具有 three.js 和 Vtk.js 的实践经验"],"skill":["熟悉常见的数据结构和算法,熟悉设计模式","熟悉前端基础 HTML5、CSS3、JS、ES6+、TypeScript 语法","熟悉 Vue2、Vue3 全家桶,熟悉 ElementPlus、NaiveUI,熟悉 Vue 原理","熟悉 React 技术栈,熟悉 Hooks 语法,熟悉 AntDesign,熟悉 React 原理","熟悉微信小程序开发,熟悉 Taro 框架的使用","熟悉 Webpack、Vite 常见配置,以及性能优化配置","熟悉 Node,具备后端开发能力,SpringBoot、Egg、Koa2、Midway 单体应用项目经验,Nestjs 微服务应用项目经验","有 Monorepo 工程化经验,具备单体前后端分离应用 DevOps 能力","熟悉 three.js、了解 Vtk.js,具备医疗 3D 前端、图形学相关的开发经验","掌握 Linux 基本命令,了解 Nginx、Docker 基本使用"],"education":[{"school":"南京信息工程大学滨江学院 / 本科","time":"2012-2016"}],"workExp":[{"inc":"拓微摹心数据科技(南京)有限公司 · 全栈","time":"2021.09 ~ 至今"},{"inc":"南京寻鹿网络科技有限公司 · 前端","time":"2016.09 ~ 2019.06"}],"projectExp":[{"name":"CVPilot算法、标注数据中台","desc":"具备高精度数据标注、强大的数据管理、算法集成、多级用户权限、标注流程协作、算法模型版本、训练测试、API接口和数据可视化等功能,全面支持公司内部医疗影像分析和诊断","list":["使用 Pnpm workspace 实现 Monorepo 多个代码仓库管理,支持多个框架并存,可共享公共组件库和能力","自行使用 rollup 沉淀了部分可复用基础模块,如:UI 组件库、对象存储、邮件、短信、企业微信机器人通知","使用 Nest.js 开发,基于事件驱动架构,重构后端服务体系","基于 rbac 设计了认证中心,解决业务应用中用户统一授权、鉴权的问题","使用 orthanc 搭建 Pacs 影像、并且基于标注、业务流程设计了影像上层的标签系统","使用 pdf.js 实现 3Mensio、FluoroCT 医疗报告关键字段的自动解析,Cover了 80%+ 的字段","设计了前后端一体开发的领域驱动设计(DDD)项目架构,并成功实践"]},{"name":"TAVR手术辅助决策系统 Tavigator™","desc":"系统实现了对CT影像主动脉根部解剖结构的全自动化、全流程手术规划测量,为瓣膜选型、术中并发症风险预测","list":["基于容器,解决算法输出 stl 模型增加血管壁厚等后处理需求","在 OHIF 基础上,重新规划项目结构,工程化相关优化,构建速度提升8倍","对 orthanc 配置进行了优化,使用 postgreSQL 存储影像数据","实践了 threejs 替换了 vtk.js 的默认三维渲染引擎,节省了某些场景下 Vtk.js占用内存过大的问题","使用了 chrome的 snapshot、调用栈,优化页面内存 3GB+,使用 Indexdb 与 Webworker 对 Dicom 读片速度优化了3倍以上","使用 webworker、请求队列,实现了在 http1.1 环境下,提升用户上传 Dicom影像 74% 上传效率。同时针对不同大小、类型的文件,设计了不同的 Hash 切片方案,提升了文件完整性验证速度提升","使用了 Http3 和 nginx-quic,使用 Brotli 替换 gzip,实现了静载资源传输速度提升 17% - 25%"]},{"name":"Bolt 组件库、文档设计系统","desc":"前端基建,Bolt 用于构建快速组件库、文档。你可以在开发react组件库的同时, 无缝地编写组件文档, 实时热更新","list":["React 组件的 Props 解析,自动生成组件的 API 表格","组件的开发阶段,实施更新,所见即所得","依赖 vite 插件机制,200+ 以上组件,开发阶段秒级热更新","智能生成组件说明文档,构建产物分离组件库、文档静态站,支持全局、局部引入"]},{"name":"瓣侣 - 微信小程序","desc":"一款支持医生、病人查看算法分割后数字孪生心脏模型的小程序","list":["使用 taro 对小程序端实现3d模型展示,进行了技术选型,移植了STLloader 到 three-platformize 中,解决了 stl 模型加载的问题","解决小程序内存占用过大,导致部分机型崩溃的问题","使用包围盒对多个分割模型组合及位置修正、空间测量计算,实现瓣环样条绘制、空间拾取高亮等功能"]}],"portfolio":[{"name":"CVPilot (原Tavigator)","desc":"TAVR手术辅助决策系统","iconSVG":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\"><path d=\"M21 10h-4V6h-2v4h-4v2h4v4h2v-4h4v-2z\" fill=\"currentColor\"></path><path d=\"M28 10h-2V4a2.002 2.002 0 0 0-2-2H8a2.002 2.002 0 0 0-2 2v6H4a2.002 2.002 0 0 0-2 2v18h28V12a2.002 2.002 0 0 0-2-2zM14 28v-6h4v6zm6 0v-7a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v7H4V12h4V4h16v8h4v16z\" fill=\"currentColor\"></path></svg>","link":"https://www.tavi.fit"},{"name":"Bolt Design","desc":"基于 Vite 开发的 React 组件、文档一体化系统","iconSVG":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6.357 9C3.72 9.68 2 10.845 2 12.175C2 14.282 6.405 16 11.85 16c.74 0 1.26-.039 1.95-.097\"></path><path d=\"M9.837 15.9c-.413-.596-.806-1.133-1.18-1.8c-2.751-4.9-3.488-9.77-1.63-10.873c1.15-.697 3.047.253 4.974 2.254\"></path><path d=\"M6.429 15.387c-.702 2.688-.56 4.716.56 5.395c1.783 1.08 5.387-1.958 8.043-6.804c.36-.67.683-1.329.968-1.978\"></path><path d=\"M12 18.52c1.928 2 3.817 2.95 4.978 2.253c1.85-1.102 1.121-5.972-1.633-10.873c-.384-.677-.777-1.204-1.18-1.8\"></path><path d=\"M17.66 15c2.612-.687 4.34-1.85 4.34-3.176C22 9.714 17.592 8 12.155 8c-.747 0-1.266.029-1.955.087\"></path><path d=\"M8 12c.285-.66.607-1.308.968-1.978c2.647-4.844 6.253-7.89 8.046-6.801c1.11.679 1.262 2.706.56 5.393\"></path><path d=\"M12.26 12.015h-.01c-.01.13-.12.24-.26.24a.263.263 0 0 1-.25-.26c0-.14.11-.25.24-.25h-.01c.13-.01.25.11.25.24\"></path></g></svg>","link":"https://amo.mozzie.cn/"},{"name":"hexo-theme-cosy","desc":"Minimalist, pursuing the ultimate loading speed for a Hexo theme","iconSVG":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 24 24\"><path d=\"M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>","link":"https://github.com/17px/hexo-theme-cosy"}],"_content":"","source":"resume/index.md","raw":"---\ntitle: 简历 · 陈不渡Mozzie\nlayout: resume\navatar: /img/avatar.png\nname: Hi! Mozzie\nrole: Full Stack\nemail: himozzie@gmail.com\nphone: +86 180-xxxx-xxx\nbirth: Jan 21, 1994\nlocation: Nanjing, China\nsocial:\n - name: github\n link: https://github.com/17px\n icon: <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 24 24\"><path d=\"M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\nabout:\n - 熟练掌握Vue和React全家桶,包括状态管理和组件库,如ElementPlus 和 AntDesign。在前端工程化方面,有 Webpack 和 Vite 的配置经验。具备 SpringBoot、Egg、Koa2 和 Midway 的项目经验,并在微服务架构下使用 Nestjs。熟悉Linux基础命令和Nginx、Docker的使用。\n - 在3D图形和医疗前端方面,具有 three.js 和 Vtk.js 的实践经验\n\nskill:\n - 熟悉常见的数据结构和算法,熟悉设计模式\n - 熟悉前端基础 HTML5、CSS3、JS、ES6+、TypeScript 语法\n - 熟悉 Vue2、Vue3 全家桶,熟悉 ElementPlus、NaiveUI,熟悉 Vue 原理\n - 熟悉 React 技术栈,熟悉 Hooks 语法,熟悉 AntDesign,熟悉 React 原理\n - 熟悉微信小程序开发,熟悉 Taro 框架的使用\n - 熟悉 Webpack、Vite 常见配置,以及性能优化配置\n - 熟悉 Node,具备后端开发能力,SpringBoot、Egg、Koa2、Midway 单体应用项目经验,Nestjs 微服务应用项目经验\n - 有 Monorepo 工程化经验,具备单体前后端分离应用 DevOps 能力\n - 熟悉 three.js、了解 Vtk.js,具备医疗 3D 前端、图形学相关的开发经验\n - 掌握 Linux 基本命令,了解 Nginx、Docker 基本使用\n\neducation:\n - school: 南京信息工程大学滨江学院 / 本科\n time: 2012-2016\n\nworkExp:\n - inc: 拓微摹心数据科技(南京)有限公司 · 全栈\n time: 2021.09 ~ 至今\n - inc: 南京寻鹿网络科技有限公司 · 前端\n time: 2016.09 ~ 2019.06\n\nprojectExp:\n - name: CVPilot算法、标注数据中台\n desc: 具备高精度数据标注、强大的数据管理、算法集成、多级用户权限、标注流程协作、算法模型版本、训练测试、API接口和数据可视化等功能,全面支持公司内部医疗影像分析和诊断\n list:\n - 使用 Pnpm workspace 实现 Monorepo 多个代码仓库管理,支持多个框架并存,可共享公共组件库和能力\n - 自行使用 rollup 沉淀了部分可复用基础模块,如:UI 组件库、对象存储、邮件、短信、企业微信机器人通知\n - 使用 Nest.js 开发,基于事件驱动架构,重构后端服务体系\n - 基于 rbac 设计了认证中心,解决业务应用中用户统一授权、鉴权的问题\n - 使用 orthanc 搭建 Pacs 影像、并且基于标注、业务流程设计了影像上层的标签系统\n - 使用 pdf.js 实现 3Mensio、FluoroCT 医疗报告关键字段的自动解析,Cover了 80%+ 的字段\n - 设计了前后端一体开发的领域驱动设计(DDD)项目架构,并成功实践\n\n - name: TAVR手术辅助决策系统 Tavigator™\n desc: 系统实现了对CT影像主动脉根部解剖结构的全自动化、全流程手术规划测量,为瓣膜选型、术中并发症风险预测\n list:\n - 基于容器,解决算法输出 stl 模型增加血管壁厚等后处理需求\n - 在 OHIF 基础上,重新规划项目结构,工程化相关优化,构建速度提升8倍\n - 对 orthanc 配置进行了优化,使用 postgreSQL 存储影像数据\n - 实践了 threejs 替换了 vtk.js 的默认三维渲染引擎,节省了某些场景下 Vtk.js占用内存过大的问题\n - 使用了 chrome的 snapshot、调用栈,优化页面内存 3GB+,使用 Indexdb 与 Webworker 对 Dicom 读片速度优化了3倍以上\n - 使用 webworker、请求队列,实现了在 http1.1 环境下,提升用户上传 Dicom影像 74% 上传效率。同时针对不同大小、类型的文件,设计了不同的 Hash 切片方案,提升了文件完整性验证速度提升\n - 使用了 Http3 和 nginx-quic,使用 Brotli 替换 gzip,实现了静载资源传输速度提升 17% - 25%\n\n - name: Bolt 组件库、文档设计系统\n desc: 前端基建,Bolt 用于构建快速组件库、文档。你可以在开发react组件库的同时, 无缝地编写组件文档, 实时热更新\n list:\n - React 组件的 Props 解析,自动生成组件的 API 表格\n - 组件的开发阶段,实施更新,所见即所得\n - 依赖 vite 插件机制,200+ 以上组件,开发阶段秒级热更新\n - 智能生成组件说明文档,构建产物分离组件库、文档静态站,支持全局、局部引入\n\n - name: 瓣侣 - 微信小程序\n desc: 一款支持医生、病人查看算法分割后数字孪生心脏模型的小程序\n list:\n - 使用 taro 对小程序端实现3d模型展示,进行了技术选型,移植了STLloader 到 three-platformize 中,解决了 stl 模型加载的问题\n - 解决小程序内存占用过大,导致部分机型崩溃的问题\n - 使用包围盒对多个分割模型组合及位置修正、空间测量计算,实现瓣环样条绘制、空间拾取高亮等功能\n\nportfolio:\n - name: CVPilot (原Tavigator)\n desc: TAVR手术辅助决策系统\n iconSVG: <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\"><path d=\"M21 10h-4V6h-2v4h-4v2h4v4h2v-4h4v-2z\" fill=\"currentColor\"></path><path d=\"M28 10h-2V4a2.002 2.002 0 0 0-2-2H8a2.002 2.002 0 0 0-2 2v6H4a2.002 2.002 0 0 0-2 2v18h28V12a2.002 2.002 0 0 0-2-2zM14 28v-6h4v6zm6 0v-7a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v7H4V12h4V4h16v8h4v16z\" fill=\"currentColor\"></path></svg>\n link: https://www.tavi.fit\n\n - name: Bolt Design\n desc: 基于 Vite 开发的 React 组件、文档一体化系统\n iconSVG: <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 24 24\"><g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6.357 9C3.72 9.68 2 10.845 2 12.175C2 14.282 6.405 16 11.85 16c.74 0 1.26-.039 1.95-.097\"></path><path d=\"M9.837 15.9c-.413-.596-.806-1.133-1.18-1.8c-2.751-4.9-3.488-9.77-1.63-10.873c1.15-.697 3.047.253 4.974 2.254\"></path><path d=\"M6.429 15.387c-.702 2.688-.56 4.716.56 5.395c1.783 1.08 5.387-1.958 8.043-6.804c.36-.67.683-1.329.968-1.978\"></path><path d=\"M12 18.52c1.928 2 3.817 2.95 4.978 2.253c1.85-1.102 1.121-5.972-1.633-10.873c-.384-.677-.777-1.204-1.18-1.8\"></path><path d=\"M17.66 15c2.612-.687 4.34-1.85 4.34-3.176C22 9.714 17.592 8 12.155 8c-.747 0-1.266.029-1.955.087\"></path><path d=\"M8 12c.285-.66.607-1.308.968-1.978c2.647-4.844 6.253-7.89 8.046-6.801c1.11.679 1.262 2.706.56 5.393\"></path><path d=\"M12.26 12.015h-.01c-.01.13-.12.24-.26.24a.263.263 0 0 1-.25-.26c0-.14.11-.25.24-.25h-.01c.13-.01.25.11.25.24\"></path></g></svg>\n link: https://amo.mozzie.cn/\n\n - name: hexo-theme-cosy\n desc: Minimalist, pursuing the ultimate loading speed for a Hexo theme\n iconSVG: <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 24 24\"><path d=\"M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n link: https://github.com/17px/hexo-theme-cosy\n---\n","date":"2023-11-03T03:15:41.632Z","updated":"2023-11-03T03:15:41.632Z","path":"resume/index.html","comments":1,"_id":"clomgn2ov0000fwz33nogbkj2","content":"","site":{"data":{}},"excerpt":"","more":""},{"title":"陈不渡 - roadmap","layout":"roadmap","initYear":2023,"years":{"2022":[{"title":"读书","start":"01-01","end":"1-5"},{"title":"还是读书","start":"02-01","end":"05-30"}],"2023":[{"title":"开发hexo-theme-cosy主题","start":"09-03","end":"10-03","content":"基本功能基本迭代完成,目前稳定在1.2.4版本"},{"title":"视频AI无闪烁转绘","start":"10-25","end":"11-04","content":"stable diffusion + Ebsynth 插帧"},{"title":"成为一名飞手","start":"11-04","end":"11-09","content":"UTC无人驾驶航空器系统操作手合格证"}]},"_content":"","source":"roadmap/index.md","raw":"---\ntitle: 陈不渡 - roadmap\nlayout: roadmap\ninitYear: 2023\nyears:\n 2022:\n - title: 读书\n start: 01-01\n end: 1-5\n - title: 还是读书\n start: 02-01\n end: 05-30\n\n 2023:\n - title: 开发hexo-theme-cosy主题\n start: 09-03\n end: 10-03\n content: 基本功能基本迭代完成,目前稳定在1.2.4版本\n\n - title: 视频AI无闪烁转绘\n start: 10-25\n end: 11-04\n content: stable diffusion + Ebsynth 插帧\n\n - title: 成为一名飞手\n start: 11-04\n end: 11-09\n content: UTC无人驾驶航空器系统操作手合格证\n---","date":"2023-11-06T05:25:05.415Z","updated":"2023-11-06T05:25:05.415Z","path":"roadmap/index.html","comments":1,"_id":"clomgn2p00002fwz39d5z7mjq","content":"","site":{"data":{}},"excerpt":"","more":""}],"Post":[{"title":"有效对话指南","top":0,"status":"done","_content":"\n卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择\n\n# 目的\n\n沟通目的无非两个:\n\n- 让对方认同我们的观点\n- 或者按我们说的做\n\n# 搞定情绪\n\n大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半\n\n## 夸 - 细节\n\n不吝赞美,就一个字“夸”,具体怎么夸呢?\n\n细节就是不要太笼统:\n\n- 😭 你穿的真好看 \n- 😊 今天的上衣显得你很白,太美了\n\n## 夸 - 对比\n\n- 😭 你今天穿的真好看\n- 😊 你今天穿的真好看,一般人可传不出这种气质\n\n## 我能理解你,换我也生气\n\n接纳对方的负面情绪,把双方情绪拉回到安全范围内。\n\n## 肢体同步\n\n如果你的肢体动作跟对方同步,它会产生一种被共情的感觉\n\n- 对方说的火热,身体前倾,伺机凑近\n- 思考一到两秒钟再反馈,这个简单的停顿\n\n# 只陈述不评论\n\n事实不会引起争议\n\n比如:孩子考试没及格是事实,说他笨死了就是评论了。\n\n再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。\n\n## 评论副词\n\n尽量规避一些跟评论相关的糊的频率副词,比如\n- 笨\n- 懒\n- 坏\n- 总是\n- 永远\n- 每次\n\n# 保持开放性\n\n还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通\n\n- 孩子没及格,老爸说下次必须及格。\n- 你上班迟到,老板说再迟到扣薪水。\n\n如果换成开放式沟通:\n\n- 老爸说咱们聊聊哪些题没有搞清楚\n- 老板说生活上是不是遇到了什么问题,没着我可以帮你\n\n# 反馈事实\n\n这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词\n\n- 问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类\n- 让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人\n\n","source":"_posts/A Guide to Effective Dialogue.md","raw":"---\ntitle: 有效对话指南\ntop: 0\ncategories:\n - EQ\nstatus: done\n---\n\n卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择\n\n# 目的\n\n沟通目的无非两个:\n\n- 让对方认同我们的观点\n- 或者按我们说的做\n\n# 搞定情绪\n\n大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半\n\n## 夸 - 细节\n\n不吝赞美,就一个字“夸”,具体怎么夸呢?\n\n细节就是不要太笼统:\n\n- 😭 你穿的真好看 \n- 😊 今天的上衣显得你很白,太美了\n\n## 夸 - 对比\n\n- 😭 你今天穿的真好看\n- 😊 你今天穿的真好看,一般人可传不出这种气质\n\n## 我能理解你,换我也生气\n\n接纳对方的负面情绪,把双方情绪拉回到安全范围内。\n\n## 肢体同步\n\n如果你的肢体动作跟对方同步,它会产生一种被共情的感觉\n\n- 对方说的火热,身体前倾,伺机凑近\n- 思考一到两秒钟再反馈,这个简单的停顿\n\n# 只陈述不评论\n\n事实不会引起争议\n\n比如:孩子考试没及格是事实,说他笨死了就是评论了。\n\n再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。\n\n## 评论副词\n\n尽量规避一些跟评论相关的糊的频率副词,比如\n- 笨\n- 懒\n- 坏\n- 总是\n- 永远\n- 每次\n\n# 保持开放性\n\n还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通\n\n- 孩子没及格,老爸说下次必须及格。\n- 你上班迟到,老板说再迟到扣薪水。\n\n如果换成开放式沟通:\n\n- 老爸说咱们聊聊哪些题没有搞清楚\n- 老板说生活上是不是遇到了什么问题,没着我可以帮你\n\n# 反馈事实\n\n这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词\n\n- 问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类\n- 让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人\n\n","slug":"A Guide to Effective Dialogue","published":1,"date":"2023-11-06T05:25:00.499Z","updated":"2023-11-06T05:25:00.499Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2ow0001fwz3d7v1h0ob","content":"<p>卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择</p>\n<h1 id=\"目的\"><a href=\"#目的\" class=\"headerlink\" title=\"目的\"></a>目的</h1><p>沟通目的无非两个:</p>\n<ul>\n<li>让对方认同我们的观点</li>\n<li>或者按我们说的做</li>\n</ul>\n<h1 id=\"搞定情绪\"><a href=\"#搞定情绪\" class=\"headerlink\" title=\"搞定情绪\"></a>搞定情绪</h1><p>大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半</p>\n<h2 id=\"夸-细节\"><a href=\"#夸-细节\" class=\"headerlink\" title=\"夸 - 细节\"></a>夸 - 细节</h2><p>不吝赞美,就一个字“夸”,具体怎么夸呢?</p>\n<p>细节就是不要太笼统:</p>\n<ul>\n<li>😭 你穿的真好看 </li>\n<li>😊 今天的上衣显得你很白,太美了</li>\n</ul>\n<h2 id=\"夸-对比\"><a href=\"#夸-对比\" class=\"headerlink\" title=\"夸 - 对比\"></a>夸 - 对比</h2><ul>\n<li>😭 你今天穿的真好看</li>\n<li>😊 你今天穿的真好看,一般人可传不出这种气质</li>\n</ul>\n<h2 id=\"我能理解你,换我也生气\"><a href=\"#我能理解你,换我也生气\" class=\"headerlink\" title=\"我能理解你,换我也生气\"></a>我能理解你,换我也生气</h2><p>接纳对方的负面情绪,把双方情绪拉回到安全范围内。</p>\n<h2 id=\"肢体同步\"><a href=\"#肢体同步\" class=\"headerlink\" title=\"肢体同步\"></a>肢体同步</h2><p>如果你的肢体动作跟对方同步,它会产生一种被共情的感觉</p>\n<ul>\n<li>对方说的火热,身体前倾,伺机凑近</li>\n<li>思考一到两秒钟再反馈,这个简单的停顿</li>\n</ul>\n<h1 id=\"只陈述不评论\"><a href=\"#只陈述不评论\" class=\"headerlink\" title=\"只陈述不评论\"></a>只陈述不评论</h1><p>事实不会引起争议</p>\n<p>比如:孩子考试没及格是事实,说他笨死了就是评论了。</p>\n<p>再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。</p>\n<h2 id=\"评论副词\"><a href=\"#评论副词\" class=\"headerlink\" title=\"评论副词\"></a>评论副词</h2><p>尽量规避一些跟评论相关的糊的频率副词,比如</p>\n<ul>\n<li>笨</li>\n<li>懒</li>\n<li>坏</li>\n<li>总是</li>\n<li>永远</li>\n<li>每次</li>\n</ul>\n<h1 id=\"保持开放性\"><a href=\"#保持开放性\" class=\"headerlink\" title=\"保持开放性\"></a>保持开放性</h1><p>还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通</p>\n<ul>\n<li>孩子没及格,老爸说下次必须及格。</li>\n<li>你上班迟到,老板说再迟到扣薪水。</li>\n</ul>\n<p>如果换成开放式沟通:</p>\n<ul>\n<li>老爸说咱们聊聊哪些题没有搞清楚</li>\n<li>老板说生活上是不是遇到了什么问题,没着我可以帮你</li>\n</ul>\n<h1 id=\"反馈事实\"><a href=\"#反馈事实\" class=\"headerlink\" title=\"反馈事实\"></a>反馈事实</h1><p>这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词</p>\n<ul>\n<li>问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类</li>\n<li>让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人</li>\n</ul>\n","site":{"data":{}},"excerpt":"","more":"<p>卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择</p>\n<h1 id=\"目的\"><a href=\"#目的\" class=\"headerlink\" title=\"目的\"></a>目的</h1><p>沟通目的无非两个:</p>\n<ul>\n<li>让对方认同我们的观点</li>\n<li>或者按我们说的做</li>\n</ul>\n<h1 id=\"搞定情绪\"><a href=\"#搞定情绪\" class=\"headerlink\" title=\"搞定情绪\"></a>搞定情绪</h1><p>大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半</p>\n<h2 id=\"夸-细节\"><a href=\"#夸-细节\" class=\"headerlink\" title=\"夸 - 细节\"></a>夸 - 细节</h2><p>不吝赞美,就一个字“夸”,具体怎么夸呢?</p>\n<p>细节就是不要太笼统:</p>\n<ul>\n<li>😭 你穿的真好看 </li>\n<li>😊 今天的上衣显得你很白,太美了</li>\n</ul>\n<h2 id=\"夸-对比\"><a href=\"#夸-对比\" class=\"headerlink\" title=\"夸 - 对比\"></a>夸 - 对比</h2><ul>\n<li>😭 你今天穿的真好看</li>\n<li>😊 你今天穿的真好看,一般人可传不出这种气质</li>\n</ul>\n<h2 id=\"我能理解你,换我也生气\"><a href=\"#我能理解你,换我也生气\" class=\"headerlink\" title=\"我能理解你,换我也生气\"></a>我能理解你,换我也生气</h2><p>接纳对方的负面情绪,把双方情绪拉回到安全范围内。</p>\n<h2 id=\"肢体同步\"><a href=\"#肢体同步\" class=\"headerlink\" title=\"肢体同步\"></a>肢体同步</h2><p>如果你的肢体动作跟对方同步,它会产生一种被共情的感觉</p>\n<ul>\n<li>对方说的火热,身体前倾,伺机凑近</li>\n<li>思考一到两秒钟再反馈,这个简单的停顿</li>\n</ul>\n<h1 id=\"只陈述不评论\"><a href=\"#只陈述不评论\" class=\"headerlink\" title=\"只陈述不评论\"></a>只陈述不评论</h1><p>事实不会引起争议</p>\n<p>比如:孩子考试没及格是事实,说他笨死了就是评论了。</p>\n<p>再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。</p>\n<h2 id=\"评论副词\"><a href=\"#评论副词\" class=\"headerlink\" title=\"评论副词\"></a>评论副词</h2><p>尽量规避一些跟评论相关的糊的频率副词,比如</p>\n<ul>\n<li>笨</li>\n<li>懒</li>\n<li>坏</li>\n<li>总是</li>\n<li>永远</li>\n<li>每次</li>\n</ul>\n<h1 id=\"保持开放性\"><a href=\"#保持开放性\" class=\"headerlink\" title=\"保持开放性\"></a>保持开放性</h1><p>还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通</p>\n<ul>\n<li>孩子没及格,老爸说下次必须及格。</li>\n<li>你上班迟到,老板说再迟到扣薪水。</li>\n</ul>\n<p>如果换成开放式沟通:</p>\n<ul>\n<li>老爸说咱们聊聊哪些题没有搞清楚</li>\n<li>老板说生活上是不是遇到了什么问题,没着我可以帮你</li>\n</ul>\n<h1 id=\"反馈事实\"><a href=\"#反馈事实\" class=\"headerlink\" title=\"反馈事实\"></a>反馈事实</h1><p>这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词</p>\n<ul>\n<li>问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类</li>\n<li>让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人</li>\n</ul>\n"},{"title":"Cosy 入门","top":2,"status":"doing","_content":"\n# Hexo 安装主题\n\n`Hexo` 主题的安装方式非常简单,只需将主题 `Hexo-theme-cosy` 复制目录的 `themes` 目录下,然后在 `Hexo` 的 `_config.yml` 中修改下主题配置即可\n\n```yml\n# 找到 theme 配置项\ntheme: Hexo-theme-cosy\n```\n\n## 获取 Cosy\n\n- 进入 [Cosy 代码仓库](https://github.com/17px/hexo-theme-cosy/tree/main),了解最新的主题开发进度\n- 在 [发布页面](https://github.com/17px/hexo-theme-cosy/releases) 下载 `hexo-theme-cosy.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-cosy/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# Cosy 主题配置\n\n下面的配置基于 `Hexo-theme-cosy` 下的 `_config.yml` \n\n## 文章分类图标\n\n按照顺序,依次设置 `svg` 图标,可以在 [xicon](https://www.xicons.org/) 方面的获取丰富的图标\n\n```yml\npostCategoryIcons:\n - <svg>...</svg>\n - <svg>...</svg>\n - <svg>...</svg>\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\nCosy 主要针对国内用户,在首页集成了和风天气的卡片,通过 [和风天气开发服务](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用于区分文章的状态,同时利用文章分类列表的`筛选`,进行快速筛选,Cosy 主题内置了 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\nHexo 使用 Markdown(或其他渲染引擎)解析你的文章,并生成静态文件以快速加载。除了默认生成的文章和归档页面之外,Hexo 还允许你创建自定义页面。\n\n## Roadmap路线图\n\n创建页面,你可以使用命令\n\n```bash\nhexo new page roadmap\n```\n\n成功后在 `source/` 文件夹下会生成一个新的文件夹 `/roadmap/index.md`\n\n你可以参照此模板,进行配置,参数说明:\n\n- title: roadmap页面 html 的标题\n- initYear: 默认显示的年份\n\n```markdown\n---\ntitle: 陈不渡 - roadmap\nlayout: roadmap\ninitYear: 2023\nyears:\n 2022:\n - title: 读书\n start: 01-01\n end: 1-5\n - title: 还是读书\n start: 02-01\n end: 05-30\n 2023:\n - title: 越陌度阡\n start: 01-01\n end: 1-2\n - title: 枉用相存\n start: 02-01\n end: 06-30\n - title: 短歌行\n start: 10-26\n end: 10-31\n content: 对酒当歌,人生几何!譬如朝露,去日苦多。慨当以慷,忧思难忘。何以解忧?唯有杜康。青青子衿,悠悠我心。但为君故,沉吟至今。呦呦鹿鸣,食野之苹。\n - title: 声律启蒙\n start: 11-01\n end: 11-31\n content: 花开红锦绣,水漾碧琉璃。去妇因探邻舍枣,出妻为种后园葵\n---\n```\n\n## Resume简历页面\n\n创建页面,你可以使用命令\n\n```bash\nhexo new page resume\n```\n\n成功后在 `source/` 文件夹下会生成一个新的文件夹 `/resume/index.md`\n\n你可以参照此模板,进行配置,参数说明:\n\n- title: resume 页面 html 的标题\n- avatar: 头像图片的地址\n\n```yml\ntitle: 页面标题document.title\nlayout: resume\navatar: /img/avatar.png\nname: Hi! Mozzie\nrole: Full Stack\nemail: himozzie@gmail.com\nphone: +86 180-xxxx-xxx\nbirth: Jan 21, 1994\nlocation: Nanjing, China\nsocial:\n - name: github\n link: https://github.com/17px\n icon: svg\n\nabout:\n - 我的工作是建立你的网站,使其功能强大,用户友好,但同时具有吸引力。\n - 此外,我为您的产品添加了个人风格,并确保其引人注目且易于使用。我的目标是以最有创意的方式传达你的信息和身份。我为许多知名品牌公司设计网页。\n\nskill:\n - 熟悉Node,具备后端开发能力,有SpringBoot、Egg、Koa2、Midway等单个应用项目经验,有Nestjs微服务应用项目经验\n - 具有Monoreo工程经验,能够分离单个单元的前端和后端并应用DevOps\n\neducation:\n - school: 大学艺术学院\n time: 2012-2016\n\nworkExp:\n - inc: 创意研发\n time: 2021.09 ~ 至今\n - inc: Web设计\n time: 2021.01 ~ 2021.09\n\nprojectExp:\n - name: PC/React• 标注 ,算法数据中心\n desc: 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n list: \n - 使用pnpm工作区管理Monorepo中的多个代码库,支持多个框架共存,共享通用组件库和功能\n\n - name: PC/React•Tavigator主动脉根部/外周\n desc: 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n\n\nportfolio:\n - name: 项目A\n desc: 项目A描述\n iconSVG: 复制svg的path到这里\n link: 网址,http(s)://...\n # 更多 ...\n\n```","source":"_posts/Cosy-Starter-Guide.md","raw":"---\ntitle: Cosy 入门\ntop: 2\ncategories:\n - Hexo\nstatus: doing\n---\n\n# Hexo 安装主题\n\n`Hexo` 主题的安装方式非常简单,只需将主题 `Hexo-theme-cosy` 复制目录的 `themes` 目录下,然后在 `Hexo` 的 `_config.yml` 中修改下主题配置即可\n\n```yml\n# 找到 theme 配置项\ntheme: Hexo-theme-cosy\n```\n\n## 获取 Cosy\n\n- 进入 [Cosy 代码仓库](https://github.com/17px/hexo-theme-cosy/tree/main),了解最新的主题开发进度\n- 在 [发布页面](https://github.com/17px/hexo-theme-cosy/releases) 下载 `hexo-theme-cosy.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-cosy/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# Cosy 主题配置\n\n下面的配置基于 `Hexo-theme-cosy` 下的 `_config.yml` \n\n## 文章分类图标\n\n按照顺序,依次设置 `svg` 图标,可以在 [xicon](https://www.xicons.org/) 方面的获取丰富的图标\n\n```yml\npostCategoryIcons:\n - <svg>...</svg>\n - <svg>...</svg>\n - <svg>...</svg>\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\nCosy 主要针对国内用户,在首页集成了和风天气的卡片,通过 [和风天气开发服务](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用于区分文章的状态,同时利用文章分类列表的`筛选`,进行快速筛选,Cosy 主题内置了 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\nHexo 使用 Markdown(或其他渲染引擎)解析你的文章,并生成静态文件以快速加载。除了默认生成的文章和归档页面之外,Hexo 还允许你创建自定义页面。\n\n## Roadmap路线图\n\n创建页面,你可以使用命令\n\n```bash\nhexo new page roadmap\n```\n\n成功后在 `source/` 文件夹下会生成一个新的文件夹 `/roadmap/index.md`\n\n你可以参照此模板,进行配置,参数说明:\n\n- title: roadmap页面 html 的标题\n- initYear: 默认显示的年份\n\n```markdown\n---\ntitle: 陈不渡 - roadmap\nlayout: roadmap\ninitYear: 2023\nyears:\n 2022:\n - title: 读书\n start: 01-01\n end: 1-5\n - title: 还是读书\n start: 02-01\n end: 05-30\n 2023:\n - title: 越陌度阡\n start: 01-01\n end: 1-2\n - title: 枉用相存\n start: 02-01\n end: 06-30\n - title: 短歌行\n start: 10-26\n end: 10-31\n content: 对酒当歌,人生几何!譬如朝露,去日苦多。慨当以慷,忧思难忘。何以解忧?唯有杜康。青青子衿,悠悠我心。但为君故,沉吟至今。呦呦鹿鸣,食野之苹。\n - title: 声律启蒙\n start: 11-01\n end: 11-31\n content: 花开红锦绣,水漾碧琉璃。去妇因探邻舍枣,出妻为种后园葵\n---\n```\n\n## Resume简历页面\n\n创建页面,你可以使用命令\n\n```bash\nhexo new page resume\n```\n\n成功后在 `source/` 文件夹下会生成一个新的文件夹 `/resume/index.md`\n\n你可以参照此模板,进行配置,参数说明:\n\n- title: resume 页面 html 的标题\n- avatar: 头像图片的地址\n\n```yml\ntitle: 页面标题document.title\nlayout: resume\navatar: /img/avatar.png\nname: Hi! Mozzie\nrole: Full Stack\nemail: himozzie@gmail.com\nphone: +86 180-xxxx-xxx\nbirth: Jan 21, 1994\nlocation: Nanjing, China\nsocial:\n - name: github\n link: https://github.com/17px\n icon: svg\n\nabout:\n - 我的工作是建立你的网站,使其功能强大,用户友好,但同时具有吸引力。\n - 此外,我为您的产品添加了个人风格,并确保其引人注目且易于使用。我的目标是以最有创意的方式传达你的信息和身份。我为许多知名品牌公司设计网页。\n\nskill:\n - 熟悉Node,具备后端开发能力,有SpringBoot、Egg、Koa2、Midway等单个应用项目经验,有Nestjs微服务应用项目经验\n - 具有Monoreo工程经验,能够分离单个单元的前端和后端并应用DevOps\n\neducation:\n - school: 大学艺术学院\n time: 2012-2016\n\nworkExp:\n - inc: 创意研发\n time: 2021.09 ~ 至今\n - inc: Web设计\n time: 2021.01 ~ 2021.09\n\nprojectExp:\n - name: PC/React• 标注 ,算法数据中心\n desc: 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n list: \n - 使用pnpm工作区管理Monorepo中的多个代码库,支持多个框架共存,共享通用组件库和功能\n\n - name: PC/React•Tavigator主动脉根部/外周\n desc: 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n\n\nportfolio:\n - name: 项目A\n desc: 项目A描述\n iconSVG: 复制svg的path到这里\n link: 网址,http(s)://...\n # 更多 ...\n\n```","slug":"Cosy-Starter-Guide","published":1,"date":"2023-10-23T04:01:13.108Z","updated":"2023-11-03T06:24:27.385Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p00003fwz3dn4fg95b","content":"<h1 id=\"Hexo-安装主题\"><a href=\"#Hexo-安装主题\" class=\"headerlink\" title=\"Hexo 安装主题\"></a>Hexo 安装主题</h1><p><code>Hexo</code> 主题的安装方式非常简单,只需将主题 <code>Hexo-theme-cosy</code> 复制目录的 <code>themes</code> 目录下,然后在 <code>Hexo</code> 的 <code>_config.yml</code> 中修改下主题配置即可</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># 找到 theme 配置项</span>\n<span class=\"token key atrule\">theme</span><span class=\"token punctuation\">:</span> Hexo<span class=\"token punctuation\">-</span>theme<span class=\"token punctuation\">-</span>cosy<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span></span></code></pre>\n\n<h2 id=\"获取-Cosy\"><a href=\"#获取-Cosy\" class=\"headerlink\" title=\"获取 Cosy\"></a>获取 Cosy</h2><ul>\n<li>进入 <a href=\"https://github.com/17px/hexo-theme-cosy/tree/main\">Cosy 代码仓库</a>,了解最新的主题开发进度</li>\n<li>在 <a href=\"https://github.com/17px/hexo-theme-cosy/releases\">发布页面</a> 下载 <code>hexo-theme-cosy.zip</code></li>\n<li>解压至站点的 <code>themes</code> 目录下</li>\n<li>在 Hexo 的 <code>_config.yml</code> 中启用</li>\n</ul>\n<h1 id=\"hexo配置\"><a href=\"#hexo配置\" class=\"headerlink\" title=\"hexo配置\"></a>hexo配置</h1><p>在 <code>Hexo</code> 的 <code>_config.yml</code> 中调整</p>\n<h2 id=\"基础配置\"><a href=\"#基础配置\" class=\"headerlink\" title=\"基础配置\"></a>基础配置</h2><pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># 网页标题</span>\n<span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 17px blog\n<span class=\"token comment\"># 侧边栏顶部显示</span>\n<span class=\"token key atrule\">subtitle</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Mozzie\"</span>\n<span class=\"token comment\"># 用于SEO的html元描述</span>\n<span class=\"token key atrule\">description</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"\"</span>\n<span class=\"token comment\"># 用于SEO的html关键字</span>\n<span class=\"token key atrule\">keywords</span><span class=\"token punctuation\">:</span>\n<span class=\"token comment\"># 文章版权声明显示作者名称</span>\n<span class=\"token key atrule\">author</span><span class=\"token punctuation\">:</span> Mozzie\n\n<span class=\"token comment\"># 在此处设置您的网站url</span>\n<span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//mozzie.cn<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"语言\"><a href=\"#语言\" class=\"headerlink\" title=\"语言\"></a>语言</h2><p>你可以在 <code>hexo-theme-cosy/languages</code> 中找到不同的语言文件,如果想切换语言,在配置文件中,填入 <code>yml</code> 的文件名</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">language</span><span class=\"token punctuation\">:</span> en<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"文章语法高亮\"><a href=\"#文章语法高亮\" class=\"headerlink\" title=\"文章语法高亮\"></a>文章语法高亮</h2><p>关闭hexo默认的highlight.js语法高亮</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">highlight</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n <span class=\"token key atrule\">line_number</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">auto_detect</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n <span class=\"token key atrule\">tab_replace</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"\"</span>\n <span class=\"token key atrule\">wrap</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">hljs</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n\n<span class=\"token key atrule\">prismjs</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">preprocess</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">line_number</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">line_threshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n <span class=\"token key atrule\">tab_replace</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"\"</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"Cosy-主题配置\"><a href=\"#Cosy-主题配置\" class=\"headerlink\" title=\"Cosy 主题配置\"></a>Cosy 主题配置</h1><p>下面的配置基于 <code>Hexo-theme-cosy</code> 下的 <code>_config.yml</code> </p>\n<h2 id=\"文章分类图标\"><a href=\"#文章分类图标\" class=\"headerlink\" title=\"文章分类图标\"></a>文章分类图标</h2><p>按照顺序,依次设置 <code>svg</code> 图标,可以在 <a href=\"https://www.xicons.org/\">xicon</a> 方面的获取丰富的图标</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">postCategoryIcons</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <svg<span class=\"token punctuation\">></span><span class=\"token punctuation\">...</span></svg<span class=\"token punctuation\">></span>\n <span class=\"token punctuation\">-</span> <svg<span class=\"token punctuation\">></span><span class=\"token punctuation\">...</span></svg<span class=\"token punctuation\">></span>\n <span class=\"token punctuation\">-</span> <svg<span class=\"token punctuation\">></span><span class=\"token punctuation\">...</span></svg<span class=\"token punctuation\">></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"网站图标-favicon\"><a href=\"#网站图标-favicon\" class=\"headerlink\" title=\"网站图标 favicon\"></a>网站图标 favicon</h2><ul>\n<li>支持 <code>svg</code></li>\n<li>支持 <code>图片url</code>,如:<code>/img/favicon.png</code></li>\n</ul>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">favicon</span><span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"ICP备案号\"><a href=\"#ICP备案号\" class=\"headerlink\" title=\"ICP备案号\"></a>ICP备案号</h2><p>😁 如不需要备案号,可直接删除</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">icp</span><span class=\"token punctuation\">:</span> 苏ICP备xxxxxxx号<span class=\"token punctuation\">-</span>x<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"首页底部文字\"><a href=\"#首页底部文字\" class=\"headerlink\" title=\"首页底部文字\"></a>首页底部文字</h2><p>😁 如不需要,可直接删除,或者改为 <code>false</code> </p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">motto</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"文章版权申明\"><a href=\"#文章版权申明\" class=\"headerlink\" title=\"文章版权申明\"></a>文章版权申明</h2><p>默认开启,当 <code>enable: false</code>,默认关闭</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">postCopyright</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">license</span><span class=\"token punctuation\">:</span> CC BY<span class=\"token punctuation\">-</span>NC<span class=\"token punctuation\">-</span>SA 4.0\n <span class=\"token key atrule\">license_url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//creativecommons.org/licenses/by<span class=\"token punctuation\">-</span>nc<span class=\"token punctuation\">-</span>sa/4.0/<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"katex-数学公式\"><a href=\"#katex-数学公式\" class=\"headerlink\" title=\"katex 数学公式\"></a>katex 数学公式</h2><p>可自行配置 <code>cdn</code></p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">katex</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">jsCdn</span><span class=\"token punctuation\">:</span> //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n <span class=\"token key atrule\">cssCdn</span><span class=\"token punctuation\">:</span> //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"mermaid-流程图\"><a href=\"#mermaid-流程图\" class=\"headerlink\" title=\"mermaid 流程图\"></a>mermaid 流程图</h2><p>在撰写时,请使用 <code>{% mermaid %}` 和 `{% endmermaid %}</code> 包裹</p>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\">{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>相应配置如下</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">mermaid</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">cdn</span><span class=\"token punctuation\">:</span> //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"valine-文章评论\"><a href=\"#valine-文章评论\" class=\"headerlink\" title=\"valine 文章评论\"></a>valine 文章评论</h2><p>首先需要注册 <code>LeanCloud</code> 国际区用户,创建数据库</p>\n<p>请根据相关地区法规,酌情</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">valine</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">appId</span><span class=\"token punctuation\">:</span> appId\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">appKey</span><span class=\"token punctuation\">:</span> appKey\n <span class=\"token key atrule\">avatar</span><span class=\"token punctuation\">:</span> monsterid\n <span class=\"token key atrule\">cdn</span><span class=\"token punctuation\">:</span> //unpkg.com/valine@latest/dist/Valine.min.js\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">serverURLs</span><span class=\"token punctuation\">:</span> //xxxxxxxx.api.lncldglobal.com<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"algolia搜索\"><a href=\"#algolia搜索\" class=\"headerlink\" title=\"algolia搜索\"></a>algolia搜索</h1><p>博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 <code>algolia</code>,免费账户 总共有 <code>10,000</code> 条记录,每月有 <code>100,000</code> 的操作数</p>\n<h2 id=\"注册-amp-获取-Key\"><a href=\"#注册-amp-获取-Key\" class=\"headerlink\" title=\"注册 & 获取 Key\"></a>注册 & 获取 Key</h2><ol>\n<li><p>创建一个新的 <code>Index</code>,例如 <code>hex-blog</code></p>\n</li>\n<li><p>复制并保存:</p>\n</li>\n</ol>\n<ul>\n<li>Application ID</li>\n<li>Search-Only API Key</li>\n<li>Admin API Key</li>\n<li>Usage API Key</li>\n</ul>\n<p><img src=\"/img/algolia-api-keys.png\" alt=\"API Keys\"></p>\n<ol start=\"3\">\n<li>替换配置</li>\n</ol>\n<p>在 <code>Hexo</code> 的 <code>_config.yml</code> 中加入</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">algolia</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">appId</span><span class=\"token punctuation\">:</span> Application ID\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">apiKey</span><span class=\"token punctuation\">:</span> Usage API Key\n <span class=\"token comment\"># 请勿泄露,用于上报,替换</span>\n <span class=\"token key atrule\">adminApiKey</span><span class=\"token punctuation\">:</span> Admin API Key\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">SearchOnlyAPIKey</span><span class=\"token punctuation\">:</span> Search<span class=\"token punctuation\">-</span>Only API Key\n <span class=\"token key atrule\">chunkSize</span><span class=\"token punctuation\">:</span> <span class=\"token number\">5000</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">indexName</span><span class=\"token punctuation\">:</span> hex<span class=\"token punctuation\">-</span>blog\n <span class=\"token key atrule\">fields</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> content<span class=\"token punctuation\">:</span>strip\n <span class=\"token punctuation\">-</span> categories\n <span class=\"token punctuation\">-</span> date\n <span class=\"token punctuation\">-</span> permalink\n <span class=\"token punctuation\">-</span> slug\n <span class=\"token punctuation\">-</span> tags\n <span class=\"token punctuation\">-</span> title<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"安装-hexo-algoliasearch\"><a href=\"#安装-hexo-algoliasearch\" class=\"headerlink\" title=\"安装 hexo-algoliasearch\"></a>安装 hexo-algoliasearch</h2><p>这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia</p>\n<blockquote>\n<p>如出遇到问题,可阅读 <a href=\"https://www.npmjs.com/package/hexo-algoliasearch\">hexo-algoliasearch 仓库</a> 最新说明</p>\n</blockquote>\n<p>安装命令:</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> <span class=\"token function\">install</span> hexo-algoliasearch <span class=\"token parameter variable\">--save</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"使用-algolia\"><a href=\"#使用-algolia\" class=\"headerlink\" title=\"使用 algolia\"></a>使用 algolia</h2><p>在每次博客发布之前,进行索引上传的操作,命令通常如下</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">hexo clean\nhexo generate\nhexo algolia<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre>\n\n\n<h1 id=\"🇨🇳-和风天气-Widget\"><a href=\"#🇨🇳-和风天气-Widget\" class=\"headerlink\" title=\"🇨🇳 和风天气 Widget\"></a>🇨🇳 和风天气 Widget</h1><p>Cosy 主要针对国内用户,在首页集成了和风天气的卡片,通过 <a href=\"https://dev.qweather.com/docs/start/\">和风天气开发服务</a> 注册</p>\n<p>注册完成后,在配置中填入你的 <code>appKey</code> 和 <code>cityCode(城市代码)</code></p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">weather</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">cityCode</span><span class=\"token punctuation\">:</span> cityCode\n <span class=\"token key atrule\">appKey</span><span class=\"token punctuation\">:</span> appKey<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>其中 <code>cityCode</code> 可以在 <a href=\"https://github.com/qwd/LocationList\">官方的地区列表仓库</a> 中的 <code>China-City-List-latest.csv</code> 找到你所在城市的 <code>cityCode</code></p>\n<h1 id=\"前置元数据\"><a href=\"#前置元数据\" class=\"headerlink\" title=\"前置元数据\"></a>前置元数据</h1><p>在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 <code>Front Matter</code> 可能会是这样的:</p>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 我的文章标题\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"top\"><a href=\"#top\" class=\"headerlink\" title=\"top\"></a>top</h2><p>实现文章置顶的功能,给定一个数值,可以进行排序,设定了 <code>top</code> 元数据的文章,会在分类列表中,使用 📌 标记</p>\n<p>例如有三篇文章:</p>\n<ul>\n<li>文章1</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章1\n<span class=\"token key atrule\">top</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<ul>\n<li>文章2</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章2\n<span class=\"token key atrule\">top</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<ul>\n<li>文章3</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章3\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>那么在 <code>javascript</code> 分类下,排序的顺序依次为:<code>文章1 > 文章2 > 文章3</code></p>\n<h2 id=\"status\"><a href=\"#status\" class=\"headerlink\" title=\"status\"></a>status</h2><p>用于区分文章的状态,同时利用文章分类列表的<code>筛选</code>,进行快速筛选,Cosy 主题内置了 4 种状态</p>\n<ul>\n<li>done:完成</li>\n<li>doing:进行中</li>\n<li>todo:待办</li>\n<li>other:废弃</li>\n</ul>\n<p>例如:</p>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章1\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">status</span><span class=\"token punctuation\">:</span> done</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"自定义页面\"><a href=\"#自定义页面\" class=\"headerlink\" title=\"自定义页面\"></a>自定义页面</h1><p>Hexo 使用 Markdown(或其他渲染引擎)解析你的文章,并生成静态文件以快速加载。除了默认生成的文章和归档页面之外,Hexo 还允许你创建自定义页面。</p>\n<h2 id=\"Roadmap路线图\"><a href=\"#Roadmap路线图\" class=\"headerlink\" title=\"Roadmap路线图\"></a>Roadmap路线图</h2><p>创建页面,你可以使用命令</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">hexo new page roadmap<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>成功后在 <code>source/</code> 文件夹下会生成一个新的文件夹 <code>/roadmap/index.md</code></p>\n<p>你可以参照此模板,进行配置,参数说明:</p>\n<ul>\n<li>title: roadmap页面 html 的标题</li>\n<li>initYear: 默认显示的年份</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 陈不渡 <span class=\"token punctuation\">-</span> roadmap\n<span class=\"token key atrule\">layout</span><span class=\"token punctuation\">:</span> roadmap\n<span class=\"token key atrule\">initYear</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2023</span>\n<span class=\"token key atrule\">years</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">2022</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 读书\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 01<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 1<span class=\"token punctuation\">-</span><span class=\"token number\">5</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 还是读书\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 02<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 05<span class=\"token punctuation\">-</span><span class=\"token number\">30</span>\n <span class=\"token key atrule\">2023</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 越陌度阡\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 01<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 1<span class=\"token punctuation\">-</span><span class=\"token number\">2</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 枉用相存\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 02<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 06<span class=\"token punctuation\">-</span><span class=\"token number\">30</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 短歌行\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 10<span class=\"token punctuation\">-</span><span class=\"token number\">26</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 10<span class=\"token punctuation\">-</span><span class=\"token number\">31</span>\n <span class=\"token key atrule\">content</span><span class=\"token punctuation\">:</span> 对酒当歌,人生几何!譬如朝露,去日苦多。慨当以慷,忧思难忘。何以解忧?唯有杜康。青青子衿,悠悠我心。但为君故,沉吟至今。呦呦鹿鸣,食野之苹。\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 声律启蒙\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 11<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 11<span class=\"token punctuation\">-</span><span class=\"token number\">31</span>\n <span class=\"token key atrule\">content</span><span class=\"token punctuation\">:</span> 花开红锦绣,水漾碧琉璃。去妇因探邻舍枣,出妻为种后园葵</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"Resume简历页面\"><a href=\"#Resume简历页面\" class=\"headerlink\" title=\"Resume简历页面\"></a>Resume简历页面</h2><p>创建页面,你可以使用命令</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">hexo new page resume<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>成功后在 <code>source/</code> 文件夹下会生成一个新的文件夹 <code>/resume/index.md</code></p>\n<p>你可以参照此模板,进行配置,参数说明:</p>\n<ul>\n<li>title: resume 页面 html 的标题</li>\n<li>avatar: 头像图片的地址</li>\n</ul>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 页面标题document.title\n<span class=\"token key atrule\">layout</span><span class=\"token punctuation\">:</span> resume\n<span class=\"token key atrule\">avatar</span><span class=\"token punctuation\">:</span> /img/avatar.png\n<span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Hi<span class=\"token tag\">!</span> Mozzie\n<span class=\"token key atrule\">role</span><span class=\"token punctuation\">:</span> Full Stack\n<span class=\"token key atrule\">email</span><span class=\"token punctuation\">:</span> himozzie@gmail.com\n<span class=\"token key atrule\">phone</span><span class=\"token punctuation\">:</span> +86 180<span class=\"token punctuation\">-</span>xxxx<span class=\"token punctuation\">-</span>xxx\n<span class=\"token key atrule\">birth</span><span class=\"token punctuation\">:</span> Jan 21<span class=\"token punctuation\">,</span> <span class=\"token number\">1994</span>\n<span class=\"token key atrule\">location</span><span class=\"token punctuation\">:</span> Nanjing<span class=\"token punctuation\">,</span> China\n<span class=\"token key atrule\">social</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> github\n <span class=\"token key atrule\">link</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//github.com/17px\n <span class=\"token key atrule\">icon</span><span class=\"token punctuation\">:</span> svg\n\n<span class=\"token key atrule\">about</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> 我的工作是建立你的网站,使其功能强大,用户友好,但同时具有吸引力。\n <span class=\"token punctuation\">-</span> 此外,我为您的产品添加了个人风格,并确保其引人注目且易于使用。我的目标是以最有创意的方式传达你的信息和身份。我为许多知名品牌公司设计网页。\n\n<span class=\"token key atrule\">skill</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> 熟悉Node,具备后端开发能力,有SpringBoot、Egg、Koa2、Midway等单个应用项目经验,有Nestjs微服务应用项目经验\n <span class=\"token punctuation\">-</span> 具有Monoreo工程经验,能够分离单个单元的前端和后端并应用DevOps\n\n<span class=\"token key atrule\">education</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">school</span><span class=\"token punctuation\">:</span> 大学艺术学院\n <span class=\"token key atrule\">time</span><span class=\"token punctuation\">:</span> 2012<span class=\"token punctuation\">-</span><span class=\"token number\">2016</span>\n\n<span class=\"token key atrule\">workExp</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">inc</span><span class=\"token punctuation\">:</span> 创意研发\n <span class=\"token key atrule\">time</span><span class=\"token punctuation\">:</span> 2021.09 ~ 至今\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">inc</span><span class=\"token punctuation\">:</span> Web设计\n <span class=\"token key atrule\">time</span><span class=\"token punctuation\">:</span> 2021.01 ~ 2021.09\n\n<span class=\"token key atrule\">projectExp</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> PC/React• 标注 ,算法数据中心\n <span class=\"token key atrule\">desc</span><span class=\"token punctuation\">:</span> 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n <span class=\"token key atrule\">list</span><span class=\"token punctuation\">:</span> \n <span class=\"token punctuation\">-</span> 使用pnpm工作区管理Monorepo中的多个代码库,支持多个框架共存,共享通用组件库和功能\n\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> PC/React•Tavigator主动脉根部/外周\n <span class=\"token key atrule\">desc</span><span class=\"token punctuation\">:</span> 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n\n\n<span class=\"token key atrule\">portfolio</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> 项目A\n <span class=\"token key atrule\">desc</span><span class=\"token punctuation\">:</span> 项目A描述\n <span class=\"token key atrule\">iconSVG</span><span class=\"token punctuation\">:</span> 复制svg的path到这里\n <span class=\"token key atrule\">link</span><span class=\"token punctuation\">:</span> 网址,http(s)<span class=\"token punctuation\">:</span>//<span class=\"token punctuation\">...</span>\n <span class=\"token comment\"># 更多 ...</span>\n<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>","site":{"data":{}},"excerpt":"","more":"<h1 id=\"Hexo-安装主题\"><a href=\"#Hexo-安装主题\" class=\"headerlink\" title=\"Hexo 安装主题\"></a>Hexo 安装主题</h1><p><code>Hexo</code> 主题的安装方式非常简单,只需将主题 <code>Hexo-theme-cosy</code> 复制目录的 <code>themes</code> 目录下,然后在 <code>Hexo</code> 的 <code>_config.yml</code> 中修改下主题配置即可</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># 找到 theme 配置项</span>\n<span class=\"token key atrule\">theme</span><span class=\"token punctuation\">:</span> Hexo<span class=\"token punctuation\">-</span>theme<span class=\"token punctuation\">-</span>cosy<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span></span></code></pre>\n\n<h2 id=\"获取-Cosy\"><a href=\"#获取-Cosy\" class=\"headerlink\" title=\"获取 Cosy\"></a>获取 Cosy</h2><ul>\n<li>进入 <a href=\"https://github.com/17px/hexo-theme-cosy/tree/main\">Cosy 代码仓库</a>,了解最新的主题开发进度</li>\n<li>在 <a href=\"https://github.com/17px/hexo-theme-cosy/releases\">发布页面</a> 下载 <code>hexo-theme-cosy.zip</code></li>\n<li>解压至站点的 <code>themes</code> 目录下</li>\n<li>在 Hexo 的 <code>_config.yml</code> 中启用</li>\n</ul>\n<h1 id=\"hexo配置\"><a href=\"#hexo配置\" class=\"headerlink\" title=\"hexo配置\"></a>hexo配置</h1><p>在 <code>Hexo</code> 的 <code>_config.yml</code> 中调整</p>\n<h2 id=\"基础配置\"><a href=\"#基础配置\" class=\"headerlink\" title=\"基础配置\"></a>基础配置</h2><pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># 网页标题</span>\n<span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 17px blog\n<span class=\"token comment\"># 侧边栏顶部显示</span>\n<span class=\"token key atrule\">subtitle</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Mozzie\"</span>\n<span class=\"token comment\"># 用于SEO的html元描述</span>\n<span class=\"token key atrule\">description</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"\"</span>\n<span class=\"token comment\"># 用于SEO的html关键字</span>\n<span class=\"token key atrule\">keywords</span><span class=\"token punctuation\">:</span>\n<span class=\"token comment\"># 文章版权声明显示作者名称</span>\n<span class=\"token key atrule\">author</span><span class=\"token punctuation\">:</span> Mozzie\n\n<span class=\"token comment\"># 在此处设置您的网站url</span>\n<span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//mozzie.cn<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"语言\"><a href=\"#语言\" class=\"headerlink\" title=\"语言\"></a>语言</h2><p>你可以在 <code>hexo-theme-cosy/languages</code> 中找到不同的语言文件,如果想切换语言,在配置文件中,填入 <code>yml</code> 的文件名</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">language</span><span class=\"token punctuation\">:</span> en<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"文章语法高亮\"><a href=\"#文章语法高亮\" class=\"headerlink\" title=\"文章语法高亮\"></a>文章语法高亮</h2><p>关闭hexo默认的highlight.js语法高亮</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">highlight</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n <span class=\"token key atrule\">line_number</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">auto_detect</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n <span class=\"token key atrule\">tab_replace</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"\"</span>\n <span class=\"token key atrule\">wrap</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">hljs</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n\n<span class=\"token key atrule\">prismjs</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">preprocess</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">line_number</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">line_threshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n <span class=\"token key atrule\">tab_replace</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"\"</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"Cosy-主题配置\"><a href=\"#Cosy-主题配置\" class=\"headerlink\" title=\"Cosy 主题配置\"></a>Cosy 主题配置</h1><p>下面的配置基于 <code>Hexo-theme-cosy</code> 下的 <code>_config.yml</code> </p>\n<h2 id=\"文章分类图标\"><a href=\"#文章分类图标\" class=\"headerlink\" title=\"文章分类图标\"></a>文章分类图标</h2><p>按照顺序,依次设置 <code>svg</code> 图标,可以在 <a href=\"https://www.xicons.org/\">xicon</a> 方面的获取丰富的图标</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">postCategoryIcons</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <svg<span class=\"token punctuation\">></span><span class=\"token punctuation\">...</span></svg<span class=\"token punctuation\">></span>\n <span class=\"token punctuation\">-</span> <svg<span class=\"token punctuation\">></span><span class=\"token punctuation\">...</span></svg<span class=\"token punctuation\">></span>\n <span class=\"token punctuation\">-</span> <svg<span class=\"token punctuation\">></span><span class=\"token punctuation\">...</span></svg<span class=\"token punctuation\">></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"网站图标-favicon\"><a href=\"#网站图标-favicon\" class=\"headerlink\" title=\"网站图标 favicon\"></a>网站图标 favicon</h2><ul>\n<li>支持 <code>svg</code></li>\n<li>支持 <code>图片url</code>,如:<code>/img/favicon.png</code></li>\n</ul>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">favicon</span><span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"ICP备案号\"><a href=\"#ICP备案号\" class=\"headerlink\" title=\"ICP备案号\"></a>ICP备案号</h2><p>😁 如不需要备案号,可直接删除</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">icp</span><span class=\"token punctuation\">:</span> 苏ICP备xxxxxxx号<span class=\"token punctuation\">-</span>x<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"首页底部文字\"><a href=\"#首页底部文字\" class=\"headerlink\" title=\"首页底部文字\"></a>首页底部文字</h2><p>😁 如不需要,可直接删除,或者改为 <code>false</code> </p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">motto</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"文章版权申明\"><a href=\"#文章版权申明\" class=\"headerlink\" title=\"文章版权申明\"></a>文章版权申明</h2><p>默认开启,当 <code>enable: false</code>,默认关闭</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">postCopyright</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">license</span><span class=\"token punctuation\">:</span> CC BY<span class=\"token punctuation\">-</span>NC<span class=\"token punctuation\">-</span>SA 4.0\n <span class=\"token key atrule\">license_url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//creativecommons.org/licenses/by<span class=\"token punctuation\">-</span>nc<span class=\"token punctuation\">-</span>sa/4.0/<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"katex-数学公式\"><a href=\"#katex-数学公式\" class=\"headerlink\" title=\"katex 数学公式\"></a>katex 数学公式</h2><p>可自行配置 <code>cdn</code></p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">katex</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">jsCdn</span><span class=\"token punctuation\">:</span> //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js\n <span class=\"token key atrule\">cssCdn</span><span class=\"token punctuation\">:</span> //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"mermaid-流程图\"><a href=\"#mermaid-流程图\" class=\"headerlink\" title=\"mermaid 流程图\"></a>mermaid 流程图</h2><p>在撰写时,请使用 <code>{% mermaid %}` 和 `{% endmermaid %}</code> 包裹</p>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\">{% mermaid %}\ngraph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n{% endmermaid %}<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>相应配置如下</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">mermaid</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">cdn</span><span class=\"token punctuation\">:</span> //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"valine-文章评论\"><a href=\"#valine-文章评论\" class=\"headerlink\" title=\"valine 文章评论\"></a>valine 文章评论</h2><p>首先需要注册 <code>LeanCloud</code> 国际区用户,创建数据库</p>\n<p>请根据相关地区法规,酌情</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">valine</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">appId</span><span class=\"token punctuation\">:</span> appId\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">appKey</span><span class=\"token punctuation\">:</span> appKey\n <span class=\"token key atrule\">avatar</span><span class=\"token punctuation\">:</span> monsterid\n <span class=\"token key atrule\">cdn</span><span class=\"token punctuation\">:</span> //unpkg.com/valine@latest/dist/Valine.min.js\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">serverURLs</span><span class=\"token punctuation\">:</span> //xxxxxxxx.api.lncldglobal.com<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"algolia搜索\"><a href=\"#algolia搜索\" class=\"headerlink\" title=\"algolia搜索\"></a>algolia搜索</h1><p>博客自带的本地搜索,基于前端开发,存在或多或少的问题,建议换成 <code>algolia</code>,免费账户 总共有 <code>10,000</code> 条记录,每月有 <code>100,000</code> 的操作数</p>\n<h2 id=\"注册-amp-获取-Key\"><a href=\"#注册-amp-获取-Key\" class=\"headerlink\" title=\"注册 & 获取 Key\"></a>注册 & 获取 Key</h2><ol>\n<li><p>创建一个新的 <code>Index</code>,例如 <code>hex-blog</code></p>\n</li>\n<li><p>复制并保存:</p>\n</li>\n</ol>\n<ul>\n<li>Application ID</li>\n<li>Search-Only API Key</li>\n<li>Admin API Key</li>\n<li>Usage API Key</li>\n</ul>\n<p><img src=\"/img/algolia-api-keys.png\" alt=\"API Keys\"></p>\n<ol start=\"3\">\n<li>替换配置</li>\n</ol>\n<p>在 <code>Hexo</code> 的 <code>_config.yml</code> 中加入</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">algolia</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">appId</span><span class=\"token punctuation\">:</span> Application ID\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">apiKey</span><span class=\"token punctuation\">:</span> Usage API Key\n <span class=\"token comment\"># 请勿泄露,用于上报,替换</span>\n <span class=\"token key atrule\">adminApiKey</span><span class=\"token punctuation\">:</span> Admin API Key\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">SearchOnlyAPIKey</span><span class=\"token punctuation\">:</span> Search<span class=\"token punctuation\">-</span>Only API Key\n <span class=\"token key atrule\">chunkSize</span><span class=\"token punctuation\">:</span> <span class=\"token number\">5000</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">indexName</span><span class=\"token punctuation\">:</span> hex<span class=\"token punctuation\">-</span>blog\n <span class=\"token key atrule\">fields</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> content<span class=\"token punctuation\">:</span>strip\n <span class=\"token punctuation\">-</span> categories\n <span class=\"token punctuation\">-</span> date\n <span class=\"token punctuation\">-</span> permalink\n <span class=\"token punctuation\">-</span> slug\n <span class=\"token punctuation\">-</span> tags\n <span class=\"token punctuation\">-</span> title<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"安装-hexo-algoliasearch\"><a href=\"#安装-hexo-algoliasearch\" class=\"headerlink\" title=\"安装 hexo-algoliasearch\"></a>安装 hexo-algoliasearch</h2><p>这是 Hexo 博客帖子索引插件,自动化提交索引到 Algolia</p>\n<blockquote>\n<p>如出遇到问题,可阅读 <a href=\"https://www.npmjs.com/package/hexo-algoliasearch\">hexo-algoliasearch 仓库</a> 最新说明</p>\n</blockquote>\n<p>安装命令:</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> <span class=\"token function\">install</span> hexo-algoliasearch <span class=\"token parameter variable\">--save</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h2 id=\"使用-algolia\"><a href=\"#使用-algolia\" class=\"headerlink\" title=\"使用 algolia\"></a>使用 algolia</h2><p>在每次博客发布之前,进行索引上传的操作,命令通常如下</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">hexo clean\nhexo generate\nhexo algolia<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre>\n\n\n<h1 id=\"🇨🇳-和风天气-Widget\"><a href=\"#🇨🇳-和风天气-Widget\" class=\"headerlink\" title=\"🇨🇳 和风天气 Widget\"></a>🇨🇳 和风天气 Widget</h1><p>Cosy 主要针对国内用户,在首页集成了和风天气的卡片,通过 <a href=\"https://dev.qweather.com/docs/start/\">和风天气开发服务</a> 注册</p>\n<p>注册完成后,在配置中填入你的 <code>appKey</code> 和 <code>cityCode(城市代码)</code></p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">weather</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token comment\"># 替换</span>\n <span class=\"token key atrule\">cityCode</span><span class=\"token punctuation\">:</span> cityCode\n <span class=\"token key atrule\">appKey</span><span class=\"token punctuation\">:</span> appKey<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>其中 <code>cityCode</code> 可以在 <a href=\"https://github.com/qwd/LocationList\">官方的地区列表仓库</a> 中的 <code>China-City-List-latest.csv</code> 找到你所在城市的 <code>cityCode</code></p>\n<h1 id=\"前置元数据\"><a href=\"#前置元数据\" class=\"headerlink\" title=\"前置元数据\"></a>前置元数据</h1><p>在 Hexo 的 Markdown 文件中,一个典型的 YAML 格式的 <code>Front Matter</code> 可能会是这样的:</p>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 我的文章标题\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"top\"><a href=\"#top\" class=\"headerlink\" title=\"top\"></a>top</h2><p>实现文章置顶的功能,给定一个数值,可以进行排序,设定了 <code>top</code> 元数据的文章,会在分类列表中,使用 📌 标记</p>\n<p>例如有三篇文章:</p>\n<ul>\n<li>文章1</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章1\n<span class=\"token key atrule\">top</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<ul>\n<li>文章2</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章2\n<span class=\"token key atrule\">top</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<ul>\n<li>文章3</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章3\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> \n<span class=\"token punctuation\">-</span> 编程\n<span class=\"token punctuation\">-</span> JavaScript</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>那么在 <code>javascript</code> 分类下,排序的顺序依次为:<code>文章1 > 文章2 > 文章3</code></p>\n<h2 id=\"status\"><a href=\"#status\" class=\"headerlink\" title=\"status\"></a>status</h2><p>用于区分文章的状态,同时利用文章分类列表的<code>筛选</code>,进行快速筛选,Cosy 主题内置了 4 种状态</p>\n<ul>\n<li>done:完成</li>\n<li>doing:进行中</li>\n<li>todo:待办</li>\n<li>other:废弃</li>\n</ul>\n<p>例如:</p>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 文章1\n<span class=\"token key atrule\">categories</span><span class=\"token punctuation\">:</span>\n<span class=\"token punctuation\">-</span> javascript\n<span class=\"token key atrule\">status</span><span class=\"token punctuation\">:</span> done</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"自定义页面\"><a href=\"#自定义页面\" class=\"headerlink\" title=\"自定义页面\"></a>自定义页面</h1><p>Hexo 使用 Markdown(或其他渲染引擎)解析你的文章,并生成静态文件以快速加载。除了默认生成的文章和归档页面之外,Hexo 还允许你创建自定义页面。</p>\n<h2 id=\"Roadmap路线图\"><a href=\"#Roadmap路线图\" class=\"headerlink\" title=\"Roadmap路线图\"></a>Roadmap路线图</h2><p>创建页面,你可以使用命令</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">hexo new page roadmap<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>成功后在 <code>source/</code> 文件夹下会生成一个新的文件夹 <code>/roadmap/index.md</code></p>\n<p>你可以参照此模板,进行配置,参数说明:</p>\n<ul>\n<li>title: roadmap页面 html 的标题</li>\n<li>initYear: 默认显示的年份</li>\n</ul>\n<pre class=\"line-numbers language-markdown\" data-language=\"markdown\"><code class=\"language-markdown\"><span class=\"token front-matter-block\"><span class=\"token punctuation\">---</span>\n<span class=\"token front-matter yaml language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 陈不渡 <span class=\"token punctuation\">-</span> roadmap\n<span class=\"token key atrule\">layout</span><span class=\"token punctuation\">:</span> roadmap\n<span class=\"token key atrule\">initYear</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2023</span>\n<span class=\"token key atrule\">years</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">2022</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 读书\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 01<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 1<span class=\"token punctuation\">-</span><span class=\"token number\">5</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 还是读书\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 02<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 05<span class=\"token punctuation\">-</span><span class=\"token number\">30</span>\n <span class=\"token key atrule\">2023</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 越陌度阡\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 01<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 1<span class=\"token punctuation\">-</span><span class=\"token number\">2</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 枉用相存\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 02<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 06<span class=\"token punctuation\">-</span><span class=\"token number\">30</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 短歌行\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 10<span class=\"token punctuation\">-</span><span class=\"token number\">26</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 10<span class=\"token punctuation\">-</span><span class=\"token number\">31</span>\n <span class=\"token key atrule\">content</span><span class=\"token punctuation\">:</span> 对酒当歌,人生几何!譬如朝露,去日苦多。慨当以慷,忧思难忘。何以解忧?唯有杜康。青青子衿,悠悠我心。但为君故,沉吟至今。呦呦鹿鸣,食野之苹。\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 声律启蒙\n <span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span> 11<span class=\"token punctuation\">-</span><span class=\"token number\">01</span>\n <span class=\"token key atrule\">end</span><span class=\"token punctuation\">:</span> 11<span class=\"token punctuation\">-</span><span class=\"token number\">31</span>\n <span class=\"token key atrule\">content</span><span class=\"token punctuation\">:</span> 花开红锦绣,水漾碧琉璃。去妇因探邻舍枣,出妻为种后园葵</span>\n<span class=\"token punctuation\">---</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"Resume简历页面\"><a href=\"#Resume简历页面\" class=\"headerlink\" title=\"Resume简历页面\"></a>Resume简历页面</h2><p>创建页面,你可以使用命令</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">hexo new page resume<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>成功后在 <code>source/</code> 文件夹下会生成一个新的文件夹 <code>/resume/index.md</code></p>\n<p>你可以参照此模板,进行配置,参数说明:</p>\n<ul>\n<li>title: resume 页面 html 的标题</li>\n<li>avatar: 头像图片的地址</li>\n</ul>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> 页面标题document.title\n<span class=\"token key atrule\">layout</span><span class=\"token punctuation\">:</span> resume\n<span class=\"token key atrule\">avatar</span><span class=\"token punctuation\">:</span> /img/avatar.png\n<span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Hi<span class=\"token tag\">!</span> Mozzie\n<span class=\"token key atrule\">role</span><span class=\"token punctuation\">:</span> Full Stack\n<span class=\"token key atrule\">email</span><span class=\"token punctuation\">:</span> himozzie@gmail.com\n<span class=\"token key atrule\">phone</span><span class=\"token punctuation\">:</span> +86 180<span class=\"token punctuation\">-</span>xxxx<span class=\"token punctuation\">-</span>xxx\n<span class=\"token key atrule\">birth</span><span class=\"token punctuation\">:</span> Jan 21<span class=\"token punctuation\">,</span> <span class=\"token number\">1994</span>\n<span class=\"token key atrule\">location</span><span class=\"token punctuation\">:</span> Nanjing<span class=\"token punctuation\">,</span> China\n<span class=\"token key atrule\">social</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> github\n <span class=\"token key atrule\">link</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//github.com/17px\n <span class=\"token key atrule\">icon</span><span class=\"token punctuation\">:</span> svg\n\n<span class=\"token key atrule\">about</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> 我的工作是建立你的网站,使其功能强大,用户友好,但同时具有吸引力。\n <span class=\"token punctuation\">-</span> 此外,我为您的产品添加了个人风格,并确保其引人注目且易于使用。我的目标是以最有创意的方式传达你的信息和身份。我为许多知名品牌公司设计网页。\n\n<span class=\"token key atrule\">skill</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> 熟悉Node,具备后端开发能力,有SpringBoot、Egg、Koa2、Midway等单个应用项目经验,有Nestjs微服务应用项目经验\n <span class=\"token punctuation\">-</span> 具有Monoreo工程经验,能够分离单个单元的前端和后端并应用DevOps\n\n<span class=\"token key atrule\">education</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">school</span><span class=\"token punctuation\">:</span> 大学艺术学院\n <span class=\"token key atrule\">time</span><span class=\"token punctuation\">:</span> 2012<span class=\"token punctuation\">-</span><span class=\"token number\">2016</span>\n\n<span class=\"token key atrule\">workExp</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">inc</span><span class=\"token punctuation\">:</span> 创意研发\n <span class=\"token key atrule\">time</span><span class=\"token punctuation\">:</span> 2021.09 ~ 至今\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">inc</span><span class=\"token punctuation\">:</span> Web设计\n <span class=\"token key atrule\">time</span><span class=\"token punctuation\">:</span> 2021.01 ~ 2021.09\n\n<span class=\"token key atrule\">projectExp</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> PC/React• 标注 ,算法数据中心\n <span class=\"token key atrule\">desc</span><span class=\"token punctuation\">:</span> 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n <span class=\"token key atrule\">list</span><span class=\"token punctuation\">:</span> \n <span class=\"token punctuation\">-</span> 使用pnpm工作区管理Monorepo中的多个代码库,支持多个框架共存,共享通用组件库和功能\n\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> PC/React•Tavigator主动脉根部/外周\n <span class=\"token key atrule\">desc</span><span class=\"token punctuation\">:</span> 这是一个xxx系统。它主要包括一个bc函数。我主要负责x、y和z模块的开发和维护。\n\n\n<span class=\"token key atrule\">portfolio</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> 项目A\n <span class=\"token key atrule\">desc</span><span class=\"token punctuation\">:</span> 项目A描述\n <span class=\"token key atrule\">iconSVG</span><span class=\"token punctuation\">:</span> 复制svg的path到这里\n <span class=\"token key atrule\">link</span><span class=\"token punctuation\">:</span> 网址,http(s)<span class=\"token punctuation\">:</span>//<span class=\"token punctuation\">...</span>\n <span class=\"token comment\"># 更多 ...</span>\n<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>"},{"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\n~~删除线~~ <s>删除线(开启识别HTML标签时)</s>\n*斜体字* _斜体字_\n**粗体** __粗体__\n***粗斜体*** ___粗斜体___\n\n上标:X<sub>2</sub>,下标:O<sup>2</sup>\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启\n\nThe <abbr title=\"Hyper Text Markup Language\">HTML</abbr> specification is maintained by the <abbr title=\"World Wide Web Consortium\">W3C</abbr>.\n\n# 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n \n> 引用:如果想要插入空白换行`即<br />标签`,在插入处先键入两个以上的空格然后回车即可,[普通链接](http://localhost/)。\n\n# 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接:<https://github.com>\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<!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\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 \n \nEnd","source":"_posts/Markdown 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\n~~删除线~~ <s>删除线(开启识别HTML标签时)</s>\n*斜体字* _斜体字_\n**粗体** __粗体__\n***粗斜体*** ___粗斜体___\n\n上标:X<sub>2</sub>,下标:O<sup>2</sup>\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启\n\nThe <abbr title=\"Hyper Text Markup Language\">HTML</abbr> specification is maintained by the <abbr title=\"World Wide Web Consortium\">W3C</abbr>.\n\n# 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n \n> 引用:如果想要插入空白换行`即<br />标签`,在插入处先键入两个以上的空格然后回车即可,[普通链接](http://localhost/)。\n\n# 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接:<https://github.com>\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<!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\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 \n \nEnd","slug":"Markdown Sample","published":1,"date":"2023-10-23T04:01:13.108Z","updated":"2023-10-23T04:01:13.108Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p10005fwz3b2ct0mb3","content":"<h1 id=\"Linear-Markdown-Sample\"><a href=\"#Linear-Markdown-Sample\" class=\"headerlink\" title=\"Linear Markdown Sample\"></a>Linear Markdown Sample</h1><p><img src=\"https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png\" alt=\"markdown\"></p>\n<h1 id=\"Heading-1-link-Heading-link\"><a href=\"#Heading-1-link-Heading-link\" class=\"headerlink\" title=\"Heading 1 link Heading link\"></a>Heading 1 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h1><h2 id=\"Heading-2-link-Heading-link\"><a href=\"#Heading-2-link-Heading-link\" class=\"headerlink\" title=\"Heading 2 link Heading link\"></a>Heading 2 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h2><h3 id=\"Heading-3-link-Heading-link\"><a href=\"#Heading-3-link-Heading-link\" class=\"headerlink\" title=\"Heading 3 link Heading link\"></a>Heading 3 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h3><h4 id=\"Heading-4-link-Heading-link-Heading-link-Heading-link\"><a href=\"#Heading-4-link-Heading-link-Heading-link-Heading-link\" class=\"headerlink\" title=\"Heading 4 link Heading link Heading link Heading link\"></a>Heading 4 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a> Heading link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h4><h5 id=\"Heading-5-link-Heading-link\"><a href=\"#Heading-5-link-Heading-link\" class=\"headerlink\" title=\"Heading 5 link Heading link\"></a>Heading 5 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h5><h6 id=\"Heading-6-link-Heading-link\"><a href=\"#Heading-6-link-Heading-link\" class=\"headerlink\" title=\"Heading 6 link Heading link\"></a>Heading 6 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h6><h1 id=\"字符效果和横线等\"><a href=\"#字符效果和横线等\" class=\"headerlink\" title=\"字符效果和横线等\"></a>字符效果和横线等</h1><hr>\n<p><del>删除线</del> <s>删除线(开启识别HTML标签时)</s><br><em>斜体字</em> <em>斜体字</em><br><strong>粗体</strong> <strong>粗体</strong><br><em><strong>粗斜体</strong></em> <em><strong>粗斜体</strong></em></p>\n<p>上标:X<sub>2</sub>,下标:O<sup>2</sup></p>\n<p><strong>缩写(同HTML的abbr标签)</strong></p>\n<blockquote>\n<p>即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启</p>\n</blockquote>\n<p>The <abbr title=\"Hyper Text Markup Language\">HTML</abbr> specification is maintained by the <abbr title=\"World Wide Web Consortium\">W3C</abbr>.</p>\n<h1 id=\"引用-Blockquotes\"><a href=\"#引用-Blockquotes\" class=\"headerlink\" title=\"引用 Blockquotes\"></a>引用 Blockquotes</h1><blockquote>\n<p>引用文本 Blockquotes</p>\n</blockquote>\n<p>引用的行内混合 Blockquotes</p>\n<blockquote>\n<p>引用:如果想要插入空白换行<code>即<br />标签</code>,在插入处先键入两个以上的空格然后回车即可,<a href=\"http://localhost/\">普通链接</a>。</p>\n</blockquote>\n<h1 id=\"锚点与链接-Links\"><a href=\"#锚点与链接-Links\" class=\"headerlink\" title=\"锚点与链接 Links\"></a>锚点与链接 Links</h1><p><a href=\"http://localhost/\">普通链接</a></p>\n<p><a href=\"http://localhost/\" title=\"普通链接带标题\">普通链接带标题</a></p>\n<p>直接链接:<a href=\"https://github.com/\">https://github.com</a></p>\n<p><a href=\"https://baidu.com/\">https://baidu.com</a></p>\n<p><a href=\"http://www.this-anchor-link.com/\">锚点链接</a> </p>\n<p><a href=\"mailto:test.test@gmail.com\">mailto:test.test@gmail.com</a></p>\n<p>GFM a-tail link <a href=\"https://my.oschina.net/u/3691274\">@pandao</a> 邮箱地址自动链接 <a href=\"mailto:test.test@gmail.com\">test.test@gmail.com</a> <a href=\"mailto:www@vip.qq.com\">www@vip.qq.com</a></p>\n<blockquote>\n<p>@pandao</p>\n</blockquote>\n<h1 id=\"多语言代码高亮-Codes\"><a href=\"#多语言代码高亮-Codes\" class=\"headerlink\" title=\"多语言代码高亮 Codes\"></a>多语言代码高亮 Codes</h1><h2 id=\"行内代码-Inline-code\"><a href=\"#行内代码-Inline-code\" class=\"headerlink\" title=\"行内代码 Inline code\"></a>行内代码 Inline code</h2><p>执行命令:<code>npm install marked</code></p>\n<h2 id=\"JS代码\"><a href=\"#JS代码\" class=\"headerlink\" title=\"JS代码\"></a>JS代码</h2><pre class=\"line-numbers language-javascript\" data-language=\"javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\tconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Hello world!\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n \n<span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">var</span> <span class=\"token function-variable function\">box</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> box<span class=\"token punctuation\">.</span>fn<span class=\"token punctuation\">.</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n box<span class=\"token punctuation\">.</span>prototype <span class=\"token operator\">=</span> box<span class=\"token punctuation\">.</span>fn <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">init</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'box.init()'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n\t\t<span class=\"token function-variable function\">add</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">str</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token function\">alert</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"add\"</span><span class=\"token punctuation\">,</span> str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n\t\t<span class=\"token function-variable function\">remove</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">str</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token function\">alert</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"remove\"</span><span class=\"token punctuation\">,</span> str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n \n box<span class=\"token punctuation\">.</span>fn<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">.</span>prototype <span class=\"token operator\">=</span> box<span class=\"token punctuation\">.</span>fn<span class=\"token punctuation\">;</span>\n \n window<span class=\"token punctuation\">.</span>box <span class=\"token operator\">=</span>box<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">var</span> testBox <span class=\"token operator\">=</span> <span class=\"token function\">box</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\ntestBox<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"jQuery\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">remove</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"jQuery\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"HTML-代码-HTML-codes\"><a href=\"#HTML-代码-HTML-codes\" class=\"headerlink\" title=\"HTML 代码 HTML codes\"></a>HTML 代码 HTML codes</h2><pre class=\"line-numbers language-markup\" data-language=\"markup\"><code class=\"language-markup\"><span class=\"token doctype\"><span class=\"token punctuation\"><!</span><span class=\"token doctype-tag\">DOCTYPE</span> <span class=\"token name\">html</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>html</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>head</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>mate</span> <span class=\"token attr-name\">charest</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>utf-8<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>meta</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>keywords<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Editor.md, Markdown, Editor<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>title</span><span class=\"token punctuation\">></span></span>Hello world!<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>title</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>style</span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text/css<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token style\"><span class=\"token language-css\">\n <span class=\"token selector\">body</span><span class=\"token punctuation\">{</span><span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span>14px<span class=\"token punctuation\">;</span><span class=\"token property\">color</span><span class=\"token punctuation\">:</span>#444<span class=\"token punctuation\">;</span><span class=\"token property\">font-family</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Microsoft Yahei\"</span><span class=\"token punctuation\">,</span> Tahoma<span class=\"token punctuation\">,</span> <span class=\"token string\">\"Hiragino Sans GB\"</span><span class=\"token punctuation\">,</span> Arial<span class=\"token punctuation\">;</span><span class=\"token property\">background</span><span class=\"token punctuation\">:</span>#fff<span class=\"token punctuation\">;</span><span class=\"token punctuation\">}</span>\n <span class=\"token selector\">ul</span><span class=\"token punctuation\">{</span><span class=\"token property\">list-style</span><span class=\"token punctuation\">:</span> none<span class=\"token punctuation\">;</span><span class=\"token punctuation\">}</span>\n <span class=\"token selector\">img</span><span class=\"token punctuation\">{</span><span class=\"token property\">border</span><span class=\"token punctuation\">:</span>none<span class=\"token punctuation\">;</span><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> middle<span class=\"token punctuation\">;</span><span class=\"token punctuation\">}</span>\n </span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>style</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>head</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>body</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>h1</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-xxl<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Hello world!<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>h1</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-green<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Plain text<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>p</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>body</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>html</span><span class=\"token punctuation\">></span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"图片-Images\"><a href=\"#图片-Images\" class=\"headerlink\" title=\"图片 Images\"></a>图片 Images</h1><p>Image:</p>\n<p><img src=\"https://pandao.github.io/editor.md/examples/images/4.jpg\"></p>\n<blockquote>\n<p>Follow your heart.</p>\n</blockquote>\n<p><img src=\"https://pandao.github.io/editor.md/examples/images/8.jpg\"></p>\n<blockquote>\n<p>图为:厦门白城沙滩</p>\n</blockquote>\n<p>图片加链接 (Image + Link):</p>\n<p><a href=\"https://pandao.github.io/editor.md/images/7.jpg\" title=\"李健首张专辑《似水流年》封面\"><img src=\"https://pandao.github.io/editor.md/examples/images/7.jpg\"></a></p>\n<blockquote>\n<p>图为:李健首张专辑《似水流年》封面</p>\n</blockquote>\n<hr>\n<h1 id=\"列表-Lists\"><a href=\"#列表-Lists\" class=\"headerlink\" title=\"列表 Lists\"></a>列表 Lists</h1><h2 id=\"无序列表(减号)Unordered-Lists\"><a href=\"#无序列表(减号)Unordered-Lists\" class=\"headerlink\" title=\"无序列表(减号)Unordered Lists (-)\"></a>无序列表(减号)Unordered Lists (-)</h2><ul>\n<li>列表一</li>\n<li>列表二</li>\n<li>列表三</li>\n</ul>\n<h2 id=\"无序列表(星号)Unordered-Lists\"><a href=\"#无序列表(星号)Unordered-Lists\" class=\"headerlink\" title=\"无序列表(星号)Unordered Lists (*)\"></a>无序列表(星号)Unordered Lists (*)</h2><ul>\n<li>列表一</li>\n<li>列表二</li>\n<li>列表三</li>\n</ul>\n<h2 id=\"无序列表(加号和嵌套)Unordered-Lists\"><a href=\"#无序列表(加号和嵌套)Unordered-Lists\" class=\"headerlink\" title=\"无序列表(加号和嵌套)Unordered Lists (+)\"></a>无序列表(加号和嵌套)Unordered Lists (+)</h2><ul>\n<li>列表一</li>\n<li>列表二<ul>\n<li>列表二-1</li>\n<li>列表二-2</li>\n<li>列表二-3</li>\n</ul>\n</li>\n<li>列表三<ul>\n<li>列表一</li>\n<li>列表二</li>\n<li>列表三</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"有序列表-Ordered-Lists\"><a href=\"#有序列表-Ordered-Lists\" class=\"headerlink\" title=\"有序列表 Ordered Lists (-)\"></a>有序列表 Ordered Lists (-)</h2><ol>\n<li>第一行</li>\n<li>第二行</li>\n<li>第三行</li>\n</ol>\n<h2 id=\"GFM-task-list\"><a href=\"#GFM-task-list\" class=\"headerlink\" title=\"GFM task list\"></a>GFM task list</h2><ul>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> GFM task list 1</li>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> GFM task list 2</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3<ul>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3-1</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3-2</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3-3</li>\n</ul>\n</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 4<ul>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 4-1</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 4-2</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h1 id=\"绘制表格-Tables\"><a href=\"#绘制表格-Tables\" class=\"headerlink\" title=\"绘制表格 Tables\"></a>绘制表格 Tables</h1><table>\n<thead>\n<tr>\n<th>项目</th>\n<th align=\"right\">价格</th>\n<th align=\"center\">数量</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>计算机</td>\n<td align=\"right\">$1600</td>\n<td align=\"center\">5</td>\n</tr>\n<tr>\n<td>手机</td>\n<td align=\"right\">$12</td>\n<td align=\"center\">12</td>\n</tr>\n<tr>\n<td>管线</td>\n<td align=\"right\">$1</td>\n<td align=\"center\">234</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>First Header</th>\n<th>Second Header</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n<tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>First Header</th>\n<th>Second Header</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n<tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>Function name</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>help()</code></td>\n<td>Display the help window.</td>\n</tr>\n<tr>\n<td><code>destroy()</code></td>\n<td><strong>Destroy your computer!</strong></td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Left-Aligned</th>\n<th align=\"center\">Center Aligned</th>\n<th align=\"right\">Right Aligned</th>\n</tr>\n</thead>\n<tbody><tr>\n<td align=\"left\">col 3 is</td>\n<td align=\"center\">some wordy text</td>\n<td align=\"right\">$1600</td>\n</tr>\n<tr>\n<td align=\"left\">col 2 is</td>\n<td align=\"center\">centered</td>\n<td align=\"right\">$12</td>\n</tr>\n<tr>\n<td align=\"left\">zebra stripes</td>\n<td align=\"center\">are neat</td>\n<td align=\"right\">$1</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>Item</th>\n<th align=\"right\">Value</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Computer</td>\n<td align=\"right\">$1600</td>\n</tr>\n<tr>\n<td>Phone</td>\n<td align=\"right\">$12</td>\n</tr>\n<tr>\n<td>Pipe</td>\n<td align=\"right\">$1</td>\n</tr>\n</tbody></table>\n<h1 id=\"科学公式-TeX-KaTeX\"><a href=\"#科学公式-TeX-KaTeX\" class=\"headerlink\" title=\"科学公式 TeX(KaTeX)\"></a>科学公式 TeX(KaTeX)</h1><p>$$E=mc^2$$</p>\n<p>$$x > y$$</p>\n<p>$$(\\sqrt{3x-1}+(1+x)^2)$$</p>\n<p>$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$</p>\n<h1 id=\"绘制流程图-mermaid\"><a href=\"#绘制流程图-mermaid\" class=\"headerlink\" title=\"绘制流程图 mermaid\"></a>绘制流程图 mermaid</h1><div class=\"mermaid\">\n graph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n </div>\n\n<p>End</p>\n","site":{"data":{}},"excerpt":"","more":"<h1 id=\"Linear-Markdown-Sample\"><a href=\"#Linear-Markdown-Sample\" class=\"headerlink\" title=\"Linear Markdown Sample\"></a>Linear Markdown Sample</h1><p><img src=\"https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png\" alt=\"markdown\"></p>\n<h1 id=\"Heading-1-link-Heading-link\"><a href=\"#Heading-1-link-Heading-link\" class=\"headerlink\" title=\"Heading 1 link Heading link\"></a>Heading 1 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h1><h2 id=\"Heading-2-link-Heading-link\"><a href=\"#Heading-2-link-Heading-link\" class=\"headerlink\" title=\"Heading 2 link Heading link\"></a>Heading 2 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h2><h3 id=\"Heading-3-link-Heading-link\"><a href=\"#Heading-3-link-Heading-link\" class=\"headerlink\" title=\"Heading 3 link Heading link\"></a>Heading 3 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h3><h4 id=\"Heading-4-link-Heading-link-Heading-link-Heading-link\"><a href=\"#Heading-4-link-Heading-link-Heading-link-Heading-link\" class=\"headerlink\" title=\"Heading 4 link Heading link Heading link Heading link\"></a>Heading 4 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a> Heading link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h4><h5 id=\"Heading-5-link-Heading-link\"><a href=\"#Heading-5-link-Heading-link\" class=\"headerlink\" title=\"Heading 5 link Heading link\"></a>Heading 5 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h5><h6 id=\"Heading-6-link-Heading-link\"><a href=\"#Heading-6-link-Heading-link\" class=\"headerlink\" title=\"Heading 6 link Heading link\"></a>Heading 6 link <a href=\"https://github.com/pandao/editor.md\" title=\"Heading link\">Heading link</a></h6><h1 id=\"字符效果和横线等\"><a href=\"#字符效果和横线等\" class=\"headerlink\" title=\"字符效果和横线等\"></a>字符效果和横线等</h1><hr>\n<p><del>删除线</del> <s>删除线(开启识别HTML标签时)</s><br><em>斜体字</em> <em>斜体字</em><br><strong>粗体</strong> <strong>粗体</strong><br><em><strong>粗斜体</strong></em> <em><strong>粗斜体</strong></em></p>\n<p>上标:X<sub>2</sub>,下标:O<sup>2</sup></p>\n<p><strong>缩写(同HTML的abbr标签)</strong></p>\n<blockquote>\n<p>即更长的单词或短语的缩写形式,前提是开启识别HTML标签时,已默认开启</p>\n</blockquote>\n<p>The <abbr title=\"Hyper Text Markup Language\">HTML</abbr> specification is maintained by the <abbr title=\"World Wide Web Consortium\">W3C</abbr>.</p>\n<h1 id=\"引用-Blockquotes\"><a href=\"#引用-Blockquotes\" class=\"headerlink\" title=\"引用 Blockquotes\"></a>引用 Blockquotes</h1><blockquote>\n<p>引用文本 Blockquotes</p>\n</blockquote>\n<p>引用的行内混合 Blockquotes</p>\n<blockquote>\n<p>引用:如果想要插入空白换行<code>即<br />标签</code>,在插入处先键入两个以上的空格然后回车即可,<a href=\"http://localhost/\">普通链接</a>。</p>\n</blockquote>\n<h1 id=\"锚点与链接-Links\"><a href=\"#锚点与链接-Links\" class=\"headerlink\" title=\"锚点与链接 Links\"></a>锚点与链接 Links</h1><p><a href=\"http://localhost/\">普通链接</a></p>\n<p><a href=\"http://localhost/\" title=\"普通链接带标题\">普通链接带标题</a></p>\n<p>直接链接:<a href=\"https://github.com/\">https://github.com</a></p>\n<p><a href=\"https://baidu.com/\">https://baidu.com</a></p>\n<p><a href=\"http://www.this-anchor-link.com/\">锚点链接</a> </p>\n<p><a href=\"mailto:test.test@gmail.com\">mailto:test.test@gmail.com</a></p>\n<p>GFM a-tail link <a href=\"https://my.oschina.net/u/3691274\">@pandao</a> 邮箱地址自动链接 <a href=\"mailto:test.test@gmail.com\">test.test@gmail.com</a> <a href=\"mailto:www@vip.qq.com\">www@vip.qq.com</a></p>\n<blockquote>\n<p>@pandao</p>\n</blockquote>\n<h1 id=\"多语言代码高亮-Codes\"><a href=\"#多语言代码高亮-Codes\" class=\"headerlink\" title=\"多语言代码高亮 Codes\"></a>多语言代码高亮 Codes</h1><h2 id=\"行内代码-Inline-code\"><a href=\"#行内代码-Inline-code\" class=\"headerlink\" title=\"行内代码 Inline code\"></a>行内代码 Inline code</h2><p>执行命令:<code>npm install marked</code></p>\n<h2 id=\"JS代码\"><a href=\"#JS代码\" class=\"headerlink\" title=\"JS代码\"></a>JS代码</h2><pre class=\"line-numbers language-javascript\" data-language=\"javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\tconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Hello world!\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n \n<span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">var</span> <span class=\"token function-variable function\">box</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> box<span class=\"token punctuation\">.</span>fn<span class=\"token punctuation\">.</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n box<span class=\"token punctuation\">.</span>prototype <span class=\"token operator\">=</span> box<span class=\"token punctuation\">.</span>fn <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">init</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'box.init()'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n\t\t<span class=\"token function-variable function\">add</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">str</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token function\">alert</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"add\"</span><span class=\"token punctuation\">,</span> str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n\t\t<span class=\"token function-variable function\">remove</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">str</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token function\">alert</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"remove\"</span><span class=\"token punctuation\">,</span> str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n \n box<span class=\"token punctuation\">.</span>fn<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">.</span>prototype <span class=\"token operator\">=</span> box<span class=\"token punctuation\">.</span>fn<span class=\"token punctuation\">;</span>\n \n window<span class=\"token punctuation\">.</span>box <span class=\"token operator\">=</span>box<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">var</span> testBox <span class=\"token operator\">=</span> <span class=\"token function\">box</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\ntestBox<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"jQuery\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">remove</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"jQuery\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h2 id=\"HTML-代码-HTML-codes\"><a href=\"#HTML-代码-HTML-codes\" class=\"headerlink\" title=\"HTML 代码 HTML codes\"></a>HTML 代码 HTML codes</h2><pre class=\"line-numbers language-markup\" data-language=\"markup\"><code class=\"language-markup\"><span class=\"token doctype\"><span class=\"token punctuation\"><!</span><span class=\"token doctype-tag\">DOCTYPE</span> <span class=\"token name\">html</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>html</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>head</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>mate</span> <span class=\"token attr-name\">charest</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>utf-8<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>meta</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>keywords<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Editor.md, Markdown, Editor<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>title</span><span class=\"token punctuation\">></span></span>Hello world!<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>title</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>style</span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text/css<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token style\"><span class=\"token language-css\">\n <span class=\"token selector\">body</span><span class=\"token punctuation\">{</span><span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span>14px<span class=\"token punctuation\">;</span><span class=\"token property\">color</span><span class=\"token punctuation\">:</span>#444<span class=\"token punctuation\">;</span><span class=\"token property\">font-family</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Microsoft Yahei\"</span><span class=\"token punctuation\">,</span> Tahoma<span class=\"token punctuation\">,</span> <span class=\"token string\">\"Hiragino Sans GB\"</span><span class=\"token punctuation\">,</span> Arial<span class=\"token punctuation\">;</span><span class=\"token property\">background</span><span class=\"token punctuation\">:</span>#fff<span class=\"token punctuation\">;</span><span class=\"token punctuation\">}</span>\n <span class=\"token selector\">ul</span><span class=\"token punctuation\">{</span><span class=\"token property\">list-style</span><span class=\"token punctuation\">:</span> none<span class=\"token punctuation\">;</span><span class=\"token punctuation\">}</span>\n <span class=\"token selector\">img</span><span class=\"token punctuation\">{</span><span class=\"token property\">border</span><span class=\"token punctuation\">:</span>none<span class=\"token punctuation\">;</span><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> middle<span class=\"token punctuation\">;</span><span class=\"token punctuation\">}</span>\n </span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>style</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>head</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>body</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>h1</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-xxl<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Hello world!<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>h1</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-green<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Plain text<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>p</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>body</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>html</span><span class=\"token punctuation\">></span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"图片-Images\"><a href=\"#图片-Images\" class=\"headerlink\" title=\"图片 Images\"></a>图片 Images</h1><p>Image:</p>\n<p><img src=\"https://pandao.github.io/editor.md/examples/images/4.jpg\"></p>\n<blockquote>\n<p>Follow your heart.</p>\n</blockquote>\n<p><img src=\"https://pandao.github.io/editor.md/examples/images/8.jpg\"></p>\n<blockquote>\n<p>图为:厦门白城沙滩</p>\n</blockquote>\n<p>图片加链接 (Image + Link):</p>\n<p><a href=\"https://pandao.github.io/editor.md/images/7.jpg\" title=\"李健首张专辑《似水流年》封面\"><img src=\"https://pandao.github.io/editor.md/examples/images/7.jpg\"></a></p>\n<blockquote>\n<p>图为:李健首张专辑《似水流年》封面</p>\n</blockquote>\n<hr>\n<h1 id=\"列表-Lists\"><a href=\"#列表-Lists\" class=\"headerlink\" title=\"列表 Lists\"></a>列表 Lists</h1><h2 id=\"无序列表(减号)Unordered-Lists\"><a href=\"#无序列表(减号)Unordered-Lists\" class=\"headerlink\" title=\"无序列表(减号)Unordered Lists (-)\"></a>无序列表(减号)Unordered Lists (-)</h2><ul>\n<li>列表一</li>\n<li>列表二</li>\n<li>列表三</li>\n</ul>\n<h2 id=\"无序列表(星号)Unordered-Lists\"><a href=\"#无序列表(星号)Unordered-Lists\" class=\"headerlink\" title=\"无序列表(星号)Unordered Lists (*)\"></a>无序列表(星号)Unordered Lists (*)</h2><ul>\n<li>列表一</li>\n<li>列表二</li>\n<li>列表三</li>\n</ul>\n<h2 id=\"无序列表(加号和嵌套)Unordered-Lists\"><a href=\"#无序列表(加号和嵌套)Unordered-Lists\" class=\"headerlink\" title=\"无序列表(加号和嵌套)Unordered Lists (+)\"></a>无序列表(加号和嵌套)Unordered Lists (+)</h2><ul>\n<li>列表一</li>\n<li>列表二<ul>\n<li>列表二-1</li>\n<li>列表二-2</li>\n<li>列表二-3</li>\n</ul>\n</li>\n<li>列表三<ul>\n<li>列表一</li>\n<li>列表二</li>\n<li>列表三</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"有序列表-Ordered-Lists\"><a href=\"#有序列表-Ordered-Lists\" class=\"headerlink\" title=\"有序列表 Ordered Lists (-)\"></a>有序列表 Ordered Lists (-)</h2><ol>\n<li>第一行</li>\n<li>第二行</li>\n<li>第三行</li>\n</ol>\n<h2 id=\"GFM-task-list\"><a href=\"#GFM-task-list\" class=\"headerlink\" title=\"GFM task list\"></a>GFM task list</h2><ul>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> GFM task list 1</li>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> GFM task list 2</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3<ul>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3-1</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3-2</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 3-3</li>\n</ul>\n</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 4<ul>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 4-1</li>\n<li><input disabled=\"\" type=\"checkbox\"> GFM task list 4-2</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h1 id=\"绘制表格-Tables\"><a href=\"#绘制表格-Tables\" class=\"headerlink\" title=\"绘制表格 Tables\"></a>绘制表格 Tables</h1><table>\n<thead>\n<tr>\n<th>项目</th>\n<th align=\"right\">价格</th>\n<th align=\"center\">数量</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>计算机</td>\n<td align=\"right\">$1600</td>\n<td align=\"center\">5</td>\n</tr>\n<tr>\n<td>手机</td>\n<td align=\"right\">$12</td>\n<td align=\"center\">12</td>\n</tr>\n<tr>\n<td>管线</td>\n<td align=\"right\">$1</td>\n<td align=\"center\">234</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>First Header</th>\n<th>Second Header</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n<tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>First Header</th>\n<th>Second Header</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n<tr>\n<td>Content Cell</td>\n<td>Content Cell</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>Function name</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>help()</code></td>\n<td>Display the help window.</td>\n</tr>\n<tr>\n<td><code>destroy()</code></td>\n<td><strong>Destroy your computer!</strong></td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Left-Aligned</th>\n<th align=\"center\">Center Aligned</th>\n<th align=\"right\">Right Aligned</th>\n</tr>\n</thead>\n<tbody><tr>\n<td align=\"left\">col 3 is</td>\n<td align=\"center\">some wordy text</td>\n<td align=\"right\">$1600</td>\n</tr>\n<tr>\n<td align=\"left\">col 2 is</td>\n<td align=\"center\">centered</td>\n<td align=\"right\">$12</td>\n</tr>\n<tr>\n<td align=\"left\">zebra stripes</td>\n<td align=\"center\">are neat</td>\n<td align=\"right\">$1</td>\n</tr>\n</tbody></table>\n<table>\n<thead>\n<tr>\n<th>Item</th>\n<th align=\"right\">Value</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Computer</td>\n<td align=\"right\">$1600</td>\n</tr>\n<tr>\n<td>Phone</td>\n<td align=\"right\">$12</td>\n</tr>\n<tr>\n<td>Pipe</td>\n<td align=\"right\">$1</td>\n</tr>\n</tbody></table>\n<h1 id=\"科学公式-TeX-KaTeX\"><a href=\"#科学公式-TeX-KaTeX\" class=\"headerlink\" title=\"科学公式 TeX(KaTeX)\"></a>科学公式 TeX(KaTeX)</h1><p>$$E=mc^2$$</p>\n<p>$$x > y$$</p>\n<p>$$(\\sqrt{3x-1}+(1+x)^2)$$</p>\n<p>$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$</p>\n<h1 id=\"绘制流程图-mermaid\"><a href=\"#绘制流程图-mermaid\" class=\"headerlink\" title=\"绘制流程图 mermaid\"></a>绘制流程图 mermaid</h1><div class=\"mermaid\">\n graph TD;\n A --> B;\n A --> C;\n B --> D;\n C --> D;\n </div>\n\n<p>End</p>\n"},{"title":"付鹏:展望2023年下半年全球经济格局,异常的利差意味着什么","status":"done","_content":"\n![美债10年利差](/img/mz10nq.png)\n\n08年的金融危机,或者09年,是一个重要的时间节点,到今年(2023年),在座各位你们将迎来第二个重要的节点,可能对于很多年轻人来讲,最好的一个时代结束了,我们所有人的下半辈子的投资,注意,也非常简单,抄巴菲特作业。\n\n巴菲特刚去了日本(2011年也去了),你们就知道日本发生了什么。你看到了安倍晋三的三支箭,你看到了日本日元的大幅度的贬值。过去两年,巴菲特一直在买日本的这五大商社:三菱商社、三井物产、伊藤忠商事、住友、丸红,然后大家还看到巴菲特在过去的两年一直在买美孚和西方石油。有人说了巴菲特在赌油价上涨,我只能说如果你讲这种话的话,你金融基本没入门。\n\n我想说的是,任何的技术创新在某些环节中它是由资金来决定的,技术人员只是其中一环。没有钱,没有便宜的钱一切都是假的。所以技术的进步的背后有个很关键的因素就是钱,钱多钱少,钱贵钱便宜,你的投资将完全不同。比如说昨天还是前天你们看到软银的孙正义基本上把所有的阿里巴巴的资金卖掉了,开始往回抽回资金。我经常说,包括对我自己的子女,都讲一句话:99%的命运和1%的努力,而不是99%的努力,1%的命运。大势极其的重要,这个\"大势\"或许也就是我们在金融市场打拼,真正能够获得的。\n\n然后图上右侧我给大家放了最核心的美债利差,美债利差是什么东西?可以这么简单理解\"全球资金的成本\"。美国是一年期国债收益率和十年期国债收益率的差值,主要是差值。如果懂商品期货的话你们知道,我们的所有东西都有一个概念叫做当期价格和远期价格,那么资金一年期可以简单理解成当期资金价格,十年期你可以理解成十年拉长十年以后的资金价格。这个\"一\"和\"十\"的概念是什么?十年期大概等同于经济增长。我们过去的四十年的大部分时间短期利率低于经济增长。比如说你现在干了一个企业,你预期你未来的三到五年,你能获得10%左右的利润,而当期银行提供给你的借贷成本只有三个点,你知道你该干嘛了吗?借便宜的钱投高息的回报。\n\n本质上金融的核心除了研究经济,研究长期回报以外,还有个很重要的就是,从哪借钱?能不能借到便宜的钱?能不能在便宜的钱上面借更多的钱?但不是说便宜的钱就一定能够刺激起来借贷,日本90年房地产泡沫破裂以后,利率水平给你干到0你都不借,为什么?因为没有资产回报!这个怎么反映在我们的全球利率上呢?简单讲这个数字在0以上,它代表着你现在的借贷资金成本在这,你的投资回报在下头。\n\n你记住一点,你活多大年龄决定了你见过多大市面,我们现在在中国从事金融的大部分的人,有见过40年前国际市场是什么情况吗?巴菲特90多了,芒格明年就100了,对吧!用我的话说你要活到那个年龄,你啥都见过了!金融理念特别简单,借便宜的钱去赚高息的回报,就这么简单。\n\n一定要喜欢危机,可能是干实体的人不喜欢,但我可以告诉你,干金融的人我们超级喜欢危机,因为每一次危机的到来将带来一次年轻人特别喜欢的机会,赌一赌,单车变摩托,赌的是什么呢?你就赌危机爆发之后,全球的政府和央行永远只会干一件事:放水降息、放水降更多的息、放更多的水降更多的息。\n\n40年前平均的状态,实际上就是短期利率永远高于长期经济回报,这在经济学中是什么?有人会说通胀、通缩,其实还有一个状态,大家并不喜欢:\"滞胀\",这种状态距离我们已经40年了,换句话说全球已经40年,没太出现过这种情况。但对不起,你们有没有想过,现在或许来了,它导致的我们的所有投资完全不同。\n\n资金越便宜,长期投资回报越稳定,借越便宜的钱,买更高的高息资产借更多。一旦倒过来,我就请问你怎么交易?银行存款五点几,投所有的资产回报只有三点几,我就问你大部分人会怎么做?不是说就指现金在银行的才叫现金,只要在当期能够产生高息回报的资金或者资产都叫现金。我举个例子,比如说一个公司股息分10%,它算不算高息资产?它算不算高息现金?它每年都给你分跟你银行存到银行每年拿5%有区别?没区别!所以说这个短期高于长期从最直觉的理解就是资金应该放在现金上。\n\n为什么巴菲特买那些公司?那些公司跟上面的现金奶牛ETF之间是什么关系?08年金融危机后,美国把基准利率水平拉得非常低,09年两会口号是:\"做大做强金融,万众创业,万众创新\",之后出来的小贷公司,担保公司P2P对吧,一连串都是在这个大的宏观背景下去搞的。09年之后你真正应该获得的只有两个收益:一个卖房炒房卖房炒房、买更多的房炒更多的房。第二个投腾讯投阿里投万众创业投万众创新,就这两条路。在中国你记住有些路不是自然形成的,它在那个关键的节点上全是由政府这支无形的手在引导两会这个口号一提出来,你一看中国居民部门属于\"高储蓄低杠杆\",你知道人生的机会来了。\n\n真正投资的精髓不是买资产,是如何去负债。如何在钱便宜的时间点上去负债、付更多的债、如何去付更低的资金成本,然后右手才去考虑资产,很多人光想资产而不去考虑负债。\n\n房价上涨就一条,这个地方有没有人进来。第二,这个地方进来的人能不能借更多的钱,就是居民部门杠杆率。首先得有居民,第二得有杠杆率,如果这俩都没了,这个资产基本就到头了。09年就是让他们加杠杆扛着进去的,现在的经济为什么差?我可以告诉你,还有人说刺激,咋刺激?09年能刺激,是因为所有的居民部门有储蓄,稳定,企业低负债,现在是没储蓄、不稳定。更重要的是睁眼全是债,简单讲年轻人杠杆加不动,这才是最大的风险。核心城市核心区域除此之外都别碰,因为只有这个核心俩字才能带来人。香港特首前段时间天天在广深在那晃荡的,不就是邀请你们去吗?但是你跟他说我没钱,家里也没钱,我就是个穷小子,那对不起,你别过来。你来我也不要,因为我要你的根本是:你有钱,你能接得住,你能加得住杠杆。我认为最核心的一个是:房价到达一定程度,人自然没法生,隔壁韩国如此,日本如此,中国亦如此。中国现在的大体情况是:未来的五到十年,基本处在加完杠杆后还债的年代。低增长、低通胀、低利率,三低。而过去的三十年,中国一直是高增长,高通胀、高利率。高和低之间差距是什么?杠杆率到一定程度自然就定了,隔壁日本就是到了极致,崩了!\n\n老美的底层老百姓过得并不好,但老美的富人更好了,富人靠杠杆。记住一点,富人靠杠杆、靠金融资产,穷人才靠劳动力。在全球化的过程,美国居民保持的是最低的生存权利(美国底层人民),他的收入是不增长的。从1982年开始,美国的数字是多少呢?平均薪资增速3%,金字塔的底层25%和顶层25%的薪资性收入差是1%。啥意思呢?平均3%的薪资收入增长再减去1%的社会阶层差,底层25%的美国居民薪资性收入仅仅是2%。大家发现这个2%是什么?正好就是美国通胀水平。啥意思呢?你可以理解,这美国的底层居民过去的二三十年薪资扣掉通胀是不增长的。\n\n二十多年前,索罗斯写那本联名书的时候,他就给大家解释过这个话题,他说中国庞大的贸易顺差去补偿了美国底层居民。举个例子,一个美国人,薪资2万保持不变,但是呢,中国生产的笔记本电脑从5000美金降到了1000美金,我的购买力怎么样?增强了!这就是庞大的中国出口。中国出口的商品绕一圈转回来,变成中国的外汇储备,中国的外汇储备买的是什么,买的是美债。美债用于什么了?美债用于两件事:打仗、给底层居民补医疗和教育。所以你就会发现。如果你做美国的底层居民的话,出现什么情况呢?收入没增长,但是中国供应的商品的购买力降弱了,这个购买力让美国人的购买力增强了。同时中国大量的顺差和外汇储备补偿了美国的教育和医疗。\n\n美国真正发家致富的人,都是看明白了这套游戏的。一旦底层居民薪资收入不增长,我们教科书里学的货币银行学中,央行双目标志将失效,也就是说中央银行将永远不用去考虑薪资通胀,只需要去考虑经济。此时就会产生我们现在这个模型\"经济不行就降息\"。每一次经济不行的时候,就借更多的美元,买更多的美国金融性资产。但在82年,美国金融监管放开了一个重要的法案,金融自由化。啥意思,如果监管部门把银行管得死死的,银行不许给居民加杠杆,就算来了这样的机会,社会也没有财富效应。但如果我此时告诉银行金融监管你们可以去创造各种各样的金融衍生产品,去给居民部门加杠杆,举例子房贷可以变成18种花样,于是82年到2022年,搞了整整40年。\n\n到了02年的时候,美国居民部门突然间反应过来,哦!原来富人不是靠着劳动挣钱的,富人得去炒金融资产。02年小布什一句话:你们得做起美国梦来。什么意思?你们手上没有股票,得有!但问题是在于,这帮穷人的美国梦是最可怕的,因为他收入不增长,还借了更多的房贷,02年到08年的这种做法,结果就是08年崩掉了。但崩掉以后,美国的底层人民麻烦就大了,被迫还了15年的债。从08年到现在,美国居民部门一直在去杠杆还债,但是你知道一个人收入不增长,然后还要不停的还债,他最终会转成什么?欧美有两样东西会让整个社会颠覆的,一个是\"选票\"、\"上街大游行\"。他的选票会转化成什么?答案:\"特朗普\"。也就是要么民粹,要么你补偿我。补偿只有一个方法,提高他的薪资收入。你以为真的是像宏观经济上在跟你讲说,因为这场疫情导致供应链导致劳动力市场结构发生了变换?那都不是核心,真正的核心是:当居民部门还了12年、15年债以后,这部分人不想还了,你要么就是更多的补偿给我、要么就是给我加薪。\n\n目前美国出现的就一个结果:底层通胀、顶层通缩。知道美国现在谁最惨吗?美国西海岸。硅谷、洛杉矶、旧金山的富人,这15年是他们加了杠杆,08年后的这漫长的15年创造了我们近乎200年以来,全世界最低的资金年代,它也创造了全世界几乎是最大的资产。这个资产是什么?虚拟资产!你们知道为什么会出现虚拟性货币?如果这么庞大的流动性,这么便宜的资金,冲向了实物资产(粮食、房子),这个价格一旦失控,我们离战争就不远了。虚拟资产有个好处,它仅仅消灭富人财富。西海岸的这帮我们叫美国新贵,准确说叫做穷人日子很好,富人日子很难受。富人中间是老钱收割新钱,老钱是什么呢?华盛顿、纽约、休斯顿,新钱就是硅谷、洛杉矶。新钱靠的是什么?科技、技术、创新。你创造一个东西带来的社会价值,可能只创造了1万块。但是金融市场给予你200倍。一次性兑付了几百年的收益。这就是我们的金融市场,当利率水平过低的时候,它会使得所有资产的估值极高。而科技作为主要的推动力,会自然而然地迎来一场高估值的泡沫。\n\n干一级市场投资,我可以告诉你估值泡沫出现的时候,那特征都是一样的,简单说:瞎几把随便写PPT都能融到钱。有很多人的利益是建立在:利率和资产价格上的。经济行的时候,是可以承受高利率的。经济不行的时候,(日本)把利率降到负都没用。\n\n这四十年结束以后,逻辑是什么?科技肯定不行,深圳科创你就搞到天上去,你拉动整个社会的经济也远着呢!技术的进步,只有转化成全民生产率,才能拉动所有人。中国现在相反,是低增长、低通胀、低利率,而这3低的背后是高杠杆。有一种情况,可以让我们避开这种所谓的内卷型的环境,就是走出去。美国在六十年代到现在,不是盈利率的增长,它获得的是市场份额的扩大。中国现在所有的企业会内卷的,会卷得一塌糊涂,原因很简单,市场只有国内了。2018年开始的,中美贸易战逆全球化,鬼佬就是要把我们踢出去。因为不走出去,我们过去的二三十年所有的产能是给全世界走配套的。如果不走出去,单凭我们国内的居民部门消化不了。\n\n我们国内居民部门中还出现了一个问题,大部分的90后、95后是在缩的,他们是在降低欲望的,他们是在消费降级的。高端消费永远是给那些富人的。中产阶级的杠杆达到一定程度,就会进入一个很典型的低欲望社会。跟现在比较穷的年轻人打打交道,你们就会发现,不结婚挺好、不生孩子挺好、这个不买房也不错、这个手机也不用换。然后这个蜜雪冰城的咖啡。虽然难喝点,但还可以你。跟富二代富三代打交道,就看不出来。中国现在也是典型的K字型。\n\n过去四十年的游戏结束了,现金远远地甩开了长期经济增长。巴菲特已经教过大家了,最好的公司是什么?经济好也好。经济坏也好,是刚需、高股息类的公司,且不受经济低迷影响的公司。你们有没有发现在最近在炒中草药,为啥炒中炒药?就是刚需,好比通信行业的话费,你必须得按月充值。所以巴菲特在买的是什么?现金奶牛ETF的配置,看看都是啥?能源、医药、金融。这些行业就是典型的现金类资产,巴菲特想获得一样东西,知道是什么吗?股息率!美孚的几个财务数据叠加会发现第一种情况,低油价、经济差,它的股价上涨的。并不是巴菲特赌油价上涨。\n\n全球过去40年挣100块钱,只有40块钱来自于你们理解中的经济增长带来的回报,有60块钱是来自于低利率加杠杆的投资回报。所以这个世界有两个投资人:一个叫长期价值投资回报,就是获得经济增长带来的贴现。另外一个就是获得利率波动带来的加杠杆,房子准确说典型的就是杠杆性资产,如果房住不炒,那理论上它是没有价格波动的。\n\n今年是蹦了一个ChatGPT,明年还必定还会有个啥的。当然我只想说一句,当你听到今年AI的时候,你们还记得去年大明湖畔的元宇宙吗?你们还记得十年前的互联网加万物吗?过去几年全球利率低,咱们可以你炒一波咱们给90后,90后炒一波给95后,95后炒一波给00后,然后全球流动性一收,咱们把00后挂到高位上。为什么是这个路径?越年轻的越信技术,他们认为技术能改变世界,结果世界会残酷地教育你。技术能不能改变世界?能!但绝对不是炒技术,炒技术改变不了世界。\n\n从去年十一月份,所有的主题性投资只能这样炒,当你想给90后的时候,你发现90后的元宇宙还没解套呢!90后借不来更多的钱,所以周期会非常短,迅速炒迅速落。可人民币现在利率这么低,为什么会没有钱呢?因为所有科技性投资,不是跟着人民币利率走的。比如ChatGPT,是海外现有了这个东西,国内跟风,元宇宙亦然,新能源汽车也是现有了特斯拉。中国在技术方面采取的战略是:摸着石头过河、黑猫白猫带着老鼠就行。所以我们会出现一种情况,海外有个热点我们马上跟。那问题就来了,你的估值怎么定价?做过一级市场投资的,投资某家企业的时候,对标物是美国某某企业。美股最强大的地方,是把所有创新的Top级的领军人物均以美元定价,导致的一个结果就是,它是锚!定价了所有估值水平。如果人民币能对资产估值有影响,那就必须要求投这家企业的对标物是在中国上市。\n\n能挣钱的企业就是好企业?像国内某企业家讲的,我五年不给你分红,你能把我咋滴?这种企业就不是好企业。挣钱分钱,经济不好的时候能力还继续挣钱,这就是它的垄断性。所以你们会发现,别瞧不起老钱,老钱投的上游。改革开放之后,煤炭、电力、很多行业都是允许民营企业介入的,到现在为止我就请问,这些上游还有民营企业吗?\n\n回到日本的商社,跟中国国有企业本质是一样,它是家庭组织,不由董事会左右。巴菲特去了以后,和高管和家族的人员就谈了一个事,你是现金奶牛,因为它控制了全球的上游。所以在经济不好的时候,日本的五大商社就是中国的国有企业,也是美国的能源企业。能挣钱、有利润,然后有大量的自由现金流。它唯一的问题是:\"公司治理\",就是它不一定愿意给你分。现在股息率快到五了,你不分,我就把公司买成我的,然后日本人说的就是:巴菲特先生,你别把我控制,我愿意分钱给你。因此巴菲特干的事情,买了日本的这些高股息的资产,并且在日本发行了无抵押担保的日元债券。啥意思呢?巴菲特一毛钱没掏,用日本人的储蓄以及低利率水平借钱,买了日本人的资产,还强迫日本人分了高股息,这才是资本真正的收割。\n\n未来的5年是10年,真正的游戏是如何借低息买高息。美元不便宜了,但美元的高息依旧很吸引人。那么问题就来了,谁是低息?美元如果一直维持高增长,高通胀、高利率的话,人民币一定是贬值的。而倒过来的交易,借人民币转高息资产,这个高息资产可以是人民币里边不多有的高息资产,也可以是全球范围内的高股息现金奶牛,你会发现,这就又形成了类似于15年前的套利资本流动、交易机会。","source":"_posts/finance/付鹏:展望2023年下半年全球经济格局,异常的利差意味着什么.md","raw":"---\ntitle: 付鹏:展望2023年下半年全球经济格局,异常的利差意味着什么\ncategories:\n - Finance\nstatus: done\n---\n\n![美债10年利差](/img/mz10nq.png)\n\n08年的金融危机,或者09年,是一个重要的时间节点,到今年(2023年),在座各位你们将迎来第二个重要的节点,可能对于很多年轻人来讲,最好的一个时代结束了,我们所有人的下半辈子的投资,注意,也非常简单,抄巴菲特作业。\n\n巴菲特刚去了日本(2011年也去了),你们就知道日本发生了什么。你看到了安倍晋三的三支箭,你看到了日本日元的大幅度的贬值。过去两年,巴菲特一直在买日本的这五大商社:三菱商社、三井物产、伊藤忠商事、住友、丸红,然后大家还看到巴菲特在过去的两年一直在买美孚和西方石油。有人说了巴菲特在赌油价上涨,我只能说如果你讲这种话的话,你金融基本没入门。\n\n我想说的是,任何的技术创新在某些环节中它是由资金来决定的,技术人员只是其中一环。没有钱,没有便宜的钱一切都是假的。所以技术的进步的背后有个很关键的因素就是钱,钱多钱少,钱贵钱便宜,你的投资将完全不同。比如说昨天还是前天你们看到软银的孙正义基本上把所有的阿里巴巴的资金卖掉了,开始往回抽回资金。我经常说,包括对我自己的子女,都讲一句话:99%的命运和1%的努力,而不是99%的努力,1%的命运。大势极其的重要,这个\"大势\"或许也就是我们在金融市场打拼,真正能够获得的。\n\n然后图上右侧我给大家放了最核心的美债利差,美债利差是什么东西?可以这么简单理解\"全球资金的成本\"。美国是一年期国债收益率和十年期国债收益率的差值,主要是差值。如果懂商品期货的话你们知道,我们的所有东西都有一个概念叫做当期价格和远期价格,那么资金一年期可以简单理解成当期资金价格,十年期你可以理解成十年拉长十年以后的资金价格。这个\"一\"和\"十\"的概念是什么?十年期大概等同于经济增长。我们过去的四十年的大部分时间短期利率低于经济增长。比如说你现在干了一个企业,你预期你未来的三到五年,你能获得10%左右的利润,而当期银行提供给你的借贷成本只有三个点,你知道你该干嘛了吗?借便宜的钱投高息的回报。\n\n本质上金融的核心除了研究经济,研究长期回报以外,还有个很重要的就是,从哪借钱?能不能借到便宜的钱?能不能在便宜的钱上面借更多的钱?但不是说便宜的钱就一定能够刺激起来借贷,日本90年房地产泡沫破裂以后,利率水平给你干到0你都不借,为什么?因为没有资产回报!这个怎么反映在我们的全球利率上呢?简单讲这个数字在0以上,它代表着你现在的借贷资金成本在这,你的投资回报在下头。\n\n你记住一点,你活多大年龄决定了你见过多大市面,我们现在在中国从事金融的大部分的人,有见过40年前国际市场是什么情况吗?巴菲特90多了,芒格明年就100了,对吧!用我的话说你要活到那个年龄,你啥都见过了!金融理念特别简单,借便宜的钱去赚高息的回报,就这么简单。\n\n一定要喜欢危机,可能是干实体的人不喜欢,但我可以告诉你,干金融的人我们超级喜欢危机,因为每一次危机的到来将带来一次年轻人特别喜欢的机会,赌一赌,单车变摩托,赌的是什么呢?你就赌危机爆发之后,全球的政府和央行永远只会干一件事:放水降息、放水降更多的息、放更多的水降更多的息。\n\n40年前平均的状态,实际上就是短期利率永远高于长期经济回报,这在经济学中是什么?有人会说通胀、通缩,其实还有一个状态,大家并不喜欢:\"滞胀\",这种状态距离我们已经40年了,换句话说全球已经40年,没太出现过这种情况。但对不起,你们有没有想过,现在或许来了,它导致的我们的所有投资完全不同。\n\n资金越便宜,长期投资回报越稳定,借越便宜的钱,买更高的高息资产借更多。一旦倒过来,我就请问你怎么交易?银行存款五点几,投所有的资产回报只有三点几,我就问你大部分人会怎么做?不是说就指现金在银行的才叫现金,只要在当期能够产生高息回报的资金或者资产都叫现金。我举个例子,比如说一个公司股息分10%,它算不算高息资产?它算不算高息现金?它每年都给你分跟你银行存到银行每年拿5%有区别?没区别!所以说这个短期高于长期从最直觉的理解就是资金应该放在现金上。\n\n为什么巴菲特买那些公司?那些公司跟上面的现金奶牛ETF之间是什么关系?08年金融危机后,美国把基准利率水平拉得非常低,09年两会口号是:\"做大做强金融,万众创业,万众创新\",之后出来的小贷公司,担保公司P2P对吧,一连串都是在这个大的宏观背景下去搞的。09年之后你真正应该获得的只有两个收益:一个卖房炒房卖房炒房、买更多的房炒更多的房。第二个投腾讯投阿里投万众创业投万众创新,就这两条路。在中国你记住有些路不是自然形成的,它在那个关键的节点上全是由政府这支无形的手在引导两会这个口号一提出来,你一看中国居民部门属于\"高储蓄低杠杆\",你知道人生的机会来了。\n\n真正投资的精髓不是买资产,是如何去负债。如何在钱便宜的时间点上去负债、付更多的债、如何去付更低的资金成本,然后右手才去考虑资产,很多人光想资产而不去考虑负债。\n\n房价上涨就一条,这个地方有没有人进来。第二,这个地方进来的人能不能借更多的钱,就是居民部门杠杆率。首先得有居民,第二得有杠杆率,如果这俩都没了,这个资产基本就到头了。09年就是让他们加杠杆扛着进去的,现在的经济为什么差?我可以告诉你,还有人说刺激,咋刺激?09年能刺激,是因为所有的居民部门有储蓄,稳定,企业低负债,现在是没储蓄、不稳定。更重要的是睁眼全是债,简单讲年轻人杠杆加不动,这才是最大的风险。核心城市核心区域除此之外都别碰,因为只有这个核心俩字才能带来人。香港特首前段时间天天在广深在那晃荡的,不就是邀请你们去吗?但是你跟他说我没钱,家里也没钱,我就是个穷小子,那对不起,你别过来。你来我也不要,因为我要你的根本是:你有钱,你能接得住,你能加得住杠杆。我认为最核心的一个是:房价到达一定程度,人自然没法生,隔壁韩国如此,日本如此,中国亦如此。中国现在的大体情况是:未来的五到十年,基本处在加完杠杆后还债的年代。低增长、低通胀、低利率,三低。而过去的三十年,中国一直是高增长,高通胀、高利率。高和低之间差距是什么?杠杆率到一定程度自然就定了,隔壁日本就是到了极致,崩了!\n\n老美的底层老百姓过得并不好,但老美的富人更好了,富人靠杠杆。记住一点,富人靠杠杆、靠金融资产,穷人才靠劳动力。在全球化的过程,美国居民保持的是最低的生存权利(美国底层人民),他的收入是不增长的。从1982年开始,美国的数字是多少呢?平均薪资增速3%,金字塔的底层25%和顶层25%的薪资性收入差是1%。啥意思呢?平均3%的薪资收入增长再减去1%的社会阶层差,底层25%的美国居民薪资性收入仅仅是2%。大家发现这个2%是什么?正好就是美国通胀水平。啥意思呢?你可以理解,这美国的底层居民过去的二三十年薪资扣掉通胀是不增长的。\n\n二十多年前,索罗斯写那本联名书的时候,他就给大家解释过这个话题,他说中国庞大的贸易顺差去补偿了美国底层居民。举个例子,一个美国人,薪资2万保持不变,但是呢,中国生产的笔记本电脑从5000美金降到了1000美金,我的购买力怎么样?增强了!这就是庞大的中国出口。中国出口的商品绕一圈转回来,变成中国的外汇储备,中国的外汇储备买的是什么,买的是美债。美债用于什么了?美债用于两件事:打仗、给底层居民补医疗和教育。所以你就会发现。如果你做美国的底层居民的话,出现什么情况呢?收入没增长,但是中国供应的商品的购买力降弱了,这个购买力让美国人的购买力增强了。同时中国大量的顺差和外汇储备补偿了美国的教育和医疗。\n\n美国真正发家致富的人,都是看明白了这套游戏的。一旦底层居民薪资收入不增长,我们教科书里学的货币银行学中,央行双目标志将失效,也就是说中央银行将永远不用去考虑薪资通胀,只需要去考虑经济。此时就会产生我们现在这个模型\"经济不行就降息\"。每一次经济不行的时候,就借更多的美元,买更多的美国金融性资产。但在82年,美国金融监管放开了一个重要的法案,金融自由化。啥意思,如果监管部门把银行管得死死的,银行不许给居民加杠杆,就算来了这样的机会,社会也没有财富效应。但如果我此时告诉银行金融监管你们可以去创造各种各样的金融衍生产品,去给居民部门加杠杆,举例子房贷可以变成18种花样,于是82年到2022年,搞了整整40年。\n\n到了02年的时候,美国居民部门突然间反应过来,哦!原来富人不是靠着劳动挣钱的,富人得去炒金融资产。02年小布什一句话:你们得做起美国梦来。什么意思?你们手上没有股票,得有!但问题是在于,这帮穷人的美国梦是最可怕的,因为他收入不增长,还借了更多的房贷,02年到08年的这种做法,结果就是08年崩掉了。但崩掉以后,美国的底层人民麻烦就大了,被迫还了15年的债。从08年到现在,美国居民部门一直在去杠杆还债,但是你知道一个人收入不增长,然后还要不停的还债,他最终会转成什么?欧美有两样东西会让整个社会颠覆的,一个是\"选票\"、\"上街大游行\"。他的选票会转化成什么?答案:\"特朗普\"。也就是要么民粹,要么你补偿我。补偿只有一个方法,提高他的薪资收入。你以为真的是像宏观经济上在跟你讲说,因为这场疫情导致供应链导致劳动力市场结构发生了变换?那都不是核心,真正的核心是:当居民部门还了12年、15年债以后,这部分人不想还了,你要么就是更多的补偿给我、要么就是给我加薪。\n\n目前美国出现的就一个结果:底层通胀、顶层通缩。知道美国现在谁最惨吗?美国西海岸。硅谷、洛杉矶、旧金山的富人,这15年是他们加了杠杆,08年后的这漫长的15年创造了我们近乎200年以来,全世界最低的资金年代,它也创造了全世界几乎是最大的资产。这个资产是什么?虚拟资产!你们知道为什么会出现虚拟性货币?如果这么庞大的流动性,这么便宜的资金,冲向了实物资产(粮食、房子),这个价格一旦失控,我们离战争就不远了。虚拟资产有个好处,它仅仅消灭富人财富。西海岸的这帮我们叫美国新贵,准确说叫做穷人日子很好,富人日子很难受。富人中间是老钱收割新钱,老钱是什么呢?华盛顿、纽约、休斯顿,新钱就是硅谷、洛杉矶。新钱靠的是什么?科技、技术、创新。你创造一个东西带来的社会价值,可能只创造了1万块。但是金融市场给予你200倍。一次性兑付了几百年的收益。这就是我们的金融市场,当利率水平过低的时候,它会使得所有资产的估值极高。而科技作为主要的推动力,会自然而然地迎来一场高估值的泡沫。\n\n干一级市场投资,我可以告诉你估值泡沫出现的时候,那特征都是一样的,简单说:瞎几把随便写PPT都能融到钱。有很多人的利益是建立在:利率和资产价格上的。经济行的时候,是可以承受高利率的。经济不行的时候,(日本)把利率降到负都没用。\n\n这四十年结束以后,逻辑是什么?科技肯定不行,深圳科创你就搞到天上去,你拉动整个社会的经济也远着呢!技术的进步,只有转化成全民生产率,才能拉动所有人。中国现在相反,是低增长、低通胀、低利率,而这3低的背后是高杠杆。有一种情况,可以让我们避开这种所谓的内卷型的环境,就是走出去。美国在六十年代到现在,不是盈利率的增长,它获得的是市场份额的扩大。中国现在所有的企业会内卷的,会卷得一塌糊涂,原因很简单,市场只有国内了。2018年开始的,中美贸易战逆全球化,鬼佬就是要把我们踢出去。因为不走出去,我们过去的二三十年所有的产能是给全世界走配套的。如果不走出去,单凭我们国内的居民部门消化不了。\n\n我们国内居民部门中还出现了一个问题,大部分的90后、95后是在缩的,他们是在降低欲望的,他们是在消费降级的。高端消费永远是给那些富人的。中产阶级的杠杆达到一定程度,就会进入一个很典型的低欲望社会。跟现在比较穷的年轻人打打交道,你们就会发现,不结婚挺好、不生孩子挺好、这个不买房也不错、这个手机也不用换。然后这个蜜雪冰城的咖啡。虽然难喝点,但还可以你。跟富二代富三代打交道,就看不出来。中国现在也是典型的K字型。\n\n过去四十年的游戏结束了,现金远远地甩开了长期经济增长。巴菲特已经教过大家了,最好的公司是什么?经济好也好。经济坏也好,是刚需、高股息类的公司,且不受经济低迷影响的公司。你们有没有发现在最近在炒中草药,为啥炒中炒药?就是刚需,好比通信行业的话费,你必须得按月充值。所以巴菲特在买的是什么?现金奶牛ETF的配置,看看都是啥?能源、医药、金融。这些行业就是典型的现金类资产,巴菲特想获得一样东西,知道是什么吗?股息率!美孚的几个财务数据叠加会发现第一种情况,低油价、经济差,它的股价上涨的。并不是巴菲特赌油价上涨。\n\n全球过去40年挣100块钱,只有40块钱来自于你们理解中的经济增长带来的回报,有60块钱是来自于低利率加杠杆的投资回报。所以这个世界有两个投资人:一个叫长期价值投资回报,就是获得经济增长带来的贴现。另外一个就是获得利率波动带来的加杠杆,房子准确说典型的就是杠杆性资产,如果房住不炒,那理论上它是没有价格波动的。\n\n今年是蹦了一个ChatGPT,明年还必定还会有个啥的。当然我只想说一句,当你听到今年AI的时候,你们还记得去年大明湖畔的元宇宙吗?你们还记得十年前的互联网加万物吗?过去几年全球利率低,咱们可以你炒一波咱们给90后,90后炒一波给95后,95后炒一波给00后,然后全球流动性一收,咱们把00后挂到高位上。为什么是这个路径?越年轻的越信技术,他们认为技术能改变世界,结果世界会残酷地教育你。技术能不能改变世界?能!但绝对不是炒技术,炒技术改变不了世界。\n\n从去年十一月份,所有的主题性投资只能这样炒,当你想给90后的时候,你发现90后的元宇宙还没解套呢!90后借不来更多的钱,所以周期会非常短,迅速炒迅速落。可人民币现在利率这么低,为什么会没有钱呢?因为所有科技性投资,不是跟着人民币利率走的。比如ChatGPT,是海外现有了这个东西,国内跟风,元宇宙亦然,新能源汽车也是现有了特斯拉。中国在技术方面采取的战略是:摸着石头过河、黑猫白猫带着老鼠就行。所以我们会出现一种情况,海外有个热点我们马上跟。那问题就来了,你的估值怎么定价?做过一级市场投资的,投资某家企业的时候,对标物是美国某某企业。美股最强大的地方,是把所有创新的Top级的领军人物均以美元定价,导致的一个结果就是,它是锚!定价了所有估值水平。如果人民币能对资产估值有影响,那就必须要求投这家企业的对标物是在中国上市。\n\n能挣钱的企业就是好企业?像国内某企业家讲的,我五年不给你分红,你能把我咋滴?这种企业就不是好企业。挣钱分钱,经济不好的时候能力还继续挣钱,这就是它的垄断性。所以你们会发现,别瞧不起老钱,老钱投的上游。改革开放之后,煤炭、电力、很多行业都是允许民营企业介入的,到现在为止我就请问,这些上游还有民营企业吗?\n\n回到日本的商社,跟中国国有企业本质是一样,它是家庭组织,不由董事会左右。巴菲特去了以后,和高管和家族的人员就谈了一个事,你是现金奶牛,因为它控制了全球的上游。所以在经济不好的时候,日本的五大商社就是中国的国有企业,也是美国的能源企业。能挣钱、有利润,然后有大量的自由现金流。它唯一的问题是:\"公司治理\",就是它不一定愿意给你分。现在股息率快到五了,你不分,我就把公司买成我的,然后日本人说的就是:巴菲特先生,你别把我控制,我愿意分钱给你。因此巴菲特干的事情,买了日本的这些高股息的资产,并且在日本发行了无抵押担保的日元债券。啥意思呢?巴菲特一毛钱没掏,用日本人的储蓄以及低利率水平借钱,买了日本人的资产,还强迫日本人分了高股息,这才是资本真正的收割。\n\n未来的5年是10年,真正的游戏是如何借低息买高息。美元不便宜了,但美元的高息依旧很吸引人。那么问题就来了,谁是低息?美元如果一直维持高增长,高通胀、高利率的话,人民币一定是贬值的。而倒过来的交易,借人民币转高息资产,这个高息资产可以是人民币里边不多有的高息资产,也可以是全球范围内的高股息现金奶牛,你会发现,这就又形成了类似于15年前的套利资本流动、交易机会。","slug":"finance/付鹏:展望2023年下半年全球经济格局,异常的利差意味着什么","published":1,"date":"2023-11-06T05:14:30.824Z","updated":"2023-11-06T05:22:07.164Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p20006fwz39hvlgmlj","content":"<p><img src=\"/img/mz10nq.png\" alt=\"美债10年利差\"></p>\n<p>08年的金融危机,或者09年,是一个重要的时间节点,到今年(2023年),在座各位你们将迎来第二个重要的节点,可能对于很多年轻人来讲,最好的一个时代结束了,我们所有人的下半辈子的投资,注意,也非常简单,抄巴菲特作业。</p>\n<p>巴菲特刚去了日本(2011年也去了),你们就知道日本发生了什么。你看到了安倍晋三的三支箭,你看到了日本日元的大幅度的贬值。过去两年,巴菲特一直在买日本的这五大商社:三菱商社、三井物产、伊藤忠商事、住友、丸红,然后大家还看到巴菲特在过去的两年一直在买美孚和西方石油。有人说了巴菲特在赌油价上涨,我只能说如果你讲这种话的话,你金融基本没入门。</p>\n<p>我想说的是,任何的技术创新在某些环节中它是由资金来决定的,技术人员只是其中一环。没有钱,没有便宜的钱一切都是假的。所以技术的进步的背后有个很关键的因素就是钱,钱多钱少,钱贵钱便宜,你的投资将完全不同。比如说昨天还是前天你们看到软银的孙正义基本上把所有的阿里巴巴的资金卖掉了,开始往回抽回资金。我经常说,包括对我自己的子女,都讲一句话:99%的命运和1%的努力,而不是99%的努力,1%的命运。大势极其的重要,这个”大势”或许也就是我们在金融市场打拼,真正能够获得的。</p>\n<p>然后图上右侧我给大家放了最核心的美债利差,美债利差是什么东西?可以这么简单理解”全球资金的成本”。美国是一年期国债收益率和十年期国债收益率的差值,主要是差值。如果懂商品期货的话你们知道,我们的所有东西都有一个概念叫做当期价格和远期价格,那么资金一年期可以简单理解成当期资金价格,十年期你可以理解成十年拉长十年以后的资金价格。这个”一”和”十”的概念是什么?十年期大概等同于经济增长。我们过去的四十年的大部分时间短期利率低于经济增长。比如说你现在干了一个企业,你预期你未来的三到五年,你能获得10%左右的利润,而当期银行提供给你的借贷成本只有三个点,你知道你该干嘛了吗?借便宜的钱投高息的回报。</p>\n<p>本质上金融的核心除了研究经济,研究长期回报以外,还有个很重要的就是,从哪借钱?能不能借到便宜的钱?能不能在便宜的钱上面借更多的钱?但不是说便宜的钱就一定能够刺激起来借贷,日本90年房地产泡沫破裂以后,利率水平给你干到0你都不借,为什么?因为没有资产回报!这个怎么反映在我们的全球利率上呢?简单讲这个数字在0以上,它代表着你现在的借贷资金成本在这,你的投资回报在下头。</p>\n<p>你记住一点,你活多大年龄决定了你见过多大市面,我们现在在中国从事金融的大部分的人,有见过40年前国际市场是什么情况吗?巴菲特90多了,芒格明年就100了,对吧!用我的话说你要活到那个年龄,你啥都见过了!金融理念特别简单,借便宜的钱去赚高息的回报,就这么简单。</p>\n<p>一定要喜欢危机,可能是干实体的人不喜欢,但我可以告诉你,干金融的人我们超级喜欢危机,因为每一次危机的到来将带来一次年轻人特别喜欢的机会,赌一赌,单车变摩托,赌的是什么呢?你就赌危机爆发之后,全球的政府和央行永远只会干一件事:放水降息、放水降更多的息、放更多的水降更多的息。</p>\n<p>40年前平均的状态,实际上就是短期利率永远高于长期经济回报,这在经济学中是什么?有人会说通胀、通缩,其实还有一个状态,大家并不喜欢:”滞胀”,这种状态距离我们已经40年了,换句话说全球已经40年,没太出现过这种情况。但对不起,你们有没有想过,现在或许来了,它导致的我们的所有投资完全不同。</p>\n<p>资金越便宜,长期投资回报越稳定,借越便宜的钱,买更高的高息资产借更多。一旦倒过来,我就请问你怎么交易?银行存款五点几,投所有的资产回报只有三点几,我就问你大部分人会怎么做?不是说就指现金在银行的才叫现金,只要在当期能够产生高息回报的资金或者资产都叫现金。我举个例子,比如说一个公司股息分10%,它算不算高息资产?它算不算高息现金?它每年都给你分跟你银行存到银行每年拿5%有区别?没区别!所以说这个短期高于长期从最直觉的理解就是资金应该放在现金上。</p>\n<p>为什么巴菲特买那些公司?那些公司跟上面的现金奶牛ETF之间是什么关系?08年金融危机后,美国把基准利率水平拉得非常低,09年两会口号是:”做大做强金融,万众创业,万众创新”,之后出来的小贷公司,担保公司P2P对吧,一连串都是在这个大的宏观背景下去搞的。09年之后你真正应该获得的只有两个收益:一个卖房炒房卖房炒房、买更多的房炒更多的房。第二个投腾讯投阿里投万众创业投万众创新,就这两条路。在中国你记住有些路不是自然形成的,它在那个关键的节点上全是由政府这支无形的手在引导两会这个口号一提出来,你一看中国居民部门属于”高储蓄低杠杆”,你知道人生的机会来了。</p>\n<p>真正投资的精髓不是买资产,是如何去负债。如何在钱便宜的时间点上去负债、付更多的债、如何去付更低的资金成本,然后右手才去考虑资产,很多人光想资产而不去考虑负债。</p>\n<p>房价上涨就一条,这个地方有没有人进来。第二,这个地方进来的人能不能借更多的钱,就是居民部门杠杆率。首先得有居民,第二得有杠杆率,如果这俩都没了,这个资产基本就到头了。09年就是让他们加杠杆扛着进去的,现在的经济为什么差?我可以告诉你,还有人说刺激,咋刺激?09年能刺激,是因为所有的居民部门有储蓄,稳定,企业低负债,现在是没储蓄、不稳定。更重要的是睁眼全是债,简单讲年轻人杠杆加不动,这才是最大的风险。核心城市核心区域除此之外都别碰,因为只有这个核心俩字才能带来人。香港特首前段时间天天在广深在那晃荡的,不就是邀请你们去吗?但是你跟他说我没钱,家里也没钱,我就是个穷小子,那对不起,你别过来。你来我也不要,因为我要你的根本是:你有钱,你能接得住,你能加得住杠杆。我认为最核心的一个是:房价到达一定程度,人自然没法生,隔壁韩国如此,日本如此,中国亦如此。中国现在的大体情况是:未来的五到十年,基本处在加完杠杆后还债的年代。低增长、低通胀、低利率,三低。而过去的三十年,中国一直是高增长,高通胀、高利率。高和低之间差距是什么?杠杆率到一定程度自然就定了,隔壁日本就是到了极致,崩了!</p>\n<p>老美的底层老百姓过得并不好,但老美的富人更好了,富人靠杠杆。记住一点,富人靠杠杆、靠金融资产,穷人才靠劳动力。在全球化的过程,美国居民保持的是最低的生存权利(美国底层人民),他的收入是不增长的。从1982年开始,美国的数字是多少呢?平均薪资增速3%,金字塔的底层25%和顶层25%的薪资性收入差是1%。啥意思呢?平均3%的薪资收入增长再减去1%的社会阶层差,底层25%的美国居民薪资性收入仅仅是2%。大家发现这个2%是什么?正好就是美国通胀水平。啥意思呢?你可以理解,这美国的底层居民过去的二三十年薪资扣掉通胀是不增长的。</p>\n<p>二十多年前,索罗斯写那本联名书的时候,他就给大家解释过这个话题,他说中国庞大的贸易顺差去补偿了美国底层居民。举个例子,一个美国人,薪资2万保持不变,但是呢,中国生产的笔记本电脑从5000美金降到了1000美金,我的购买力怎么样?增强了!这就是庞大的中国出口。中国出口的商品绕一圈转回来,变成中国的外汇储备,中国的外汇储备买的是什么,买的是美债。美债用于什么了?美债用于两件事:打仗、给底层居民补医疗和教育。所以你就会发现。如果你做美国的底层居民的话,出现什么情况呢?收入没增长,但是中国供应的商品的购买力降弱了,这个购买力让美国人的购买力增强了。同时中国大量的顺差和外汇储备补偿了美国的教育和医疗。</p>\n<p>美国真正发家致富的人,都是看明白了这套游戏的。一旦底层居民薪资收入不增长,我们教科书里学的货币银行学中,央行双目标志将失效,也就是说中央银行将永远不用去考虑薪资通胀,只需要去考虑经济。此时就会产生我们现在这个模型”经济不行就降息”。每一次经济不行的时候,就借更多的美元,买更多的美国金融性资产。但在82年,美国金融监管放开了一个重要的法案,金融自由化。啥意思,如果监管部门把银行管得死死的,银行不许给居民加杠杆,就算来了这样的机会,社会也没有财富效应。但如果我此时告诉银行金融监管你们可以去创造各种各样的金融衍生产品,去给居民部门加杠杆,举例子房贷可以变成18种花样,于是82年到2022年,搞了整整40年。</p>\n<p>到了02年的时候,美国居民部门突然间反应过来,哦!原来富人不是靠着劳动挣钱的,富人得去炒金融资产。02年小布什一句话:你们得做起美国梦来。什么意思?你们手上没有股票,得有!但问题是在于,这帮穷人的美国梦是最可怕的,因为他收入不增长,还借了更多的房贷,02年到08年的这种做法,结果就是08年崩掉了。但崩掉以后,美国的底层人民麻烦就大了,被迫还了15年的债。从08年到现在,美国居民部门一直在去杠杆还债,但是你知道一个人收入不增长,然后还要不停的还债,他最终会转成什么?欧美有两样东西会让整个社会颠覆的,一个是”选票”、”上街大游行”。他的选票会转化成什么?答案:”特朗普”。也就是要么民粹,要么你补偿我。补偿只有一个方法,提高他的薪资收入。你以为真的是像宏观经济上在跟你讲说,因为这场疫情导致供应链导致劳动力市场结构发生了变换?那都不是核心,真正的核心是:当居民部门还了12年、15年债以后,这部分人不想还了,你要么就是更多的补偿给我、要么就是给我加薪。</p>\n<p>目前美国出现的就一个结果:底层通胀、顶层通缩。知道美国现在谁最惨吗?美国西海岸。硅谷、洛杉矶、旧金山的富人,这15年是他们加了杠杆,08年后的这漫长的15年创造了我们近乎200年以来,全世界最低的资金年代,它也创造了全世界几乎是最大的资产。这个资产是什么?虚拟资产!你们知道为什么会出现虚拟性货币?如果这么庞大的流动性,这么便宜的资金,冲向了实物资产(粮食、房子),这个价格一旦失控,我们离战争就不远了。虚拟资产有个好处,它仅仅消灭富人财富。西海岸的这帮我们叫美国新贵,准确说叫做穷人日子很好,富人日子很难受。富人中间是老钱收割新钱,老钱是什么呢?华盛顿、纽约、休斯顿,新钱就是硅谷、洛杉矶。新钱靠的是什么?科技、技术、创新。你创造一个东西带来的社会价值,可能只创造了1万块。但是金融市场给予你200倍。一次性兑付了几百年的收益。这就是我们的金融市场,当利率水平过低的时候,它会使得所有资产的估值极高。而科技作为主要的推动力,会自然而然地迎来一场高估值的泡沫。</p>\n<p>干一级市场投资,我可以告诉你估值泡沫出现的时候,那特征都是一样的,简单说:瞎几把随便写PPT都能融到钱。有很多人的利益是建立在:利率和资产价格上的。经济行的时候,是可以承受高利率的。经济不行的时候,(日本)把利率降到负都没用。</p>\n<p>这四十年结束以后,逻辑是什么?科技肯定不行,深圳科创你就搞到天上去,你拉动整个社会的经济也远着呢!技术的进步,只有转化成全民生产率,才能拉动所有人。中国现在相反,是低增长、低通胀、低利率,而这3低的背后是高杠杆。有一种情况,可以让我们避开这种所谓的内卷型的环境,就是走出去。美国在六十年代到现在,不是盈利率的增长,它获得的是市场份额的扩大。中国现在所有的企业会内卷的,会卷得一塌糊涂,原因很简单,市场只有国内了。2018年开始的,中美贸易战逆全球化,鬼佬就是要把我们踢出去。因为不走出去,我们过去的二三十年所有的产能是给全世界走配套的。如果不走出去,单凭我们国内的居民部门消化不了。</p>\n<p>我们国内居民部门中还出现了一个问题,大部分的90后、95后是在缩的,他们是在降低欲望的,他们是在消费降级的。高端消费永远是给那些富人的。中产阶级的杠杆达到一定程度,就会进入一个很典型的低欲望社会。跟现在比较穷的年轻人打打交道,你们就会发现,不结婚挺好、不生孩子挺好、这个不买房也不错、这个手机也不用换。然后这个蜜雪冰城的咖啡。虽然难喝点,但还可以你。跟富二代富三代打交道,就看不出来。中国现在也是典型的K字型。</p>\n<p>过去四十年的游戏结束了,现金远远地甩开了长期经济增长。巴菲特已经教过大家了,最好的公司是什么?经济好也好。经济坏也好,是刚需、高股息类的公司,且不受经济低迷影响的公司。你们有没有发现在最近在炒中草药,为啥炒中炒药?就是刚需,好比通信行业的话费,你必须得按月充值。所以巴菲特在买的是什么?现金奶牛ETF的配置,看看都是啥?能源、医药、金融。这些行业就是典型的现金类资产,巴菲特想获得一样东西,知道是什么吗?股息率!美孚的几个财务数据叠加会发现第一种情况,低油价、经济差,它的股价上涨的。并不是巴菲特赌油价上涨。</p>\n<p>全球过去40年挣100块钱,只有40块钱来自于你们理解中的经济增长带来的回报,有60块钱是来自于低利率加杠杆的投资回报。所以这个世界有两个投资人:一个叫长期价值投资回报,就是获得经济增长带来的贴现。另外一个就是获得利率波动带来的加杠杆,房子准确说典型的就是杠杆性资产,如果房住不炒,那理论上它是没有价格波动的。</p>\n<p>今年是蹦了一个ChatGPT,明年还必定还会有个啥的。当然我只想说一句,当你听到今年AI的时候,你们还记得去年大明湖畔的元宇宙吗?你们还记得十年前的互联网加万物吗?过去几年全球利率低,咱们可以你炒一波咱们给90后,90后炒一波给95后,95后炒一波给00后,然后全球流动性一收,咱们把00后挂到高位上。为什么是这个路径?越年轻的越信技术,他们认为技术能改变世界,结果世界会残酷地教育你。技术能不能改变世界?能!但绝对不是炒技术,炒技术改变不了世界。</p>\n<p>从去年十一月份,所有的主题性投资只能这样炒,当你想给90后的时候,你发现90后的元宇宙还没解套呢!90后借不来更多的钱,所以周期会非常短,迅速炒迅速落。可人民币现在利率这么低,为什么会没有钱呢?因为所有科技性投资,不是跟着人民币利率走的。比如ChatGPT,是海外现有了这个东西,国内跟风,元宇宙亦然,新能源汽车也是现有了特斯拉。中国在技术方面采取的战略是:摸着石头过河、黑猫白猫带着老鼠就行。所以我们会出现一种情况,海外有个热点我们马上跟。那问题就来了,你的估值怎么定价?做过一级市场投资的,投资某家企业的时候,对标物是美国某某企业。美股最强大的地方,是把所有创新的Top级的领军人物均以美元定价,导致的一个结果就是,它是锚!定价了所有估值水平。如果人民币能对资产估值有影响,那就必须要求投这家企业的对标物是在中国上市。</p>\n<p>能挣钱的企业就是好企业?像国内某企业家讲的,我五年不给你分红,你能把我咋滴?这种企业就不是好企业。挣钱分钱,经济不好的时候能力还继续挣钱,这就是它的垄断性。所以你们会发现,别瞧不起老钱,老钱投的上游。改革开放之后,煤炭、电力、很多行业都是允许民营企业介入的,到现在为止我就请问,这些上游还有民营企业吗?</p>\n<p>回到日本的商社,跟中国国有企业本质是一样,它是家庭组织,不由董事会左右。巴菲特去了以后,和高管和家族的人员就谈了一个事,你是现金奶牛,因为它控制了全球的上游。所以在经济不好的时候,日本的五大商社就是中国的国有企业,也是美国的能源企业。能挣钱、有利润,然后有大量的自由现金流。它唯一的问题是:”公司治理”,就是它不一定愿意给你分。现在股息率快到五了,你不分,我就把公司买成我的,然后日本人说的就是:巴菲特先生,你别把我控制,我愿意分钱给你。因此巴菲特干的事情,买了日本的这些高股息的资产,并且在日本发行了无抵押担保的日元债券。啥意思呢?巴菲特一毛钱没掏,用日本人的储蓄以及低利率水平借钱,买了日本人的资产,还强迫日本人分了高股息,这才是资本真正的收割。</p>\n<p>未来的5年是10年,真正的游戏是如何借低息买高息。美元不便宜了,但美元的高息依旧很吸引人。那么问题就来了,谁是低息?美元如果一直维持高增长,高通胀、高利率的话,人民币一定是贬值的。而倒过来的交易,借人民币转高息资产,这个高息资产可以是人民币里边不多有的高息资产,也可以是全球范围内的高股息现金奶牛,你会发现,这就又形成了类似于15年前的套利资本流动、交易机会。</p>\n","site":{"data":{}},"excerpt":"","more":"<p><img src=\"/img/mz10nq.png\" alt=\"美债10年利差\"></p>\n<p>08年的金融危机,或者09年,是一个重要的时间节点,到今年(2023年),在座各位你们将迎来第二个重要的节点,可能对于很多年轻人来讲,最好的一个时代结束了,我们所有人的下半辈子的投资,注意,也非常简单,抄巴菲特作业。</p>\n<p>巴菲特刚去了日本(2011年也去了),你们就知道日本发生了什么。你看到了安倍晋三的三支箭,你看到了日本日元的大幅度的贬值。过去两年,巴菲特一直在买日本的这五大商社:三菱商社、三井物产、伊藤忠商事、住友、丸红,然后大家还看到巴菲特在过去的两年一直在买美孚和西方石油。有人说了巴菲特在赌油价上涨,我只能说如果你讲这种话的话,你金融基本没入门。</p>\n<p>我想说的是,任何的技术创新在某些环节中它是由资金来决定的,技术人员只是其中一环。没有钱,没有便宜的钱一切都是假的。所以技术的进步的背后有个很关键的因素就是钱,钱多钱少,钱贵钱便宜,你的投资将完全不同。比如说昨天还是前天你们看到软银的孙正义基本上把所有的阿里巴巴的资金卖掉了,开始往回抽回资金。我经常说,包括对我自己的子女,都讲一句话:99%的命运和1%的努力,而不是99%的努力,1%的命运。大势极其的重要,这个”大势”或许也就是我们在金融市场打拼,真正能够获得的。</p>\n<p>然后图上右侧我给大家放了最核心的美债利差,美债利差是什么东西?可以这么简单理解”全球资金的成本”。美国是一年期国债收益率和十年期国债收益率的差值,主要是差值。如果懂商品期货的话你们知道,我们的所有东西都有一个概念叫做当期价格和远期价格,那么资金一年期可以简单理解成当期资金价格,十年期你可以理解成十年拉长十年以后的资金价格。这个”一”和”十”的概念是什么?十年期大概等同于经济增长。我们过去的四十年的大部分时间短期利率低于经济增长。比如说你现在干了一个企业,你预期你未来的三到五年,你能获得10%左右的利润,而当期银行提供给你的借贷成本只有三个点,你知道你该干嘛了吗?借便宜的钱投高息的回报。</p>\n<p>本质上金融的核心除了研究经济,研究长期回报以外,还有个很重要的就是,从哪借钱?能不能借到便宜的钱?能不能在便宜的钱上面借更多的钱?但不是说便宜的钱就一定能够刺激起来借贷,日本90年房地产泡沫破裂以后,利率水平给你干到0你都不借,为什么?因为没有资产回报!这个怎么反映在我们的全球利率上呢?简单讲这个数字在0以上,它代表着你现在的借贷资金成本在这,你的投资回报在下头。</p>\n<p>你记住一点,你活多大年龄决定了你见过多大市面,我们现在在中国从事金融的大部分的人,有见过40年前国际市场是什么情况吗?巴菲特90多了,芒格明年就100了,对吧!用我的话说你要活到那个年龄,你啥都见过了!金融理念特别简单,借便宜的钱去赚高息的回报,就这么简单。</p>\n<p>一定要喜欢危机,可能是干实体的人不喜欢,但我可以告诉你,干金融的人我们超级喜欢危机,因为每一次危机的到来将带来一次年轻人特别喜欢的机会,赌一赌,单车变摩托,赌的是什么呢?你就赌危机爆发之后,全球的政府和央行永远只会干一件事:放水降息、放水降更多的息、放更多的水降更多的息。</p>\n<p>40年前平均的状态,实际上就是短期利率永远高于长期经济回报,这在经济学中是什么?有人会说通胀、通缩,其实还有一个状态,大家并不喜欢:”滞胀”,这种状态距离我们已经40年了,换句话说全球已经40年,没太出现过这种情况。但对不起,你们有没有想过,现在或许来了,它导致的我们的所有投资完全不同。</p>\n<p>资金越便宜,长期投资回报越稳定,借越便宜的钱,买更高的高息资产借更多。一旦倒过来,我就请问你怎么交易?银行存款五点几,投所有的资产回报只有三点几,我就问你大部分人会怎么做?不是说就指现金在银行的才叫现金,只要在当期能够产生高息回报的资金或者资产都叫现金。我举个例子,比如说一个公司股息分10%,它算不算高息资产?它算不算高息现金?它每年都给你分跟你银行存到银行每年拿5%有区别?没区别!所以说这个短期高于长期从最直觉的理解就是资金应该放在现金上。</p>\n<p>为什么巴菲特买那些公司?那些公司跟上面的现金奶牛ETF之间是什么关系?08年金融危机后,美国把基准利率水平拉得非常低,09年两会口号是:”做大做强金融,万众创业,万众创新”,之后出来的小贷公司,担保公司P2P对吧,一连串都是在这个大的宏观背景下去搞的。09年之后你真正应该获得的只有两个收益:一个卖房炒房卖房炒房、买更多的房炒更多的房。第二个投腾讯投阿里投万众创业投万众创新,就这两条路。在中国你记住有些路不是自然形成的,它在那个关键的节点上全是由政府这支无形的手在引导两会这个口号一提出来,你一看中国居民部门属于”高储蓄低杠杆”,你知道人生的机会来了。</p>\n<p>真正投资的精髓不是买资产,是如何去负债。如何在钱便宜的时间点上去负债、付更多的债、如何去付更低的资金成本,然后右手才去考虑资产,很多人光想资产而不去考虑负债。</p>\n<p>房价上涨就一条,这个地方有没有人进来。第二,这个地方进来的人能不能借更多的钱,就是居民部门杠杆率。首先得有居民,第二得有杠杆率,如果这俩都没了,这个资产基本就到头了。09年就是让他们加杠杆扛着进去的,现在的经济为什么差?我可以告诉你,还有人说刺激,咋刺激?09年能刺激,是因为所有的居民部门有储蓄,稳定,企业低负债,现在是没储蓄、不稳定。更重要的是睁眼全是债,简单讲年轻人杠杆加不动,这才是最大的风险。核心城市核心区域除此之外都别碰,因为只有这个核心俩字才能带来人。香港特首前段时间天天在广深在那晃荡的,不就是邀请你们去吗?但是你跟他说我没钱,家里也没钱,我就是个穷小子,那对不起,你别过来。你来我也不要,因为我要你的根本是:你有钱,你能接得住,你能加得住杠杆。我认为最核心的一个是:房价到达一定程度,人自然没法生,隔壁韩国如此,日本如此,中国亦如此。中国现在的大体情况是:未来的五到十年,基本处在加完杠杆后还债的年代。低增长、低通胀、低利率,三低。而过去的三十年,中国一直是高增长,高通胀、高利率。高和低之间差距是什么?杠杆率到一定程度自然就定了,隔壁日本就是到了极致,崩了!</p>\n<p>老美的底层老百姓过得并不好,但老美的富人更好了,富人靠杠杆。记住一点,富人靠杠杆、靠金融资产,穷人才靠劳动力。在全球化的过程,美国居民保持的是最低的生存权利(美国底层人民),他的收入是不增长的。从1982年开始,美国的数字是多少呢?平均薪资增速3%,金字塔的底层25%和顶层25%的薪资性收入差是1%。啥意思呢?平均3%的薪资收入增长再减去1%的社会阶层差,底层25%的美国居民薪资性收入仅仅是2%。大家发现这个2%是什么?正好就是美国通胀水平。啥意思呢?你可以理解,这美国的底层居民过去的二三十年薪资扣掉通胀是不增长的。</p>\n<p>二十多年前,索罗斯写那本联名书的时候,他就给大家解释过这个话题,他说中国庞大的贸易顺差去补偿了美国底层居民。举个例子,一个美国人,薪资2万保持不变,但是呢,中国生产的笔记本电脑从5000美金降到了1000美金,我的购买力怎么样?增强了!这就是庞大的中国出口。中国出口的商品绕一圈转回来,变成中国的外汇储备,中国的外汇储备买的是什么,买的是美债。美债用于什么了?美债用于两件事:打仗、给底层居民补医疗和教育。所以你就会发现。如果你做美国的底层居民的话,出现什么情况呢?收入没增长,但是中国供应的商品的购买力降弱了,这个购买力让美国人的购买力增强了。同时中国大量的顺差和外汇储备补偿了美国的教育和医疗。</p>\n<p>美国真正发家致富的人,都是看明白了这套游戏的。一旦底层居民薪资收入不增长,我们教科书里学的货币银行学中,央行双目标志将失效,也就是说中央银行将永远不用去考虑薪资通胀,只需要去考虑经济。此时就会产生我们现在这个模型”经济不行就降息”。每一次经济不行的时候,就借更多的美元,买更多的美国金融性资产。但在82年,美国金融监管放开了一个重要的法案,金融自由化。啥意思,如果监管部门把银行管得死死的,银行不许给居民加杠杆,就算来了这样的机会,社会也没有财富效应。但如果我此时告诉银行金融监管你们可以去创造各种各样的金融衍生产品,去给居民部门加杠杆,举例子房贷可以变成18种花样,于是82年到2022年,搞了整整40年。</p>\n<p>到了02年的时候,美国居民部门突然间反应过来,哦!原来富人不是靠着劳动挣钱的,富人得去炒金融资产。02年小布什一句话:你们得做起美国梦来。什么意思?你们手上没有股票,得有!但问题是在于,这帮穷人的美国梦是最可怕的,因为他收入不增长,还借了更多的房贷,02年到08年的这种做法,结果就是08年崩掉了。但崩掉以后,美国的底层人民麻烦就大了,被迫还了15年的债。从08年到现在,美国居民部门一直在去杠杆还债,但是你知道一个人收入不增长,然后还要不停的还债,他最终会转成什么?欧美有两样东西会让整个社会颠覆的,一个是”选票”、”上街大游行”。他的选票会转化成什么?答案:”特朗普”。也就是要么民粹,要么你补偿我。补偿只有一个方法,提高他的薪资收入。你以为真的是像宏观经济上在跟你讲说,因为这场疫情导致供应链导致劳动力市场结构发生了变换?那都不是核心,真正的核心是:当居民部门还了12年、15年债以后,这部分人不想还了,你要么就是更多的补偿给我、要么就是给我加薪。</p>\n<p>目前美国出现的就一个结果:底层通胀、顶层通缩。知道美国现在谁最惨吗?美国西海岸。硅谷、洛杉矶、旧金山的富人,这15年是他们加了杠杆,08年后的这漫长的15年创造了我们近乎200年以来,全世界最低的资金年代,它也创造了全世界几乎是最大的资产。这个资产是什么?虚拟资产!你们知道为什么会出现虚拟性货币?如果这么庞大的流动性,这么便宜的资金,冲向了实物资产(粮食、房子),这个价格一旦失控,我们离战争就不远了。虚拟资产有个好处,它仅仅消灭富人财富。西海岸的这帮我们叫美国新贵,准确说叫做穷人日子很好,富人日子很难受。富人中间是老钱收割新钱,老钱是什么呢?华盛顿、纽约、休斯顿,新钱就是硅谷、洛杉矶。新钱靠的是什么?科技、技术、创新。你创造一个东西带来的社会价值,可能只创造了1万块。但是金融市场给予你200倍。一次性兑付了几百年的收益。这就是我们的金融市场,当利率水平过低的时候,它会使得所有资产的估值极高。而科技作为主要的推动力,会自然而然地迎来一场高估值的泡沫。</p>\n<p>干一级市场投资,我可以告诉你估值泡沫出现的时候,那特征都是一样的,简单说:瞎几把随便写PPT都能融到钱。有很多人的利益是建立在:利率和资产价格上的。经济行的时候,是可以承受高利率的。经济不行的时候,(日本)把利率降到负都没用。</p>\n<p>这四十年结束以后,逻辑是什么?科技肯定不行,深圳科创你就搞到天上去,你拉动整个社会的经济也远着呢!技术的进步,只有转化成全民生产率,才能拉动所有人。中国现在相反,是低增长、低通胀、低利率,而这3低的背后是高杠杆。有一种情况,可以让我们避开这种所谓的内卷型的环境,就是走出去。美国在六十年代到现在,不是盈利率的增长,它获得的是市场份额的扩大。中国现在所有的企业会内卷的,会卷得一塌糊涂,原因很简单,市场只有国内了。2018年开始的,中美贸易战逆全球化,鬼佬就是要把我们踢出去。因为不走出去,我们过去的二三十年所有的产能是给全世界走配套的。如果不走出去,单凭我们国内的居民部门消化不了。</p>\n<p>我们国内居民部门中还出现了一个问题,大部分的90后、95后是在缩的,他们是在降低欲望的,他们是在消费降级的。高端消费永远是给那些富人的。中产阶级的杠杆达到一定程度,就会进入一个很典型的低欲望社会。跟现在比较穷的年轻人打打交道,你们就会发现,不结婚挺好、不生孩子挺好、这个不买房也不错、这个手机也不用换。然后这个蜜雪冰城的咖啡。虽然难喝点,但还可以你。跟富二代富三代打交道,就看不出来。中国现在也是典型的K字型。</p>\n<p>过去四十年的游戏结束了,现金远远地甩开了长期经济增长。巴菲特已经教过大家了,最好的公司是什么?经济好也好。经济坏也好,是刚需、高股息类的公司,且不受经济低迷影响的公司。你们有没有发现在最近在炒中草药,为啥炒中炒药?就是刚需,好比通信行业的话费,你必须得按月充值。所以巴菲特在买的是什么?现金奶牛ETF的配置,看看都是啥?能源、医药、金融。这些行业就是典型的现金类资产,巴菲特想获得一样东西,知道是什么吗?股息率!美孚的几个财务数据叠加会发现第一种情况,低油价、经济差,它的股价上涨的。并不是巴菲特赌油价上涨。</p>\n<p>全球过去40年挣100块钱,只有40块钱来自于你们理解中的经济增长带来的回报,有60块钱是来自于低利率加杠杆的投资回报。所以这个世界有两个投资人:一个叫长期价值投资回报,就是获得经济增长带来的贴现。另外一个就是获得利率波动带来的加杠杆,房子准确说典型的就是杠杆性资产,如果房住不炒,那理论上它是没有价格波动的。</p>\n<p>今年是蹦了一个ChatGPT,明年还必定还会有个啥的。当然我只想说一句,当你听到今年AI的时候,你们还记得去年大明湖畔的元宇宙吗?你们还记得十年前的互联网加万物吗?过去几年全球利率低,咱们可以你炒一波咱们给90后,90后炒一波给95后,95后炒一波给00后,然后全球流动性一收,咱们把00后挂到高位上。为什么是这个路径?越年轻的越信技术,他们认为技术能改变世界,结果世界会残酷地教育你。技术能不能改变世界?能!但绝对不是炒技术,炒技术改变不了世界。</p>\n<p>从去年十一月份,所有的主题性投资只能这样炒,当你想给90后的时候,你发现90后的元宇宙还没解套呢!90后借不来更多的钱,所以周期会非常短,迅速炒迅速落。可人民币现在利率这么低,为什么会没有钱呢?因为所有科技性投资,不是跟着人民币利率走的。比如ChatGPT,是海外现有了这个东西,国内跟风,元宇宙亦然,新能源汽车也是现有了特斯拉。中国在技术方面采取的战略是:摸着石头过河、黑猫白猫带着老鼠就行。所以我们会出现一种情况,海外有个热点我们马上跟。那问题就来了,你的估值怎么定价?做过一级市场投资的,投资某家企业的时候,对标物是美国某某企业。美股最强大的地方,是把所有创新的Top级的领军人物均以美元定价,导致的一个结果就是,它是锚!定价了所有估值水平。如果人民币能对资产估值有影响,那就必须要求投这家企业的对标物是在中国上市。</p>\n<p>能挣钱的企业就是好企业?像国内某企业家讲的,我五年不给你分红,你能把我咋滴?这种企业就不是好企业。挣钱分钱,经济不好的时候能力还继续挣钱,这就是它的垄断性。所以你们会发现,别瞧不起老钱,老钱投的上游。改革开放之后,煤炭、电力、很多行业都是允许民营企业介入的,到现在为止我就请问,这些上游还有民营企业吗?</p>\n<p>回到日本的商社,跟中国国有企业本质是一样,它是家庭组织,不由董事会左右。巴菲特去了以后,和高管和家族的人员就谈了一个事,你是现金奶牛,因为它控制了全球的上游。所以在经济不好的时候,日本的五大商社就是中国的国有企业,也是美国的能源企业。能挣钱、有利润,然后有大量的自由现金流。它唯一的问题是:”公司治理”,就是它不一定愿意给你分。现在股息率快到五了,你不分,我就把公司买成我的,然后日本人说的就是:巴菲特先生,你别把我控制,我愿意分钱给你。因此巴菲特干的事情,买了日本的这些高股息的资产,并且在日本发行了无抵押担保的日元债券。啥意思呢?巴菲特一毛钱没掏,用日本人的储蓄以及低利率水平借钱,买了日本人的资产,还强迫日本人分了高股息,这才是资本真正的收割。</p>\n<p>未来的5年是10年,真正的游戏是如何借低息买高息。美元不便宜了,但美元的高息依旧很吸引人。那么问题就来了,谁是低息?美元如果一直维持高增长,高通胀、高利率的话,人民币一定是贬值的。而倒过来的交易,借人民币转高息资产,这个高息资产可以是人民币里边不多有的高息资产,也可以是全球范围内的高股息现金奶牛,你会发现,这就又形成了类似于15年前的套利资本流动、交易机会。</p>\n"},{"title":"付鹏:逆全球化下的全球资产配置","status":"done","_content":"\n为什么会有中美贸易战?为什么会有特朗普?他们手上有个重要的东西,选票。法国人民手上有个重要的东西,什么东西?公会。财富分配,到最后是需要权力去平衡的,也就简单讲,富者恒富,穷者不富的时候,他手上会用一个最简单东西投出民粹主义的路线,就是选票。哪个领导人愿意带著我们把工资从十块钱降到二十,我就选他。有两种做法:第一种,让企业吐回来。第二种,让中国吐回来。中国拿走的劳动收入增速,现在要吐回来,这就是逆全球化。企业部门拿走的高杠杆,高负债,获得的财富积累要吐回来。然后你就会发现,他的收入增速上来,他会长期的怎么样?通胀。利率水平增高,导致企业部门(美国制造业)变差,其实就是代表著美国的左右两边。\n\n在这种背景下,既然不能从市场层面上获得收入增速,就得从你自身提高收入增速,答案是什么?技术进步。现在工人工资我是压不下去了,怎么办?三个工人变两工人+机器人。所以你猜美国现在在干嘛?右侧是这帮企业,左侧是美国的这帮中底层的,这些老百姓小日子过得太Happy了。左侧这帮企业,收入增速7.5,通胀5个点。开心吧?挣的钱存到银行,现在5个点,开心吧?然后08年美国次贷危机,破裂了以后,美国锁定在了0-0.25的这个低息区域,老百姓买了低息贷款的房子,储蓄多了,开心吧?中国出口的赚,买了美国国债,相当于还要回储给你们,最后发现,美国挣得多、存的多、债务还低。从08年到23年,这15年,就相当于去了15年的杠杆。企业部门要借贷,5.25的利率高于目前3点几的增速,被迫进入到利润下降,未来要提高增长,只有一个方案,就是技术进步。\n\n硅谷大裁员是不影响就业的,这帮生产率高的人,转化再就业的能力是极强的。生产率低的人,出现大规模失业才是最麻烦的。简单讲,美国这帮黑人们如果全都失业了,那美国就完了。08年后,企业,银行,居民,这三者的分配关系,就有问题了,一直拖到现在,已经无解了。全世界从过去的十年,只有一个大的变量:\"技术进步\"。我个人有一种感觉,当前的这个时间点,在炒的人工智能,跟过去的十年浮现出来的不太一样。美国股市现在就那几个科技公司拉着每股涨,是好事。几家公司是在5.25的利率环境下,拉动每股涨的。它不是那个0到0.25的利率拉动的,能够扛得住资金成本5到5.25,还能带来增长,意味著AI可能是真的。\n\n08年到2028年,整20年的周期,足够一个新技术带动全社会变动了,这几家公司可能在未来3到5年拉着美股,创新高 继续创新高。后面的涨是正儿八经的生产率提高的涨,前两年是啥?是低利率推著泡沫在涨。如果美国完成了这条线,既保证了企业在技术进步下维持高利润增长,又保证底层居民获得了高收入增速,你猜美国的利率会是什么情况?他的利率会一直很高,进入到高增长、高通胀、高利率,三高。\n\n那么中国会事什么情况?美国不给技术,转化生产也不是中国制造了,逆全球化嘛!国内会低增长、低通胀、低利率。从全球分工来看,美国底层是技术研发,中间生产,下面是市场。如果生产环节不给中国,高端制造给谁?大概率是日本。\n\n日本的全球分工的角色会跟过去的二三十年不一样,英国的老牌家族的基金家族办公开始跑到日本租办公室招人了,二三十年前的时候跑到香港租办公室招人,跑到北京设立办事处,为什么?答案只有一个,看好该国未来20年30年的增长。\n\n在过去的20年发展过程中,我们的生产环节是针对全世界的,如果出不去。只能转化成内需。我们的一个大问题出来了,过去的10年中国经济最大的不同,就是现在的年轻人债务过高,内需是背著重重的负债前行的,有一些人不准备生人再去背了。直到疫情过恢复以后,到现在为止不缺生产,缺谁买单。内需要么是政府部门,要么是居民部门,一个是投资不动,一个消费不动,有钱的有钱死,没钱的负债死。昨天我看又新能源车下乡了,然后你去看看那个评论区,90后崛起了,不像十年前那么好骗了,他们咋回答呢?啥好事都想著我们农村人。十年前,什么家电下乡,卖不掉的冰箱……就是电器,卖给我们农村人,这韭菜不能照着一个地儿割啊。\n\n笃定了老美不会给我们这条科技树,所以经济当前压根就不是我们最大的问题,只要能守住底线,也就是你的居民,仍然是可爱的人,底线思维即可。当下最大的目标是重建这个秩序,美国不带我玩,我就去拉着ABC,去重构这种国际分工、全球化市场结构,重构我们的科技树。中国现在的投资,跟老美一样,都在反映科技树,但是\"市场决定的科技树(市场经济)\"和\"政府主导的科技树(计划经济)\"结局是不一样的。所以低增长、低利率的国内必须要点科技树,但体现在股票上,国内是什么光景,美股是什么光景?\n\n很多人说A股弱,美股强?因为人家现在高增长、高通胀、高利率、和消费市场。08年之后。老美去了15年杠杆。居民部门老老实实还了15年的债,日本人老老实实还了30年。美国的利率水平绝对不再是以前的路径,不再会靠降息加杠杆的方式去推动增长,而是要靠生产校长的扩张,技术在两三年后我们有可能会迎来一个\"iPhone时刻\"。\n\n我们现在所有人依旧想的是如果企业不行,最终还得是降息。美国会出现一种情况就是企业的技术进步,把它带上去,整个美元的长短端利率都在5-5.25,那我就请问你光现金和资产回报都5-5.25了,你觉得黄金会奔三千四千五千吗?黄金的之所以在高价,因为长期利率在地位,加上杠杆,但是如果长短端的投资回报率在5-5.25,你还会持有黄金吗?\n\n08年金融危机以后,老美痛定思痛,开始在极低的利率下,去除杠杆,也就是讲现在你看见的美国是08年的美国导致的一个结果。而08年的中国,在干什么呢?所有人熟知的叫四万亿(可不止),总结一句话,就是给居民部门加杠杆。中国拖起了全球经济,代价是这一代居民部门的储蓄和杠杆,就是老百姓讲的掏空了几个钱包。\n\n真正的大交易者,用什么东西做负债,用什么东西当资产。如果现在世界格局是这样,请问我们个人该怎么办?举个例子:我09年回国,2010年开始到2016年股灾,人民币单边每年升值3%,美元官方利率0到0.2%,加上手续费,美元借款资金成本大约2%。就造成了实际借美元利率是-1%,那时候北上广的房价是多少?房子的背后就是人口、收入、杠杆,而其中最重要的吗,在当时,不是人口、也不是收入,而是杠杆。我的借贷成本如果-1%的话,这不就是热钱吗?借-1%的钱来中国就好了,干什么东西,买房呗!\n\n所以放到现在的今天,个人该怎么办呢?美国进入到三高的状态,中国进入到这种三低的状态。当下经营贷3.2%,人民币贬值,实际人民币借贷成就是负的!所以答案就是,人民币长期利率水平会非常的低,借贷低息的人民币,人民币贬值,官方的借贷成本会从3个点掉到2个点,并且维持在2个点,三到五年让你借贷人民币的真实利率一定在0以下。所以从大交易者的角度,负债解决了,资产端该买啥?能够给你二字头融资成本,一定说明国内的资产端没有高息回报,我们不出境去哪儿找高息的资产?我偷偷摸摸告诉大家过一段时间你们会发现某个类型的ETF手续费还会增加,什么东西用人民币结算但是持有的是境外高息资产(QDII)?美国光银行存款利率在5%,你该干嘛?你们会发现巴菲特买的西方石油公司、买的日本的五大商社股息率在10以上,你们知道该干嘛?如果这个东西一直是这样倒着,咱们哪来的信心觉得外资会流入?\n\n所以这就是一个重要的分水岭,这个最核心的原理理解,超级的重要!绝对对你后面三五年巨大的受益。","source":"_posts/finance/付鹏:逆全球化下的全球资产配置.md","raw":"---\ntitle: 付鹏:逆全球化下的全球资产配置\ncategories:\n - Finance\nstatus: done\n---\n\n为什么会有中美贸易战?为什么会有特朗普?他们手上有个重要的东西,选票。法国人民手上有个重要的东西,什么东西?公会。财富分配,到最后是需要权力去平衡的,也就简单讲,富者恒富,穷者不富的时候,他手上会用一个最简单东西投出民粹主义的路线,就是选票。哪个领导人愿意带著我们把工资从十块钱降到二十,我就选他。有两种做法:第一种,让企业吐回来。第二种,让中国吐回来。中国拿走的劳动收入增速,现在要吐回来,这就是逆全球化。企业部门拿走的高杠杆,高负债,获得的财富积累要吐回来。然后你就会发现,他的收入增速上来,他会长期的怎么样?通胀。利率水平增高,导致企业部门(美国制造业)变差,其实就是代表著美国的左右两边。\n\n在这种背景下,既然不能从市场层面上获得收入增速,就得从你自身提高收入增速,答案是什么?技术进步。现在工人工资我是压不下去了,怎么办?三个工人变两工人+机器人。所以你猜美国现在在干嘛?右侧是这帮企业,左侧是美国的这帮中底层的,这些老百姓小日子过得太Happy了。左侧这帮企业,收入增速7.5,通胀5个点。开心吧?挣的钱存到银行,现在5个点,开心吧?然后08年美国次贷危机,破裂了以后,美国锁定在了0-0.25的这个低息区域,老百姓买了低息贷款的房子,储蓄多了,开心吧?中国出口的赚,买了美国国债,相当于还要回储给你们,最后发现,美国挣得多、存的多、债务还低。从08年到23年,这15年,就相当于去了15年的杠杆。企业部门要借贷,5.25的利率高于目前3点几的增速,被迫进入到利润下降,未来要提高增长,只有一个方案,就是技术进步。\n\n硅谷大裁员是不影响就业的,这帮生产率高的人,转化再就业的能力是极强的。生产率低的人,出现大规模失业才是最麻烦的。简单讲,美国这帮黑人们如果全都失业了,那美国就完了。08年后,企业,银行,居民,这三者的分配关系,就有问题了,一直拖到现在,已经无解了。全世界从过去的十年,只有一个大的变量:\"技术进步\"。我个人有一种感觉,当前的这个时间点,在炒的人工智能,跟过去的十年浮现出来的不太一样。美国股市现在就那几个科技公司拉着每股涨,是好事。几家公司是在5.25的利率环境下,拉动每股涨的。它不是那个0到0.25的利率拉动的,能够扛得住资金成本5到5.25,还能带来增长,意味著AI可能是真的。\n\n08年到2028年,整20年的周期,足够一个新技术带动全社会变动了,这几家公司可能在未来3到5年拉着美股,创新高 继续创新高。后面的涨是正儿八经的生产率提高的涨,前两年是啥?是低利率推著泡沫在涨。如果美国完成了这条线,既保证了企业在技术进步下维持高利润增长,又保证底层居民获得了高收入增速,你猜美国的利率会是什么情况?他的利率会一直很高,进入到高增长、高通胀、高利率,三高。\n\n那么中国会事什么情况?美国不给技术,转化生产也不是中国制造了,逆全球化嘛!国内会低增长、低通胀、低利率。从全球分工来看,美国底层是技术研发,中间生产,下面是市场。如果生产环节不给中国,高端制造给谁?大概率是日本。\n\n日本的全球分工的角色会跟过去的二三十年不一样,英国的老牌家族的基金家族办公开始跑到日本租办公室招人了,二三十年前的时候跑到香港租办公室招人,跑到北京设立办事处,为什么?答案只有一个,看好该国未来20年30年的增长。\n\n在过去的20年发展过程中,我们的生产环节是针对全世界的,如果出不去。只能转化成内需。我们的一个大问题出来了,过去的10年中国经济最大的不同,就是现在的年轻人债务过高,内需是背著重重的负债前行的,有一些人不准备生人再去背了。直到疫情过恢复以后,到现在为止不缺生产,缺谁买单。内需要么是政府部门,要么是居民部门,一个是投资不动,一个消费不动,有钱的有钱死,没钱的负债死。昨天我看又新能源车下乡了,然后你去看看那个评论区,90后崛起了,不像十年前那么好骗了,他们咋回答呢?啥好事都想著我们农村人。十年前,什么家电下乡,卖不掉的冰箱……就是电器,卖给我们农村人,这韭菜不能照着一个地儿割啊。\n\n笃定了老美不会给我们这条科技树,所以经济当前压根就不是我们最大的问题,只要能守住底线,也就是你的居民,仍然是可爱的人,底线思维即可。当下最大的目标是重建这个秩序,美国不带我玩,我就去拉着ABC,去重构这种国际分工、全球化市场结构,重构我们的科技树。中国现在的投资,跟老美一样,都在反映科技树,但是\"市场决定的科技树(市场经济)\"和\"政府主导的科技树(计划经济)\"结局是不一样的。所以低增长、低利率的国内必须要点科技树,但体现在股票上,国内是什么光景,美股是什么光景?\n\n很多人说A股弱,美股强?因为人家现在高增长、高通胀、高利率、和消费市场。08年之后。老美去了15年杠杆。居民部门老老实实还了15年的债,日本人老老实实还了30年。美国的利率水平绝对不再是以前的路径,不再会靠降息加杠杆的方式去推动增长,而是要靠生产校长的扩张,技术在两三年后我们有可能会迎来一个\"iPhone时刻\"。\n\n我们现在所有人依旧想的是如果企业不行,最终还得是降息。美国会出现一种情况就是企业的技术进步,把它带上去,整个美元的长短端利率都在5-5.25,那我就请问你光现金和资产回报都5-5.25了,你觉得黄金会奔三千四千五千吗?黄金的之所以在高价,因为长期利率在地位,加上杠杆,但是如果长短端的投资回报率在5-5.25,你还会持有黄金吗?\n\n08年金融危机以后,老美痛定思痛,开始在极低的利率下,去除杠杆,也就是讲现在你看见的美国是08年的美国导致的一个结果。而08年的中国,在干什么呢?所有人熟知的叫四万亿(可不止),总结一句话,就是给居民部门加杠杆。中国拖起了全球经济,代价是这一代居民部门的储蓄和杠杆,就是老百姓讲的掏空了几个钱包。\n\n真正的大交易者,用什么东西做负债,用什么东西当资产。如果现在世界格局是这样,请问我们个人该怎么办?举个例子:我09年回国,2010年开始到2016年股灾,人民币单边每年升值3%,美元官方利率0到0.2%,加上手续费,美元借款资金成本大约2%。就造成了实际借美元利率是-1%,那时候北上广的房价是多少?房子的背后就是人口、收入、杠杆,而其中最重要的吗,在当时,不是人口、也不是收入,而是杠杆。我的借贷成本如果-1%的话,这不就是热钱吗?借-1%的钱来中国就好了,干什么东西,买房呗!\n\n所以放到现在的今天,个人该怎么办呢?美国进入到三高的状态,中国进入到这种三低的状态。当下经营贷3.2%,人民币贬值,实际人民币借贷成就是负的!所以答案就是,人民币长期利率水平会非常的低,借贷低息的人民币,人民币贬值,官方的借贷成本会从3个点掉到2个点,并且维持在2个点,三到五年让你借贷人民币的真实利率一定在0以下。所以从大交易者的角度,负债解决了,资产端该买啥?能够给你二字头融资成本,一定说明国内的资产端没有高息回报,我们不出境去哪儿找高息的资产?我偷偷摸摸告诉大家过一段时间你们会发现某个类型的ETF手续费还会增加,什么东西用人民币结算但是持有的是境外高息资产(QDII)?美国光银行存款利率在5%,你该干嘛?你们会发现巴菲特买的西方石油公司、买的日本的五大商社股息率在10以上,你们知道该干嘛?如果这个东西一直是这样倒着,咱们哪来的信心觉得外资会流入?\n\n所以这就是一个重要的分水岭,这个最核心的原理理解,超级的重要!绝对对你后面三五年巨大的受益。","slug":"finance/付鹏:逆全球化下的全球资产配置","published":1,"date":"2023-11-06T05:17:08.678Z","updated":"2023-11-06T05:17:47.196Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p20007fwz31xbffj91","content":"<p>为什么会有中美贸易战?为什么会有特朗普?他们手上有个重要的东西,选票。法国人民手上有个重要的东西,什么东西?公会。财富分配,到最后是需要权力去平衡的,也就简单讲,富者恒富,穷者不富的时候,他手上会用一个最简单东西投出民粹主义的路线,就是选票。哪个领导人愿意带著我们把工资从十块钱降到二十,我就选他。有两种做法:第一种,让企业吐回来。第二种,让中国吐回来。中国拿走的劳动收入增速,现在要吐回来,这就是逆全球化。企业部门拿走的高杠杆,高负债,获得的财富积累要吐回来。然后你就会发现,他的收入增速上来,他会长期的怎么样?通胀。利率水平增高,导致企业部门(美国制造业)变差,其实就是代表著美国的左右两边。</p>\n<p>在这种背景下,既然不能从市场层面上获得收入增速,就得从你自身提高收入增速,答案是什么?技术进步。现在工人工资我是压不下去了,怎么办?三个工人变两工人+机器人。所以你猜美国现在在干嘛?右侧是这帮企业,左侧是美国的这帮中底层的,这些老百姓小日子过得太Happy了。左侧这帮企业,收入增速7.5,通胀5个点。开心吧?挣的钱存到银行,现在5个点,开心吧?然后08年美国次贷危机,破裂了以后,美国锁定在了0-0.25的这个低息区域,老百姓买了低息贷款的房子,储蓄多了,开心吧?中国出口的赚,买了美国国债,相当于还要回储给你们,最后发现,美国挣得多、存的多、债务还低。从08年到23年,这15年,就相当于去了15年的杠杆。企业部门要借贷,5.25的利率高于目前3点几的增速,被迫进入到利润下降,未来要提高增长,只有一个方案,就是技术进步。</p>\n<p>硅谷大裁员是不影响就业的,这帮生产率高的人,转化再就业的能力是极强的。生产率低的人,出现大规模失业才是最麻烦的。简单讲,美国这帮黑人们如果全都失业了,那美国就完了。08年后,企业,银行,居民,这三者的分配关系,就有问题了,一直拖到现在,已经无解了。全世界从过去的十年,只有一个大的变量:”技术进步”。我个人有一种感觉,当前的这个时间点,在炒的人工智能,跟过去的十年浮现出来的不太一样。美国股市现在就那几个科技公司拉着每股涨,是好事。几家公司是在5.25的利率环境下,拉动每股涨的。它不是那个0到0.25的利率拉动的,能够扛得住资金成本5到5.25,还能带来增长,意味著AI可能是真的。</p>\n<p>08年到2028年,整20年的周期,足够一个新技术带动全社会变动了,这几家公司可能在未来3到5年拉着美股,创新高 继续创新高。后面的涨是正儿八经的生产率提高的涨,前两年是啥?是低利率推著泡沫在涨。如果美国完成了这条线,既保证了企业在技术进步下维持高利润增长,又保证底层居民获得了高收入增速,你猜美国的利率会是什么情况?他的利率会一直很高,进入到高增长、高通胀、高利率,三高。</p>\n<p>那么中国会事什么情况?美国不给技术,转化生产也不是中国制造了,逆全球化嘛!国内会低增长、低通胀、低利率。从全球分工来看,美国底层是技术研发,中间生产,下面是市场。如果生产环节不给中国,高端制造给谁?大概率是日本。</p>\n<p>日本的全球分工的角色会跟过去的二三十年不一样,英国的老牌家族的基金家族办公开始跑到日本租办公室招人了,二三十年前的时候跑到香港租办公室招人,跑到北京设立办事处,为什么?答案只有一个,看好该国未来20年30年的增长。</p>\n<p>在过去的20年发展过程中,我们的生产环节是针对全世界的,如果出不去。只能转化成内需。我们的一个大问题出来了,过去的10年中国经济最大的不同,就是现在的年轻人债务过高,内需是背著重重的负债前行的,有一些人不准备生人再去背了。直到疫情过恢复以后,到现在为止不缺生产,缺谁买单。内需要么是政府部门,要么是居民部门,一个是投资不动,一个消费不动,有钱的有钱死,没钱的负债死。昨天我看又新能源车下乡了,然后你去看看那个评论区,90后崛起了,不像十年前那么好骗了,他们咋回答呢?啥好事都想著我们农村人。十年前,什么家电下乡,卖不掉的冰箱……就是电器,卖给我们农村人,这韭菜不能照着一个地儿割啊。</p>\n<p>笃定了老美不会给我们这条科技树,所以经济当前压根就不是我们最大的问题,只要能守住底线,也就是你的居民,仍然是可爱的人,底线思维即可。当下最大的目标是重建这个秩序,美国不带我玩,我就去拉着ABC,去重构这种国际分工、全球化市场结构,重构我们的科技树。中国现在的投资,跟老美一样,都在反映科技树,但是”市场决定的科技树(市场经济)”和”政府主导的科技树(计划经济)”结局是不一样的。所以低增长、低利率的国内必须要点科技树,但体现在股票上,国内是什么光景,美股是什么光景?</p>\n<p>很多人说A股弱,美股强?因为人家现在高增长、高通胀、高利率、和消费市场。08年之后。老美去了15年杠杆。居民部门老老实实还了15年的债,日本人老老实实还了30年。美国的利率水平绝对不再是以前的路径,不再会靠降息加杠杆的方式去推动增长,而是要靠生产校长的扩张,技术在两三年后我们有可能会迎来一个”iPhone时刻”。</p>\n<p>我们现在所有人依旧想的是如果企业不行,最终还得是降息。美国会出现一种情况就是企业的技术进步,把它带上去,整个美元的长短端利率都在5-5.25,那我就请问你光现金和资产回报都5-5.25了,你觉得黄金会奔三千四千五千吗?黄金的之所以在高价,因为长期利率在地位,加上杠杆,但是如果长短端的投资回报率在5-5.25,你还会持有黄金吗?</p>\n<p>08年金融危机以后,老美痛定思痛,开始在极低的利率下,去除杠杆,也就是讲现在你看见的美国是08年的美国导致的一个结果。而08年的中国,在干什么呢?所有人熟知的叫四万亿(可不止),总结一句话,就是给居民部门加杠杆。中国拖起了全球经济,代价是这一代居民部门的储蓄和杠杆,就是老百姓讲的掏空了几个钱包。</p>\n<p>真正的大交易者,用什么东西做负债,用什么东西当资产。如果现在世界格局是这样,请问我们个人该怎么办?举个例子:我09年回国,2010年开始到2016年股灾,人民币单边每年升值3%,美元官方利率0到0.2%,加上手续费,美元借款资金成本大约2%。就造成了实际借美元利率是-1%,那时候北上广的房价是多少?房子的背后就是人口、收入、杠杆,而其中最重要的吗,在当时,不是人口、也不是收入,而是杠杆。我的借贷成本如果-1%的话,这不就是热钱吗?借-1%的钱来中国就好了,干什么东西,买房呗!</p>\n<p>所以放到现在的今天,个人该怎么办呢?美国进入到三高的状态,中国进入到这种三低的状态。当下经营贷3.2%,人民币贬值,实际人民币借贷成就是负的!所以答案就是,人民币长期利率水平会非常的低,借贷低息的人民币,人民币贬值,官方的借贷成本会从3个点掉到2个点,并且维持在2个点,三到五年让你借贷人民币的真实利率一定在0以下。所以从大交易者的角度,负债解决了,资产端该买啥?能够给你二字头融资成本,一定说明国内的资产端没有高息回报,我们不出境去哪儿找高息的资产?我偷偷摸摸告诉大家过一段时间你们会发现某个类型的ETF手续费还会增加,什么东西用人民币结算但是持有的是境外高息资产(QDII)?美国光银行存款利率在5%,你该干嘛?你们会发现巴菲特买的西方石油公司、买的日本的五大商社股息率在10以上,你们知道该干嘛?如果这个东西一直是这样倒着,咱们哪来的信心觉得外资会流入?</p>\n<p>所以这就是一个重要的分水岭,这个最核心的原理理解,超级的重要!绝对对你后面三五年巨大的受益。</p>\n","site":{"data":{}},"excerpt":"","more":"<p>为什么会有中美贸易战?为什么会有特朗普?他们手上有个重要的东西,选票。法国人民手上有个重要的东西,什么东西?公会。财富分配,到最后是需要权力去平衡的,也就简单讲,富者恒富,穷者不富的时候,他手上会用一个最简单东西投出民粹主义的路线,就是选票。哪个领导人愿意带著我们把工资从十块钱降到二十,我就选他。有两种做法:第一种,让企业吐回来。第二种,让中国吐回来。中国拿走的劳动收入增速,现在要吐回来,这就是逆全球化。企业部门拿走的高杠杆,高负债,获得的财富积累要吐回来。然后你就会发现,他的收入增速上来,他会长期的怎么样?通胀。利率水平增高,导致企业部门(美国制造业)变差,其实就是代表著美国的左右两边。</p>\n<p>在这种背景下,既然不能从市场层面上获得收入增速,就得从你自身提高收入增速,答案是什么?技术进步。现在工人工资我是压不下去了,怎么办?三个工人变两工人+机器人。所以你猜美国现在在干嘛?右侧是这帮企业,左侧是美国的这帮中底层的,这些老百姓小日子过得太Happy了。左侧这帮企业,收入增速7.5,通胀5个点。开心吧?挣的钱存到银行,现在5个点,开心吧?然后08年美国次贷危机,破裂了以后,美国锁定在了0-0.25的这个低息区域,老百姓买了低息贷款的房子,储蓄多了,开心吧?中国出口的赚,买了美国国债,相当于还要回储给你们,最后发现,美国挣得多、存的多、债务还低。从08年到23年,这15年,就相当于去了15年的杠杆。企业部门要借贷,5.25的利率高于目前3点几的增速,被迫进入到利润下降,未来要提高增长,只有一个方案,就是技术进步。</p>\n<p>硅谷大裁员是不影响就业的,这帮生产率高的人,转化再就业的能力是极强的。生产率低的人,出现大规模失业才是最麻烦的。简单讲,美国这帮黑人们如果全都失业了,那美国就完了。08年后,企业,银行,居民,这三者的分配关系,就有问题了,一直拖到现在,已经无解了。全世界从过去的十年,只有一个大的变量:”技术进步”。我个人有一种感觉,当前的这个时间点,在炒的人工智能,跟过去的十年浮现出来的不太一样。美国股市现在就那几个科技公司拉着每股涨,是好事。几家公司是在5.25的利率环境下,拉动每股涨的。它不是那个0到0.25的利率拉动的,能够扛得住资金成本5到5.25,还能带来增长,意味著AI可能是真的。</p>\n<p>08年到2028年,整20年的周期,足够一个新技术带动全社会变动了,这几家公司可能在未来3到5年拉着美股,创新高 继续创新高。后面的涨是正儿八经的生产率提高的涨,前两年是啥?是低利率推著泡沫在涨。如果美国完成了这条线,既保证了企业在技术进步下维持高利润增长,又保证底层居民获得了高收入增速,你猜美国的利率会是什么情况?他的利率会一直很高,进入到高增长、高通胀、高利率,三高。</p>\n<p>那么中国会事什么情况?美国不给技术,转化生产也不是中国制造了,逆全球化嘛!国内会低增长、低通胀、低利率。从全球分工来看,美国底层是技术研发,中间生产,下面是市场。如果生产环节不给中国,高端制造给谁?大概率是日本。</p>\n<p>日本的全球分工的角色会跟过去的二三十年不一样,英国的老牌家族的基金家族办公开始跑到日本租办公室招人了,二三十年前的时候跑到香港租办公室招人,跑到北京设立办事处,为什么?答案只有一个,看好该国未来20年30年的增长。</p>\n<p>在过去的20年发展过程中,我们的生产环节是针对全世界的,如果出不去。只能转化成内需。我们的一个大问题出来了,过去的10年中国经济最大的不同,就是现在的年轻人债务过高,内需是背著重重的负债前行的,有一些人不准备生人再去背了。直到疫情过恢复以后,到现在为止不缺生产,缺谁买单。内需要么是政府部门,要么是居民部门,一个是投资不动,一个消费不动,有钱的有钱死,没钱的负债死。昨天我看又新能源车下乡了,然后你去看看那个评论区,90后崛起了,不像十年前那么好骗了,他们咋回答呢?啥好事都想著我们农村人。十年前,什么家电下乡,卖不掉的冰箱……就是电器,卖给我们农村人,这韭菜不能照着一个地儿割啊。</p>\n<p>笃定了老美不会给我们这条科技树,所以经济当前压根就不是我们最大的问题,只要能守住底线,也就是你的居民,仍然是可爱的人,底线思维即可。当下最大的目标是重建这个秩序,美国不带我玩,我就去拉着ABC,去重构这种国际分工、全球化市场结构,重构我们的科技树。中国现在的投资,跟老美一样,都在反映科技树,但是”市场决定的科技树(市场经济)”和”政府主导的科技树(计划经济)”结局是不一样的。所以低增长、低利率的国内必须要点科技树,但体现在股票上,国内是什么光景,美股是什么光景?</p>\n<p>很多人说A股弱,美股强?因为人家现在高增长、高通胀、高利率、和消费市场。08年之后。老美去了15年杠杆。居民部门老老实实还了15年的债,日本人老老实实还了30年。美国的利率水平绝对不再是以前的路径,不再会靠降息加杠杆的方式去推动增长,而是要靠生产校长的扩张,技术在两三年后我们有可能会迎来一个”iPhone时刻”。</p>\n<p>我们现在所有人依旧想的是如果企业不行,最终还得是降息。美国会出现一种情况就是企业的技术进步,把它带上去,整个美元的长短端利率都在5-5.25,那我就请问你光现金和资产回报都5-5.25了,你觉得黄金会奔三千四千五千吗?黄金的之所以在高价,因为长期利率在地位,加上杠杆,但是如果长短端的投资回报率在5-5.25,你还会持有黄金吗?</p>\n<p>08年金融危机以后,老美痛定思痛,开始在极低的利率下,去除杠杆,也就是讲现在你看见的美国是08年的美国导致的一个结果。而08年的中国,在干什么呢?所有人熟知的叫四万亿(可不止),总结一句话,就是给居民部门加杠杆。中国拖起了全球经济,代价是这一代居民部门的储蓄和杠杆,就是老百姓讲的掏空了几个钱包。</p>\n<p>真正的大交易者,用什么东西做负债,用什么东西当资产。如果现在世界格局是这样,请问我们个人该怎么办?举个例子:我09年回国,2010年开始到2016年股灾,人民币单边每年升值3%,美元官方利率0到0.2%,加上手续费,美元借款资金成本大约2%。就造成了实际借美元利率是-1%,那时候北上广的房价是多少?房子的背后就是人口、收入、杠杆,而其中最重要的吗,在当时,不是人口、也不是收入,而是杠杆。我的借贷成本如果-1%的话,这不就是热钱吗?借-1%的钱来中国就好了,干什么东西,买房呗!</p>\n<p>所以放到现在的今天,个人该怎么办呢?美国进入到三高的状态,中国进入到这种三低的状态。当下经营贷3.2%,人民币贬值,实际人民币借贷成就是负的!所以答案就是,人民币长期利率水平会非常的低,借贷低息的人民币,人民币贬值,官方的借贷成本会从3个点掉到2个点,并且维持在2个点,三到五年让你借贷人民币的真实利率一定在0以下。所以从大交易者的角度,负债解决了,资产端该买啥?能够给你二字头融资成本,一定说明国内的资产端没有高息回报,我们不出境去哪儿找高息的资产?我偷偷摸摸告诉大家过一段时间你们会发现某个类型的ETF手续费还会增加,什么东西用人民币结算但是持有的是境外高息资产(QDII)?美国光银行存款利率在5%,你该干嘛?你们会发现巴菲特买的西方石油公司、买的日本的五大商社股息率在10以上,你们知道该干嘛?如果这个东西一直是这样倒着,咱们哪来的信心觉得外资会流入?</p>\n<p>所以这就是一个重要的分水岭,这个最核心的原理理解,超级的重要!绝对对你后面三五年巨大的受益。</p>\n"},{"title":"内部循环与产出意识","status":"done","_content":"\n每天早起、跑步、读书、学习,身体和心灵都在路上,然而这些都是内部循环,不直接对外产出,坚持这些习惯可以让我们成为更好的人,但不会成为更厉害的人。享受努力奋斗的同时,必须要有作品产出,参与到社会价值体系的循环当中,当感受被他人强烈的需要时,就能感受到努力的希望了","source":"_posts/social/内部循环与产出意识.md","raw":"---\ntitle: 内部循环与产出意识\ncategories:\n - EQ\nstatus: done\n---\n\n每天早起、跑步、读书、学习,身体和心灵都在路上,然而这些都是内部循环,不直接对外产出,坚持这些习惯可以让我们成为更好的人,但不会成为更厉害的人。享受努力奋斗的同时,必须要有作品产出,参与到社会价值体系的循环当中,当感受被他人强烈的需要时,就能感受到努力的希望了","slug":"social/内部循环与产出意识","published":1,"date":"2023-11-06T05:18:22.419Z","updated":"2023-11-06T05:19:31.986Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p30009fwz38ictd180","content":"<p>每天早起、跑步、读书、学习,身体和心灵都在路上,然而这些都是内部循环,不直接对外产出,坚持这些习惯可以让我们成为更好的人,但不会成为更厉害的人。享受努力奋斗的同时,必须要有作品产出,参与到社会价值体系的循环当中,当感受被他人强烈的需要时,就能感受到努力的希望了</p>\n","site":{"data":{}},"excerpt":"","more":"<p>每天早起、跑步、读书、学习,身体和心灵都在路上,然而这些都是内部循环,不直接对外产出,坚持这些习惯可以让我们成为更好的人,但不会成为更厉害的人。享受努力奋斗的同时,必须要有作品产出,参与到社会价值体系的循环当中,当感受被他人强烈的需要时,就能感受到努力的希望了</p>\n"},{"title":"改掉选择困难症","status":"done","_content":"\n对模糊零容忍。换句话说,就是想尽一切办法让自己找出那个最重要的、唯一的选项,让自己在某一个时间段里只有一条路可以走。如果不在这些选择的节点想清楚,我们就会陷入模糊的状态,它会使我们产生本能的反应——娱乐。因为,即时满足,避难趋易,是我们的天性","source":"_posts/social/改掉选择困难症.md","raw":"---\ntitle: 改掉选择困难症\ncategories:\n - EQ\nstatus: done\n---\n\n对模糊零容忍。换句话说,就是想尽一切办法让自己找出那个最重要的、唯一的选项,让自己在某一个时间段里只有一条路可以走。如果不在这些选择的节点想清楚,我们就会陷入模糊的状态,它会使我们产生本能的反应——娱乐。因为,即时满足,避难趋易,是我们的天性","slug":"social/改掉选择困难症","published":1,"date":"2023-11-06T05:19:17.107Z","updated":"2023-11-06T05:20:14.555Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p3000afwz32pfo2jv6","content":"<p>对模糊零容忍。换句话说,就是想尽一切办法让自己找出那个最重要的、唯一的选项,让自己在某一个时间段里只有一条路可以走。如果不在这些选择的节点想清楚,我们就会陷入模糊的状态,它会使我们产生本能的反应——娱乐。因为,即时满足,避难趋易,是我们的天性</p>\n","site":{"data":{}},"excerpt":"","more":"<p>对模糊零容忍。换句话说,就是想尽一切办法让自己找出那个最重要的、唯一的选项,让自己在某一个时间段里只有一条路可以走。如果不在这些选择的节点想清楚,我们就会陷入模糊的状态,它会使我们产生本能的反应——娱乐。因为,即时满足,避难趋易,是我们的天性</p>\n"},{"title":"有效对话指南","status":"done","_content":"\n卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择\n\n# 目的\n\n沟通目的无非两个:\n\n- 让对方认同我们的观点\n- 或者按我们说的做\n\n# 搞定情绪\n\n大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半\n\n## 夸 - 细节\n\n不吝赞美,就一个字“夸”,具体怎么夸呢?\n\n细节就是不要太笼统:\n\n- 😭 你穿的真好看 \n- 😊 今天的上衣显得你很白,太美了\n\n## 夸 - 对比\n\n- 😭 你今天穿的真好看\n- 😊 你今天穿的真好看,一般人可传不出这种气质\n\n## 我能理解你,换我也生气\n\n接纳对方的负面情绪,把双方情绪拉回到安全范围内。\n\n## 肢体同步\n\n如果你的肢体动作跟对方同步,它会产生一种被共情的感觉\n\n- 对方说的火热,身体前倾,伺机凑近\n- 思考一到两秒钟再反馈,这个简单的停顿\n\n# 只陈述不评论\n\n事实不会引起争议\n\n比如:孩子考试没及格是事实,说他笨死了就是评论了。\n\n再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。\n\n## 评论副词\n\n尽量规避一些跟评论相关的糊的频率副词,比如\n- 笨\n- 懒\n- 坏\n- 总是\n- 永远\n- 每次\n\n# 保持开放性\n\n还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通\n\n- 孩子没及格,老爸说下次必须及格。\n- 你上班迟到,老板说再迟到扣薪水。\n\n如果换成开放式沟通:\n\n- 老爸说咱们聊聊哪些题没有搞清楚\n- 老板说生活上是不是遇到了什么问题,没着我可以帮你\n\n# 反馈事实\n\n这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词\n\n- 问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类\n- 让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人\n\n","source":"_posts/social/有效对话指南.md","raw":"---\ntitle: 有效对话指南\ncategories:\n - EQ\nstatus: done\n---\n\n卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择\n\n# 目的\n\n沟通目的无非两个:\n\n- 让对方认同我们的观点\n- 或者按我们说的做\n\n# 搞定情绪\n\n大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半\n\n## 夸 - 细节\n\n不吝赞美,就一个字“夸”,具体怎么夸呢?\n\n细节就是不要太笼统:\n\n- 😭 你穿的真好看 \n- 😊 今天的上衣显得你很白,太美了\n\n## 夸 - 对比\n\n- 😭 你今天穿的真好看\n- 😊 你今天穿的真好看,一般人可传不出这种气质\n\n## 我能理解你,换我也生气\n\n接纳对方的负面情绪,把双方情绪拉回到安全范围内。\n\n## 肢体同步\n\n如果你的肢体动作跟对方同步,它会产生一种被共情的感觉\n\n- 对方说的火热,身体前倾,伺机凑近\n- 思考一到两秒钟再反馈,这个简单的停顿\n\n# 只陈述不评论\n\n事实不会引起争议\n\n比如:孩子考试没及格是事实,说他笨死了就是评论了。\n\n再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。\n\n## 评论副词\n\n尽量规避一些跟评论相关的糊的频率副词,比如\n- 笨\n- 懒\n- 坏\n- 总是\n- 永远\n- 每次\n\n# 保持开放性\n\n还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通\n\n- 孩子没及格,老爸说下次必须及格。\n- 你上班迟到,老板说再迟到扣薪水。\n\n如果换成开放式沟通:\n\n- 老爸说咱们聊聊哪些题没有搞清楚\n- 老板说生活上是不是遇到了什么问题,没着我可以帮你\n\n# 反馈事实\n\n这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词\n\n- 问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类\n- 让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人\n\n","slug":"social/有效对话指南","published":1,"date":"2023-10-24T01:47:38.891Z","updated":"2023-11-06T05:18:11.496Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p4000dfwz3ejs5cal8","content":"<p>卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择</p>\n<h1 id=\"目的\"><a href=\"#目的\" class=\"headerlink\" title=\"目的\"></a>目的</h1><p>沟通目的无非两个:</p>\n<ul>\n<li>让对方认同我们的观点</li>\n<li>或者按我们说的做</li>\n</ul>\n<h1 id=\"搞定情绪\"><a href=\"#搞定情绪\" class=\"headerlink\" title=\"搞定情绪\"></a>搞定情绪</h1><p>大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半</p>\n<h2 id=\"夸-细节\"><a href=\"#夸-细节\" class=\"headerlink\" title=\"夸 - 细节\"></a>夸 - 细节</h2><p>不吝赞美,就一个字“夸”,具体怎么夸呢?</p>\n<p>细节就是不要太笼统:</p>\n<ul>\n<li>😭 你穿的真好看 </li>\n<li>😊 今天的上衣显得你很白,太美了</li>\n</ul>\n<h2 id=\"夸-对比\"><a href=\"#夸-对比\" class=\"headerlink\" title=\"夸 - 对比\"></a>夸 - 对比</h2><ul>\n<li>😭 你今天穿的真好看</li>\n<li>😊 你今天穿的真好看,一般人可传不出这种气质</li>\n</ul>\n<h2 id=\"我能理解你,换我也生气\"><a href=\"#我能理解你,换我也生气\" class=\"headerlink\" title=\"我能理解你,换我也生气\"></a>我能理解你,换我也生气</h2><p>接纳对方的负面情绪,把双方情绪拉回到安全范围内。</p>\n<h2 id=\"肢体同步\"><a href=\"#肢体同步\" class=\"headerlink\" title=\"肢体同步\"></a>肢体同步</h2><p>如果你的肢体动作跟对方同步,它会产生一种被共情的感觉</p>\n<ul>\n<li>对方说的火热,身体前倾,伺机凑近</li>\n<li>思考一到两秒钟再反馈,这个简单的停顿</li>\n</ul>\n<h1 id=\"只陈述不评论\"><a href=\"#只陈述不评论\" class=\"headerlink\" title=\"只陈述不评论\"></a>只陈述不评论</h1><p>事实不会引起争议</p>\n<p>比如:孩子考试没及格是事实,说他笨死了就是评论了。</p>\n<p>再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。</p>\n<h2 id=\"评论副词\"><a href=\"#评论副词\" class=\"headerlink\" title=\"评论副词\"></a>评论副词</h2><p>尽量规避一些跟评论相关的糊的频率副词,比如</p>\n<ul>\n<li>笨</li>\n<li>懒</li>\n<li>坏</li>\n<li>总是</li>\n<li>永远</li>\n<li>每次</li>\n</ul>\n<h1 id=\"保持开放性\"><a href=\"#保持开放性\" class=\"headerlink\" title=\"保持开放性\"></a>保持开放性</h1><p>还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通</p>\n<ul>\n<li>孩子没及格,老爸说下次必须及格。</li>\n<li>你上班迟到,老板说再迟到扣薪水。</li>\n</ul>\n<p>如果换成开放式沟通:</p>\n<ul>\n<li>老爸说咱们聊聊哪些题没有搞清楚</li>\n<li>老板说生活上是不是遇到了什么问题,没着我可以帮你</li>\n</ul>\n<h1 id=\"反馈事实\"><a href=\"#反馈事实\" class=\"headerlink\" title=\"反馈事实\"></a>反馈事实</h1><p>这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词</p>\n<ul>\n<li>问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类</li>\n<li>让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人</li>\n</ul>\n","site":{"data":{}},"excerpt":"","more":"<p>卡耐基说过:要说服别人同意你的观点,你就要让他觉得这是他自己的观点。也就是说,本质上没有人真正被别人说服,听或者不听都是他们自己的主动选择</p>\n<h1 id=\"目的\"><a href=\"#目的\" class=\"headerlink\" title=\"目的\"></a>目的</h1><p>沟通目的无非两个:</p>\n<ul>\n<li>让对方认同我们的观点</li>\n<li>或者按我们说的做</li>\n</ul>\n<h1 id=\"搞定情绪\"><a href=\"#搞定情绪\" class=\"headerlink\" title=\"搞定情绪\"></a>搞定情绪</h1><p>大多数人的立场和行为,是由情绪决定的,对方不喜欢你,你再怎么努力也很难说服他,只有他认可你这个人你的话他才会听。所以动之以理之前要先小之以轻,你把他情绪搞定了,沟通也就成功了一半</p>\n<h2 id=\"夸-细节\"><a href=\"#夸-细节\" class=\"headerlink\" title=\"夸 - 细节\"></a>夸 - 细节</h2><p>不吝赞美,就一个字“夸”,具体怎么夸呢?</p>\n<p>细节就是不要太笼统:</p>\n<ul>\n<li>😭 你穿的真好看 </li>\n<li>😊 今天的上衣显得你很白,太美了</li>\n</ul>\n<h2 id=\"夸-对比\"><a href=\"#夸-对比\" class=\"headerlink\" title=\"夸 - 对比\"></a>夸 - 对比</h2><ul>\n<li>😭 你今天穿的真好看</li>\n<li>😊 你今天穿的真好看,一般人可传不出这种气质</li>\n</ul>\n<h2 id=\"我能理解你,换我也生气\"><a href=\"#我能理解你,换我也生气\" class=\"headerlink\" title=\"我能理解你,换我也生气\"></a>我能理解你,换我也生气</h2><p>接纳对方的负面情绪,把双方情绪拉回到安全范围内。</p>\n<h2 id=\"肢体同步\"><a href=\"#肢体同步\" class=\"headerlink\" title=\"肢体同步\"></a>肢体同步</h2><p>如果你的肢体动作跟对方同步,它会产生一种被共情的感觉</p>\n<ul>\n<li>对方说的火热,身体前倾,伺机凑近</li>\n<li>思考一到两秒钟再反馈,这个简单的停顿</li>\n</ul>\n<h1 id=\"只陈述不评论\"><a href=\"#只陈述不评论\" class=\"headerlink\" title=\"只陈述不评论\"></a>只陈述不评论</h1><p>事实不会引起争议</p>\n<p>比如:孩子考试没及格是事实,说他笨死了就是评论了。</p>\n<p>再比如:你这周上班迟到两次,这是事实,说你经常迟到就是评论了。</p>\n<h2 id=\"评论副词\"><a href=\"#评论副词\" class=\"headerlink\" title=\"评论副词\"></a>评论副词</h2><p>尽量规避一些跟评论相关的糊的频率副词,比如</p>\n<ul>\n<li>笨</li>\n<li>懒</li>\n<li>坏</li>\n<li>总是</li>\n<li>永远</li>\n<li>每次</li>\n</ul>\n<h1 id=\"保持开放性\"><a href=\"#保持开放性\" class=\"headerlink\" title=\"保持开放性\"></a>保持开放性</h1><p>还拿上面的例子,这些话对方只能回答好或者不好,然后结束沟通</p>\n<ul>\n<li>孩子没及格,老爸说下次必须及格。</li>\n<li>你上班迟到,老板说再迟到扣薪水。</li>\n</ul>\n<p>如果换成开放式沟通:</p>\n<ul>\n<li>老爸说咱们聊聊哪些题没有搞清楚</li>\n<li>老板说生活上是不是遇到了什么问题,没着我可以帮你</li>\n</ul>\n<h1 id=\"反馈事实\"><a href=\"#反馈事实\" class=\"headerlink\" title=\"反馈事实\"></a>反馈事实</h1><p>这些话对方不仅听着舒服,而且能给你反馈事实。具体怎么开放呢?咱们只需要记住两个关键词</p>\n<ul>\n<li>问题开放:不要让对方只能回答是或否,例如:像愿闻其详、展开说说、欢迎补充之类</li>\n<li>让出话语权:真正的沟通高手,是让对方觉得自己很牛,主导聊天的往往是能提出问题的人,或者让别人多说的人</li>\n</ul>\n"},{"title":"烦恼的原因","status":"done","_content":"\n分心开小差,很多人感觉可能不是个问题,甚至还对自己的一心二用而感觉沾沾自喜。比如跑步的时候考虑明后天的安排,吃饭的时候在担忧与他人的关系,睡觉的时候思绪像瀑布一样倾泻而出,是我们在不知不觉中徒生烦恼、渐生愚钝。从某种意义上来说,它是我们烦恼低效的来源,因为无法专注。","source":"_posts/social/烦恼的原因.md","raw":"---\ntitle: 烦恼的原因\ncategories:\n - EQ\nstatus: done\n---\n\n分心开小差,很多人感觉可能不是个问题,甚至还对自己的一心二用而感觉沾沾自喜。比如跑步的时候考虑明后天的安排,吃饭的时候在担忧与他人的关系,睡觉的时候思绪像瀑布一样倾泻而出,是我们在不知不觉中徒生烦恼、渐生愚钝。从某种意义上来说,它是我们烦恼低效的来源,因为无法专注。","slug":"social/烦恼的原因","published":1,"date":"2023-11-06T05:19:41.350Z","updated":"2023-11-06T05:19:53.454Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p4000efwz3gs6jdvg8","content":"<p>分心开小差,很多人感觉可能不是个问题,甚至还对自己的一心二用而感觉沾沾自喜。比如跑步的时候考虑明后天的安排,吃饭的时候在担忧与他人的关系,睡觉的时候思绪像瀑布一样倾泻而出,是我们在不知不觉中徒生烦恼、渐生愚钝。从某种意义上来说,它是我们烦恼低效的来源,因为无法专注。</p>\n","site":{"data":{}},"excerpt":"","more":"<p>分心开小差,很多人感觉可能不是个问题,甚至还对自己的一心二用而感觉沾沾自喜。比如跑步的时候考虑明后天的安排,吃饭的时候在担忧与他人的关系,睡觉的时候思绪像瀑布一样倾泻而出,是我们在不知不觉中徒生烦恼、渐生愚钝。从某种意义上来说,它是我们烦恼低效的来源,因为无法专注。</p>\n"},{"title":"走神","status":"done","_content":"\n走神可以让我们活在任何时候,唯独不能活在当下。分心走神的原因,无非\"当下太无聊、当下太痛苦\",因为身体受困于现实,只好让神思天马行空!","source":"_posts/social/走神.md","raw":"---\ntitle: 走神\ncategories:\n - EQ\nstatus: done\n---\n\n走神可以让我们活在任何时候,唯独不能活在当下。分心走神的原因,无非\"当下太无聊、当下太痛苦\",因为身体受困于现实,只好让神思天马行空!","slug":"social/走神","published":1,"date":"2023-11-06T05:20:01.272Z","updated":"2023-11-06T05:20:13.780Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p5000hfwz327cm14qi","content":"<p>走神可以让我们活在任何时候,唯独不能活在当下。分心走神的原因,无非”当下太无聊、当下太痛苦”,因为身体受困于现实,只好让神思天马行空!</p>\n","site":{"data":{}},"excerpt":"","more":"<p>走神可以让我们活在任何时候,唯独不能活在当下。分心走神的原因,无非”当下太无聊、当下太痛苦”,因为身体受困于现实,只好让神思天马行空!</p>\n"},{"title":"非暴力沟通","status":"done","_content":"\n心理学有个史诗级的剧作叫做非暴力沟通,它能让一个人温柔而坚定的去说服对方。非暴力沟通大白话讲就是对他人足够的尊重,换取他人对你一次积极倾听的机会,所以这个技巧的核心是怎么做到尊重。一共分为四步\n\n1.表达事实而非评价:比如把你怎么这么不靠谱,改成你今天开会迟到了10分钟。\n2.表达情绪而非想法:比如把你一点都不在乎我,改成你这样做我很伤心。\n3.表达需求而非指责:比如把这点小事都做不好,改成这个小事,我们以后不要再犯了。\n4.表达请求而非命令:比如把没做完不许下班,改成下班前可以先给我一个初版?\n\n所以还记得开头那句话吗?温柔是对他人尊重,而坚定是保护自己不被伤害,愿你温柔而坚定\n","source":"_posts/social/非暴力沟通.md","raw":"---\ntitle: 非暴力沟通\ncategories:\n - EQ\nstatus: done\n---\n\n心理学有个史诗级的剧作叫做非暴力沟通,它能让一个人温柔而坚定的去说服对方。非暴力沟通大白话讲就是对他人足够的尊重,换取他人对你一次积极倾听的机会,所以这个技巧的核心是怎么做到尊重。一共分为四步\n\n1.表达事实而非评价:比如把你怎么这么不靠谱,改成你今天开会迟到了10分钟。\n2.表达情绪而非想法:比如把你一点都不在乎我,改成你这样做我很伤心。\n3.表达需求而非指责:比如把这点小事都做不好,改成这个小事,我们以后不要再犯了。\n4.表达请求而非命令:比如把没做完不许下班,改成下班前可以先给我一个初版?\n\n所以还记得开头那句话吗?温柔是对他人尊重,而坚定是保护自己不被伤害,愿你温柔而坚定\n","slug":"social/非暴力沟通","published":1,"date":"2023-11-06T05:18:46.853Z","updated":"2023-11-06T05:18:59.336Z","comments":1,"layout":"post","photos":[],"link":"","_id":"clomgn2p6000jfwz35ji10i3b","content":"<p>心理学有个史诗级的剧作叫做非暴力沟通,它能让一个人温柔而坚定的去说服对方。非暴力沟通大白话讲就是对他人足够的尊重,换取他人对你一次积极倾听的机会,所以这个技巧的核心是怎么做到尊重。一共分为四步</p>\n<p>1.表达事实而非评价:比如把你怎么这么不靠谱,改成你今天开会迟到了10分钟。<br>2.表达情绪而非想法:比如把你一点都不在乎我,改成你这样做我很伤心。<br>3.表达需求而非指责:比如把这点小事都做不好,改成这个小事,我们以后不要再犯了。<br>4.表达请求而非命令:比如把没做完不许下班,改成下班前可以先给我一个初版?</p>\n<p>所以还记得开头那句话吗?温柔是对他人尊重,而坚定是保护自己不被伤害,愿你温柔而坚定</p>\n","site":{"data":{}},"excerpt":"","more":"<p>心理学有个史诗级的剧作叫做非暴力沟通,它能让一个人温柔而坚定的去说服对方。非暴力沟通大白话讲就是对他人足够的尊重,换取他人对你一次积极倾听的机会,所以这个技巧的核心是怎么做到尊重。一共分为四步</p>\n<p>1.表达事实而非评价:比如把你怎么这么不靠谱,改成你今天开会迟到了10分钟。<br>2.表达情绪而非想法:比如把你一点都不在乎我,改成你这样做我很伤心。<br>3.表达需求而非指责:比如把这点小事都做不好,改成这个小事,我们以后不要再犯了。<br>4.表达请求而非命令:比如把没做完不许下班,改成下班前可以先给我一个初版?</p>\n<p>所以还记得开头那句话吗?温柔是对他人尊重,而坚定是保护自己不被伤害,愿你温柔而坚定</p>\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":"clomgn2p6000mfwz37417dimf","content":"<h1 id=\"使用-docker-搭建-verdaccio\"><a href=\"#使用-docker-搭建-verdaccio\" class=\"headerlink\" title=\"使用 docker 搭建 verdaccio\"></a>使用 docker 搭建 verdaccio</h1><p>创建 & 配置<code>config.yaml</code>文件</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># Read about the best practices</span>\n<span class=\"token comment\"># https://verdaccio.org/docs/best</span>\n\n<span class=\"token comment\"># path to a directory with all packages</span>\n<span class=\"token key atrule\">storage</span><span class=\"token punctuation\">:</span> /verdaccio/storage/data\n<span class=\"token comment\"># path to a directory with plugins to include</span>\n<span class=\"token key atrule\">plugins</span><span class=\"token punctuation\">:</span> /verdaccio/plugins\n\n<span class=\"token comment\"># 包体积上限,默认10mb</span>\n<span class=\"token key atrule\">max_body_size</span><span class=\"token punctuation\">:</span> 1024mb\n\n\n<span class=\"token key atrule\">web</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> Mozzie<span class=\"token punctuation\">-</span>NPM\n <span class=\"token comment\"># gravatar: false</span>\n <span class=\"token comment\"># login: true</span>\n <span class=\"token key atrule\">pkgManagers</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> npm\n <span class=\"token punctuation\">-</span> yarn\n <span class=\"token punctuation\">-</span> pnpm\n <span class=\"token key atrule\">html_cache</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">showFooter</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n\n<span class=\"token key atrule\">auth</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">htpasswd</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">file</span><span class=\"token punctuation\">:</span> /verdaccio/storage/htpasswd\n <span class=\"token comment\"># 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W</span>\n <span class=\"token key atrule\">max_users</span><span class=\"token punctuation\">:</span> <span class=\"token number\">-1</span>\n\n\n<span class=\"token key atrule\">i18n</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">web</span><span class=\"token punctuation\">:</span> zh<span class=\"token punctuation\">-</span>CN\n\n<span class=\"token comment\"># notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles</span>\n<span class=\"token comment\"># method: POST</span>\n<span class=\"token comment\"># headers: [{ \"Content-Type\": \"application/json\" }]</span>\n<span class=\"token comment\"># endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx</span>\n<span class=\"token comment\"># content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'</span>\n\n<span class=\"token key atrule\">uplinks</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">npmjs</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//registry.npmjs.org/\n <span class=\"token key atrule\">yarn</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//registry.yarnpkg.com/\n <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> 10s\n <span class=\"token key atrule\">taobao</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//registry.npmmirror.com/\n <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> 10s\n\n<span class=\"token key atrule\">packages</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">\"@*/*\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># 可访问权限,web界面看不见,不登陆,也无法 install 包</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated <span class=\"token comment\"># $all</span>\n <span class=\"token comment\"># 发布权限, $authenticated 表示只有通过验证的人</span>\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token comment\"># 可取消发布权限</span>\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token comment\"># 包不存在时的代理</span>\n <span class=\"token key atrule\">proxy</span><span class=\"token punctuation\">:</span> npmjs yarn taobao\n <span class=\"token key atrule\">\"**\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated <span class=\"token comment\"># $all</span>\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">proxy</span><span class=\"token punctuation\">:</span> npmjs yarn taobao\n\n<span class=\"token key atrule\">middlewares</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">audit</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n<span class=\"token key atrule\">listen</span><span class=\"token punctuation\">:</span> 0.0.0.0<span class=\"token punctuation\">:</span><span class=\"token number\">4873</span>\n<span class=\"token key atrule\">log</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">type</span><span class=\"token punctuation\">:</span> stdout<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">format</span><span class=\"token punctuation\">:</span> pretty<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">level</span><span class=\"token punctuation\">:</span> http <span class=\"token punctuation\">}</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>创建容器,环境变量,<code>VERDACCIO_PUBLIC_URL</code>是静态资源的前缀地址,由于nginx挂了<code>ssl</code>,如果使用<code>http</code>可以不添加</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">docker</span> run <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-p</span> <span class=\"token number\">4873</span>:4873 <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--restart</span><span class=\"token operator\">=</span>always <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--network</span> mozzie.cn-net <span class=\"token punctuation\">\\</span>\n--network-alias verdaccio <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--env</span> <span class=\"token assign-left variable\">VERDACCIO_PORT</span><span class=\"token operator\">=</span><span class=\"token number\">4873</span> <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--env</span> <span class=\"token assign-left variable\">VERDACCIO_PUBLIC_URL</span><span class=\"token operator\">=</span>https://npm.mozzie.cn <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--ip</span> <span class=\"token number\">172.21</span>.0.196 <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--name</span> verdaccio <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-v</span> /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-v</span> /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-v</span> /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-d</span> verdaccio/verdaccio<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n\n\n<p>配置nginx的反向代理conf,注意所在的docker网络,使用<code>container_name</code></p>\n<pre class=\"line-numbers language-conf\" data-language=\"conf\"><code class=\"language-conf\">server {\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}<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>运行添加用户,报错,因为 <code>htpasswd</code>默认创建在宿主机,也就是上面挂载的<code>/www/wwwroot/nginx/html/verdaccio/storage</code>目录中</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> adduser <span class=\"token parameter variable\">--registry</span> https://npm.mozzie.cn/<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>配置<code>htpasswd</code>、<code>storage</code> 文件夹权限</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token comment\"># 宿主机中执行</span>\n<span class=\"token builtin class-name\">cd</span> /www/wwwroot/nginx/html/verdaccio/storage\n<span class=\"token function\">touch</span> htpasswd\n<span class=\"token function\">sudo</span> <span class=\"token function\">chown</span> <span class=\"token number\">10001</span>:65533 htpasswd\n<span class=\"token function\">sudo</span> <span class=\"token function\">chown</span> <span class=\"token parameter variable\">-R</span> <span class=\"token number\">10001</span>:65533 /www/wwwroot/nginx/html/verdaccio/storage<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"verdaccio-用户管理\"><a href=\"#verdaccio-用户管理\" class=\"headerlink\" title=\"verdaccio 用户管理\"></a>verdaccio 用户管理</h1><p>由于在 <code>config.yml</code> 中关闭了可访问权限</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">auth</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">htpasswd</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">file</span><span class=\"token punctuation\">:</span> /verdaccio/storage/htpasswd\n <span class=\"token comment\"># 关闭注册,手动添加用户,默认Bcrypt算法,</span>\n <span class=\"token key atrule\">max_users</span><span class=\"token punctuation\">:</span> <span class=\"token number\">-1</span>\n\n<span class=\"token key atrule\">packages</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">\"@*/*\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># 可访问权限,web界面看不见,不登陆,也无法 install 包</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated <span class=\"token comment\"># $all</span>\n <span class=\"token comment\"># 发布权限, $authenticated 表示只有通过验证的人</span>\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token comment\"># 可取消发布权限</span>\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">\"**\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>默认的 <code>addUser</code> 策略是 <code>Bcrypt</code> 生成密码,随便找个网页生成个密码,使用<code>账号:密码</code>添加到 <code>htpasswd</code> 文件中,例如 </p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">test:<span class=\"token variable\">$2a</span><span class=\"token variable\">$10</span><span class=\"token variable\">$0xPGVnpcdxcfmFxtWyWDx</span>./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 <code>npm</code> 为例</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> adduser <span class=\"token parameter variable\">--registry</span> https://npm.mozzie.cn/\n<span class=\"token comment\"># 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com</span>\n<span class=\"token comment\"># 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre>\n\n<p>在系统的 <code>cat ~/.npmrc</code> 中会增加一行,就可以正常的进行以来的安装了</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">//npm.mozzie.cn/:_authToken<span class=\"token operator\">=</span><span class=\"token string\">\"Do/wrh5QzsnYaNU4x3ZlVA==\"</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h1 id=\"项目-npmrc-Scope区分\"><a href=\"#项目-npmrc-Scope区分\" class=\"headerlink\" title=\"项目 .npmrc Scope区分\"></a>项目 .npmrc Scope区分</h1><p>需要指定 <code>.npmrc</code> 来区别 <code>Scope</code> 的安装地址,例如一个包名为 <code>@mozzie/hook</code>,对应的私库为 <code>https://npm.mozzie.cn/</code></p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token assign-left variable\">registry</span><span class=\"token operator\">=</span>http://registry.npm.taobao.org/\n@mozzie:registry<span class=\"token operator\">=</span>https://npm.mozzie.cn\n<span class=\"token comment\"># npm拉包的校验</span>\n//https://npm.mozzie.cn/:_authToken<span class=\"token operator\">=</span>xxxxxxxxxxxxx<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>","site":{"data":{}},"excerpt":"","more":"<h1 id=\"使用-docker-搭建-verdaccio\"><a href=\"#使用-docker-搭建-verdaccio\" class=\"headerlink\" title=\"使用 docker 搭建 verdaccio\"></a>使用 docker 搭建 verdaccio</h1><p>创建 & 配置<code>config.yaml</code>文件</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># Read about the best practices</span>\n<span class=\"token comment\"># https://verdaccio.org/docs/best</span>\n\n<span class=\"token comment\"># path to a directory with all packages</span>\n<span class=\"token key atrule\">storage</span><span class=\"token punctuation\">:</span> /verdaccio/storage/data\n<span class=\"token comment\"># path to a directory with plugins to include</span>\n<span class=\"token key atrule\">plugins</span><span class=\"token punctuation\">:</span> /verdaccio/plugins\n\n<span class=\"token comment\"># 包体积上限,默认10mb</span>\n<span class=\"token key atrule\">max_body_size</span><span class=\"token punctuation\">:</span> 1024mb\n\n\n<span class=\"token key atrule\">web</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> Mozzie<span class=\"token punctuation\">-</span>NPM\n <span class=\"token comment\"># gravatar: false</span>\n <span class=\"token comment\"># login: true</span>\n <span class=\"token key atrule\">pkgManagers</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> npm\n <span class=\"token punctuation\">-</span> yarn\n <span class=\"token punctuation\">-</span> pnpm\n <span class=\"token key atrule\">html_cache</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n <span class=\"token key atrule\">showFooter</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n\n<span class=\"token key atrule\">auth</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">htpasswd</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">file</span><span class=\"token punctuation\">:</span> /verdaccio/storage/htpasswd\n <span class=\"token comment\"># 关闭注册,手动添加用户,默认Bcrypt算法,随便找个网页生成个密码,使用账号:密码添加到 htpasswd 文件中,例如 test:$2a$10$0xPGVnpcdxcfmFxtWyWDx./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W</span>\n <span class=\"token key atrule\">max_users</span><span class=\"token punctuation\">:</span> <span class=\"token number\">-1</span>\n\n\n<span class=\"token key atrule\">i18n</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">web</span><span class=\"token punctuation\">:</span> zh<span class=\"token punctuation\">-</span>CN\n\n<span class=\"token comment\"># notify: # 配置 Webhook 推送到钉钉,记得修改 access_token 和 atMobiles</span>\n<span class=\"token comment\"># method: POST</span>\n<span class=\"token comment\"># headers: [{ \"Content-Type\": \"application/json\" }]</span>\n<span class=\"token comment\"># endpoint: https://oapi.dingtalk.com/robot/send?access_token=xxxx</span>\n<span class=\"token comment\"># content: '{\"msgtype\":\"text\", \"at\": {\"atMobiles\": [\"13000000000\"] }, \"text\":{\"content\":\"NPM 发布新包:\\n > 包名称:{{name}} \\n > 版本号:{{#each versions}}{{version}}{{/each}} \\n > 发布者:{{publisher.name}} \"}}'</span>\n\n<span class=\"token key atrule\">uplinks</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">npmjs</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//registry.npmjs.org/\n <span class=\"token key atrule\">yarn</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//registry.yarnpkg.com/\n <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> 10s\n <span class=\"token key atrule\">taobao</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//registry.npmmirror.com/\n <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> 10s\n\n<span class=\"token key atrule\">packages</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">\"@*/*\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># 可访问权限,web界面看不见,不登陆,也无法 install 包</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated <span class=\"token comment\"># $all</span>\n <span class=\"token comment\"># 发布权限, $authenticated 表示只有通过验证的人</span>\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token comment\"># 可取消发布权限</span>\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token comment\"># 包不存在时的代理</span>\n <span class=\"token key atrule\">proxy</span><span class=\"token punctuation\">:</span> npmjs yarn taobao\n <span class=\"token key atrule\">\"**\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated <span class=\"token comment\"># $all</span>\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">proxy</span><span class=\"token punctuation\">:</span> npmjs yarn taobao\n\n<span class=\"token key atrule\">middlewares</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">audit</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n<span class=\"token key atrule\">listen</span><span class=\"token punctuation\">:</span> 0.0.0.0<span class=\"token punctuation\">:</span><span class=\"token number\">4873</span>\n<span class=\"token key atrule\">log</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">type</span><span class=\"token punctuation\">:</span> stdout<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">format</span><span class=\"token punctuation\">:</span> pretty<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">level</span><span class=\"token punctuation\">:</span> http <span class=\"token punctuation\">}</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>创建容器,环境变量,<code>VERDACCIO_PUBLIC_URL</code>是静态资源的前缀地址,由于nginx挂了<code>ssl</code>,如果使用<code>http</code>可以不添加</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">docker</span> run <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-p</span> <span class=\"token number\">4873</span>:4873 <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--restart</span><span class=\"token operator\">=</span>always <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--network</span> mozzie.cn-net <span class=\"token punctuation\">\\</span>\n--network-alias verdaccio <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--env</span> <span class=\"token assign-left variable\">VERDACCIO_PORT</span><span class=\"token operator\">=</span><span class=\"token number\">4873</span> <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--env</span> <span class=\"token assign-left variable\">VERDACCIO_PUBLIC_URL</span><span class=\"token operator\">=</span>https://npm.mozzie.cn <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--ip</span> <span class=\"token number\">172.21</span>.0.196 <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">--name</span> verdaccio <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-v</span> /www/wwwroot/nginx/html/verdaccio/storage:/verdaccio/storage <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-v</span> /www/wwwroot/nginx/html/verdaccio/config:/verdaccio/conf <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-v</span> /www/wwwroot/nginx/html/verdaccio/plugins:/verdaccio/plugins <span class=\"token punctuation\">\\</span>\n<span class=\"token parameter variable\">-d</span> verdaccio/verdaccio<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n\n\n<p>配置nginx的反向代理conf,注意所在的docker网络,使用<code>container_name</code></p>\n<pre class=\"line-numbers language-conf\" data-language=\"conf\"><code class=\"language-conf\">server {\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}<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>运行添加用户,报错,因为 <code>htpasswd</code>默认创建在宿主机,也就是上面挂载的<code>/www/wwwroot/nginx/html/verdaccio/storage</code>目录中</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> adduser <span class=\"token parameter variable\">--registry</span> https://npm.mozzie.cn/<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>配置<code>htpasswd</code>、<code>storage</code> 文件夹权限</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token comment\"># 宿主机中执行</span>\n<span class=\"token builtin class-name\">cd</span> /www/wwwroot/nginx/html/verdaccio/storage\n<span class=\"token function\">touch</span> htpasswd\n<span class=\"token function\">sudo</span> <span class=\"token function\">chown</span> <span class=\"token number\">10001</span>:65533 htpasswd\n<span class=\"token function\">sudo</span> <span class=\"token function\">chown</span> <span class=\"token parameter variable\">-R</span> <span class=\"token number\">10001</span>:65533 /www/wwwroot/nginx/html/verdaccio/storage<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<h1 id=\"verdaccio-用户管理\"><a href=\"#verdaccio-用户管理\" class=\"headerlink\" title=\"verdaccio 用户管理\"></a>verdaccio 用户管理</h1><p>由于在 <code>config.yml</code> 中关闭了可访问权限</p>\n<pre class=\"line-numbers language-yaml\" data-language=\"yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">auth</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">htpasswd</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">file</span><span class=\"token punctuation\">:</span> /verdaccio/storage/htpasswd\n <span class=\"token comment\"># 关闭注册,手动添加用户,默认Bcrypt算法,</span>\n <span class=\"token key atrule\">max_users</span><span class=\"token punctuation\">:</span> <span class=\"token number\">-1</span>\n\n<span class=\"token key atrule\">packages</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">\"@*/*\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># 可访问权限,web界面看不见,不登陆,也无法 install 包</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated <span class=\"token comment\"># $all</span>\n <span class=\"token comment\"># 发布权限, $authenticated 表示只有通过验证的人</span>\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token comment\"># 可取消发布权限</span>\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">\"**\"</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">access</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">publish</span><span class=\"token punctuation\">:</span> $authenticated\n <span class=\"token key atrule\">unpublish</span><span class=\"token punctuation\">:</span> $authenticated<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n\n<p>默认的 <code>addUser</code> 策略是 <code>Bcrypt</code> 生成密码,随便找个网页生成个密码,使用<code>账号:密码</code>添加到 <code>htpasswd</code> 文件中,例如 </p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">test:<span class=\"token variable\">$2a</span><span class=\"token variable\">$10</span><span class=\"token variable\">$0xPGVnpcdxcfmFxtWyWDx</span>./TRtm/W/gSzib/jck3w.sF9x.Ur8t8W<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<p>因此在实际开发中,管理员手动给用户创建好账号,然后根据用户的包管理工具,进行登录,例如以 <code>npm</code> 为例</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token function\">npm</span> adduser <span class=\"token parameter variable\">--registry</span> https://npm.mozzie.cn/\n<span class=\"token comment\"># 输入 Username: mozzie | Password: xxx | Email: (this IS public) himozzie@foxmail.com</span>\n<span class=\"token comment\"># 提示登陆成功 Logged in as mozzie on https://npm.mozzie.cn/.</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre>\n\n<p>在系统的 <code>cat ~/.npmrc</code> 中会增加一行,就可以正常的进行以来的安装了</p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\">//npm.mozzie.cn/:_authToken<span class=\"token operator\">=</span><span class=\"token string\">\"Do/wrh5QzsnYaNU4x3ZlVA==\"</span><span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span></span></code></pre>\n\n<h1 id=\"项目-npmrc-Scope区分\"><a href=\"#项目-npmrc-Scope区分\" class=\"headerlink\" title=\"项目 .npmrc Scope区分\"></a>项目 .npmrc Scope区分</h1><p>需要指定 <code>.npmrc</code> 来区别 <code>Scope</code> 的安装地址,例如一个包名为 <code>@mozzie/hook</code>,对应的私库为 <code>https://npm.mozzie.cn/</code></p>\n<pre class=\"line-numbers language-bash\" data-language=\"bash\"><code class=\"language-bash\"><span class=\"token assign-left variable\">registry</span><span class=\"token operator\">=</span>http://registry.npm.taobao.org/\n@mozzie:registry<span class=\"token operator\">=</span>https://npm.mozzie.cn\n<span class=\"token comment\"># npm拉包的校验</span>\n//https://npm.mozzie.cn/:_authToken<span class=\"token operator\">=</span>xxxxxxxxxxxxx<span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span></span></code></pre>"}],"PostAsset":[],"PostCategory":[{"post_id":"clomgn2ow0001fwz3d7v1h0ob","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p3000bfwz348d78cmh"},{"post_id":"clomgn2p30009fwz38ictd180","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p5000ffwz3dkpybxne"},{"post_id":"clomgn2p00003fwz3dn4fg95b","category_id":"clomgn2p20008fwz3e3dq6qka","_id":"clomgn2p6000ifwz3cyeif4aj"},{"post_id":"clomgn2p3000afwz32pfo2jv6","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p6000kfwz31pln1fwf"},{"post_id":"clomgn2p4000dfwz3ejs5cal8","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p6000nfwz38m6eebwc"},{"post_id":"clomgn2p10005fwz3b2ct0mb3","category_id":"clomgn2p20008fwz3e3dq6qka","_id":"clomgn2p6000ofwz3dtow1943"},{"post_id":"clomgn2p4000efwz3gs6jdvg8","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p7000qfwz3g551cx0h"},{"post_id":"clomgn2p5000hfwz327cm14qi","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p7000rfwz3a3bv52sz"},{"post_id":"clomgn2p20006fwz39hvlgmlj","category_id":"clomgn2p5000gfwz39l6nbsnh","_id":"clomgn2p7000sfwz35rqyh3ll"},{"post_id":"clomgn2p6000jfwz35ji10i3b","category_id":"clomgn2p10004fwz39amidebp","_id":"clomgn2p7000tfwz38q9m84m9"},{"post_id":"clomgn2p20007fwz31xbffj91","category_id":"clomgn2p5000gfwz39l6nbsnh","_id":"clomgn2p7000ufwz327uje0r4"},{"post_id":"clomgn2p6000mfwz37417dimf","category_id":"clomgn2p7000pfwz33enw8499","_id":"clomgn2p7000vfwz3fmyag1fb"}],"PostTag":[],"Tag":[]}} |